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

Reply via email to