I have added
4!:55 <'endian'
into the plot script on J602, right after the name is used. This should
become a standard convention when local names are used in scripts, to
avoid the kind of problem you reported.
I made the same change in the J7 base, and also to format\publish which
did the same thing.
I guess you'll get the change when the base is rebuilt.
Henry Rich
On 12/28/2012 4:32 PM, Anssi Seppälä wrote:
My J602 development broke suddenly after a JAL update. The built script did not work in
runtime. The reason appears to be in a name conflict in two different scripts that are
added in same build: dll.ijs and jzplot.ijs. Both scripts declare name
"endian": jzplot.ijs locally in class locale and dll.ijs globally in locale z
and. The second assignment causes domain error while running the script.
You can simulate the situation by running the following lines in a script
(24.ijs):
cocurrent'test'
a=. 12
cocurrent 'z'
a=: 13
load 'C:\j602\user\temp\24.ijs'
|domain error: script
| a =:13
|[-3] C:\j602\user\temp\24.ijs
The script jzplot.ijs includes a executed line jzplot class locale:
endian=. ({.a.)={. 1&(3!:4) 1
and dll.ijs includes a executed line in z locale:
endian=: |.^:('a'={.2 ic a.i.'a')
I have only questions:
Which script (jzplot.ijs or dll.ijs) should be fixed and how ? Who will do the
fix and how such conflicts causing such nasty errors could be avoided in the
future?
Anssi
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm