ff0ae8fcbaVarious fixes to frames, recursion, and more. Removed stack bottom from CFI data. Added comparison opcode for fib test as well as a clock opcodeMattia Giambirtone2022-08-01 10:36:06 +0200
da2cfefe75Removed the need for parentheses around control flow and looping statements, enforced braces instead. Got rid of the old C-style for loopMattia Giambirtone2022-07-16 13:21:40 +0200
b40275b52fAdded Compiler.check(), made type constraints mandatory in generics, reverted '\n' being converted to a semicolon, minor refactoringMattia Giambirtone2022-07-16 13:04:00 +0200
6116c127c6Moved 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 endScopeMattia Giambirtone2022-07-10 13:19:57 +0200
cc0aab850eSimplified 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 neededMattia Giambirtone2022-07-09 12:47:53 +0200
e32b8e258fInitial work on generics and fixed bugs in the parser with stropped operator namesMattia Giambirtone2022-06-14 22:45:32 +0200
4591e5ca0eAdded built-in operators as a single instruction (src/peon/stdlib/arithmetics.pn is now fully functional)Mattia Giambirtone2022-06-14 18:10:13 +0200
5d572386a3Initial 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 serializerMattia Giambirtone2022-06-14 12:12:56 +0200
02f1f8a54dVarious style fixes with nil checks, added PushC opcode, added support for calling function objectsMattia Giambirtone2022-06-13 15:04:53 +0200
b0515d3573Refactored the type system which no longer relies on AST node objects. Added types for ref, ptr and mutable typesMattia Giambirtone2022-05-29 15:54:01 +0200
9c14bfae91Initial work on generics, fixed StoreVar. declareName no longer emits any bytecode (as it doesn't need to)Mattia Giambirtone2022-05-23 11:53:34 +0200
8d1699ff9eRefactored calling convention and added stack frame support to the VM as well as StoreVarMattia Giambirtone2022-05-23 10:49:38 +0200
21a9689f6cFunctions can now return functions which return functions... recursively. Initial work on forward declarations and function call resolutionMattia Giambirtone2022-05-22 15:26:12 +0200
9f1769ab71Added LoadVar support to the VM and fixed a minor mistake in the debugger outputMattia Giambirtone2022-05-22 13:09:46 +0200
42ab1d4c6eInitial work on call resolution, added support for running filesMattia Giambirtone2022-05-22 13:02:48 +0200
6d6ae3ee7aFixed and improved error reporting and made the parser ignore whitespace/tab (again)Mattia Giambirtone2022-05-22 11:49:38 +0200
7cf69cf0cfAdded 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 funDeclMattia Giambirtone2022-05-21 12:20:12 +0200
e4c2ba2ce2Got rid of serializedRaw in main module and prettyfied the outputMattia Giambirtone2022-05-20 18:34:14 +0200
c9ac6550d2Updated README since this code is now very different from JAPL'sMattia Giambirtone2022-05-20 15:52:29 +0200
1a0587d08bMinor 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 utilitiesMattia Giambirtone2022-05-20 15:47:04 +0200