From: <ga...@co...> - 2007-12-20 04:59:57
|
Hey armed-bear list -- I just started working with abcl, and I'm really impressed! I have it imbedded in a java app, and it is working very well, with one problem. My enclosing java app is not happy when abcl invokes the debugger or goes into a break condition. Is there a way to disable this? I would prefer to notify the user that a lisp error has occurred and have the lisp reset to the top-level automatically. brad http://music.columbia.edu/~brad |
From: Alex M. <kil...@ne...> - 2007-12-20 09:58:53
|
g> I just started working with abcl, and I'm really impressed! g> I have it imbedded in a java app, and it is working very well, with g> one problem. My enclosing java app is not happy when abcl invokes the g> debugger or goes into a break condition. Is there a way to disable g> this? I would prefer to notify the user that a lisp error has g> occurred and have the lisp reset to the top-level automatically. check this mailing list's archive, "recently" i've posted a solution how to do this -- you need to enable throwing debugger hook, then you can just catch exception on Java side as ConditionThrowable. (default debugger hook breaks into interactive debugger, indeed) alternatively you can solve it on Lisp side -- use ignore-errors, handler-case, handler-bind or whatever.. |
From: <ga...@co...> - 2007-12-20 16:29:24
|
Alex -- thanks! I found your debugger-hook-function and it works like a charm =20 (sorry I hadn't noticed it in the archives before...) One more quick question, sorry to be so dense: when the condition is =20 thrown, how can I restart the top-level-loop (or does it not exit)? I =20 tried (invoke-restart 'top-level) but that doesn't seem to go. brad http://music.columbia.edu/~brad Quoting Alex Mizrahi <kil...@ne...>: > g> I just started working with abcl, and I'm really impressed! > > g> I have it imbedded in a java app, and it is working very well, with > g> one problem. My enclosing java app is not happy when abcl invokes the > g> debugger or goes into a break condition. Is there a way to disable > g> this? I would prefer to notify the user that a lisp error has > g> occurred and have the lisp reset to the top-level automatically. > > check this mailing list's archive, "recently" i've posted a solution how t= o > do this -- you need to enable throwing debugger hook, then you can just > catch exception on Java side as ConditionThrowable. > (default debugger hook breaks into interactive debugger, indeed) > > alternatively you can solve it on Lisp side -- use ignore-errors, > handler-case, handler-bind or whatever.. > > > > > ------------------------------------------------------------------------- > SF.Net email is sponsored by: > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services > for just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketpla= ce > _______________________________________________ > armedbear-j-devel mailing list > arm...@li... > https://lists.sourceforge.net/lists/listinfo/armedbear-j-devel > |
From: Alex M. <kil...@ne...> - 2007-12-22 18:26:55
|
g> thanks! I found your debugger-hook-function and it works like a charm g> (sorry I hadn't noticed it in the archives before...) g> One more quick question, sorry to be so dense: when the condition is g> thrown, how can I restart the top-level-loop (or does it not exit)? I g> tried (invoke-restart 'top-level) but that doesn't seem to go. hm, probably it depends on how do you call functions.. i do not use top-level-loop for calling functions and do not interact with it in any way, so i do not know what are possible problems with it. i'm using SLIME for writting/debugging Lisp code -- including the case when it's emdedded -- and it works just fine. perhaps you can use it too. you can find sample code in ABCL-web: http://abcl-web.sf.net/ there LspDebug.java loads SLIME and provides sort of totally independent top-level emulation with aforementioned throwing hooks. LspExec.java uses SLIME debugging hook (when it is loaded), and so it's able to debug code when it's loaded into embedded application. it also calls function without reading text each time, perhaps it's more optimal when you call one function many times. |