The J stack is separate from the C stack, and always has been.
The trouble comes from the fact that the code is old and has been rewritten lots. Debug sits off to the side and had pointers into the blocks used by normal verb execution. This made it hard for the optimizer, and also for the programmer who looks at 'i' and wonders what it really means. So in this release I structured the interaction between debug and normal execution. As for getting it right... I guess that's what beta releases are for. Thanks to you guys who find the bugs.
Henry Rich On 5/14/2019 1:36 PM, Raul Miller wrote:
Nice. Since the current J implementation uses the C stack to implement the J stack, cutting back requires one of two things: (1) Every C function which can take significant time to execute or which can be live during an exception needs to implement "bail out early" checks, or (2) setjump/longjump (which sometimes gets into hardware and operating system specific issues, and also has implications for memory management because of how references can get ignored -- that said, for example, gdb uses a linked list that emulates the stack for memory management purposes with "primitives" to add a frame, remove a frame or cut back to the current frame -- I don't know what the performance implications of that would be like, here). So... yes... I imagine it's more than a little intricate. So... thanks!
--- This email has been checked for viruses by AVG. https://www.avg.com ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
