Commit Graph
114 Commits
Author SHA1 Message Date
Riyyi b727f7147e Eval: Add and/or special forms 2023-10-31 22:30:24 +01:00
Riyyi c6c6d69e73 Eval: Allow multiple s-expr in try* 2023-10-27 23:56:46 +02:00
Riyyi bb6f3e7496 Meta: Change README.org title and description 2023-10-27 23:33:45 +02:00
Riyyi 1915621427 Eval: Change (macroexpand) into (macroexpand-1) 2023-10-27 23:05:10 +02:00
Riyyi 9895195410 Env: Add support to (count) for HashMap type 2023-08-31 22:04:03 +02:00
Riyyi e8206d762c Env: Load lisp code at runtime from files 2023-08-31 21:58:44 +02:00
Riyyi b65482eb68 Env: Allow load order control for native functions 2023-08-27 21:38:54 +02:00
Riyyi 67b982fd4c Eval: Merge eval, eval-ast and macroexpand 2023-08-27 13:08:27 +02:00
Riyyi d3a50abfbc Env: Organize functions better by splitting into multiple files 2023-08-26 21:48:15 +02:00
Riyyi 80b25f8c21 Eval: Add special form while 2023-08-24 23:07:16 +02:00
Riyyi 0d43512ea9 Everywhere: Do less Collection nodes copying 2023-08-24 23:03:31 +02:00
Riyyi fa4bd63dca Main: Remove step mains 2023-08-24 22:54:52 +02:00
Riyyi 3aa99d0045 Meta: Add make targets for running self-hosted tests 2023-08-20 19:58:38 +02:00
Riyyi a099e955cf Eval: Fix bug with try* catch*, was set as TCO in main loop 2023-08-20 19:16:07 +02:00
Riyyi 63a19170ef Eval: Change stack-based TCO to loop-based TCO 2023-08-20 18:05:21 +02:00
Riyyi cf8e5dfc66 Everywhere: Remove HashMap::add() and remove(), as its not mutable 2023-08-17 22:59:40 +02:00
Riyyi 733d84c124 Main: Fix *ARGV* with 0 arguments 2023-08-17 22:02:10 +02:00
Riyyi ce0443a20e Everywhere: Remove Collection::add(), they are not mutable 2023-07-10 18:12:15 +02:00
Riyyi 6e6479bd14 Everywhere: Make the project compile again
std::format seems to finally have been implemented in the STL, which is
ambiguous with ruc::format even without ever including <format>.
2023-07-09 23:33:09 +02:00
Riyyi 453ca1f796 Lexer+Reader: Don't tokenize comments 2023-05-06 15:42:09 +02:00
Riyyi 534d80c35d Reader: Prevent infinite loop during List and Vector creation 2023-05-06 14:04:58 +02:00
Riyyi 099cda8b86 Main+Meta: Allow compilation of each step without source changes 2023-05-05 23:39:54 +02:00
Riyyi 4fff2b9aa2 Everywhere: Rename ValueList -> ValueVector 2023-05-01 18:28:48 +02:00
Riyyi 63c31d7ccf Everywhere: Convert List and Vector back to std::vector, ~+20% speed 2023-05-01 18:28:43 +02:00
Riyyi 12d6b8ec88 Everywhere: Change macro into a separate type 2023-05-01 10:24:38 +02:00
Riyyi f796f9c685 AST+Env: Implement stepA 2023-04-30 22:55:34 +02:00
Riyyi 86e1a630b8 AST+Eval: Prevent list copy during core function 'rest' 2023-04-23 16:00:13 +02:00
Riyyi d34ab1efab AST+Eval: Prevent copying lists where unneeded 2023-04-23 14:42:38 +02:00
Riyyi 24eab1034e Eval: Speed up isMacroCall a bit 2023-04-23 11:31:59 +02:00
Riyyi 6e0fe3a2f5 Main+Readline+Env: Add readline core function 2023-04-17 22:18:03 +02:00
Riyyi 7d91ef9198 Meta: Update README.org 2023-04-17 16:17:58 +02:00
Riyyi 76eb4204be Meta: Update README.org 2023-04-17 16:02:04 +02:00
Riyyi fc76da4ced Meta: Add README.org 2023-04-17 15:52:03 +02:00
Riyyi 88d9253219 Main: Fix compilation of older steps 2023-04-17 15:45:56 +02:00
Riyyi fa79f1296a Main: Fix extra newline on empty input in readline 2023-04-17 14:56:58 +02:00
Riyyi bb4ccc5822 Everywhere: Implement step9 try/catch 2023-04-17 14:44:46 +02:00
Riyyi 8aa540c4e5 Env: Core function (get) should work on nil value 2023-04-17 14:14:55 +02:00
Riyyi e09f168d4f AST: HashMap inserts should overwrite existing keys 2023-04-17 14:13:35 +02:00
Riyyi 6980d28b36 Main: Add step9 file 2023-04-15 20:19:49 +02:00
Riyyi 2a16f5ddf5 AST+Env: Add more core functions 2023-04-15 20:19:24 +02:00
Riyyi f89e73d44a AST+Env: Add default constructor to Constant 2023-04-15 15:04:23 +02:00
Riyyi c8b1e6dc81 AST+Lexer: Move Keyword prefix character to the constructor 2023-04-12 23:03:43 +02:00
Riyyi c279f9111e Eval: Only need to cast AST once 2023-04-10 22:06:36 +02:00
Riyyi 2b260d7b43 Everywhere: Implement step8 2023-04-10 21:23:49 +02:00
Riyyi 27d6e24243 Eval+Env: Make use of macros for duplicate logic 2023-04-10 13:59:48 +02:00
Riyyi b4742ef380 Reader: Improve HashMap logic 2023-04-10 11:34:56 +02:00
Riyyi 082a029957 AST+Eval: Provide convenient constructor for Collection 2023-04-09 21:54:01 +02:00
Riyyi 80e0437a5c Main+Eval+AST: Implement step7 2023-04-09 11:48:51 +02:00
Riyyi ba7281b6f1 Main: Add ability to run script from the command line, add *ARGV* 2023-04-08 00:29:03 +02:00
Riyyi b9feb8e8b6 Everywhere: Rename Value -> Constant, ASTNode -> Value 2023-04-07 23:38:41 +02:00