Mattia Giambirtone
|
096bfaf662
|
More changes to the README because yes
|
2022-08-17 21:10:55 +02:00 |
Mattia Giambirtone
|
fd90d08688
|
Fixed wording
|
2022-08-17 20:55:00 +02:00 |
Mattia Giambirtone
|
bcf30213f5
|
Fixed typos
|
2022-08-17 20:54:35 +02:00 |
Mattia Giambirtone
|
55966ba93c
|
Updated docs and README
|
2022-08-17 20:52:23 +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
|
fc14cfec2d
|
Added chained imports test
|
2022-08-16 14:23:58 +02:00 |
Mattia Giambirtone
|
9a19fad1ad
|
More fixes to the import system and incremental compilation
|
2022-08-16 13:37:09 +02:00 |
Mattia Giambirtone
|
3636c74a6a
|
WIP for importing the same module multiple times and other failed fixes
|
2022-08-16 13:11:09 +02:00 |
Mattia Giambirtone
|
13b432b2d2
|
Basic support for actual incremental compilation
|
2022-08-16 12:20:17 +02:00 |
Mattia Giambirtone
|
26c55c403e
|
Removed debugging echo
|
2022-08-15 22:34:08 +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
|
5dc8ce437c
|
Expanded comparison test and fixed some typos/mistakes
|
2022-08-15 20:09:54 +02:00 |
Mattia Giambirtone
|
70a5f9dcd3
|
Fixed issues with '>', thanks Nim...
|
2022-08-15 19:52: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
|
7c8ec4bc6c
|
Deleted standalone fibonacci test
|
2022-08-15 17:20:21 +02:00 |
Mattia Giambirtone
|
7ef5b4dfbf
|
Fixed some issues with strings and added debug print to fibonacci test
|
2022-08-15 17:20:09 +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
|
39a84182b0
|
Fixed name resolution error in findByName
|
2022-08-14 19:51:12 +02:00 |
Mattia Giambirtone
|
c85fff8f67
|
Initial tests for an import system
|
2022-08-14 18:37:17 +02:00 |
Mattia Giambirtone
|
f50dd66741
|
Minor documentation additions
|
2022-08-04 17:48:56 +02:00 |
Mattia Giambirtone
|
da651355b9
|
Added a few more tests
|
2022-08-01 13:16:07 +02:00 |
Mattia Giambirtone
|
a370961218
|
Removed debug print
|
2022-08-01 11:36:23 +02:00 |
Mattia Giambirtone
|
0fdddbfda4
|
Fixed fib to work again
|
2022-08-01 11:36:00 +02:00 |
Mattia Giambirtone
|
3fba30b8ac
|
Fixed inference of unary and binary operators
|
2022-08-01 11:30:44 +02:00 |
Mattia Giambirtone
|
cc49cb98a6
|
Updated the manual and changed the syntax for foreach loops
|
2022-08-01 11:03:49 +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
|
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
|
9cedc72f68
|
Fixed error message when returning values from void functions
|
2022-07-10 15:10:01 +02:00 |
Mattia Giambirtone
|
70c839f5b8
|
Updated closures test
|
2022-07-10 15:07:57 +02:00 |
Mattia Giambirtone
|
39d1eab234
|
Temporary fix for not closing over function arguments
|
2022-07-10 15:07:44 +02:00 |
Mattia Giambirtone
|
13cc641e7b
|
Initial work on closures. Seems to be working
|
2022-07-10 14:50:08 +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
|
e38610fdbd
|
Updated Makefile
|
2022-07-09 16:25:19 +02:00 |
Mattia Giambirtone
|
7ac322e58c
|
Updated .gitignore
|
2022-07-09 13:37:51 +02:00 |
Mattia Giambirtone
|
f32a45c8d8
|
Added test for scopes
|
2022-07-09 13:37:16 +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
|
2c6325d33b
|
Initial broken work on generics
|
2022-06-21 20:18:53 +02:00 |
Mattia Giambirtone
|
985ceed075
|
Initial unfinished work on generic functions
|
2022-06-20 09:39:54 +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
|
6f60f76270
|
More fixes for assigning builtin functions to variables
|
2022-06-14 23:34:42 +02:00 |
Mattia Giambirtone
|
b974ba8ba3
|
Removed extra bloat
|
2022-06-14 22:46:55 +02:00 |
Mattia Giambirtone
|
a361f91950
|
Updated .gitignore
|
2022-06-14 22:46:25 +02:00 |
Mattia Giambirtone
|
d3b9418fea
|
Added some missing files
|
2022-06-14 22:45:41 +02:00 |
Mattia Giambirtone
|
e32b8e258f
|
Initial work on generics and fixed bugs in the parser with stropped operator names
|
2022-06-14 22:45:32 +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
|
73381513f9
|
Minor fixes
|
2022-06-14 12:14:58 +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
|
11b15abc01
|
More work on pragmas, returning functions now works
|
2022-06-08 16:07:08 +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
|
1d228c6310
|
Fixed logic bug within if/else construct
|
2022-06-02 12:19:18 +02:00 |
Mattia Giambirtone
|
dfa42d994b
|
Fixed if/else
|
2022-06-02 12:05:22 +02:00 |
Mattia Giambirtone
|
72ba5c7528
|
Updated config.nim
|
2022-06-02 11:48:17 +02:00 |
Mattia Giambirtone
|
e9cb3fca89
|
Fixed local variables
|
2022-06-02 11:45:27 +02:00 |
Mattia Giambirtone
|
6b314f2882
|
Fixed nested calls
|
2022-06-02 10:19:34 +02:00 |
Mattia Giambirtone
|
f2f0fae36f
|
Fixed inverse parameter ordering (whoops)
|
2022-06-02 01:50:06 +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
|
369dff7da2
|
Removed debugging print (oops)
|
2022-05-30 12:33:30 +02:00 |
Mattia Giambirtone
|
df105125c4
|
Various fixes to stack frame alignment and added incremental compilation to REPL
|
2022-05-30 12:32:24 +02:00 |
Mattia Giambirtone
|
0887dab246
|
Added lastPop field to VM
|
2022-05-30 09:32:15 +02:00 |
Mattia Giambirtone
|
9f126845fc
|
Initial work on function calls
|
2022-05-30 09:29:03 +02:00 |
Mattia Giambirtone
|
50b7b56feb
|
Fixed some segfaults
|
2022-05-29 23:01:36 +02:00 |
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
|
630de7a30c
|
Fixed typo
|
2022-05-23 23:15:09 +02:00 |