Commit Graph

  • 79ede83a99 Meta: Improve project when used as a dependency master Riyyi 2023-12-18 18:17:10 +0100
  • 287c2457e7 Env: Add max/min/cos/sin math functions Riyyi 2023-12-08 22:23:55 +0100
  • 092ada8479 Repl+Env+Example: Load global outer environment in Repl::init Riyyi 2023-11-27 12:52:23 +0100
  • b68839902c Meta: Add needed LSP requirement Riyyi 2023-11-27 12:50:55 +0100
  • f87eb4d934 Meta: Move main to example target, better include compatibility Riyyi 2023-11-27 12:21:08 +0100
  • 11f0553b5a AST+Env+Printer+Reader: Implement floating point numbers Riyyi 2023-11-26 10:45:45 +0100
  • 705e80ad6b Everywhere: Split REPL from main(), put settings in environment Riyyi 2023-11-19 21:50:52 +0100
  • 4cc2acc8a0 Printer: Rename node -> value Riyyi 2023-11-19 14:19:30 +0100
  • f5dc1168eb Reader+Env: Add dump function Riyyi 2023-11-19 12:27:52 +0100
  • 536e55e75a Everywhere: Add docstring support Riyyi 2023-11-14 23:34:20 +0100
  • 25871cd5d5 Print: Make strings brightgreen color Riyyi 2023-11-14 23:30:28 +0100
  • 929fb5d645 Env+Eval: Tweak (and) and (-) Riyyi 2023-11-14 23:29:06 +0100
  • 9db041946e Env: Add string/number conversion functions Riyyi 2023-11-05 14:35:32 +0100
  • b74f3448b2 Eval: Allow multiple s-expr in fn* Riyyi 2023-11-05 14:30:24 +0100
  • b727f7147e Eval: Add and/or special forms Riyyi 2023-10-31 22:30:24 +0100
  • c6c6d69e73 Eval: Allow multiple s-expr in try* Riyyi 2023-10-27 23:50:35 +0200
  • bb6f3e7496 Meta: Change README.org title and description Riyyi 2023-10-27 23:33:45 +0200
  • 1915621427 Eval: Change (macroexpand) into (macroexpand-1) Riyyi 2023-10-27 23:05:10 +0200
  • 9895195410 Env: Add support to (count) for HashMap type Riyyi 2023-08-31 22:04:03 +0200
  • e8206d762c Env: Load lisp code at runtime from files Riyyi 2023-08-31 21:58:44 +0200
  • b65482eb68 Env: Allow load order control for native functions Riyyi 2023-08-27 21:36:14 +0200
  • 67b982fd4c Eval: Merge eval, eval-ast and macroexpand Riyyi 2023-08-27 13:08:27 +0200
  • d3a50abfbc Env: Organize functions better by splitting into multiple files Riyyi 2023-08-26 11:57:21 +0200
  • 80b25f8c21 Eval: Add special form while Riyyi 2023-08-24 23:07:16 +0200
  • 0d43512ea9 Everywhere: Do less Collection nodes copying Riyyi 2023-08-24 23:03:31 +0200
  • fa4bd63dca Main: Remove step mains Riyyi 2023-08-23 21:39:40 +0200
  • 3aa99d0045 Meta: Add make targets for running self-hosted tests Riyyi 2023-08-20 19:58:38 +0200
  • a099e955cf Eval: Fix bug with try* catch*, was set as TCO in main loop Riyyi 2023-08-20 19:16:07 +0200
  • 63a19170ef Eval: Change stack-based TCO to loop-based TCO Riyyi 2023-08-20 18:00:02 +0200
  • cf8e5dfc66 Everywhere: Remove HashMap::add() and remove(), as its not mutable Riyyi 2023-08-17 22:59:40 +0200
  • 733d84c124 Main: Fix *ARGV* with 0 arguments Riyyi 2023-08-17 22:02:10 +0200
  • ce0443a20e Everywhere: Remove Collection::add(), they are not mutable Riyyi 2023-07-10 18:03:31 +0200
  • 6e6479bd14 Everywhere: Make the project compile again Riyyi 2023-07-09 23:33:09 +0200
  • 453ca1f796 Lexer+Reader: Don't tokenize comments Riyyi 2023-05-06 15:42:09 +0200
  • 534d80c35d Reader: Prevent infinite loop during List and Vector creation Riyyi 2023-05-06 14:04:58 +0200
  • 099cda8b86 Main+Meta: Allow compilation of each step without source changes Riyyi 2023-05-05 23:39:54 +0200
  • 4fff2b9aa2 Everywhere: Rename ValueList -> ValueVector Riyyi 2023-05-01 18:25:48 +0200
  • 63c31d7ccf Everywhere: Convert List and Vector back to std::vector, ~+20% speed Riyyi 2023-05-01 18:22:11 +0200
  • 12d6b8ec88 Everywhere: Change macro into a separate type Riyyi 2023-05-01 10:24:38 +0200
  • f796f9c685 AST+Env: Implement stepA Riyyi 2023-04-30 22:55:34 +0200
  • 86e1a630b8 AST+Eval: Prevent list copy during core function 'rest' Riyyi 2023-04-23 15:23:14 +0200
  • d34ab1efab AST+Eval: Prevent copying lists where unneeded Riyyi 2023-04-23 14:21:11 +0200
  • 24eab1034e Eval: Speed up isMacroCall a bit Riyyi 2023-04-23 11:31:59 +0200
  • 6e0fe3a2f5 Main+Readline+Env: Add readline core function Riyyi 2023-04-17 22:18:03 +0200
  • 7d91ef9198 Meta: Update README.org Riyyi 2023-04-17 16:17:58 +0200
  • 76eb4204be Meta: Update README.org Riyyi 2023-04-17 16:02:04 +0200
  • fc76da4ced Meta: Add README.org Riyyi 2023-04-17 15:52:03 +0200
  • 88d9253219 Main: Fix compilation of older steps Riyyi 2023-04-17 15:45:56 +0200
  • fa79f1296a Main: Fix extra newline on empty input in readline Riyyi 2023-04-17 14:56:58 +0200
  • bb4ccc5822 Everywhere: Implement step9 try/catch Riyyi 2023-04-17 14:44:46 +0200
  • 8aa540c4e5 Env: Core function (get) should work on nil value Riyyi 2023-04-17 14:14:55 +0200
  • e09f168d4f AST: HashMap inserts should overwrite existing keys Riyyi 2023-04-17 14:13:35 +0200
  • 6980d28b36 Main: Add step9 file Riyyi 2023-04-15 20:19:49 +0200
  • 2a16f5ddf5 AST+Env: Add more core functions Riyyi 2023-04-15 20:19:24 +0200
  • f89e73d44a AST+Env: Add default constructor to Constant Riyyi 2023-04-15 15:04:23 +0200
  • c8b1e6dc81 AST+Lexer: Move Keyword prefix character to the constructor Riyyi 2023-04-12 23:03:43 +0200
  • c279f9111e Eval: Only need to cast AST once Riyyi 2023-04-10 22:05:22 +0200
  • 2b260d7b43 Everywhere: Implement step8 Riyyi 2023-04-10 21:14:00 +0200
  • 27d6e24243 Eval+Env: Make use of macros for duplicate logic Riyyi 2023-04-10 12:33:29 +0200
  • b4742ef380 Reader: Improve HashMap logic Riyyi 2023-04-10 11:34:56 +0200
  • 082a029957 AST+Eval: Provide convenient constructor for Collection Riyyi 2023-04-09 21:41:52 +0200
  • 80e0437a5c Main+Eval+AST: Implement step7 Riyyi 2023-04-09 11:48:51 +0200
  • ba7281b6f1 Main: Add ability to run script from the command line, add *ARGV* Riyyi 2023-04-08 00:29:03 +0200
  • b9feb8e8b6 Everywhere: Rename Value -> Constant, ASTNode -> Value Riyyi 2023-04-07 23:29:08 +0200
  • e39862fe9f Meta: Add symlink to pass more tests Riyyi 2023-04-07 23:20:00 +0200
  • 93af6151fa Env: Add more core functions Riyyi 2023-04-07 23:19:44 +0200
  • 9b14ea974a AST: Make parent type for Function and Lambda Riyyi 2023-04-07 23:19:06 +0200
  • 25d6f45329 AST: Do not try to store nullptr in a Collection or HashMap Riyyi 2023-04-06 23:32:30 +0200
  • 835669c4eb AST: Add Atom data type Riyyi 2023-04-05 20:37:18 +0200
  • 22920cb810 Main+Env: Add more native functions Riyyi 2023-04-05 20:36:52 +0200
  • 3d5a2e3fbe AST: Make fastIf functions private Riyyi 2023-04-05 20:32:56 +0200
  • 088c5f0248 Lexer: Support newline characters in strings Riyyi 2023-04-05 19:59:20 +0200
  • 03918b036d AST: Rename function addElement -> add Riyyi 2023-04-04 22:49:21 +0200
  • 5f49f08eea AST: Make more const Riyyi 2023-04-04 22:43:59 +0200
  • ed9fa1698e Main: Add step6 .cpp file Riyyi 2023-04-04 22:40:54 +0200
  • f35fea9fa4 Env: Fix function argument size error message Riyyi 2023-04-04 19:34:43 +0200
  • 6e1557ff8c Printer: Fix HashMap printing Riyyi 2023-04-07 23:38:05 +0200
  • 21f0d8fbd8 Eval: Move logic from defines back into functions Riyyi 2023-04-03 23:17:24 +0200
  • 4d3c2a4ca2 Eval: Implement tail call optimization (TCO) via stack iteration Riyyi 2023-04-03 23:02:04 +0200
  • 7c62d65d72 Main+Eval: Implement tail call optimization (TCO) Riyyi 2023-04-03 13:54:32 +0200
  • f0f4ba45b0 Eval: Improve logic sharing between List and Vector Riyyi 2023-04-03 21:41:02 +0200
  • 826af24561 Main+Env+Printer: Remove the GlobalEnvironment subclass Riyyi 2023-04-02 21:06:32 +0200
  • c53c0af5a2 Everywhere: Rename addNode and addError functions -> add Riyyi 2023-04-02 15:30:26 +0200
  • 14367fa5a7 Eval+Env: Add support for variadic lambda parameters Riyyi 2023-04-02 15:27:18 +0200
  • e47b338984 Eval: Forward declare List Riyyi 2023-04-02 11:55:08 +0200
  • 30b120befc Eval+Env: Improve logic sharing between List and Vector Riyyi 2023-04-02 11:29:18 +0200
  • 90d6ff7d18 Printer: Pass along readably flag during recursion Riyyi 2023-04-02 11:05:01 +0200
  • a60859acc4 Eval+Env: Add support for lambdas Riyyi 2023-04-01 23:37:45 +0200
  • 1e76d4599a Meta+Env: Fix count on nil value Riyyi 2023-03-28 22:51:28 +0200
  • bbced6f487 Eval: Add special form "if" Riyyi 2023-03-28 22:50:57 +0200
  • 38d8daa9d0 Eval: Add special form "do" Riyyi 2023-03-28 22:22:03 +0200
  • 35a32678d0 Everywhere: Convert List and Vector to an std::list<> datatype Riyyi 2023-03-28 21:13:58 +0200
  • de2a207fcb AST: Reorder classes Riyyi 2023-03-28 20:17:03 +0200
  • 9c1c5114a9 Env: Add equal function Riyyi 2023-03-28 20:15:38 +0200
  • c1e4b6c6d1 Lexer+Printer: Support string print readably Riyyi 2023-03-27 21:18:26 +0200
  • 6573ac0b22 Env: Add more native functions Riyyi 2023-03-26 23:20:53 +0200
  • 424bbcc834 Everywhere: Add support for nil, true, false data types Riyyi 2023-03-26 22:38:53 +0200
  • f132397e15 Eval: Improve correctness and error handling Riyyi 2023-03-26 20:14:13 +0200
  • 58584f5bba Everywhere: Initial implementation of step3 Riyyi 2023-03-26 14:57:56 +0200
  • f4e388716d Meta: Improve formatting Riyyi 2023-03-26 14:56:25 +0200