Riyyi
|
3aa99d0045
|
Meta: Add make targets for running self-hosted tests
|
1 year ago |
Riyyi
|
a099e955cf
|
Eval: Fix bug with try* catch*, was set as TCO in main loop
|
1 year ago |
Riyyi
|
63a19170ef
|
Eval: Change stack-based TCO to loop-based TCO
|
1 year ago |
Riyyi
|
cf8e5dfc66
|
Everywhere: Remove HashMap::add() and remove(), as its not mutable
|
1 year ago |
Riyyi
|
733d84c124
|
Main: Fix *ARGV* with 0 arguments
|
1 year ago |
Riyyi
|
ce0443a20e
|
Everywhere: Remove Collection::add(), they are not mutable
|
1 year ago |
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>.
|
1 year ago |
Riyyi
|
453ca1f796
|
Lexer+Reader: Don't tokenize comments
|
2 years ago |
Riyyi
|
534d80c35d
|
Reader: Prevent infinite loop during List and Vector creation
|
2 years ago |
Riyyi
|
099cda8b86
|
Main+Meta: Allow compilation of each step without source changes
|
2 years ago |
Riyyi
|
4fff2b9aa2
|
Everywhere: Rename ValueList -> ValueVector
|
2 years ago |
Riyyi
|
63c31d7ccf
|
Everywhere: Convert List and Vector back to std::vector, ~+20% speed
|
2 years ago |
Riyyi
|
12d6b8ec88
|
Everywhere: Change macro into a separate type
|
2 years ago |
Riyyi
|
f796f9c685
|
AST+Env: Implement stepA
|
2 years ago |
Riyyi
|
86e1a630b8
|
AST+Eval: Prevent list copy during core function 'rest'
|
2 years ago |
Riyyi
|
d34ab1efab
|
AST+Eval: Prevent copying lists where unneeded
|
2 years ago |
Riyyi
|
24eab1034e
|
Eval: Speed up isMacroCall a bit
|
2 years ago |
Riyyi
|
6e0fe3a2f5
|
Main+Readline+Env: Add readline core function
|
2 years ago |
Riyyi
|
76eb4204be
|
Meta: Update README.org
|
2 years ago |
Riyyi
|
88d9253219
|
Main: Fix compilation of older steps
|
2 years ago |
Riyyi
|
fa79f1296a
|
Main: Fix extra newline on empty input in readline
|
2 years ago |
Riyyi
|
bb4ccc5822
|
Everywhere: Implement step9 try/catch
|
2 years ago |
Riyyi
|
8aa540c4e5
|
Env: Core function (get) should work on nil value
|
2 years ago |
Riyyi
|
e09f168d4f
|
AST: HashMap inserts should overwrite existing keys
|
2 years ago |
Riyyi
|
6980d28b36
|
Main: Add step9 file
|
2 years ago |
Riyyi
|
2a16f5ddf5
|
AST+Env: Add more core functions
|
2 years ago |
Riyyi
|
f89e73d44a
|
AST+Env: Add default constructor to Constant
|
2 years ago |
Riyyi
|
c8b1e6dc81
|
AST+Lexer: Move Keyword prefix character to the constructor
|
2 years ago |
Riyyi
|
c279f9111e
|
Eval: Only need to cast AST once
|
2 years ago |
Riyyi
|
2b260d7b43
|
Everywhere: Implement step8
|
2 years ago |
Riyyi
|
27d6e24243
|
Eval+Env: Make use of macros for duplicate logic
|
2 years ago |
Riyyi
|
b4742ef380
|
Reader: Improve HashMap logic
|
2 years ago |
Riyyi
|
082a029957
|
AST+Eval: Provide convenient constructor for Collection
|
2 years ago |
Riyyi
|
80e0437a5c
|
Main+Eval+AST: Implement step7
|
2 years ago |
Riyyi
|
ba7281b6f1
|
Main: Add ability to run script from the command line, add *ARGV*
|
2 years ago |
Riyyi
|
b9feb8e8b6
|
Everywhere: Rename Value -> Constant, ASTNode -> Value
|
2 years ago |
Riyyi
|
93af6151fa
|
Env: Add more core functions
|
2 years ago |
Riyyi
|
9b14ea974a
|
AST: Make parent type for Function and Lambda
|
2 years ago |
Riyyi
|
25d6f45329
|
AST: Do not try to store nullptr in a Collection or HashMap
|
2 years ago |
Riyyi
|
835669c4eb
|
AST: Add Atom data type
|
2 years ago |
Riyyi
|
22920cb810
|
Main+Env: Add more native functions
|
2 years ago |
Riyyi
|
3d5a2e3fbe
|
AST: Make fastIf functions private
|
2 years ago |
Riyyi
|
088c5f0248
|
Lexer: Support newline characters in strings
|
2 years ago |
Riyyi
|
03918b036d
|
AST: Rename function addElement -> add
|
2 years ago |
Riyyi
|
5f49f08eea
|
AST: Make more const
|
2 years ago |
Riyyi
|
ed9fa1698e
|
Main: Add step6 .cpp file
|
2 years ago |
Riyyi
|
f35fea9fa4
|
Env: Fix function argument size error message
|
2 years ago |
Riyyi
|
6e1557ff8c
|
Printer: Fix HashMap printing
|
2 years ago |
Riyyi
|
21f0d8fbd8
|
Eval: Move logic from defines back into functions
|
2 years ago |
Riyyi
|
4d3c2a4ca2
|
Eval: Implement tail call optimization (TCO) via stack iteration
|
2 years ago |