Commit Graph

345 Commits

Author SHA1 Message Date
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 382a6c141b Updated README 2022-11-28 19:04:19 +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 0ed67cff1b Minor update to generics2 test 2022-11-28 18:27:04 +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 de981a2ec6 Added test for namespace shadowing 2022-11-27 14:34:09 +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 29b6aeb9f3 Updated README 2022-11-05 14:33:19 +01:00
Mattia Giambirtone edb6fdb7e6 Fixed TODO list for gitea's gay markdown renderer 2022-11-05 14:31:52 +01:00
Mattia Giambirtone b93ac201f2 Fixed all bugs: test suite is passing 2022-11-05 14:27:57 +01:00
Mattia Giambirtone d048870165 Added test for forward declaration 2022-11-05 14:04:08 +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