I have tracked this down to numeric dyad E. which seems to cause wild
stores to memory, sometimes wiping out data, sometimes scripts.
In our new open-source environment, how do bugs get fixed and released?
Henry Rich
On 4/24/2012 9:52 PM, Henry Rich wrote:
> Working on R. E.'s latest problem, I hit an interpreter bug. The
> session log is
>
> load 'C:\JPrograms\temp\interpbug.ijs'
> jtree G
> |domain error: jtree
> | jtree G
> X
> 10 12
> Y
> 12 15
> (<10 12) joinroutes (<12 15)
> ┌──────────┐
> │┌────────┐│
> ││10 12 15││
> │└────────┘│
> └──────────┘
> jtree G
> |domain error: joinroutes
> | y(+./@:E.}.;)(1{.y) ,x,(l}.y)
> jtree G
> |length error: joinroutes
> | 'f l'=.0 1+(0 1+#y) |y i.x
> G
> +---+-+---+---+---+---+--+---+---+---+---+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
> |0 1||2 3|2 4|3 5|4 6| |5 7|5 8|6 7|7 9|7 10|8 10|9 11|10 12|10 11|11
> 13|11 14|11 15|12 16|12 15|12 14|
> +---+-+---+---+---+---+--+---+---+---+---+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
>
> You can see that the variable G has been corrupted; also, the errors
> running jtree are bogus, I think. The script file follows. The first
> line is wrapped, and the name 'joinroutes' is defined and then overwritten:
>
> G =:<"1 ] 0 1 2 2 3 4 4 5 5 6 7 7 8 9 10 10 11 11 11 12 12 12 ,. 1 2 3
> 4 5 6 5 7 8 7 9 10 10 11 12 11 13 14 15 16 15 14
> NB. x is new pair
> NB. y is old route
> NB. Result is merged routes
> joinroutes =: 4 : 0&.>
> select. (#y)> 'f l' =. y i. x
> case. 1 1 do.
> y ; (f {. y) , x , ((>:l) }. y)
> case. 0 1 do.
> y ;^:(l~:0)< x , ((>:l) }. y)
> case. 1 0 do.
> y ;^:(f~:<:#y)< (f {. y) , x
> case. do.
> y ; x
> end.
> )
> joinroutes =: 4 : 0&.>
> X =: x
> Y =: y
>
> 'f l' =. 0 1 + (0 1 + #y) | y i. x
> y (+./@:E. }. ;) (f {. y) , x , (l }. y)
> )
> jtree =: ([: ~.@; joinroutes)/
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm