Commit Graph

220 Commits

Author SHA1 Message Date
Mattia Giambirtone a361f91950 Updated .gitignore 2022-06-14 22:46:25 +02:00
Mattia Giambirtone d3b9418fea Added some missing files 2022-06-14 22:45:41 +02:00
Mattia Giambirtone e32b8e258f Initial work on generics and fixed bugs in the parser with stropped operator names 2022-06-14 22:45:32 +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 73381513f9 Minor fixes 2022-06-14 12:14:58 +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 e3ab2fbdb6 Fixed issues with returning/calling function objects 2022-06-13 15:44:53 +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 11b15abc01 More work on pragmas, returning functions now works 2022-06-08 16:07:08 +02:00
Mattia Giambirtone dac0cca1bc Initial experimental support for parsing pragmas 2022-06-07 11:23:08 +02:00
Mattia Giambirtone aed0f6e8f2 Initial work on type declarations 2022-06-02 14:23:05 +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
Mattia Giambirtone 72ba5c7528 Updated config.nim 2022-06-02 11:48:17 +02:00
Mattia Giambirtone e9cb3fca89 Fixed local variables 2022-06-02 11:45:27 +02:00
Mattia Giambirtone 6b314f2882 Fixed nested calls 2022-06-02 10:19:34 +02:00
Mattia Giambirtone f2f0fae36f Fixed inverse parameter ordering (whoops) 2022-06-02 01:50:06 +02:00
Mattia Giambirtone 099f733db6 Initial work on a two-stack design 2022-06-02 01:33:56 +02:00
Mattia Giambirtone f8ab292c27 Fixed peon calling convention and various errors with function calls 2022-05-30 22:06:15 +02:00
Mattia Giambirtone 369dff7da2 Removed debugging print (oops) 2022-05-30 12:33:30 +02:00
Mattia Giambirtone df105125c4 Various fixes to stack frame alignment and added incremental compilation to REPL 2022-05-30 12:32:24 +02:00
Mattia Giambirtone 0887dab246 Added lastPop field to VM 2022-05-30 09:32:15 +02:00
Mattia Giambirtone 9f126845fc Initial work on function calls 2022-05-30 09:29:03 +02:00
Mattia Giambirtone 50b7b56feb Fixed some segfaults 2022-05-29 23:01:36 +02:00
Mattia Giambirtone 9dacda4009 Various fixes and stack frame changes 2022-05-29 17:04:19 +02:00
Mattia Giambirtone b0515d3573 Refactored the type system which no longer relies on AST node objects. Added types for ref, ptr and mutable types 2022-05-29 15:54:01 +02:00
Mattia Giambirtone a8345d065a Removed bytecode file 2022-05-29 15:01:15 +02:00
Mattia Giambirtone 74c58fbe5e Updated .gitignore 2022-05-29 14:57:37 +02:00
Mattia Giambirtone 9c20032690 Fixed .gitignore (maybe??) 2022-05-29 14:54:22 +02:00
Mattia Giambirtone 57313235a9 Added tests directory 2022-05-29 14:52:47 +02:00
Mattia Giambirtone bf9b9389ce Some work for heap vars, wip fixes for higher-order functions 2022-05-27 14:01:57 +02:00
Mattia Giambirtone 71c05ec1bf 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 0f0a442578 Fixed issues with stack frames when returning from functions 2022-05-25 14:38:40 +02:00
Mattia Giambirtone e15b6a4915 Fixed recursion error inside inferType 2022-05-25 14:17:58 +02:00
Mattia Giambirtone 5bf5c6d3fd Fixed variable declarations not compiling in some cases 2022-05-25 12:15:45 +02:00
Mattia Giambirtone 990b54fa3e Made main.nim a bit nicer with command-line options 2022-05-25 11:49:21 +02:00
Mattia Giambirtone a6d22f740d Updated .gitignore 2022-05-25 11:43:02 +02:00
Mattia Giambirtone be4c2500ac Added info about CFI section and made minor changes to README 2022-05-25 11:36:12 +02:00
Mattia Giambirtone 48d1c3fc8c Initial work on CFI-like functionality for better debugging 2022-05-24 22:26:45 +02:00
Mattia Giambirtone dbeae16dc4 Various fixes to matchImpl. Variables can now shadow functions, but not other variables 2022-05-24 10:23:34 +02:00
Mattia Giambirtone 15f412bcac Updated config.nim and changed mechanism for finding operators (also added binary operator lookup) 2022-05-24 09:56:11 +02:00
Mattia Giambirtone b02e2c3d02 Removed old binary 2022-05-23 23:34:33 +02:00
Mattia Giambirtone 2ff70f912d Merge branch 'master' of https://git.nocturn9x.space/nocturn9x/peon 2022-05-23 23:25:21 +02:00
Mattia Giambirtone 866519b1da Fixed typo 2022-05-23 23:15:09 +02:00
Mattia Giambirtone 630de7a30c Fixed typo 2022-05-23 23:15:09 +02:00
Mattia Giambirtone de089098ad Removed tests.pbc 2022-05-23 23:08:46 +02:00
Mattia Giambirtone 4230222639 Initial work on documentation 2022-05-23 23:08:00 +02:00
Mattia Giambirtone 396f40d3d6 Added some docs, LoadVar to the VM and readInt32 2022-05-23 14:03:17 +02:00
Mattia Giambirtone 9c14bfae91 Initial work on generics, fixed StoreVar. declareName no longer emits any bytecode (as it doesn't need to) 2022-05-23 11:53:34 +02:00