Oh, I'm sorry. I normally strip out any project-specific macro forms, <div>but this time <meta charset="utf-8">λ slipped through. It can just be replaced with LAMBDA</div><div>in the examples I supplied. So I think your assumption is incorrect.</div>

<div>In my example #1, the lambda doesn't explicitly return anything.</div><div>Rather, it's the implicit return of (foo 123) that's causing the complaint. </div><div>In other words, to get rid of the warning, you'd have to put a BLOCK NIL</div>

<div>form at the start of every lambda, which is bad.</div><div><br></div><div>Can you either confirm that there is a bug as I described it, or that I</div><div>got it wrong?</div><div><br></div><div>< Indeed I've changed RETURN to try to work like it does in CL. If</div>

<meta charset="utf-8">there's no nil block it will still work, but issue a warning to<br>encourage people to change their code. ><div><br></div><div>I'm a little unsure yet how this works in practice. I'll try compiling our code</div>

<div>and looking at the generated output once the main bugs I reported have </div><div>been fixed, and will report back with the details.</div><div><br><div><br></div><div><div><br><div class="gmail_quote">2010/12/8 Vladimir Sedach <span dir="ltr"><<a href="mailto:vsedach@gmail.com">vsedach@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I'm assuming λ is a macro that expands into a lambda that does (RETURN<br>
<something>).<br>
<br>
Indeed I've changed RETURN to try to work like it does in CL. If<br>
there's no nil block it will still work, but issue a warning to<br>
encourage people to change their code.<br>
<br>
An easy way to get around this warning in your case is to make λ wrap<br>
its body in a (block nil ...).<br>
<br>
Vladimir<br>
<br>
2010/12/6 Daniel Gackle <<a href="mailto:danielgackle@gmail.com">danielgackle@gmail.com</a>>:<br>
<div><div></div><div class="h5">> (1) The following expression generates the correct code:<br>
> (defun blah ()<br>
>    (λ ()<br>
>     (foo 123)))<br>
> But it also emits "Warning: Returning from unknown block NILBLOCK",<br>
> which is undeserved.<br>
> (2) It's not clear how to do explicit return from a lambda now. That is,<br>
> (defun blah ()<br>
>   (λ ()<br>
>     (when (foo)<br>
>       (return 123))<br>
>     ;; do some other stuff<br>
>     ))<br>
> generates the same warning as above. Is this just a bug, or is it suggesting<br>
> that one must explicitly declare a scope using (BLOCK NIL...) in order<br>
> to do an explicit return warning-free? I'm hoping not the latter.<br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> parenscript-devel mailing list<br>
> <a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
> <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
><br>
><br>
<br>
_______________________________________________<br>
parenscript-devel mailing list<br>
<a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
</blockquote></div><br></div></div></div>