This matches the bits and pieces that I remember seeing, and includes
a couple details that I hadn't thought to look for.

Thanks,

-- 
Raul

On Tue, May 14, 2019 at 5:55 PM Henry Rich <[email protected]> wrote:
>
> When you hit a suspension, there is a J stack and the C program is in a
> loop at the bottom level of C execution waiting for input.  When you say
> 'cut stack', Roger goes sends a message to the current execution level
> saying 'abort', and a message to the next-higher level saying 'restart
> the last instruction'.  Then suspension returns, with an error value.
> This errors its way up the C execution levels.  It gets to the aborted
> explicit definition, which duly aborts.  Execution continues until it
> gets to the next explicit definition, which is where you cut the stack
> back to.  That wakes up and runs (unmindful of the pending error),
> restarting at the failing line.  Because debug is on, the execution of
> this line is intercepted before it is executed, and you go back into
> suspension at the new level.
>
> No longjmp required.
>
> Henry Rich
>
> On 5/14/2019 2:51 PM, Raul Miller wrote:
> > I think I see what you are getting at: C stack function calls do not
> > show up as stack entries for 13!:x
> >
> > But, for example, if I use (".) or some user defined verb instead of
> > (,) as an example, I can wind up with additional stack frames from my
> > debug session and there will be additional C stack frames behind the
> > scenes which would need to be unwound when cutting back the J stack.
> >
> > (This is in contrast to how threaded code can work -- in threaded code
> > the stack of the host programming language can be kept level when
> > making calls in the client language -- depending on the threading
> > implementation, of course...)
> >
> > 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to