Sameer Rahmani
1447f8ac45
[Bootstrap] Implement a call stack to keep track of function calls
...
Add `ICallStack` as the interface to the call stack with a simple
FIFO implementation that tracks the recursive calls as well.
2020-12-25 22:03:21 +00:00
Sameer Rahmani
0b56906474
[Bootstra] Rethink the eval loop to rewrite evaluation tree
...
Implement a new algorithm to eliminate TCO while preventing
premature execution exit by rewriting the evaluation tree and
replacing old nodes with new set of forms, for example the result of
some old form's evaluation, a body of a function or anything in
that nature. Couple the new forms with a possible new execution scope.
2020-12-25 01:18:54 +00:00
Mary Salehi
f5b833cd03
add serene's asciiart to the REPL
2020-12-24 21:58:32 +00:00
Sameer Rahmani
fb6c1b3ba3
Add 'run' subcommand to Serene binary
2020-12-24 16:27:46 +00:00
Sameer Rahmani
aa1079c6b6
Add 'paths' support alongside with namespace loading to the Runtime
2020-12-12 20:27:53 +00:00
Sameer Rahmani
90888a7bcd
Fix the REP loop to terminate early in case of any ParseError
2020-11-24 19:10:01 +00:00
Sameer Rahmani
52fa298a07
Add PrintError function to print out the IError values
2020-11-24 18:39:18 +00:00
Sameer Rahmani
d92150f0c3
Add IError interface to represent system errors
2020-11-24 18:27:48 +00:00
Sameer Rahmani
a2725ba412
Add some documentation for the core package
2020-11-20 16:43:07 +00:00
Sameer Rahmani
468b446a4f
Enable repl history
2020-11-20 12:33:15 +00:00
Sameer Rahmani
ad37f02742
Restructure the source tree to get around circular dep issue
2020-11-15 22:16:48 +00:00
Sameer Rahmani
38baf577bb
Move reader and printer packages to the core package
2020-11-15 19:33:16 +00:00
Sameer Rahmani
95ec031ce6
Add a very basic eval function for symbols
2020-11-15 19:30:07 +00:00
Sameer Rahmani
a7457fceb6
Create a very basic runtime/ns/scope with a basic repl
2020-11-14 21:09:54 +00:00