[parenscript-devel] Problem with BLOCK and RETURN-FROM

Vladimir Sedach vsedach at gmail.com
Thu Dec 9 19:02:46 UTC 2010


> Can you either confirm that there is a bug as I described it, or that I
> got it wrong?

I'm positive you're doing a RETURN of something in the first example.
Implicit returns don't generate that warning.

Vladimir

> < Indeed I've changed RETURN to try to work like it does in CL. If
> there's no nil block it will still work, but issue a warning to
> encourage people to change their code. >
> I'm a little unsure yet how this works in practice. I'll try compiling our
> code
> and looking at the generated output once the main bugs I reported have
> been fixed, and will report back with the details.
>
>
> 2010/12/8 Vladimir Sedach <vsedach at gmail.com>
>>
>> I'm assuming λ is a macro that expands into a lambda that does (RETURN
>> <something>).
>>
>> Indeed I've changed RETURN to try to work like it does in CL. If
>> there's no nil block it will still work, but issue a warning to
>> encourage people to change their code.
>>
>> An easy way to get around this warning in your case is to make λ wrap
>> its body in a (block nil ...).
>>
>> Vladimir
>>
>> 2010/12/6 Daniel Gackle <danielgackle at gmail.com>:
>> > (1) The following expression generates the correct code:
>> > (defun blah ()
>> >    (λ ()
>> >     (foo 123)))
>> > But it also emits "Warning: Returning from unknown block NILBLOCK",
>> > which is undeserved.
>> > (2) It's not clear how to do explicit return from a lambda now. That is,
>> > (defun blah ()
>> >   (λ ()
>> >     (when (foo)
>> >       (return 123))
>> >     ;; do some other stuff
>> >     ))
>> > generates the same warning as above. Is this just a bug, or is it
>> > suggesting
>> > that one must explicitly declare a scope using (BLOCK NIL...) in order
>> > to do an explicit return warning-free? I'm hoping not the latter.
>> >
>> >
>> >
>> > _______________________________________________
>> > parenscript-devel mailing list
>> > parenscript-devel at common-lisp.net
>> > http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>> >
>> >
>>
>> _______________________________________________
>> parenscript-devel mailing list
>> parenscript-devel at common-lisp.net
>> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>
>
> _______________________________________________
> parenscript-devel mailing list
> parenscript-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>
>




More information about the parenscript-devel mailing list