Mattia Giambirtone
|
76ee8c7454
|
Further work on compiler modularization: converted expression handlers to methods
|
2022-12-15 13:22:34 +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
|
f86925edba
|
Minor improvements to warning messages
|
2022-12-09 13:40:02 +01:00 |
Mattia Giambirtone
|
f1875736e3
|
Added switch statements
|
2022-12-07 09:15:29 +01:00 |
Mattia Giambirtone
|
af3c7234be
|
Added template support and related test
|
2022-12-06 12:55:17 +01:00 |
Mattia Giambirtone
|
70cfb0d89c
|
More bug fixing, added extra test
|
2022-12-06 10:59:05 +01:00 |
Mattia Giambirtone
|
d7d561f45e
|
Updated REPL to be more forgiving once errors occur
|
2022-12-05 19:56:00 +01:00 |
Mattia Giambirtone
|
01355fdaba
|
Minor fixes and changes
|
2022-12-05 19:19:38 +01:00 |
Mattia Giambirtone
|
7ebd13f739
|
Fixed bugs in automatic types
|
2022-12-05 17:09:09 +01:00 |
Mattia Giambirtone
|
6caaf7e707
|
Added error handling for using auto in a generic constraint
|
2022-12-05 12:13:21 +01:00 |
Mattia Giambirtone
|
572443a988
|
Added support for automatic types
|
2022-12-05 12:06:24 +01:00 |
Mattia Giambirtone
|
c0f358e956
|
Fixed bugs with blocks
|
2022-12-05 08:47:14 +01:00 |
Mattia Giambirtone
|
4b6d86ad8e
|
Added named blocks
|
2022-12-05 08:07:37 +01:00 |
Mattia Giambirtone
|
15ec8dce54
|
Fixed error reporting in REPL
|
2022-12-04 17:02:32 +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
|
142e575497
|
Fixes to function calls and attempt to fix closures inside variables
|
2022-12-02 13:35:54 +01:00 |
Mattia Giambirtone
|
8fb90bb0ef
|
Many fixes to generics
|
2022-12-01 22:04:10 +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
|
d9570d4393
|
Fixed bug with return statement and updates tests
|
2022-11-28 19:03:08 +01:00 |
Mattia Giambirtone
|
58b5d07dd6
|
Typo
|
2022-11-28 18:30:19 +01:00 |
Mattia Giambirtone
|
540feb0c91
|
Implemented ACTUAL parametric polymorphism
|
2022-11-28 18:21:38 +01:00 |
Mattia Giambirtone
|
62b8bae0fc
|
Generics are now compiled only once
|
2022-11-28 16:47:38 +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
|
8b0d6b7ebe
|
Updated namespaces test and stdlib
|
2022-11-28 13:42:12 +01:00 |
Mattia Giambirtone
|
582d29d149
|
Fixed issues with shadowing and cross-shadowing
|
2022-11-27 14:33:45 +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
|
ab30d0d891
|
Assignment now checks the type of the operand against the assignee
|
2022-11-23 09:43:22 +01:00 |
Mattia Giambirtone
|
b589f8109a
|
Added missing files
|
2022-11-23 09:29:42 +01:00 |
Mattia Giambirtone
|
9567319c40
|
Major error formatting refactoring. Improved warning system
|
2022-11-23 01:02:35 +01:00 |
Mattia Giambirtone
|
43d67562f1
|
Added more warnings
|
2022-11-22 15:27:32 +01:00 |
Mattia Giambirtone
|
a3b4fd1048
|
Initial warning support
|
2022-11-22 15:13:42 +01:00 |
Mattia Giambirtone
|
61aee1c0c4
|
Branch name is now filled in automatically in config.nim
|
2022-11-05 16:41:32 +01:00 |
Mattia Giambirtone
|
b93ac201f2
|
Fixed all bugs: test suite is passing
|
2022-11-05 14:27:57 +01:00 |
Mattia Giambirtone
|
ce136a7a3c
|
Implemented forward declarations
|
2022-11-05 14:03:49 +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
|
6f444582a4
|
Improved GC debugging
|
2022-11-05 09:23:51 +01:00 |
Mattia Giambirtone
|
d09b72694e
|
Fixed GC issues
|
2022-11-05 09:14:18 +01:00 |
Mattia Giambirtone
|
709b40341c
|
Fix typo
|
2022-11-04 15:33:07 +01:00 |
Mattia Giambirtone
|
1e29796278
|
Simplified reallocate() and more failed attempts at fixing GC issues
|
2022-11-04 15:30:22 +01:00 |
Mattia Giambirtone
|
e09db61bc6
|
Fixed support for type declarations in the parser
|
2022-11-04 14:56:42 +01:00 |
Mattia Giambirtone
|
31a995b0d8
|
Switched from TableRef to array for OperatorTable
|
2022-11-03 13:04:01 +01:00 |
Mattia Giambirtone
|
159530072b
|
Minor fix to getStackPos. Git commit hash is now auto filled in config.nim
|
2022-11-03 12:30:25 +01:00 |
Mattia Giambirtone
|
28798789dd
|
Updated config.nim
|
2022-11-03 11:01:40 +01:00 |
Mattia Giambirtone
|
5e1c16bb39
|
Renamed lookupPaths to moduleLookupPaths
|
2022-11-03 11:01:28 +01:00 |
Mattia Giambirtone
|
55a112a1ab
|
Attempts at fixing GC issues
|
2022-11-03 10:55:27 +01:00 |
Mattia Giambirtone
|
c1deebf43b
|
Stopped using ref objects and removed recursive dependency between gc and VM
|
2022-11-02 13:16:43 +01:00 |
Mattia Giambirtone
|
e046981f4b
|
Fix for closures
|
2022-11-02 12:03:14 +01:00 |
Mattia Giambirtone
|
b903005504
|
Initial work on fixing calling functions assigned to variables
|
2022-10-25 11:17:38 +02:00 |
Mattia Giambirtone
|
dc626a90d9
|
Improved VM debugger, fixed bugs with fixing CFI offsets, minor docs and code changes
|
2022-10-24 13:53:27 +02:00 |
Mattia Giambirtone
|
6c305d6382
|
Disabled the GC in the entire VM module and updated config.nim
|
2022-10-21 19:50:07 +02:00 |
Mattia Giambirtone
|
9573769868
|
Various fixes to module system
|
2022-10-21 16:10:00 +02:00 |
Mattia Giambirtone
|
1c54243d43
|
Various bug fixes to scopes
|
2022-10-17 12:03:27 +02:00 |
Mattia Giambirtone
|
11f725e176
|
Added new modular standard library
|
2022-10-17 11:28:54 +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
|
8667cbdceb
|
Initial ground work on generics, some stuff is broken :(
|
2022-10-13 16:52:37 +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
|
807b48bac9
|
Renamed compareTypes to compare
|
2022-10-11 10:01:01 +02:00 |
Mattia Giambirtone
|
c168d1584b
|
Updated compiler error messages and Generic type object, minor name changes
|
2022-10-11 09:59:27 +02:00 |
Mattia Giambirtone
|
9ef80535f3
|
Minor fixes to operator system and updated compiler error messages
|
2022-10-11 09:52:49 +02:00 |
Mattia Giambirtone
|
318f09541a
|
Fixed config.nim
|
2022-10-11 09:36:33 +02:00 |
Mattia Giambirtone
|
61dceab9fd
|
Fixed grammatical error in docs
|
2022-10-11 09:07:50 +02:00 |
Mattia Giambirtone
|
15f3143599
|
Removed makefile + minor fixes
|
2022-10-11 09:07:25 +02:00 |
Mattia Giambirtone
|
3e6e9da475
|
Fixed a bug where regular functions were mistaken for closures
|
2022-10-08 15:48:26 +02:00 |
Mattia Giambirtone
|
ca5a1c1bc9
|
Updated config.nim
|
2022-10-08 15:21:32 +02:00 |
Mattia Giambirtone
|
66cd6be0be
|
Minor additions/changes
|
2022-10-08 15:21:13 +02:00 |
Mattia Giambirtone
|
11c8c0a5ab
|
Definitive fix for closures
|
2022-10-08 09:18:35 +02:00 |
Mattia Giambirtone
|
fc74bab529
|
Minor fix to the VM and updated closures test
|
2022-10-07 16:27:08 +02:00 |
Mattia Giambirtone
|
e759e6cbb2
|
Various fixes to closures. Fixed chained calls and local scopes
|
2022-10-07 15:55:41 +02:00 |
Mattia Giambirtone
|
a4bccba6cd
|
Various fixes to closures and function objects
|
2022-10-06 09:57:19 +02:00 |
Mattia Giambirtone
|
9c878e5b9e
|
Fix some stuff?
|
2022-10-06 00:21:25 +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
|
885d6e3ea8
|
Fixed a bug in the type system with consecutive calls
|
2022-08-19 09:08:49 +02:00 |
Mattia Giambirtone
|
66b409bbd4
|
Updated config.nim
|
2022-08-19 08:53:49 +02:00 |
Mattia Giambirtone
|
058b021493
|
Fixed some bugs with void functions in the compiler
|
2022-08-18 23:49:20 +02:00 |
Mattia Giambirtone
|
8e53b19233
|
Various parser adjustments and compiler fixes
|
2022-08-18 22:07:46 +02:00 |
Mattia Giambirtone
|
4fdd90614a
|
Various fixes to the GC, added a few more tests
|
2022-08-18 19:18:29 +02:00 |
Mattia Giambirtone
|
95315a0094
|
Minor changes and fixes
|
2022-08-18 11:15:55 +02:00 |
Mattia Giambirtone
|
ae6da275fa
|
Implement a M&S collector
|
2022-08-18 03:17:52 +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
|
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
|
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 |