Mattia Giambirtone
|
94ce81b6f1
|
Updated .gitignore, slightly edited README and added some more tests
|
2022-06-19 14:45:38 +02:00 |
Mattia Giambirtone
|
8a46c616d1
|
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
|
3abc243c06
|
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
|
1531811adf
|
Initial work on closures (again?)
|
2022-06-13 17:28:05 +02:00 |
Mattia Giambirtone
|
acf4735790
|
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
|
5051901339
|
Fixed logic bug within if/else construct
|
2022-06-02 12:19:18 +02:00 |
Mattia Giambirtone
|
887fa85ec0
|
Fixed if/else
|
2022-06-02 12:05:22 +02:00 |
Mattia Giambirtone
|
cdb2c33897
|
Fixed local variables
|
2022-06-02 11:45:27 +02:00 |
Mattia Giambirtone
|
cf133ff921
|
Initial work on a two-stack design
|
2022-06-02 01:33:56 +02:00 |
Mattia Giambirtone
|
320619d582
|
Fixed peon calling convention and various errors with function calls
|
2022-05-30 22:06:15 +02:00 |
Mattia Giambirtone
|
12d303003e
|
Various fixes to stack frame alignment and added incremental compilation to REPL
|
2022-05-30 12:32:24 +02:00 |
Mattia Giambirtone
|
552d00c054
|
Added lastPop field to VM
|
2022-05-30 09:32:15 +02:00 |
Mattia Giambirtone
|
a3834a27c3
|
Various fixes and stack frame changes
|
2022-05-29 17:04:19 +02:00 |
Mattia Giambirtone
|
c3c2dc31f8
|
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
|
f430fe6232
|
Some work for heap vars, wip fixes for higher-order functions
|
2022-05-27 14:01:57 +02:00 |
Mattia Giambirtone
|
2167838355
|
Fixed issues with stack frames when returning from functions
|
2022-05-25 14:38:40 +02:00 |
Mattia Giambirtone
|
b137e06ac6
|
Initial work on CFI-like functionality for better debugging
|
2022-05-24 22:26:45 +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
|
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
|
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
|
cb21af4aa3
|
Added Makefile, prettyfied code, initial work on pragmas
|
2022-05-18 13:32:32 +02:00 |
Mattia Giambirtone
|
e823a459c8
|
Implemented jump opcodes and LoadUInt64 in the VM, some style and proc changes in the compiler, chunk constants are now type-aware, fixed various inheritance mistakes in the AST node, refined type inference system, moved types back to the compiler and completely redesigned operator parsing to be more modular
|
2022-05-07 10:48:42 +02:00 |
Mattia Giambirtone
|
f189b0214e
|
Initial work on simplifying the type system and added more VM utility functions
|
2022-05-02 23:19:31 +02:00 |
Mattia Giambirtone
|
b4fffe18aa
|
Completely reworked the type inference system. Initial work on specializing the constants table in the bytecode chunk
|
2022-05-02 17:26:38 +02:00 |
Mattia Giambirtone
|
776968bffc
|
Name stropping, added NoOp, minor AST fixes, removed builtin opcodes for most operations
|
2022-04-29 23:04:53 +02:00 |
Mattia Giambirtone
|
299b359344
|
Name stropping now is generic to identifiers
|
2022-04-29 17:15:57 +02:00 |
Mattia Giambirtone
|
223ba603a7
|
Removed old JAPL type system. Initial dummy VM for testing purposes
|
2022-04-28 18:06:53 +02:00 |
Mattia Giambirtone
|
76812a2091
|
Initial commit from JAPL with some changes
|
2022-04-04 12:29:23 +02:00 |