Commit Graph

30 Commits

Author SHA1 Message Date
Mattia Giambirtone 94ce81b6f1 Updated .gitignore, slightly edited README and added some more tests 2022-06-19 14:45:38 +02:00
Mattia Giambirtone 8a46c616d1 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 3abc243c06 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 1531811adf Initial work on closures (again?) 2022-06-13 17:28:05 +02:00
Mattia Giambirtone 7214ea129f Fixed issues with returning/calling function objects 2022-06-13 15:44:53 +02:00
Mattia Giambirtone acf4735790 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 887fa85ec0 Fixed if/else 2022-06-02 12:05:22 +02:00
Mattia Giambirtone cf133ff921 Initial work on a two-stack design 2022-06-02 01:33:56 +02:00
Mattia Giambirtone 320619d582 Fixed peon calling convention and various errors with function calls 2022-05-30 22:06:15 +02:00
Mattia Giambirtone f430fe6232 Some work for heap vars, wip fixes for higher-order functions 2022-05-27 14:01:57 +02:00
Mattia Giambirtone 2fc599dac4 Fixed closure variables and debugger output with nested CFI data (also removed unneeded peon files) 2022-05-26 18:32:02 +02:00
Mattia Giambirtone fceb6d8fa4 Added info about CFI section and made minor changes to README 2022-05-25 11:36:12 +02:00
Mattia Giambirtone b137e06ac6 Initial work on CFI-like functionality for better debugging 2022-05-24 22:26:45 +02:00
Mattia Giambirtone 8d1699ff9e Refactored calling convention and added stack frame support to the VM as well as StoreVar 2022-05-23 10:49:38 +02:00
Mattia Giambirtone 5f43ea9490 Initial work on calls (with runtime support too) 2022-05-22 17:23:52 +02:00
Mattia Giambirtone 1a0587d08b Minor style changes, removed findImpl from compiler, made the VM use the multibyte utilities, bytecode chunks now no longer store AST node objects and use a stream of bytes instead, fixed issues with endScope() in the compiler which would not pop properly from self.names, fixed issues with blockStmt in parser, added more multibyte utilities 2022-05-20 15:47:04 +02:00
Mattia Giambirtone 77bd0c8b6f Minor changes to bytecode file 2022-05-18 13:47:07 +02:00
Mattia Giambirtone cb21af4aa3 Added Makefile, prettyfied code, initial work on pragmas 2022-05-18 13:32:32 +02:00
Mattia Giambirtone ffee77b6fc Made function jumps absolute 2022-05-16 19:31:17 +02:00
Mattia Giambirtone 620c56237a Fixed an issue with jump offsets and with functions return types 2022-05-16 19:23:38 +02:00
Mattia Giambirtone e823a459c8 Implemented jump opcodes and LoadUInt64 in the VM, some style and proc changes in the compiler, chunk constants are now type-aware, fixed various inheritance mistakes in the AST node, refined type inference system, moved types back to the compiler and completely redesigned operator parsing to be more modular 2022-05-07 10:48:42 +02:00
Mattia Giambirtone a1c5430773 Collections are no longer a compiler intrinsic. Added parser support for ptr/ref arguments 2022-05-04 14:01:38 +02:00
Mattia Giambirtone b4fffe18aa Completely reworked the type inference system. Initial work on specializing the constants table in the bytecode chunk 2022-05-02 17:26:38 +02:00
Mattia Giambirtone f2b60bd9c4 Experimental support for multiple arguments of the same type using only one type declaration + various compiler fixes 2022-05-01 13:08:02 +02:00
Mattia Giambirtone 776968bffc Name stropping, added NoOp, minor AST fixes, removed builtin opcodes for most operations 2022-04-29 23:04:53 +02:00
Mattia Giambirtone f26541d4ae BROKEN: Initial work on closed-over variables and attempt to cleanup the AST type structure 2022-04-27 16:03:48 +02:00
Mattia Giambirtone 4839c9a341 Turned off optimizer (breaks compiler) further work on closures and scope resolution 2022-04-26 09:29:59 +02:00
Mattia Giambirtone 79ca72d983 Initial work on type inference and variable declarations. Minor changes to the optimizer 2022-04-21 15:25:29 +02:00
Mattia Giambirtone 78e169bd82 Hooked up the compiler and debugger (VERY experimental) 2022-04-07 13:02:23 +02:00
Mattia Giambirtone 76812a2091 Initial commit from JAPL with some changes 2022-04-04 12:29:23 +02:00