Commit Graph

75 Commits

Author SHA1 Message Date
Mattia Giambirtone b589f8109a Added missing files 2022-11-23 09:29:42 +01:00
Mattia Giambirtone 9567319c40 Major error formatting refactoring. Improved warning system 2022-11-23 01:02:35 +01:00
Mattia Giambirtone 6f444582a4 Improved GC debugging 2022-11-05 09:23:51 +01:00
Mattia Giambirtone d09b72694e Fixed GC issues 2022-11-05 09:14:18 +01:00
Mattia Giambirtone 709b40341c Fix typo 2022-11-04 15:33:07 +01:00
Mattia Giambirtone 1e29796278 Simplified reallocate() and more failed attempts at fixing GC issues 2022-11-04 15:30:22 +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 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 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 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 61dceab9fd Fixed grammatical error in docs 2022-10-11 09:07:50 +02:00
Mattia Giambirtone 15f3143599 Removed makefile + minor fixes 2022-10-11 09:07:25 +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 66cd6be0be Minor additions/changes 2022-10-08 15:21:13 +02:00
Mattia Giambirtone 11c8c0a5ab Definitive fix for closures 2022-10-08 09:18:35 +02:00
Mattia Giambirtone fc74bab529 Minor fix to the VM and updated closures test 2022-10-07 16:27:08 +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 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 4fdd90614a Various fixes to the GC, added a few more tests 2022-08-18 19:18:29 +02:00
Mattia Giambirtone 95315a0094 Minor changes and fixes 2022-08-18 11:15:55 +02:00
Mattia Giambirtone ae6da275fa Implement a M&S collector 2022-08-18 03:17:52 +02:00
Mattia Giambirtone 36970e493b Slotted in JAPL's old memory manager and fixed strings. Preliminary work for GC 2022-08-17 22:35:32 +02:00
Mattia Giambirtone 47a6f16664 Even more cleanup. Added pretty colors to the VM's debugger 2022-08-17 20:40:34 +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 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 70a5f9dcd3 Fixed issues with '>', thanks Nim... 2022-08-15 19:52:06 +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 f50dd66741 Minor documentation additions 2022-08-04 17:48:56 +02:00
Mattia Giambirtone da651355b9 Added a few more tests 2022-08-01 13:16:07 +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 6116c127c6 Moved for peon types to its own module, added support for negating primitives in the compiler and for floats in the VM, added some more docs to the VM and restored the old empty-jump mechanism for closure declaration. Minor changes to endScope 2022-07-10 13:19:57 +02:00
Mattia Giambirtone cc0aab850e Simplified calling convention, added for PeonObject, added some comments, fixed bug with StoreVar in stack frames, fixed issues with functions assigned to variables, changed the way closures are emitted so that empty jumps are no longer needed 2022-07-09 12:47:53 +02:00
Mattia Giambirtone 95880b7ba2 Updated .gitignore, slightly edited README and added some more tests 2022-06-19 14:45:38 +02:00
Mattia Giambirtone 4591e5ca0e Added built-in operators as a single instruction (src/peon/stdlib/arithmetics.pn is now fully functional) 2022-06-14 18:10:13 +02:00
Mattia Giambirtone 5d572386a3 Initial work on pragma handling (+ some parser fixes). Changed the way the lexer handles indentation and made tabs illegal. Added instructions for some operations on primitive types, removed file argument from serializer 2022-06-14 12:12:56 +02:00
Mattia Giambirtone d241333047 Initial work on closures (again?) 2022-06-13 17:28:05 +02:00
Mattia Giambirtone 02f1f8a54d Various style fixes with nil checks, added PushC opcode, added support for calling function objects 2022-06-13 15:04:53 +02:00
Mattia Giambirtone 1d228c6310 Fixed logic bug within if/else construct 2022-06-02 12:19:18 +02:00
Mattia Giambirtone dfa42d994b Fixed if/else 2022-06-02 12:05:22 +02:00