Sameer Rahmani
5c6518f7d6
Add the StringRepr trait to be used in printing evaluation results in REPL
...
All the expressions and basically anything that needs to be printed out into
the REPL as a result of evaluation has to implement this trait.
It differs from the `std::fmt::Display` trait in the way that the runtime
instance is available to this function.
2020-11-02 00:55:56 +00:00
Sameer Rahmani
0b63e6896e
Fix the license header to avoid collision with the docs
2020-11-02 00:11:12 +00:00
Sameer Rahmani
31c2083ddb
Create the symbol lookup in Symbol's eval fn
2020-11-02 00:06:55 +00:00
Sameer Rahmani
9181292651
Print debug data of reader and evaluator on the rep
2020-11-01 20:15:07 +00:00
Sameer Rahmani
124fd3e267
Move current implementation to the 'bootstrap' directory
...
Since we're decided to create a Serene interpreter to bootstrap
the self hosted compiler, I moved the current implementation to
bootstrap directory and setup a very basic REPL.
2020-11-01 19:40:07 +00:00
Sameer Rahmani
b1b7163c81
Remove inkwell since we don't need it for the interpreter anymore
2020-10-30 20:49:35 +00:00
Sameer Rahmani
cf1a1241c8
Update dev.org with more resources
2020-10-29 19:34:12 +00:00
Sameer Rahmani
08cde9a400
Update the dev.org to include some features to implement
2020-10-29 18:37:42 +00:00
Sameer Rahmani
ce78534cd3
Add a function to compiler to compiler modules to string
2020-09-20 23:01:50 +01:00
Sameer Rahmani
40bcb3b16c
Create 'def' special form to define global value ( not functions at the moment )
2020-09-20 22:22:18 +01:00
Sameer Rahmani
fe1724ce22
Finialize the Seq trait to return a copy of data instead of reference
2020-09-19 01:23:33 +01:00
Sameer Rahmani
298dc89025
Create a new list implementation based on vectors
2020-09-19 00:28:40 +01:00
Sameer Rahmani
bb83142ffd
Commit the old list implementation
2020-09-18 21:52:45 +01:00
Sameer Rahmani
fa9c51e71c
Change the list implementation to remove the generic type from it
2020-09-14 21:46:52 +01:00
Sameer Rahmani
f880169e68
Change scope implementation to support values::Value
2020-09-13 22:06:05 +01:00
Sameer Rahmani
842309e035
Merge branch 'feature/new-links-for-dev-org' into master
2020-09-13 19:29:58 +01:00
Sameer Rahmani
ee47410d49
Improve scope to support builtins
2020-09-13 19:29:17 +01:00
Hamid
f780447838
Research links for JIT and GC
2020-09-12 18:26:27 +02:00
Sameer Rahmani
b6a960862c
Extract 'compile' function from compiler struct
2020-09-12 14:12:04 +01:00
Sameer Rahmani
a6eb232b48
Change codegen function to accept compiler's reference
2020-09-12 12:34:08 +01:00
Sameer Rahmani
6a7523e0ba
Change the codegen signature to accept compiler instead of ns
2020-09-11 20:55:26 +01:00
Sameer Rahmani
5c6635fd0c
Clean up the scope struct to lookup in the parent as well
2020-09-10 23:28:20 +01:00
Sameer Rahmani
317726975c
Add and setup rusty-hook
2020-09-09 21:53:25 +01:00
Sameer Rahmani
05a2886402
Make Serene GPLv2 compatible
2020-09-09 21:40:31 +01:00
Sameer Rahmani
03c15c5f25
Fix the compiler ns to have a very basic Compiler struct
2020-09-09 21:21:04 +01:00
Sameer Rahmani
a8557125c4
Add the mapping for builtins special forms to namespace
2020-08-03 20:21:46 +01:00
Sameer Rahmani
dfa64e8f26
Fix some of the hints from the 1on1 session on the refactoring the code
2020-08-03 12:39:20 +01:00
Hamid
18910a4a2c
Refactoring
2020-08-02 22:08:35 +02:00
Sameer Rahmani
f008470de3
Finish the basic implementation of the special form
2020-08-01 21:32:21 +01:00
Sameer Rahmani
ff3bceac62
Change id attribute of AExpr to virtual method
2020-08-01 20:14:51 +01:00
Sameer Rahmani
1238898ddc
Add a very basic 'def' special form
2020-08-01 19:58:34 +01:00
Sameer Rahmani
b27611d5ba
Create a very basic compiler setup to wire everything in the most basic way
2020-07-25 18:59:00 +01:00
Sameer Rahmani
6e36ce1711
Add the basic class structure of the compiler, namespace and state
2020-07-25 15:49:19 +01:00
Sameer Rahmani
b442d5e83c
Add setup target to builder script
2020-07-23 21:53:42 +01:00
Sameer Rahmani
90b39435b6
Commit the missing files related to coding style
2020-07-23 21:47:44 +01:00
Sameer Rahmani
2eda5f8d5f
Setup clang-format as a githook and apply it to the source
2020-07-23 21:47:13 +01:00
Sameer Rahmani
8e90ea9813
Finish the first implementation of the compiler level list
2020-07-23 17:13:16 +01:00
Sameer Rahmani
d55b4a27f5
Create the PoC of API of the List
2020-07-22 18:58:15 +01:00
Sameer Rahmani
576eba6451
Add a very basic List implementation
2020-07-21 22:23:11 +01:00
Sameer Rahmani
cbea0c8e28
Add the first draft of a very basic reader, list and symbol impl
2020-07-16 15:48:06 +01:00
Sameer Rahmani
edc9a3e52d
Add parallel builds to the ninja
2020-07-10 21:00:14 +01:00
Sameer Rahmani
207e588d05
Add the build-release target to the builder
2020-07-10 20:55:37 +01:00
Sameer Rahmani
5668ef4d10
Add more subcommands to the builder
2020-07-10 20:41:46 +01:00
Sameer Rahmani
51b9f4a307
Add the build setup for the C++ implementation
2020-07-10 18:06:26 +01:00
Sameer Rahmani
72fb1f1a2c
Commit the final changes before moving to C++ :(
2020-07-09 13:52:46 +01:00
Sameer Rahmani
402e267e7c
Add basic namespace and scope support
2020-07-06 14:18:29 +01:00
Sameer Rahmani
04cadf7152
Add the julia paper to the list of resources
2020-06-27 22:22:37 +01:00
Sameer Rahmani
2756349204
Add a very basic Namespace datastructure
2020-06-27 22:12:09 +01:00
Sameer Rahmani
08a651019f
Add Symbol struct to represent symbols
2020-06-20 22:14:48 +01:00
Sameer Rahmani
3454a44f65
Add inkwell to replace llvm-sys and add the types module
2020-06-20 22:02:17 +01:00