Commit Graph

76 Commits

Author SHA1 Message Date
Mattia Giambirtone c1a2c9bc55
Updates to README. Cleanup & refactoring 2023-10-01 13:16:40 +02:00
Mattia Giambirtone 5fa463d9b4 It is now possible to test the serializer on arbitrary bytecode files 2023-07-22 16:19:52 +02:00
Mattia Giambirtone 919cc25579
Get rid of REPL + minor refactorings 2023-06-29 13:58:03 +02:00
Mattia Giambirtone 71f44313da
Work on keyword arguments. REPL has been disabled (it's broken). Fixed various issues with casts and typevars 2023-06-01 12:56:59 +02:00
Mattia Giambirtone 879fec20fe
Various components are now debuggable without recompiling 2023-05-22 13:10:15 +02:00
Mattia Giambirtone 40d0f23135
Fixed various bugs related to lambdas and imports. Added module info section to bytecode dumps 2023-05-22 12:57:38 +02:00
Mattia Giambirtone de9b51152e
Fixed issue with resuming from incremental compilation 2023-05-01 16:27:00 +02:00
Mattia Giambirtone cd853bb140 Reverted variable hoisting and fixed minor issue during name resolution. Updated comments 2023-05-01 15:30:55 +02:00
Mattia Giambirtone 2d9a6b9a8d
Incremental compilation now works in the REPL 2023-03-27 17:57:18 +02:00
Mattia Giambirtone f284da7691 Fixed minor bug in the REPL 2023-02-02 15:29:41 +01:00
Mattia Giambirtone 81e10ae1ea Reformatted help menu, added -w option. All code can now be disassembled 2023-01-26 12:11:29 +01:00
Mattia Giambirtone ace04ee34c Minor additions and cleanup 2023-01-17 12:53:23 +01:00
Mattia Giambirtone e97653cbc7 Initial ground work on typed AST, minor fixes to compiler, switch statement now looks for equality operator instead of emitting the Equal opcode 2023-01-05 12:44:11 +01:00
Mattia Giambirtone 382244f7a7 Added -o/--output option 2022-12-16 15:19:38 +01:00
Mattia Giambirtone cf6d20e757 Added mutateOuterScope to noWarn option, improved error formatting, added backend flag, updated help menu 2022-12-16 15:11:20 +01:00
Mattia Giambirtone dc393bbb34 Initial work on multi-backend support 2022-12-15 11:48:43 +01:00
Mattia Giambirtone b912d58cad Peon bytecode files can now be executed directly 2022-12-09 13:42:52 +01:00
Mattia Giambirtone d7d561f45e Updated REPL to be more forgiving once errors occur 2022-12-05 19:56:00 +01:00
Mattia Giambirtone 21738b9382 Removed broken closure implementation, changed local resolution mechanism, many bug fixes to namespaces and tests 2022-12-04 16:54:28 +01:00
Mattia Giambirtone 63cdda42ce Added tagged type unions, moved intrinsics to peon's stdlib and fixed issues with generics and parametric polymorphism 2022-11-29 16:48:05 +01:00
Mattia Giambirtone 2187aa19d8 Minor fixes and changes, renamed nodump option to noDump, added missing support for mode flag. Minor additions and style fixes to parser and compiler 2022-11-28 14:04:12 +01:00
Mattia Giambirtone b99be47556 Added compilation mode flag 2022-11-23 10:40:45 +01:00
Mattia Giambirtone 9567319c40 Major error formatting refactoring. Improved warning system 2022-11-23 01:02:35 +01:00
Mattia Giambirtone a3b4fd1048 Initial warning support 2022-11-22 15:13:42 +01:00
Mattia Giambirtone b93ac201f2 Fixed all bugs: test suite is passing 2022-11-05 14:27:57 +01:00
Mattia Giambirtone 26e16e7f8e Reverted to old style REPL and added note in the README 2022-11-05 12:38:05 +01:00
Mattia Giambirtone 3dead5a555 Fixed various bugs and added more tests. Also added nim.cfg 2022-11-05 10:57:45 +01:00
Mattia Giambirtone 9573769868 Various fixes to module system 2022-10-21 16:10:00 +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 95315a0094 Minor changes and fixes 2022-08-18 11:15:55 +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 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 edef50deca Made exception handling in main.nim module-aware and did some minor refactoring 2022-08-15 11:46:24 +02:00
Mattia Giambirtone c85fff8f67 Initial tests for an import system 2022-08-14 18:37:17 +02:00
Mattia Giambirtone 67b44dbfc9 Added support for GenericPrint opcode 2022-08-01 10:44:38 +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 da2cfefe75 Removed the need for parentheses around control flow and looping statements, enforced braces instead. Got rid of the old C-style for loop 2022-07-16 13:21:40 +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
Mattia Giambirtone 2072f34d4c BYE BYE SEMICOLONS! 2022-07-15 19:48:32 +02:00
Mattia Giambirtone 60028ed664 Fixed issues when debugSerializer == true 2022-07-10 16:31:30 +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 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