David Vázquez Púa
David Vázquez Púa
`Map` can be used to implement directly hash tables for the `eq` test, and it can be used as well to compute the hash value for the `eql` and `equal`...
It is useful to use another name for existing functions in the host Lisp implementation. So we will be able to use it and test it interactively without compiling JSCL...
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) ```
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...
Many built-in functions can be written on top of the FFI system. This would have also the benefit of making easier to interact with the Lisp runtime from JS.
As I commented in #189, it would be nice if travis-ci could also execute the tests in the host implementation via `jscl:run-tests-in-host`.