4!:5 (Name Changed) ... that's what I'm looking for. Silly of me, because I'd used it before, in another context, and forgotten about it.
If I recall though, it isn't really "changed" but "overwritten" (maybe with the same). But, if I recall, it only stores the name if it's altered, not if it's created... which is just what I want. (But I'm going to have to test that...!) A temporary lockdown of existing _z_ would be nice. But I need it mainly for non-pronouns. And plan to migrate it to J7. On Sun, Oct 9, 2011 at 9:34 PM, Dan Bron <[email protected]> wrote: > Couple of points. You can detect name changes with 4!:5 [1] and the names > returned will be fully qualified, meaning you'll be able to identify what > locale the changed name is in. I'm not in front of an interpreter right now, > but it's something along the lines of: > > 4!:5&.>i.2 NB. Top of script > NB. Body of script > 'A B'=.4!:5&.>i._2 NB. End of script > assert 0 = #expected_z_names -.~ (#~(,'z')=(}.~1+i:&'_')@:}:&.>) B > > Also, FYI, J has an undocumented feature that allows the definitions of names > to be locked. That is, names can be assigned once, then marked as read-only. > You could leverage this feature to query all the names in the z locale (in > its unaltered state, before you load your script), then set them as readonly: > subsequent assignment to these names would fail with a a 'readonly data' > error. Like so (again untested because there is no J for the iPad and jum is > down): > > require 'jmf' > 1 readonly_jmf_&.> namelist_z_ i. 4 > > Well, with one caveat: you have to use J601, or only care about locking the > definitions of nouns (ie replace i.4 with 0). J602 introduced a change that > prevents that and later versions from locking the definitions of non-pronouns > (or really getting under the covers of non-pronouns for any reason). For > details, see [2]. > > -Dan > > [1] Definition of 4!:5 : http://www.jsoftware.com/help/dictionary/dx004.htm#5 > > 4!:5 y Names Changed. 4!:5]0 turns off data collection; 4!:5]1 turns it on > and produces a list of global names assigned since the last execution of 4!:5 > . > > [2] Readonly names and 15!:6: > http://www.jsoftware.com/pipermail/general/2008-November/032554.html > > > > > > On Oct 9, 2011, at 1:28 PM, Ian Clark <[email protected]> wrote: > >> It's not the top-level call that's the worry. It's all the little >> "specials" I put in _z_ myself. >> >> >> On Sun, Oct 9, 2011 at 6:16 PM, Henry Rich <[email protected]> wrote: >>> I try when possible to avoid exporting function names. If the user >>> wants to run finesse in the package bridge, he can write >>> >>> finesse_bridge_ >>> >>> can't he? If he wants to cover that with a name in z, that's his business. >>> >>> Henry Rich >>> >>> On 10/9/2011 12:57 PM, Ian Clark wrote: >>>> That's the long way round. (I reckon I can do that.) >>>> >>>> I only need the warning (for the end-user). Plus maybe the names >>>> clashed (for the customer to give to the helpline). >>>> The aim is to help with new customers hitting time-consuming >>>> installation problems. >>>> >>>> >>>> 2011/10/9 Björn Helgason<[email protected]>: >>>>> Do you need to get a copy of all the objects? >>>>> >>>>> Would it be enough to have a database with information about the objects? >>>>> >>>>> In the case of verbs you could place a copy of the visual representation >>>>> of >>>>> the verb into a noun and take its vital info into the database. >>>>> >>>>> You could then put a time stamp on the info when you registered the info. >>>>> >>>>> 2011/10/9 Ian Clark<[email protected]> >>>>> >>>>>> As a (paranoid?) safety device in a "fit'n'forget" utility, I'm trying >>>>>> to write code to go in a given script which will warn when that script >>>>>> will unintentionally alter -- or has altered -- an existing name in >>>>>> the _z_ locale. >>>>>> >>>>>> NB: "alter", not merely "overwrite" -- though a slick way of detecting >>>>>> overwrite would be worth knowing too. APL+Win attaches a timestamp to >>>>>> each fn, which makes this task easy. >>>>>> >>>>>> It would be nice not to have to maintain -- by-hand -- an explicit >>>>>> list up-front, of names created by the script. >>>>>> >>>>>> An allied question: how best can I "snapshot" a given locale -- such >>>>>> as _z_? That is: create a second temporary locale _sav_ with identical >>>>>> contents? I can only think of brute-force: enumerating the names in >>>>>> _z_ and copying them one-by-one to _sav_. >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Björn Helgason, Verkfræðingur >>>>> Fornustekkum II >>>>> 781 Hornafirði, >>>>> t-póst: [email protected] >>>>> gsm: +3546985532 >>>>> twitter: @flugfiskur >>>>> http://groups.google.com/group/J-Programming >>>>> >>>>> >>>>> Tæknikunnátta höndlar hið flókna, sköpunargáfa er meistari einfaldleikans >>>>> >>>>> góður kennari getur stigið á tær án þess að glansinn fari af skónum >>>>> /|_ .-----------------------------------. >>>>> ,' .\ / | Með léttri lund verður | >>>>> ,--' _,' | Dagurinn í dag | >>>>> / / | Enn betri en gærdagurinn | >>>>> ( -. | `-----------------------------------' >>>>> | ) | (\_ _/) >>>>> (`-. '--.) (='.'=) ♖♘♗♕♔♙ >>>>> `. )----' (")_(") ☃☠ >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
