[iterate-devel] Jorg's iterate patches against 1.0.9

Hoehle, Joerg-Cyril Joerg-Cyril.Hoehle at t-systems.com
Mon Nov 15 14:36:51 UTC 2004


Hi,

here's my current set of patches against iterate-1.0.9

One thing I want to mention here is to bump the version number. I believe J.Amsterdam last was 1.2, so the 200X version should start with 1.3. I did so in the source.

The diffs are in -u3 format, and if Andreas perfers small increments, I've included my RCS ,v file.

Andreas, are you going to put up a new release based on that? If you do so, I'll base my next patches upon it.

What I did not include so far is
o changed order of special-form/macro recognition. Are there any more arguments to debate?
o walk-locally (currently not quite correct)
o some restricted macrolet support
o some more manual clarifications

Here's a mini-Changelog

o package.lisp
+ use declaim
+ use (export list): (export +clause-names+ '#:iterate)
+ export defsynonym defmacro-driver

o iterate.lisp
+ (declaim (declaration declare-variables))
+ listp -> consp
+ (prog1 (car body) (pop body)) -> (pop body)
+ (code-char 0) is portable, #\nul or #\null is not
+ counting uses '(subst (var exp) #) instead of expr
+ bang-vars-1: tail-call optimized
o for in-package(s) evaluates package(s) argument
o for in-package(s) work as generators
+ use #:start/beginning to (hopefully) work with Allegro modern style
+ walk-flet: accepts declarations
+ remove walk-identity and use (x . nil) consistently in *special-form-alist*

o iter-man.tex
+ drop note about future with-hashtable/package-iterator

o iter-pg.lisp
+ multiple-value-prog1
+ avoid zerop length on lists

; ---------------- DONE
o minor CL optimizations: consp, pop, export, declaim
o for in-package(s) evaluates package(s) argument
o for in-package(s) works as generator
o for in-hashtable usable as generator
o for in-hashtable supports destructuring
o for in-packages was broken because of 'pkgs
  symbol-types are not evaluated in with-package-iterator
  and must not be empty => consp
o (for vars DO-NEXT) now binds vars
o use dsetq instead of destructuring-bind for consistency of templates
o a few more package exports
o added more testcases
o (dsetq (values x nil y)) works

Regards,
	Jörg Höhle.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: diffs-109.tar.gz
Type: application/octet-stream
Size: 46992 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/iterate-devel/attachments/20041115/7a1eadd7/attachment.obj>


More information about the iterate-devel mailing list