Commit Graph

57 Commits

Author SHA1 Message Date
Pekka Laiho
16808c7ff9 add support for variable arguments using & 2020-12-19 17:45:18 +07:00
Pekka Laiho
6869c0392b fix error messages 2020-12-14 09:32:16 +07:00
Pekka Laiho
c87ce34f1e add comment blocks to source files 2020-12-14 08:49:07 +07:00
Pekka Laiho
56d9a1ff90 changes to print functions, other small changes 2020-12-14 08:22:22 +07:00
Pekka Laiho
7e146d8a9d remove #! from beginning of loaded files to support use in shell scripts 2020-12-13 15:34:03 +07:00
Pekka Laiho
cf75c6eefd add while, remove loop 2020-12-12 14:53:48 +07:00
Pekka Laiho
487a4fa345 remove ability to call env with argument 2020-12-12 09:08:37 +07:00
Pekka Laiho
83c1e54463 allow multiple expressions in let body 2020-12-11 21:29:35 +07:00
Pekka Laiho
36cf1ad719 add case special form, improve readme 2020-12-11 08:57:31 +07:00
Pekka Laiho
435c9e6bd3 change case to cond 2020-12-10 21:46:03 +07:00
Pekka Laiho
167711c4f0 added support for try-catch exception handlers 2020-12-09 18:09:35 +07:00
Pekka Laiho
cc1709f30a make more stuff available in safe-mode 2020-12-08 18:01:44 +07:00
Pekka Laiho
86cba08088 added special form: undef 2020-12-08 16:13:40 +07:00
Pekka Laiho
87cff43e93 move meta to special forms from core functions 2020-12-08 08:25:53 +07:00
Pekka Laiho
086765d286 small optimization for evaller 2020-12-07 09:13:46 +07:00
Pekka Laiho
55da5fb9b6 Optimization: refactor Evaller class, remove evalAst function 2020-12-06 21:11:36 +07:00
Pekka Laiho
351647944d Optimization: keep macro names in cache to avoid unnecessary macro lookups 2020-12-06 17:32:29 +07:00
Pekka Laiho
9459c07529 improve debug data, add depth to eval 2020-12-06 14:27:55 +07:00
Pekka Laiho
16f2e615b1 small optimization for evaller 2020-12-06 13:50:51 +07:00
Pekka Laiho
304e112f37 Optimization: remove extra function call from macroexpand 2020-12-06 13:32:52 +07:00
Pekka Laiho
82c8f3b52b rename pull to cons, update readme 2020-12-06 10:18:52 +07:00
Pekka Laiho
c6193b6ea2 initial support for macros 2020-12-06 08:26:27 +07:00
Pekka Laiho
a2f5cdbcc0 rename splice-unquote to unquote-splice 2020-12-05 17:22:50 +07:00
Pekka Laiho
dae6fe455f add support for vectors to quasiquote 2020-12-05 17:15:15 +07:00
Pekka Laiho
f4baaca01c added support for quasiquote 2020-12-05 16:47:49 +07:00
Pekka Laiho
35224bce8a add support for experimental safe-mode which disables some functionality 2020-12-05 11:24:31 +07:00
Pekka Laiho
a96b6faa93 allow function arguments as a vector (Clojure style) 2020-12-05 09:57:54 +07:00
Pekka Laiho
894bd96e06 fix bug from optimization 2020-12-05 09:48:17 +07:00
Pekka Laiho
90f4d7860d add toggle for debug output 2020-12-05 08:42:56 +07:00
Pekka Laiho
1ece3649bc add support for userfuncs to meta 2020-12-05 08:13:17 +07:00
Pekka Laiho
60726f0923 Optimization: read astData to memory instead of calling get() many times in eval 2020-12-03 17:27:26 +07:00
Pekka Laiho
3c9885c7f9 Optimization: read ast length to variable in eval 2020-12-03 10:18:22 +07:00
Pekka Laiho
a86fd77b45 Optimization: read symbol name to variable in eval 2020-12-03 10:08:11 +07:00
Pekka Laiho
2f48754902 add special constants __FILE__ and __DIR__ 2020-10-24 12:27:28 +07:00
Pekka Laiho
37ad2ec0bf support for command line arguments 2020-06-10 20:40:15 +07:00
Pekka Laiho
aa71b4da36 debugging support for eval 2020-06-06 21:02:02 +07:00
Pekka Laiho
7348ec3229 load and eval in correct env 2020-06-06 15:31:09 +07:00
Pekka Laiho
fae099d659 error function, loadf function 2020-06-06 09:39:12 +07:00
Pekka Laiho
18277d9566 optimize: remove array_map 2020-06-05 15:55:38 +07:00
Pekka Laiho
7331cbe874 tail call optimization for function calls 2020-06-05 15:33:52 +07:00
Pekka Laiho
8cf2dbeeec tco for case 2020-06-04 21:39:26 +07:00
Pekka Laiho
cb1a03e9bd start tail call optimization 2020-06-04 21:26:00 +07:00
Pekka Laiho
91eba046bc add special form: case 2020-06-04 18:26:26 +07:00
Pekka Laiho
2f6409ce72 special forms and, or 2020-06-04 18:00:30 +07:00
Pekka Laiho
8ec2ad4596 support argument for env 2020-06-04 17:36:01 +07:00
Pekka Laiho
437bf252c5 simplify code 2020-06-04 09:10:48 +07:00
Pekka Laiho
adc9664c69 add 3 new functions for collections 2020-06-03 14:37:04 +07:00
Pekka Laiho
64a7f19b8b functions for collections 2020-06-02 09:51:21 +07:00
Pekka Laiho
cc9fa06117 new classes for functions, not finished 2020-05-31 17:50:29 +07:00
Pekka Laiho
c3c5934c57 fn keyword 2020-05-31 16:35:03 +07:00