Red, While we're sort of on the topic... I recall that Vladimir liked your implementation of conditions in PS quite a bit. If you have a minute, would you care to summarize the basic idea? Alternatively I could just not be lazy and go look at it :)
Daniel On Tue, Jun 7, 2011 at 12:07 PM, Red Daly <[email protected]> wrote: > At one point I had this implemented using try-catch unless Parenscript's > compiler could prove (rather naively) that the return-from clause was always > executed. I am usually way behind the official branch, and I'm not sure if > my changes ever made it in, and if they did if this case is a bug. Anyway > it would do something like > > function foo() { > try { > var bar = function () { > throw { 'ps-return-foo341' : 42 }; > }; > bar(); } > catch (e) { > if ('ps-return-foo341' in e) > return e['ps-return-foo341']; > else > throw e; > }; > > verbose, but it should always work. other try-catch tricks allow > lisp-style conditions, which I detailed in a post in this list within the > year. in case of group interest the relevant code is available at > https://github.com/gonzojive/paren-psos and > https://github.com/gonzojive/parenscript > > Viva Parenscript! > > Red > > > On Tue, Jun 7, 2011 at 11:40 PM, <[email protected]> wrote: > >> Hi, >> >> I was wondering if the BLOCK/RETURN-FROM feature in PS intends >> to support the following case: >> >> (ps (defun foo () >> (flet ((bar () (return-from foo 42))) >> (bar)))) >> >> => >> >> WARNING: Returning from unknown block FOO >> "function foo() { >> var bar = function () { >> return 42; >> }; >> return bar(); >> };" >> >> In order to try and get around the warning, I tried this: >> >> (ps (defun baz () >> (block foo >> (flet ((bar () (return-from foo 42))) >> (bar))))) >> >> => >> >> WARNING: Returning from unknown block FOO >> "function baz() { >> var bar = function () { >> return 42; >> }; >> return bar(); >> };" >> >> but that didn't seem to work. Any ideas on how to achieve lexical >> return here? >> >> - Scott >> >> >> _______________________________________________ >> parenscript-devel mailing list >> [email protected] >> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel >> > > > _______________________________________________ > parenscript-devel mailing list > [email protected] > http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel > >
_______________________________________________ parenscript-devel mailing list [email protected] http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
