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

Reply via email to