Commit Graph

122 Commits

Author SHA1 Message Date
Mattia Giambirtone 3dead5a555 Fixed various bugs and added more tests. Also added nim.cfg 2022-11-05 10:57:45 +01:00
Mattia Giambirtone 159530072b Minor fix to getStackPos. Git commit hash is now auto filled in config.nim 2022-11-03 12:30:25 +01:00
Mattia Giambirtone 5e1c16bb39 Renamed lookupPaths to moduleLookupPaths 2022-11-03 11:01:28 +01:00
Mattia Giambirtone 55a112a1ab Attempts at fixing GC issues 2022-11-03 10:55:27 +01:00
Mattia Giambirtone c1deebf43b Stopped using ref objects and removed recursive dependency between gc and VM 2022-11-02 13:16:43 +01:00
Mattia Giambirtone e046981f4b Fix for closures 2022-11-02 12:03:14 +01:00
Mattia Giambirtone b903005504 Initial work on fixing calling functions assigned to variables 2022-10-25 11:17:38 +02:00
Mattia Giambirtone dc626a90d9 Improved VM debugger, fixed bugs with fixing CFI offsets, minor docs and code changes 2022-10-24 13:53:27 +02:00
Mattia Giambirtone 6c305d6382 Disabled the GC in the entire VM module and updated config.nim 2022-10-21 19:50:07 +02:00
Mattia Giambirtone 9573769868 Various fixes to module system 2022-10-21 16:10:00 +02:00
Mattia Giambirtone 1c54243d43 Various bug fixes to scopes 2022-10-17 12:03:27 +02:00
Mattia Giambirtone d33a597f19 Massive improvements to import system (added export statement, initial work on namespaces, module names can now be paths, added module search paths) 2022-10-17 11:28:00 +02:00
Mattia Giambirtone c7893fb14b Fixed issues with negative numbers and infinity. Variables can now accept function expressions as type arguments. Compiler.infer() now always returns a concrete type, minor bug fix in varDecl 2022-10-13 18:34:11 +02:00
Mattia Giambirtone 8667cbdceb Initial ground work on generics, some stuff is broken :( 2022-10-13 16:52:37 +02:00
Mattia Giambirtone d4d1034cef Return addresses are now 64 bits long, return statements now compile to jumps, initial (broken) work on generics 2022-10-13 13:12:24 +02:00
Mattia Giambirtone 807b48bac9 Renamed compareTypes to compare 2022-10-11 10:01:01 +02:00
Mattia Giambirtone c168d1584b Updated compiler error messages and Generic type object, minor name changes 2022-10-11 09:59:27 +02:00
Mattia Giambirtone 9ef80535f3 Minor fixes to operator system and updated compiler error messages 2022-10-11 09:52:49 +02:00
Mattia Giambirtone 3e6e9da475 Fixed a bug where regular functions were mistaken for closures 2022-10-08 15:48:26 +02:00
Mattia Giambirtone 11c8c0a5ab Definitive fix for closures 2022-10-08 09:18:35 +02:00
Mattia Giambirtone e759e6cbb2 Various fixes to closures. Fixed chained calls and local scopes 2022-10-07 15:55:41 +02:00
Mattia Giambirtone a4bccba6cd Various fixes to closures and function objects 2022-10-06 09:57:19 +02:00
Mattia Giambirtone 9c878e5b9e Fix some stuff? 2022-10-06 00:21:25 +02:00
Mattia Giambirtone c230142378 Broken work with closures and chained calls 2022-08-30 12:55:14 +02:00
Mattia Giambirtone 85de75a50a It is now possible to close over function arguments 2022-08-19 12:16:40 +02:00
Mattia Giambirtone 885d6e3ea8 Fixed a bug in the type system with consecutive calls 2022-08-19 09:08:49 +02:00
Mattia Giambirtone 058b021493 Fixed some bugs with void functions in the compiler 2022-08-18 23:49:20 +02:00
Mattia Giambirtone 8e53b19233 Various parser adjustments and compiler fixes 2022-08-18 22:07:46 +02:00
Mattia Giambirtone 4fdd90614a Various fixes to the GC, added a few more tests 2022-08-18 19:18:29 +02:00
Mattia Giambirtone 77fd5931fa Further clean up 2022-08-17 19:31:27 +02:00
Mattia Giambirtone f7733d925f Cleaned up and renamed some things 2022-08-17 19:23:11 +02:00
Mattia Giambirtone 19a089f4a2 Move towards unboxed types in the Peon VM 2022-08-17 17:31:15 +02:00
Mattia Giambirtone 9a19fad1ad More fixes to the import system and incremental compilation 2022-08-16 13:37:09 +02:00
Mattia Giambirtone 3636c74a6a WIP for importing the same module multiple times and other failed fixes 2022-08-16 13:11:09 +02:00
Mattia Giambirtone 13b432b2d2 Basic support for actual incremental compilation 2022-08-16 12:20:17 +02:00
Mattia Giambirtone 626375bc1f Added all missing comparison operators and fixed error reporting system 2022-08-15 22:15:06 +02:00
Mattia Giambirtone 5dc8ce437c Expanded comparison test and fixed some typos/mistakes 2022-08-15 20:09:54 +02:00
Mattia Giambirtone 0861135e7f Initial work on a stdlib of sorts, added comparison operators and refactored tests 2022-08-15 19:07:37 +02:00
Mattia Giambirtone 7ef5b4dfbf Fixed some issues with strings and added debug print to fibonacci test 2022-08-15 17:20:09 +02:00
Mattia Giambirtone edef50deca Made exception handling in main.nim module-aware and did some minor refactoring 2022-08-15 11:46:24 +02:00
Mattia Giambirtone 39a84182b0 Fixed name resolution error in findByName 2022-08-14 19:51:12 +02:00
Mattia Giambirtone c85fff8f67 Initial tests for an import system 2022-08-14 18:37:17 +02:00
Mattia Giambirtone a370961218 Removed debug print 2022-08-01 11:36:23 +02:00
Mattia Giambirtone 0fdddbfda4 Fixed fib to work again 2022-08-01 11:36:00 +02:00
Mattia Giambirtone 3fba30b8ac Fixed inference of unary and binary operators 2022-08-01 11:30:44 +02:00
Mattia Giambirtone 67b44dbfc9 Added support for GenericPrint opcode 2022-08-01 10:44:38 +02:00
Mattia Giambirtone ff0ae8fcba Various fixes to frames, recursion, and more. Removed stack bottom from CFI data. Added comparison opcode for fib test as well as a clock opcode 2022-08-01 10:38:51 +02:00
Mattia Giambirtone b4628109ce Fixed a bug with nested scopes 2022-07-31 16:40:47 +02:00
Mattia Giambirtone 33066d3b9b Fixed bug with calling a call 2022-07-31 16:09:22 +02:00
Mattia Giambirtone b40275b52f Added Compiler.check(), made type constraints mandatory in generics, reverted '\n' being converted to a semicolon, minor refactoring 2022-07-16 13:04:00 +02:00