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
|
d9570d4393
|
Fixed bug with return statement and updates tests
|
2022-11-28 19:03:08 +01:00 |
Mattia Giambirtone
|
7ab757074f
|
Added attribute resolution, fixed closures, fixed cross-shadowing issues
|
2022-11-27 13:39:41 +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
|
e09db61bc6
|
Fixed support for type declarations in the parser
|
2022-11-04 14:56:42 +01: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
|
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
|
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
|
77fd5931fa
|
Further clean up
|
2022-08-17 19:31:27 +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
|
0861135e7f
|
Initial work on a stdlib of sorts, added comparison operators and refactored tests
|
2022-08-15 19:07:37 +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
|
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
|
33066d3b9b
|
Fixed bug with calling a call
|
2022-07-31 16:09:22 +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
|
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
|
3f5f514259
|
Fixed some issued with scoping and globals
|
2022-07-09 13:36:29 +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
|
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
|
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
|
dfa42d994b
|
Fixed if/else
|
2022-06-02 12:05:22 +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
|
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
|
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
|
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
|
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
|
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
|
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 |