[parenscript-devel] Merging some improvements, additions, and cleanup
Travis Cross
travis at travislists.com
Mon Mar 31 00:48:58 UTC 2008
Greetings,
I've made a number of improvements to the ParenScript code base. What's
the best way for us to merge these changes into the darcs repo on
common-lisp.net?
Most of the updates fall into five basic broad categories:
* Rewriting PS special forms to better match their CL equivalents.
For example, DO now does parallel assignment, supports a return value,
and can properly initialize variables that don't increment.
* Improving coverage of CL by adding such forms as SETQ and PSETF.
* Improving access to JS capabilities, such as labeled for loops.
* Documentation and test case updates.
* Miscellaneous code cleanups, whitespaceification, and global
standardizations.
The changes are fully backward compatible, as long as you weren't
relying on the 'broken' sequential assignment that DO and LET were
doing. ;) DO* and LET* are now available for that purpose, of course.
Looks like in total I added somewhere around 350 lines and removed 210
lines from the code base, excluding documentation and test cases. To
the documentation I added 368 lines and removed 227.
The changes are reasonably tested and have been in use on my production
systems for a couple of months. I've included the darcs changelog below
my signature.
Since I use ParenScript rather heavily, it's very likely that I'll be
making more substantial changes on an ongoing basis. I'd be happy to
help maintain the project. Let me know.
Cheers,
-- Travis
P.S. My branch of parenscript can currently be found here:
http://darcs.tcross.org/parenscript/
$ darcs chan --reverse
[snip...]
Tue Feb 26 22:59:53 UTC 2008 Travis Cross <tc at tra...>
* Corrected spelling error.
Tue Feb 26 23:09:02 UTC 2008 Travis Cross <tc at tra...>
* Whitespace standardization in src/package.lisp.
Sun Mar 30 01:46:18 UTC 2008 Travis Cross <tc at tra...>
* Added support for breaking and continuing to arbitrary labels.
Sun Mar 30 02:05:25 UTC 2008 Travis Cross <tc at tra...>
* Greatly simplified implementation of lexical-let*.
Sun Mar 30 02:08:29 UTC 2008 Travis Cross <tc at tra...>
* Added lexical-let.
Sun Mar 30 02:14:00 UTC 2008 Travis Cross <tc at tra...>
* Added simple-let* and aliased let* to it.
Sun Mar 30 02:22:18 UTC 2008 Travis Cross <tc at tra...>
* Added simple-let, which does parallel binding without a lambda.
Sun Mar 30 02:23:16 UTC 2008 Travis Cross <tc at tra...>
* Aliased let to simple-let.
Sun Mar 30 02:25:53 UTC 2008 Travis Cross <tc at tra...>
* Added psetf.
Sun Mar 30 02:27:55 UTC 2008 Travis Cross <tc at tra...>
* Added setq and psetq.
Sun Mar 30 02:33:34 UTC 2008 Travis Cross <tc at tra...>
* Updated let1-dynamic to clean up its temporary stack variable after
use.
Sun Mar 30 19:35:12 UTC 2008 Travis Cross <tc at tra...>
* Improved, extended, and refactored iteration special forms.
* Added support for DO*.
* DO now does parallel assignment.
* DO/DO* now correctly support init-forms such as:
(do (a (b) (c 1) (d 1 (1+ d))) ...)
* DO/DO*/DOTIMES/DOLIST/DOEACH now support return values via a lambda
transform.
* DOEACH now supports implicit key/value destructuring, e.g.:
(doeach ((key val) arr res) ...)
* Added labeled-for to facilitate creating labeled for loops.
* Restructured low level printer operators to better match the
underlying JS.
Sun Mar 30 19:57:12 UTC 2008 Travis Cross <tc at tra...>
* Whitespaceification: removed indentation tabs throughout project.
...and replaced each tab with 8 spaces. Tab indentation had
previously been used inconsistently and was dominated by space-based
indentation.
In the future, disable indent-tabs-mode in emacs!
(setq indent-tabs-mode nil)
Sun Mar 30 20:11:34 UTC 2008 Travis Cross <tc at tra...>
* Some minor comment and whitespace cleanup.
Sun Mar 30 22:28:56 UTC 2008 Travis Cross <tc at tra...>
* Updated the documentation and test cases.
Sun Mar 30 22:35:50 UTC 2008 Travis Cross <tc at tra...>
* Cleaned up and rearranged the package exports a bit.
Sun Mar 30 22:38:31 UTC 2008 Travis Cross <tc at tra...>
* Removed deprecated exports that are no longer implemented.
Sun Mar 30 22:51:16 UTC 2008 Travis Cross <tc at tra...>
* Added a mechanism for expanding parenscript forms in a clean
environment.
Sun Mar 30 22:53:08 UTC 2008 Travis Cross <tc at tra...>
* Added myself to the list of contributors.
Sun Mar 30 23:39:49 UTC 2008 Travis Cross <tc at tra...>
* Cleaned up and standardized indentation of JS code in the reference
documentation.
More information about the parenscript-devel
mailing list