Commit Graph

179 Commits

Author SHA1 Message Date
Sameer Rahmani 5491660261 Add our own dianostic engine 2021-09-12 20:31:12 +01:00
Sameer Rahmani 800e3c5fc8 Introduce the notion of ns and filename in the reader and location 2021-09-12 20:31:11 +01:00
Sameer Rahmani f357b5e9d3 Add the a source manger and integrate the reader with it 2021-09-12 20:31:10 +01:00
Sameer Rahmani 7410ca3d59 Upgrade to llvm 13rc2 2021-08-28 18:01:48 +01:00
Sameer Rahmani 6f218d8cab Add a todo for another assertion 2021-08-22 11:09:30 +01:00
Sameer Rahmani a1d3ae8c9c Finish up the wiring of the very basic JIT implementation. 2021-08-17 09:57:26 +01:00
Sameer Rahmani aba81bfcae Move over a modified version of MLIR jit. Add the pch 2021-08-17 09:57:26 +01:00
Sameer Rahmani 8af6452457 Fix the serenec to use the new ns api 2021-08-17 09:57:26 +01:00
Sameer Rahmani 3ace6ec260 Chaneg the namespace to generate modules instead of owning them 2021-08-17 09:57:26 +01:00
Sameer Rahmani 06ed3b0c69 Add several TODOs for the asserts we need to remove 2021-08-07 21:09:18 +01:00
Sameer Rahmani 32b406fdad Prepare tho source tree for episode number 6 2021-08-07 17:41:19 +01:00
Sameer Rahmani 54b4458a8d Cleanup the exprs namespace for the episode 5 2021-07-30 12:17:41 +01:00
Sameer Rahmani f8b66934a1 Remove the unused 'toString' member function for readar classes 2021-07-19 15:50:59 +01:00
Sameer Rahmani 5b5e40c012 update the video.org for episode 4 2021-07-19 15:44:39 +01:00
Sameer Rahmani ea0bc28f01 Fix the test cases to use reader::read instead of the Reader#read 2021-07-19 09:38:07 +01:00
Sameer Rahmani cb5ea22081 Clean up the reader namespace code 2021-07-17 19:39:56 +01:00
Sameer Rahmani 5beffbc604 Fix the test cases of traits 2021-07-17 16:40:02 +01:00
Sameer Rahmani 9102085d83 Add the overview section to the videos doc 2021-07-10 17:52:53 +01:00
Sameer Rahmani a6254b0876 Lower the FnOp with the simplest possible impl 2021-06-25 23:09:46 +01:00
Sameer Rahmani fc0c41e893 Connect the Fn expr with FnOp 2021-06-25 21:47:24 +01:00
Sameer Rahmani 098365425d Add a very basic 'fn' operator to slir 2021-06-23 20:34:57 +01:00
Sameer Rahmani 7f7f49d3ac Add Basic setup for lowering the llvm dialect to the LLVMIR 2021-06-21 11:03:18 +01:00
Sameer Rahmani bd4dc2301c Add the LIR phase to lower everything to the llvm dialect 2021-06-17 13:19:19 +01:00
Sameer Rahmani ecedb14a12 Refactor the IR generation/dump process 2021-06-16 20:19:42 +01:00
Sameer Rahmani cb9914f6eb Fix the memory leak on Namespace 2021-06-15 01:21:48 +01:00
Sameer Rahmani 782c786baf Reformat files with the new clang-format config 2021-06-13 22:58:46 +01:00
Sameer Rahmani 65b6aa4020 Add the IR generation facilities to Namespace and Expression 2021-06-13 22:40:58 +01:00
Sameer Rahmani 7e319ece13 Add the bare min pass to convert slir to std dialect 2021-06-11 22:06:44 +01:00
Sameer Rahmani 36eef7222f Setup a very basic IR generation process 2021-06-09 13:29:14 +01:00
Sameer Rahmani d52c6adc1d Add SLIR missing files 2021-06-08 22:03:12 +01:00
Sameer Rahmani 616dca53fb Add SLIR skeleton to start the generator 2021-06-08 22:01:08 +01:00
Sameer Rahmani bfac2eff3f Set fn name for functions via def 2021-06-01 20:47:46 +01:00
Sameer Rahmani c21055716c Fix some test cases related to call exprs 2021-05-24 21:17:33 +01:00
Sameer Rahmani 328c8c7e41 Fix the null reference issue in Call expr 2021-05-09 21:50:56 +01:00
Sameer Rahmani 0ce47a0b6a Finish up the basic implementation of Call expr 2021-05-09 12:21:26 +01:00
Sameer Rahmani ff82772cd6 Implement a basic environment setup/lookup via 'def' and 'list' 2021-05-08 19:00:24 +01:00
Sameer Rahmani bbf3bd3660 Clean up the unsed expr traits 2021-05-06 21:00:58 +01:00
Sameer Rahmani fde6636ca2 Modify the Node and MaybeX to contain Serene's Error instead of llvm
Previously, MaybeNode and MaybeAST use to have the llvm::Error as the
error type. But after this change they will have a `vector` of
`serene::errors::Error` as the error type.
2021-05-06 19:17:57 +01:00
Sameer Rahmani add3765982 Add necessary Traits to construct an Expression alternative 2021-05-04 21:10:52 +01:00
Sameer Rahmani d0defdbf54 Add tests for MetaTrait concept 2021-05-03 22:45:35 +01:00
Sameer Rahmani b121483f2b Move the traits header to the appropriate place 2021-05-01 21:40:30 +01:00
Sameer Rahmani 179ef75793 Add A basic Trait like system using CRTP 2021-05-01 20:08:49 +01:00
Sameer Rahmani 6ce565163c Add support for current namespace in the context 2021-04-29 23:39:58 +01:00
Sameer Rahmani f2a76aa007 Add a minimal test case for namespace to pin down some behavior 2021-04-28 21:03:22 +01:00
Sameer Rahmani 33c6ebd3d3 Setup the ns table in the context class 2021-04-27 23:43:18 +01:00
Sameer Rahmani 66cecc77f3 Add the namespace table to the context 2021-04-26 21:29:44 +01:00
Sameer Rahmani c1c1421531 Rename 'maybe_ast' type to 'MeybeAst' 2021-04-25 23:08:40 +01:00
Sameer Rahmani 32ddfc313f Rename 'ast' type to 'Ast' 2021-04-25 23:07:08 +01:00
Sameer Rahmani 7bc9535617 Rename 'maybe_node' type to 'MaybeNode' 2021-04-25 23:05:21 +01:00
Sameer Rahmani 095d1872c1 Rename the 'node' type to 'Node' 2021-04-25 23:02:52 +01:00
Sameer Rahmani 0e58304462 Create the boilerplate of the call expression 2021-04-25 22:56:31 +01:00
Sameer Rahmani c04c67ccbe Add an environment implementation 2021-04-25 21:19:26 +01:00
Sameer Rahmani f9bd6cd567 Add the missing context header/impl files 2021-04-25 10:21:48 +01:00
Sameer Rahmani 4084135851 Extract SereneContext to the top level namespace 2021-04-25 09:56:28 +01:00
Sameer Rahmani 499852c48f Rename Semantic Context to Serene Context to be used in other phases too 2021-04-25 09:17:58 +01:00
Sameer Rahmani 5427b2ab00 Add a more complicated test to semantic analysis 2021-04-24 20:40:01 +01:00
Sameer Rahmani c12c6b1281 Change the semantic analysis entrypoint to the 'analyze' fn 2021-04-24 20:18:33 +01:00
Sameer Rahmani 4aee3413ea Analyze the value in the 'def' form 2021-04-24 19:10:22 +01:00
Sameer Rahmani 7c35f6a95e Add asserts to check for the first element of the list in def and fn forms 2021-04-24 18:04:04 +01:00
Sameer Rahmani 573550ca07 Add Fn expression and List rewrite to Fn 2021-04-24 14:39:43 +01:00
Sameer Rahmani 16d02a0fb1 Finish up the basic 'def' rewrite rules 2021-04-23 16:48:14 +01:00
Sameer Rahmani 806987b0ad Setup the minimal semantic analysis foundation 2021-04-22 10:20:15 +01:00
Sameer Rahmani f614d35b7f Change toString format and finalize Def::isValid signature 2021-04-22 00:49:11 +01:00
Sameer Rahmani 751eb49538 Rename the Result success/error methods to be consistent with the coding style 2021-04-20 19:33:25 +01:00
Sameer Rahmani 4fde47311e Remove the old implementations to keep the source tree as clean as possible 2021-04-20 00:17:28 +01:00
Sameer Rahmani 17b778bc49 Move the Error expression to it's own namespace 2021-04-19 23:34:39 +01:00
Sameer Rahmani a486b03d10 Add a very basic Error Expression to be used in semantic analysis 2021-04-19 19:49:05 +01:00
Sameer Rahmani 9f90e42bbb Setup the minimal rewrite wiring to rewrite 'def' to Def 2021-04-18 18:39:48 +01:00
Sameer Rahmani 30c54f9e73 Add more tests for List to test and iterators 2021-04-18 17:32:33 +01:00
Sameer Rahmani 7c9ee97895 Finish up the analyze setup before moving back to vector/shared_ptr setup 2021-04-17 19:36:25 +01:00
Sameer Rahmani 3b6d165baa Replace the shared_ptr in the node with a unique ptr 2021-04-17 00:18:13 +01:00
Sameer Rahmani 1330bad6fb Add a new type alias for Result<shared_ptr<Expressoin>> 2021-04-14 21:59:22 +01:00
Sameer Rahmani 3223fc6944 Restructure the source tree to have tests and impl files in src 2021-04-13 13:53:12 +01:00
Sameer Rahmani 470f23acef Short circute the 'analyze' method of expressions for now 2021-04-13 00:45:08 +01:00
Sameer Rahmani 8b4f2941cf Add the Result type as an error wrapper type 2021-04-12 23:18:32 +01:00
Sameer Rahmani f4c28ae722 Upgrade to C++17 for now 2021-04-11 18:36:00 +01:00
Sameer Rahmani 11df9a6d1d Add some test cases for the reader 2021-04-11 15:13:10 +01:00
Sameer Rahmani 555e770c01 Finalize migration to new expression interface 2021-04-11 00:02:56 +01:00
Sameer Rahmani e4b0823e49 Fall back to the OOP design and setup the test env 2021-04-10 15:36:16 +01:00
Sameer Rahmani 944efcd1a9 Finish up the single dispatcher 2021-04-08 23:41:52 +01:00
Sameer Rahmani fd211653f2 Fix the expression instantiation 2021-04-08 19:59:47 +01:00
Sameer Rahmani a42259d684 Add c++20 support flag to cmake 2021-04-07 19:56:54 +01:00
Sameer Rahmani c1bec1ec99 Document the Expression type 2021-04-07 01:01:12 +01:00
Sameer Rahmani cd6552960d Fix the cmake file to use the new reader files 2021-04-06 19:13:24 +01:00
Sameer Rahmani 08e661c508 Rename the reader header files 2021-04-06 18:28:50 +01:00
Sameer Rahmani e620d8dcb2 rename location.hpp to location.h 2021-04-06 18:24:05 +01:00
Sameer Rahmani f1f77386ae Finish up the new Expression implementation 2021-04-06 16:20:20 +01:00
Sameer Rahmani 0020f95a80 Setup tests via Catch2 2021-04-06 00:21:43 +01:00
Sameer Rahmani f73cfe7aaf Introduce the new polymorphic approach to expressions 2021-04-05 19:02:30 +01:00
Sameer Rahmani 062b24e701 Add doxygen support for the documentation 2021-04-05 17:51:09 +01:00
Sameer Rahmani 9ff707c726 Save the progress before introducing the semantic analysis 2021-04-04 23:08:57 +01:00
Sameer Rahmani 53ec0c240a Change the different generator methods to be a polymorphic function 2021-04-01 23:37:12 +01:00
Sameer Rahmani f6ca246f0d Implement classof in derived expressions 2021-03-31 19:37:32 +01:00
Sameer Rahmani 3a899d82b3 Add Location and LocationRange support to expressions 2021-03-29 01:02:29 +01:00
Sameer Rahmani f50e20567a Move reader related files to the reader namespace 2021-03-28 23:14:32 +01:00
Sameer Rahmani e9daeb9d13 Add support for a dummy value operation to demonstrate a value 2021-03-28 10:53:32 +01:00
Sameer Rahmani 21b1958ecf Add symbol type to the dialect 2021-03-26 21:39:25 +00:00
Sameer Rahmani 50c2054f0a Add a barebone MLIR dialect with the necessary cmake changes" 2021-03-25 00:53:44 +00:00
Sameer Rahmani 737b6e1a41 Remove unused code to simplify the project to the bare min 2021-03-23 22:31:20 +00:00
Sameer Rahmani 04a50eb65b Update the serene executable to use llvm::cl and spit out the AST 2021-03-22 19:53:10 +00:00