[parenscript-devel] Re: Merging some improvements, additions, and cleanup

Vladimir Sedach vsedach at gmail.com
Mon Mar 31 02:39:43 UTC 2008


Hi Travis,

That looks pretty awesome. I've asked the common-lisp.net admin to
give you an account and add you to the project. You'll need to send
your PGP public key to admin at common-lisp.net.

Out of curiosity, what kind of production system are you using Parenscript for?

Thank you,
Vladimir

On 3/30/08, Travis Cross <travis at travislists.com> wrote:
> 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