Re: WG: Recovering the once true meaning of type NIL in LOOP
Bruno Haible <[email protected]> Sun, 24 Dec 2017 03:09:15 +0100
| Newsgroups | gmane.lisp.clisp.devel |
|---|---|
| Message-ID | <2574390.b98nTqGCzv@omega> |
Don Cohen wrote: > I notice the MIT loop macro (which is what I normally use) gives > > (macroexpand '(loop for (a b c) of-type (integer) in x do nil)) > > (LET ((A 0) (B NIL) (C NIL) (#:G10173004 X)) > (DECLARE (TYPE LIST #:G10173004) (TYPE INTEGER A)) > ... > > I guess you'd view it as non-compliant I didn't say that this was non-compliant. If you write code where you bind variables B and C and declare that these variables have no valid values, an implementation is free to - ignore the "obviously" wrong declaration - this is what MIT LOOP does, - or emit a warning, - or signal an error, - or launch a rocket to the moon. What I'm saying is that not all implementations are required to do the same thing. > So I'll now return to my tradition of avoiding loop issues by > sticking with MIT loop. Yuck. Everyone has a different way of dealing with the oddities of CL LOOP. Mine is to stick to the "simple" cases... Bruno ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ clisp-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/clisp-devel