System/Interpreter/Bugs/Crashes

From J Wiki
< System‎ | Interpreter‎ | Bugs
Jump to navigation Jump to search
Requests: Interpreter   Bugs: Interpreter

Please restrict the headings to just two levels, with the actual bug reports placed at the top level; sign your submission using ~~~~; register the entry in the comment field below.


These scenarios crash the interpreter.


long train crash

J will crash when it attempts to build a long train. For example, any of the sentences a=.(139792$-`-)`:6, (419382$'-') 128!:2 'a' or ".'a=.',139788$'-' will crash J. In each case, if you decrement the large integer, J will not crash.

Note that the second example makes it obvious that the building of the verb, not execution of it, causes the crash (the absence of a domain error for -'a' indicates this; shorter trains do produce that error). The assignments in the other two examples are only merely to prevent J from (trying to) display the verb and getting an out of memory exception before it can crash.

I think these examples indicate the bug is in the maximum depth of J's parse tree. If that's the case, then a limit or stack error is preferred, as in the cases + 1 :(}:^:('@'-:{:)65535$'-@') and (39998$'-') 128!:2 'a' respectively.

Applies to ( 'j602/beta/2007-09-19/23:00';6;'jwin32' ) -: (9!:14'') ; (9!:12'') ; wd 'qwd' (This does not mean that the bug is restricted to this environment, only that it is the one I tested.)

-- Dan Bron <<DateTime(2007-11-15T20:07:44Z)>>