Travis Cross [Tue, 1 Apr 2008 08:30:07 +0000 (08:30 +0000)]
Added handling for PI.
Travis Cross [Tue, 1 Apr 2008 08:18:01 +0000 (08:18 +0000)]
Relocated the definitions for the 1+ and 1- psmacros with the other math functions.
Travis Cross [Tue, 1 Apr 2008 08:13:07 +0000 (08:13 +0000)]
Implemented equivalents for the CL hyperbolic trigometric functions.
Travis Cross [Tue, 1 Apr 2008 07:59:04 +0000 (07:59 +0000)]
Added PS-ONCE-ONLY macro building helper.
Travis Cross [Mon, 31 Mar 2008 23:03:58 +0000 (23:03 +0000)]
Rearranged math psmacros to match the order that the corresponding functions appear in the HyperSpec.
Travis Cross [Mon, 31 Mar 2008 22:48:10 +0000 (22:48 +0000)]
Added support for SQRT function.
Travis Cross [Mon, 31 Mar 2008 22:46:13 +0000 (22:46 +0000)]
Added support for LOG function.
Thanks to: Daniel Gackle <danielgackle@gmail.com>
Travis Cross [Mon, 31 Mar 2008 22:43:45 +0000 (22:43 +0000)]
Updated atan to support two arguments as in CL.
ATAN with two arguments translates into atan2 in JS.
Travis Cross [Mon, 31 Mar 2008 22:08:55 +0000 (22:08 +0000)]
Added a couple of test cases for object literals.
Travis Cross [Mon, 31 Mar 2008 22:02:31 +0000 (22:02 +0000)]
Updated the blank-object-literal test for the now correct behavior.
Travis Cross [Mon, 31 Mar 2008 22:02:00 +0000 (22:02 +0000)]
Added {} to *ps-literals*.
Using {} as a literal to create an empty object literal was only
working by accident previously. When not in the function position, {}
was being compiled as a JS variable rather than an object-literal,
which just happened to work sometimes. In concert with correctly
checking symbols that aren't in the parenscript package, this should
provide for more reliable behavior.
Travis Cross [Mon, 31 Mar 2008 21:51:58 +0000 (21:51 +0000)]
Updated ps-literal-p to correctly identify literal symbols without regard to the symbol's package.
Travis Cross [Mon, 31 Mar 2008 21:27:33 +0000 (21:27 +0000)]
Silence an unused variable warning.
Travis Cross [Mon, 31 Mar 2008 02:13:23 +0000 (02:13 +0000)]
Updated ps-special-form-p to correctly identify a special form even if the symbol identifying the special form is in the wrong package.
Travis Cross [Sun, 30 Mar 2008 23:39:49 +0000 (23:39 +0000)]
Cleaned up and standardized indentation of JS code in the reference documentation.
Travis Cross [Sun, 30 Mar 2008 22:53:08 +0000 (22:53 +0000)]
Added myself to the list of contributors.
Travis Cross [Sun, 30 Mar 2008 22:51:16 +0000 (22:51 +0000)]
Added a mechanism for expanding parenscript forms in a clean environment.
Travis Cross [Sun, 30 Mar 2008 22:38:31 +0000 (22:38 +0000)]
Removed deprecated exports that are no longer implemented.
Travis Cross [Sun, 30 Mar 2008 22:35:50 +0000 (22:35 +0000)]
Cleaned up and rearranged the package exports a bit.
Travis Cross [Sun, 30 Mar 2008 22:28:56 +0000 (22:28 +0000)]
Updated the documentation and test cases.
Travis Cross [Sun, 30 Mar 2008 20:11:34 +0000 (20:11 +0000)]
Some minor comment and whitespace cleanup.
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)
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.
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.
Travis Cross [Sun, 30 Mar 2008 02:27:55 +0000 (02:27 +0000)]
Added setq and psetq.
Travis Cross [Sun, 30 Mar 2008 02:25:53 +0000 (02:25 +0000)]
Added psetf.
Travis Cross [Sun, 30 Mar 2008 02:23:16 +0000 (02:23 +0000)]
Aliased let to simple-let.
Travis Cross [Sun, 30 Mar 2008 02:22:18 +0000 (02:22 +0000)]
Added simple-let, which does parallel binding without a lambda.
Travis Cross [Sun, 30 Mar 2008 02:14:00 +0000 (02:14 +0000)]
Added simple-let* and aliased let* to it.
Travis Cross [Sun, 30 Mar 2008 02:08:29 +0000 (02:08 +0000)]
Added lexical-let.
Travis Cross [Sun, 30 Mar 2008 02:05:25 +0000 (02:05 +0000)]
Greatly simplified implementation of lexical-let*.
Travis Cross [Sun, 30 Mar 2008 01:46:18 +0000 (01:46 +0000)]
Added support for breaking and continuing to arbitrary labels.
Travis Cross [Tue, 26 Feb 2008 23:09:02 +0000 (23:09 +0000)]
Whitespace standardization in src/package.lisp.
Travis Cross [Tue, 26 Feb 2008 22:59:53 +0000 (22:59 +0000)]
Corrected spelling error.
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.
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.
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.
Vladimir Sedach [Wed, 26 Dec 2007 03:31:40 +0000 (03:31 +0000)]
Added 'concatenate' to Parenscript macro utilities.
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.
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.
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>
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.
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.
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)
Vladimir Sedach [Mon, 24 Dec 2007 23:46:17 +0000 (23:46 +0000)]
Got rid of js-keyword form.
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.
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.
Vladimir Sedach [Sun, 4 Nov 2007 18:45:45 +0000 (18:45 +0000)]
Removed outdated internal documentation.
Vladimir Sedach [Sun, 4 Nov 2007 18:18:42 +0000 (18:18 +0000)]
Fixed definition of *ps-lisp-library*.
Vladimir Sedach [Sun, 4 Nov 2007 18:05:53 +0000 (18:05 +0000)]
Added length, @, mapcar utility functions, exported all library function symbols.
Vladimir Sedach [Thu, 1 Nov 2007 01:53:15 +0000 (01:53 +0000)]
Added define-symbol-macro unit test.
Vladimir Sedach [Thu, 1 Nov 2007 01:46:03 +0000 (01:46 +0000)]
Fixed define-symbol-macro.
Vladimir Sedach [Wed, 31 Oct 2007 07:03:59 +0000 (07:03 +0000)]
Prettied up whitespace and comments in parse-lambda-list, ref2test.
Vladimir Sedach [Wed, 31 Oct 2007 07:01:32 +0000 (07:01 +0000)]
Got rid of unused functions in util.lisp, slight refactoring.
Vladimir Sedach [Mon, 29 Oct 2007 19:45:21 +0000 (19:45 +0000)]
More refactorings to the printer, exported symbols that control printer behavior.
Vladimir Sedach [Fri, 26 Oct 2007 06:06:25 +0000 (06:06 +0000)]
Refactored Parenscript printer code.
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).
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>
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.
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.
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>
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>
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'.
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.
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.
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.
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".
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
Vladimir Sedach [Tue, 28 Aug 2007 23:04:38 +0000 (23:04 +0000)]
Updated description of PS-HTML in the tutorial.
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.
Vladimir Sedach [Fri, 24 Aug 2007 20:43:13 +0000 (20:43 +0000)]
Added description of namespace system to the reference.
Vladimir Sedach [Fri, 24 Aug 2007 20:16:51 +0000 (20:16 +0000)]
Fixed problem with (- 1). Unary operator "-" didn't like number constants.
Vladimir Sedach [Fri, 24 Aug 2007 20:01:23 +0000 (20:01 +0000)]
Added defsetf and (defun (setf examples to the reference.
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.
Vladimir Sedach [Fri, 24 Aug 2007 19:39:30 +0000 (19:39 +0000)]
Added code to remove unreachable constant forms from progn.
Vladimir Sedach [Fri, 24 Aug 2007 18:20:47 +0000 (18:20 +0000)]
Updated the introduction doc.
Vladimir Sedach [Fri, 24 Aug 2007 18:15:29 +0000 (18:15 +0000)]
Updated the ParenScript reference.
Vladimir Sedach [Thu, 23 Aug 2007 23:10:54 +0000 (23:10 +0000)]
Updated the ParenScript tutorial.
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.
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.
Vladimir Sedach [Thu, 23 Aug 2007 21:35:15 +0000 (21:35 +0000)]
Added the ability to compile cond to expressions.
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).
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.
Vladimir Sedach [Thu, 23 Aug 2007 20:58:53 +0000 (20:58 +0000)]
Fixed cond.
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.
Vladimir Sedach [Mon, 20 Aug 2007 21:10:13 +0000 (21:10 +0000)]
Updated and fixed the deprecated interface.
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.
Vladimir Sedach [Mon, 20 Aug 2007 21:08:16 +0000 (21:08 +0000)]
Removed mention of old package system from tutorial.lisp.
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.
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.
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.
Vladimir Sedach [Wed, 15 Aug 2007 23:02:41 +0000 (23:02 +0000)]
Added in-line code to support &rest arguments.
Vladimir Sedach [Wed, 15 Aug 2007 21:58:46 +0000 (21:58 +0000)]
Added correct indentation to the printer.
Vladimir Sedach [Wed, 15 Aug 2007 20:39:29 +0000 (20:39 +0000)]
Removed js-ugly-translation.
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.
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.
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.
Vladimir Sedach [Sun, 12 Aug 2007 15:43:11 +0000 (15:43 +0000)]
Redid package system unit tests.
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.
Vladimir Sedach [Sun, 12 Aug 2007 01:23:49 +0000 (01:23 +0000)]
Modified ParenScript tests to reflect the big compiler refactoring.