jscl
jscl copied to clipboard
A Lisp-to-JavaScript compiler bootstrapped from Common Lisp
Test example: ``` (defmacro x (y &optional (&rest z)) `(print ,y)) (x y) ``` Signals an error that Z is unbound. This particularly affects definition of ASSERT, although I have...
Hash tables [are implemented](https://github.com/davazp/jscl/blob/e74c02fb33a701ecf5f02166073dc31f0843c269/src/hash-table.lisp) by tagging objects with unique Ids (for eq-comparison). A better approach would be to use a combination of Javascript object (for primitive data types) and [WeakMap](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/WeakMap)...
Improve the iterator to support reverse order and bounded iterator. Rewrite `do-sequence` in terms of the iterators, and try to simplify the sequence functions with these abstractions. For more insight,...
The reader does not know how to skip comments. It skipped semicolon comments but now it needs to be done properly. ``` '(1 2 #| foo |# . 3) ```
For some reason, the ARRAY-DIMENSIONS function always returns NIL for array literals built using the #() syntax, even though it works fine for arrays built using MAKE-ARRAY: ``` CL-USER> (array-dimensions...
Floats ending in `.0` get read in as ints: ``` lisp CL-USER> (read-from-string "1.0") 1 ```
Or when the function is undefined. For example: ``` lisp (do-external-symbol (symbol package) ...) ``` would complain about SYMBOL being not a function at runtime if do-external-symbol macro is not...
To track the performance of JSCL we could use the tests as an imperfect indicator. Ideally that data could be added to the each commit by travis, as a note...