Commit Graph

49 Commits

Author SHA1 Message Date
Sameer Rahmani cff76ac5a5 Moving the eval function to the core module 2020-11-10 20:14:30 +00:00
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 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
Sameer Rahmani 0b348cff82 Add clap to manage the cli arguments 2020-06-20 18:20:10 +01:00
Sameer Rahmani 2a98d4b771 Create Expr function helpers to create different Expr variants 2020-06-20 16:25:05 +01:00
Sameer Rahmani 0065c2edf1 Add Expression trait and new cons implementation 2020-06-20 15:20:05 +01:00
Sameer Rahmani 30a7dbfce5 Fix the reader to ignore comment lines 2020-06-19 19:37:00 +01:00
Sameer Rahmani 04fe7e6085 Add llvm-sys as a dependency 2020-06-16 09:27:32 +01:00
Sameer Rahmani 25c58c27c2 Format the reader module 2020-06-14 21:25:18 +01:00
Sameer Rahmani 5181c84696 Add support for negative numbers 2020-06-14 21:23:39 +01:00
Sameer Rahmani 47bf80e834 Add a very basic lisp1 parser 2020-06-14 21:02:31 +01:00
Sameer Rahmani e527beea5a Add a very simple lisp grammer based on LALRPOP (whitespace problem) 2020-06-13 17:55:27 +01:00
Sameer Rahmani f4e7387733 Add the instructions for dev env into README.org 2020-06-12 14:30:34 +01:00
Sameer Rahmani 1fed8429d1 Add a useful article about parser algorithms in details to the dev.org 2020-06-11 23:46:34 +01:00
Sameer Rahmani 62151913c6 Update dev.org to contain some info on DOS attack on hashing function 2020-06-07 16:58:50 +01:00
Sameer Rahmani b317942a0e Merge remote master 2020-06-07 15:22:51 +01:00
Behnam AhmadKhanBeigi 58b3b978bb New links added to dev.org 2020-06-07 14:40:07 +02:00
Behnam AhmadKhanBeigi 41fb841976 Add Rust parsers to dev.org 2020-06-07 13:33:14 +02:00
Sameer Rahmani caa02aa004 Add dev.org to collect all the materials that helped us through the process 2020-06-07 11:11:17 +01:00
Sameer Rahmani c7c4876838 Initial Commit 2020-06-05 22:23:14 +01:00