Commit Graph

11 Commits

Author SHA1 Message Date
Sameer Rahmani c2d4273319 [Bootstrap] Fix the order and location on the traceback
In order to fix this issue I had to make many minor tweaks
including reordering the traceback and the way we pass down
nodes.
2021-01-07 19:45:07 +00:00
Sameer Rahmani 9d106d4278 Record the caller details in the stack frame 2020-12-30 17:50:00 +00:00
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 3f6b9b6e29 [Bootstrap] Add the support for keywords
Both normal and ns qualified keywords with support for ns aliased
keywords.
2020-12-22 23:54:21 +00:00
Sameer Rahmani 4530f35e9c Remove the shared library mocked code from the runtime creation 2020-12-21 18:34:51 +00:00
Sameer Rahmani 5ee7e93647 Add IHashable and the implementation for all the IExpr types 2020-12-20 18:09:06 +00:00
Sameer Rahmani 578a771fa3 Improve the documentation of the bootstrap 2020-12-16 18:57:54 +00:00
Sameer Rahmani 42058568c7 Add support for native function, multi ns require fn and 'builtins'
* Implemented Native function as IExprs so we can refer to them
  like any other function. Checkout `NativeFunction`.

* `require` has been implemented as a native functions which
  accepts one or more namespace descriptions and load them.
  A namespace description is either a symbol with the ns name
  or an `IColl` in the following form `(some.ns.name alias).

* A hashmap of strings to native functions has been added to the Runtime
  which is used to resolve builtin functions.
2020-12-15 19:08:51 +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 31a4cfb765 Add support for macros via defmacro
Added the support for normal macro (in compare to reader macros and
other types) expansion with out quasiquote support. The quasiquote
will be added as a recursive macro itself.
2020-12-04 21:08:48 +00:00
Sameer Rahmani ad37f02742 Restructure the source tree to get around circular dep issue 2020-11-15 22:16:48 +00:00
Renamed from bootstrap/pkg/runtime/runtime.go (Browse further)