Commit Graph

345 Commits

Author SHA1 Message Date
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
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 50b0f98f6a Removed raise in main.nim 2022-05-22 15:31:13 +02:00
Mattia Giambirtone 21a9689f6c Functions can now return functions which return functions... recursively. Initial work on forward declarations and function call resolution 2022-05-22 15:27:28 +02:00
Mattia Giambirtone 9f1769ab71 Added LoadVar support to the VM and fixed a minor mistake in the debugger output 2022-05-22 13:09:46 +02:00
Mattia Giambirtone 42ab1d4c6e Initial work on call resolution, added support for running files 2022-05-22 13:02:57 +02:00
Mattia Giambirtone 6d6ae3ee7a Fixed and improved error reporting and made the parser ignore whitespace/tab (again) 2022-05-22 11:49:38 +02:00
Mattia Giambirtone 7cf69cf0cf Added hasExplicitReturn field to function and lambda declarations to fix some errors with compiling them. Fixed minor issues with function and lambda parsing, the parser is now able to skip whitespace/tab tokens trasparently, made parser.done() inline, removed invalid state error from funDecl 2022-05-21 12:20:12 +02:00
Mattia Giambirtone e4c2ba2ce2 Got rid of serializedRaw in main module and prettyfied the output 2022-05-20 18:34:14 +02:00
Mattia Giambirtone 5b9206a580 Updated README 2022-05-20 16:22:11 +02:00
Mattia Giambirtone b1cc2755b8 Updated README 2022-05-20 16:16:52 +02:00
Mattia Giambirtone 919f07df55 Updated README 2022-05-20 16:16:22 +02:00
Mattia Giambirtone 00ace4c9ab Updated README 2022-05-20 16:15:44 +02:00
Mattia Giambirtone ef5f00b69a Updated README 2022-05-20 16:15:17 +02:00
Mattia Giambirtone 2a3e05d6b3 Updated README 2022-05-20 16:14:08 +02:00
Mattia Giambirtone e0fa1342a5 Updated README 2022-05-20 16:03:19 +02:00
Mattia Giambirtone 751cf644dc Removed unneded flags 2022-05-20 16:01:34 +02:00
Mattia Giambirtone 64368b636a Added tests directory 2022-05-20 15:56:16 +02:00
Mattia Giambirtone beb853837a Added skeleton for future expansion 2022-05-20 15:55:28 +02:00
Mattia Giambirtone c9ac6550d2 Updated README since this code is now very different from JAPL's 2022-05-20 15:52:29 +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 e8cbec94bd Minor bug fixes 2022-05-16 19:40:13 +02:00
Mattia Giambirtone ffee77b6fc Made function jumps absolute 2022-05-16 19:31:17 +02:00