clinton/parenscript.git
16 years agoWhitespaceification: removed indentation tabs throughout project.
Travis Cross [Sun, 30 Mar 2008 19:57:12 +0000 (19:57 +0000)]
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)

16 years agoImproved, extended, and refactored iteration special forms.
Travis Cross [Sun, 30 Mar 2008 19:35:12 +0000 (19:35 +0000)]
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.

16 years agoUpdated let1-dynamic to clean up its temporary stack variable after use.
Travis Cross [Sun, 30 Mar 2008 02:33:34 +0000 (02:33 +0000)]
Updated let1-dynamic to clean up its temporary stack variable after use.

16 years agoAdded setq and psetq.
Travis Cross [Sun, 30 Mar 2008 02:27:55 +0000 (02:27 +0000)]
Added setq and psetq.

16 years agoAdded psetf.
Travis Cross [Sun, 30 Mar 2008 02:25:53 +0000 (02:25 +0000)]
Added psetf.

16 years agoAliased let to simple-let.
Travis Cross [Sun, 30 Mar 2008 02:23:16 +0000 (02:23 +0000)]
Aliased let to simple-let.

16 years agoAdded simple-let, which does parallel binding without a lambda.
Travis Cross [Sun, 30 Mar 2008 02:22:18 +0000 (02:22 +0000)]
Added simple-let, which does parallel binding without a lambda.

16 years agoAdded simple-let* and aliased let* to it.
Travis Cross [Sun, 30 Mar 2008 02:14:00 +0000 (02:14 +0000)]
Added simple-let* and aliased let* to it.

16 years agoAdded lexical-let.
Travis Cross [Sun, 30 Mar 2008 02:08:29 +0000 (02:08 +0000)]
Added lexical-let.

16 years agoGreatly simplified implementation of lexical-let*.
Travis Cross [Sun, 30 Mar 2008 02:05:25 +0000 (02:05 +0000)]
Greatly simplified implementation of lexical-let*.

16 years agoAdded support for breaking and continuing to arbitrary labels.
Travis Cross [Sun, 30 Mar 2008 01:46:18 +0000 (01:46 +0000)]
Added support for breaking and continuing to arbitrary labels.

16 years agoWhitespace standardization in src/package.lisp.
Travis Cross [Tue, 26 Feb 2008 23:09:02 +0000 (23:09 +0000)]
Whitespace standardization in src/package.lisp.

16 years agoCorrected spelling error.
Travis Cross [Tue, 26 Feb 2008 22:59:53 +0000 (22:59 +0000)]
Corrected spelling error.

16 years agoAdded #\= to *special-chars*.
Vladimir Sedach [Fri, 1 Feb 2008 15:30:49 +0000 (15:30 +0000)]
Added #\= to *special-chars*.

Now you can write boolean= function names.

As requested by Daniel Gackle.

16 years agoFixed bug where (setf x (- x 1 2)) yielded x -= 1 - 2.
Vladimir Sedach [Fri, 1 Feb 2008 06:25:58 +0000 (06:25 +0000)]
Fixed bug where (setf x (- x 1 2)) yielded x -= 1 - 2.

16 years agoMade the ps-html facility work both in Parenscript and in Common Lisp.
Vladimir Sedach [Wed, 26 Dec 2007 03:33:44 +0000 (03:33 +0000)]
Made the ps-html facility work both in Parenscript and in Common Lisp.

16 years agoAdded 'concatenate' to Parenscript macro utilities.
Vladimir Sedach [Wed, 26 Dec 2007 03:31:40 +0000 (03:31 +0000)]
Added 'concatenate' to Parenscript macro utilities.

16 years agoRenamed src/lib Parenscript library files, got rid of Parenscript CSS system.
Vladimir Sedach [Wed, 26 Dec 2007 03:08:10 +0000 (03:08 +0000)]
Renamed src/lib Parenscript library files, got rid of Parenscript CSS system.

16 years agoMoved functional runtime PS utilities from src/libs/functional.lisp into *ps-lisp...
Vladimir Sedach [Wed, 26 Dec 2007 01:23:06 +0000 (01:23 +0000)]
Moved functional runtime PS utilities from src/libs/functional.lisp into *ps-lisp-library* in src/lib/js-lib.lisp.

16 years agoFixed literals error.
Vladimir Sedach [Tue, 25 Dec 2007 04:32:14 +0000 (04:32 +0000)]
Fixed literals error.

Introduced by patch: Mon Dec 24 17:02:17 MST 2007 Vladimir Sedach <vsedach@gmail.com>

16 years agoIntroduced special global variables to Parenscript; renamed let and lexical-let to...
Vladimir Sedach [Tue, 25 Dec 2007 00:08:13 +0000 (00:08 +0000)]
Introduced special global variables to Parenscript; renamed let and lexical-let to let* and lexical-let*, and made let itself expand to let* until parallel assignment let is implemented.

16 years agoMade special forms be compiled into named functions in a new package, parenscript...
Vladimir Sedach [Tue, 25 Dec 2007 00:02:17 +0000 (00:02 +0000)]
Made special forms be compiled into named functions in a new package, parenscript-special-forms, and introduced literal special forms.

The literal special forms should improve error messages and debugging.

16 years agoMade with-ps-gensyms prefix the given gensym with the symbol-to-js name of the given...
Vladimir Sedach [Mon, 24 Dec 2007 23:58:15 +0000 (23:58 +0000)]
Made with-ps-gensyms prefix the given gensym with the symbol-to-js name of the given gensym variable binding if an explicit prefix was not provided.

(the rationale for this is to save a little typing)

16 years agoGot rid of js-keyword form.
Vladimir Sedach [Mon, 24 Dec 2007 23:46:17 +0000 (23:46 +0000)]
Got rid of js-keyword form.

16 years agoMoved code from js/ps-macrology.lisp to special-forms.lisp; straightened out parenscr...
Vladimir Sedach [Thu, 15 Nov 2007 02:17:42 +0000 (02:17 +0000)]
Moved code from js/ps-macrology.lisp to special-forms.lisp; straightened out parenscript.asd to use serial file dependencies; unexported defaultf; rewrote rebind as lexical-let and exported it.

16 years agoFixed problems with expressions being compiled to statements inside expression progns...
Vladimir Sedach [Sun, 11 Nov 2007 18:10:33 +0000 (18:10 +0000)]
Fixed problems with expressions being compiled to statements inside expression progns; introduced mechanism for declaring variables in expression scopes; refactored function compilation.

16 years agoRemoved outdated internal documentation.
Vladimir Sedach [Sun, 4 Nov 2007 18:45:45 +0000 (18:45 +0000)]
Removed outdated internal documentation.

16 years agoFixed definition of *ps-lisp-library*. parenscript-20071104
Vladimir Sedach [Sun, 4 Nov 2007 18:18:42 +0000 (18:18 +0000)]
Fixed definition of *ps-lisp-library*.

16 years agoAdded length, @, mapcar utility functions, exported all library function symbols.
Vladimir Sedach [Sun, 4 Nov 2007 18:05:53 +0000 (18:05 +0000)]
Added length, @, mapcar utility functions, exported all library function symbols.

16 years agoAdded define-symbol-macro unit test.
Vladimir Sedach [Thu, 1 Nov 2007 01:53:15 +0000 (01:53 +0000)]
Added define-symbol-macro unit test.

16 years agoFixed define-symbol-macro.
Vladimir Sedach [Thu, 1 Nov 2007 01:46:03 +0000 (01:46 +0000)]
Fixed define-symbol-macro.

16 years agoPrettied up whitespace and comments in parse-lambda-list, ref2test. parenscript-20071031
Vladimir Sedach [Wed, 31 Oct 2007 07:03:59 +0000 (07:03 +0000)]
Prettied up whitespace and comments in parse-lambda-list, ref2test.

16 years agoGot rid of unused functions in util.lisp, slight refactoring.
Vladimir Sedach [Wed, 31 Oct 2007 07:01:32 +0000 (07:01 +0000)]
Got rid of unused functions in util.lisp, slight refactoring.

16 years agoMore refactorings to the printer, exported symbols that control printer behavior.
Vladimir Sedach [Mon, 29 Oct 2007 19:45:21 +0000 (19:45 +0000)]
More refactorings to the printer, exported symbols that control printer behavior.

16 years agoRefactored Parenscript printer code.
Vladimir Sedach [Fri, 26 Oct 2007 06:06:25 +0000 (06:06 +0000)]
Refactored Parenscript printer code.

16 years agoChanged ps-inline to take a form instead of an implicit progn as a parameter; gave...
Vladimir Sedach [Tue, 16 Oct 2007 22:04:45 +0000 (22:04 +0000)]
Changed ps-inline to take a form instead of an implicit progn as a parameter; gave ps-inline and ps-inline* optional arguments.

The optional arguments bind *js-quote-char* to make it more convenient
to use the two functions with different html generation macros (which
may use single or double quotes to delimit attribute values).

16 years agoFurther ignore declarations for unused variables.
Vladimir Sedach [Tue, 16 Oct 2007 21:54:53 +0000 (21:54 +0000)]
Further ignore declarations for unused variables.

Thanks to: Kevin Layer <layer@known.net>

16 years agoIn parse-lambda-list, made the need-symbol function work.
Vladimir Sedach [Sun, 14 Oct 2007 18:18:11 +0000 (18:18 +0000)]
In parse-lambda-list, made the need-symbol function work.

Otherwise the conditional always evaluated to nil.

16 years agoIn package definition, instead of exporting "NIL", exported (symbol-name 'nil).
Vladimir Sedach [Sun, 14 Oct 2007 18:17:22 +0000 (18:17 +0000)]
In package definition, instead of exporting "NIL", exported (symbol-name 'nil).

The latter causes a problem in case-sensitive Allegro.

Thanks to Kevin Layer for the patch.

16 years agoDeclared unused "expecting" variables in ps-special-form definitions ignorable.
Vladimir Sedach [Sun, 14 Oct 2007 18:16:20 +0000 (18:16 +0000)]
Declared unused "expecting" variables in ps-special-form definitions ignorable.

Thanks to: Kevin Layer <layer@known.net>

16 years agoMade ps-macrology depend on utils in parenscript asdf definition.
Vladimir Sedach [Sun, 14 Oct 2007 18:15:19 +0000 (18:15 +0000)]
Made ps-macrology depend on utils in parenscript asdf definition.

Thanks to: Kevin Layer <layer@known.net>

16 years agoFixed a bug in how symbol-macros were defined, expanded, and used by 'with-slots'.
Vladimir Sedach [Thu, 11 Oct 2007 02:27:40 +0000 (02:27 +0000)]
Fixed a bug in how symbol-macros were defined, expanded, and used by 'with-slots'.

16 years agoMade defun, defvar and doeach expect a symbol as the "name" argument instead of tryin...
Vladimir Sedach [Wed, 10 Oct 2007 23:12:57 +0000 (23:12 +0000)]
Made defun, defvar and doeach expect a symbol as the "name" argument instead of trying to compile-parenscript-form :expecting :expression.

16 years agoMade the handling of keyword symbols across Parenscript be consistent with the treatm...
Vladimir Sedach [Wed, 10 Oct 2007 23:12:10 +0000 (23:12 +0000)]
Made the handling of keyword symbols across Parenscript be consistent with the treatment of other symbols.

Previously a keyword symbol was being treated as a quoted symbol by
Parenscript.

16 years agoAdded support for &whole arguments in ps macro lambda lists; renamed parser.lisp...
Vladimir Sedach [Sun, 23 Sep 2007 06:07:26 +0000 (06:07 +0000)]
Added support for &whole arguments in ps macro lambda lists; renamed parser.lisp to compiler.lisp.

16 years agoAdded macro environment unit test that tests for bug "inconsistent expansion of local...
Vladimir Sedach [Thu, 20 Sep 2007 23:49:34 +0000 (23:49 +0000)]
Added macro environment unit test that tests for bug "inconsistent expansion of local macro".

16 years agoEliminated unwinding of macro environment for macro expansions.
Vladimir Sedach [Thu, 20 Sep 2007 23:33:14 +0000 (23:33 +0000)]
Eliminated unwinding of macro environment for macro expansions.

This fixed bug:

  "Bug: inconsistent expansion of local macro" submitted by Daniel
  Gackle on 2007-09-12

16 years agoUpdated description of PS-HTML in the tutorial. parenscript-20070828
Vladimir Sedach [Tue, 28 Aug 2007 23:04:38 +0000 (23:04 +0000)]
Updated description of PS-HTML in the tutorial.

16 years agoRevised obfuscation facility, added its description to the reference, and added more...
Vladimir Sedach [Fri, 24 Aug 2007 21:32:01 +0000 (21:32 +0000)]
Revised obfuscation facility, added its description to the reference, and added more unit tests.

16 years agoAdded description of namespace system to the reference.
Vladimir Sedach [Fri, 24 Aug 2007 20:43:13 +0000 (20:43 +0000)]
Added description of namespace system to the reference.

16 years agoFixed problem with (- 1). Unary operator "-" didn't like number constants.
Vladimir Sedach [Fri, 24 Aug 2007 20:16:51 +0000 (20:16 +0000)]
Fixed problem with (- 1). Unary operator "-" didn't like number constants.

16 years agoAdded defsetf and (defun (setf examples to the reference.
Vladimir Sedach [Fri, 24 Aug 2007 20:01:23 +0000 (20:01 +0000)]
Added defsetf and (defun (setf examples to the reference.

16 years agoAdded ps-print method specialized on null to ignore printing of nils.
Vladimir Sedach [Fri, 24 Aug 2007 20:00:41 +0000 (20:00 +0000)]
Added ps-print method specialized on null to ignore printing of nils.

16 years agoAdded code to remove unreachable constant forms from progn.
Vladimir Sedach [Fri, 24 Aug 2007 19:39:30 +0000 (19:39 +0000)]
Added code to remove unreachable constant forms from progn.

16 years agoUpdated the introduction doc.
Vladimir Sedach [Fri, 24 Aug 2007 18:20:47 +0000 (18:20 +0000)]
Updated the introduction doc.

16 years agoUpdated the ParenScript reference.
Vladimir Sedach [Fri, 24 Aug 2007 18:15:29 +0000 (18:15 +0000)]
Updated the ParenScript reference.

16 years agoUpdated the ParenScript tutorial.
Vladimir Sedach [Thu, 23 Aug 2007 23:10:54 +0000 (23:10 +0000)]
Updated the ParenScript tutorial.

16 years agoRemoved js-file and js-script from deprecated interface.
Vladimir Sedach [Thu, 23 Aug 2007 23:09:39 +0000 (23:09 +0000)]
Removed js-file and js-script from deprecated interface.

These were helper macros for net.html.generator from AllegroServe,
which really don't belong in ParenScript.

16 years agoFixed error where function call arguments weren't getting compiled to expressions.
Vladimir Sedach [Thu, 23 Aug 2007 23:08:02 +0000 (23:08 +0000)]
Fixed error where function call arguments weren't getting compiled to expressions.

16 years agoAdded the ability to compile cond to expressions.
Vladimir Sedach [Thu, 23 Aug 2007 21:35:15 +0000 (21:35 +0000)]
Added the ability to compile cond to expressions.

16 years agoMade progn expressions with a single statement print as that statement alone (without...
Vladimir Sedach [Thu, 23 Aug 2007 21:22:37 +0000 (21:22 +0000)]
Made progn expressions with a single statement print as that statement alone (without parens).

16 years agoMade if-expressions return null instead of undefined when else clause wasn't specified.
Vladimir Sedach [Thu, 23 Aug 2007 21:22:16 +0000 (21:22 +0000)]
Made if-expressions return null instead of undefined when else clause wasn't specified.

16 years agoFixed cond.
Vladimir Sedach [Thu, 23 Aug 2007 20:58:53 +0000 (20:58 +0000)]
Fixed cond.

16 years agoFixed the problem with compile-parenscript-form not being called with the right ...
Vladimir Sedach [Wed, 22 Aug 2007 22:46:33 +0000 (22:46 +0000)]
Fixed the problem with compile-parenscript-form not being called with the right "expecting" value if a macroexpansion took place.

16 years agoUpdated and fixed the deprecated interface.
Vladimir Sedach [Mon, 20 Aug 2007 21:10:13 +0000 (21:10 +0000)]
Updated and fixed the deprecated interface.

16 years agoUpdated the documentation and test suite to reflect the fact that html is now ps...
Vladimir Sedach [Mon, 20 Aug 2007 21:08:58 +0000 (21:08 +0000)]
Updated the documentation and test suite to reflect the fact that html is now ps-html and the ps-inline special form no longer exists.

16 years agoRemoved mention of old package system from tutorial.lisp.
Vladimir Sedach [Mon, 20 Aug 2007 21:08:16 +0000 (21:08 +0000)]
Removed mention of old package system from tutorial.lisp.

16 years agoRemoved js and ps-inline as special forms; added ps-inline and ps-inline*.
Vladimir Sedach [Mon, 20 Aug 2007 21:07:48 +0000 (21:07 +0000)]
Removed js and ps-inline as special forms; added ps-inline and ps-inline*.

js and ps-inline didn't make any sense as special forms.

16 years agoChanged html -> ps-html; reorganized packages.lisp exports.
Vladimir Sedach [Mon, 20 Aug 2007 20:40:42 +0000 (20:40 +0000)]
Changed html -> ps-html; reorganized packages.lisp exports.

Using 'html' creates a conflict with any number of existing html
generation libraries.

16 years agoReplaced optional-args as the keyword-object-handling parameter with a gensym.
Vladimir Sedach [Wed, 15 Aug 2007 23:51:13 +0000 (23:51 +0000)]
Replaced optional-args as the keyword-object-handling parameter with a gensym.

16 years agoAdded in-line code to support &rest arguments.
Vladimir Sedach [Wed, 15 Aug 2007 23:02:41 +0000 (23:02 +0000)]
Added in-line code to support &rest arguments.

16 years agoAdded correct indentation to the printer.
Vladimir Sedach [Wed, 15 Aug 2007 21:58:46 +0000 (21:58 +0000)]
Added correct indentation to the printer.

16 years agoRemoved js-ugly-translation.
Vladimir Sedach [Wed, 15 Aug 2007 20:39:29 +0000 (20:39 +0000)]
Removed js-ugly-translation.

16 years agoUpdated the reference and tests to reflect some small changes in the new printing...
Vladimir Sedach [Wed, 15 Aug 2007 01:08:33 +0000 (01:08 +0000)]
Updated the reference and tests to reflect some small changes in the new printing code.

...such as the current lack of line breaks and spaces before some
opening parens.

Also added a few new unit tests.

16 years agoReworked printing implementation to get rid of dwim-join and gratuitious consing.
Vladimir Sedach [Wed, 15 Aug 2007 01:07:08 +0000 (01:07 +0000)]
Reworked printing implementation to get rid of dwim-join and gratuitious consing.

Now everything gets written to a stream.

16 years agoFixed type bug with printing slot-value with obj/slot being a non-list.
Vladimir Sedach [Sun, 12 Aug 2007 16:56:22 +0000 (16:56 +0000)]
Fixed type bug with printing slot-value with obj/slot being a non-list.

16 years agoRedid package system unit tests.
Vladimir Sedach [Sun, 12 Aug 2007 15:43:11 +0000 (15:43 +0000)]
Redid package system unit tests.

16 years agoExported the new naming and namespace interface functions and variables in package...
Vladimir Sedach [Sun, 12 Aug 2007 15:42:40 +0000 (15:42 +0000)]
Exported the new naming and namespace interface functions and variables in package.lisp.

16 years agoModified ParenScript tests to reflect the big compiler refactoring.
Vladimir Sedach [Sun, 12 Aug 2007 01:23:49 +0000 (01:23 +0000)]
Modified ParenScript tests to reflect the big compiler refactoring.

16 years agoUpdated reference.lisp to reflect recent changes.
Vladimir Sedach [Sun, 12 Aug 2007 01:22:42 +0000 (01:22 +0000)]
Updated reference.lisp to reflect recent changes.

16 years agoBig refactoring of the ParenScript compiler.
Vladimir Sedach [Sun, 12 Aug 2007 01:19:48 +0000 (01:19 +0000)]
Big refactoring of the ParenScript compiler.

16 years agoUpdated js-expander to use ps:ps instead of js:js.
Vladimir Sedach [Sun, 12 Aug 2007 01:18:09 +0000 (01:18 +0000)]
Updated js-expander to use ps:ps instead of js:js.

16 years agoremove lingering format string
Red Daly [Mon, 6 Aug 2007 21:31:19 +0000 (21:31 +0000)]
remove lingering format string

16 years agofixed DEFSCRIPTMACRO evaluation problem that caused load/compilation problems
Red Daly [Mon, 6 Aug 2007 21:10:54 +0000 (21:10 +0000)]
fixed DEFSCRIPTMACRO evaluation problem that caused load/compilation problems

DEFSCRIPTMACRO and other similar macros were not expanding into but
were instead side-effecting macro definitions.

16 years agoremoved file compilation exports for now
Red Daly [Mon, 6 Aug 2007 21:10:19 +0000 (21:10 +0000)]
removed file compilation exports for now

16 years agoRemoved parenscript.asdf
Vladimir Sedach [Sat, 4 Aug 2007 06:16:51 +0000 (06:16 +0000)]
Removed parenscript.asdf

16 years agoRemoved parenscript.reader
Vladimir Sedach [Sat, 4 Aug 2007 06:10:50 +0000 (06:10 +0000)]
Removed parenscript.reader

16 years agoMoved package-related code to namespace.lisp, added back *enable-package-system*.
Vladimir Sedach [Sat, 4 Aug 2007 00:59:48 +0000 (00:59 +0000)]
Moved package-related code to namespace.lisp, added back *enable-package-system*.

16 years agoAdded (defun (setf...
Vladimir Sedach [Fri, 3 Aug 2007 22:59:22 +0000 (22:59 +0000)]
Added (defun (setf...

16 years agoStopped abuse of set-difference implementation-dependent ordering in defsetf.
Vladimir Sedach [Fri, 3 Aug 2007 21:59:17 +0000 (21:59 +0000)]
Stopped abuse of set-difference implementation-dependent ordering in defsetf.

16 years agoFixed order of evaluation in defsetf long form.
Vladimir Sedach [Fri, 3 Aug 2007 21:19:00 +0000 (21:19 +0000)]
Fixed order of evaluation in defsetf long form.

16 years agoAdded short-form defsetf.
Vladimir Sedach [Fri, 3 Aug 2007 21:03:32 +0000 (21:03 +0000)]
Added short-form defsetf.

16 years agoFixed (return).
Vladimir Sedach [Fri, 3 Aug 2007 20:19:36 +0000 (20:19 +0000)]
Fixed (return).

16 years agoRenamed options to optional-args, added unit test for defun foo (&optional...
Vladimir Sedach [Fri, 3 Aug 2007 20:12:58 +0000 (20:12 +0000)]
Renamed options to optional-args, added unit test for defun foo (&optional...

16 years agoRestored special-form getting and setting by symbol-na.
Vladimir Sedach [Fri, 3 Aug 2007 19:31:23 +0000 (19:31 +0000)]
Restored special-form getting and setting by symbol-na.

16 years agoAdded a more meaningful error message to compile-to-expression.
Vladimir Sedach [Fri, 3 Aug 2007 18:35:35 +0000 (18:35 +0000)]
Added a more meaningful error message to compile-to-expression.

16 years agoCleaned up macro-defining code, fixed handling of special forms in script-expand...
Vladimir Sedach [Fri, 3 Aug 2007 18:32:17 +0000 (18:32 +0000)]
Cleaned up macro-defining code, fixed handling of special forms in script-expand-form.

16 years agoRemoved reference to without-packages in deprecated-interface.lisp.
Vladimir Sedach [Fri, 3 Aug 2007 18:28:05 +0000 (18:28 +0000)]
Removed reference to without-packages in deprecated-interface.lisp.

16 years agoAdded a more informative print-object method for script-package.
Vladimir Sedach [Fri, 3 Aug 2007 16:46:06 +0000 (16:46 +0000)]
Added a more informative print-object method for script-package.

16 years agokeyword/optional fixes, slot-value accepts many slot names
Red Daly [Fri, 3 Aug 2007 18:11:04 +0000 (18:11 +0000)]
keyword/optional fixes, slot-value accepts many slot names

I also fixed some problems with nil serialization and decomposed the
compile-parenscript-form function into a generic function with
different behavior depending on the type of form.