Christoffer Lerno
e1b5b0b60c
Implement static finalize / initialize. Version bump.
2022-09-28 17:18:20 +02:00
Christoffer Lerno
a66c0942f8
Adding saturated builtins. Remove LLVM 12 support. Remove old llvm optimizer use.
2022-09-17 12:03:08 +02:00
Christoffer Lerno
ba9b203c52
Cleanup.
2022-09-15 09:50:46 +02:00
Christoffer Lerno
03c627f646
Fix asm string bug.
2022-09-13 19:15:17 +02:00
Christoffer Lerno
fa89ea7b79
Add checks on enum conversion in safe mode. Bump to 0.3.38.
2022-09-09 17:18:27 +02:00
Christoffer Lerno
4fbdb79b65
Add some fixes to asm + test case.
2022-09-05 22:19:45 +02:00
Christoffer Lerno
1a9a71f4c4
Inline asm first checkin.
2022-09-05 13:29:03 +02:00
Christoffer Lerno
52bcf4654a
Reduce max params to 127. Hint when using more. Allow function pointers to have default and named parameters. Bump version to 0.3.27
2022-08-25 17:55:25 +02:00
Christoffer Lerno
821b6a7ffa
Updated pointer offset handling. Version bump. This fixes variant[2] { &&1, &&2 } init.
2022-08-20 11:43:00 +02:00
Christoffer Lerno
7805fb8d1c
More codegen cleanup.
2022-08-13 00:19:09 +02:00
Christoffer Lerno
d93c7090f6
Adding wrapper functions to a lot of the LLVM calls.
2022-08-12 23:20:35 +02:00
Christoffer Lerno
44df6eb75b
Cleanup.
2022-08-12 18:13:24 +02:00
Christoffer Lerno
5cacc41925
Add global builder / updated codegen.
2022-08-12 01:50:48 +02:00
Christoffer Lerno
90dfc24491
General cleanup and rearranging code.
2022-08-11 02:20:22 +02:00
Christoffer Lerno
5ac35a49fd
Minor cleanup. Fix of do { } while(1) loops. Bump to 0.3.9
2022-08-10 16:37:27 +02:00
Christoffer Lerno
cdff5c3e26
Dev ( #500 )
...
Single code path for kind/inner/len/sizeof on type and typeid. Fix of #493 . Bump to 0.2.24. Remove ´func´ deprecated keyword. Unify builtin access. Enum and fault name reflection.
2022-07-26 00:56:59 +02:00
Christoffer Lerno
4afec24434
More advanced introspection.
2022-07-20 12:22:03 +02:00
Christoffer Lerno
6cf3c9f46b
Fix in nested block handling. @maydiscard and @nodiscard annotations. If the common type of int[x] and int[y] is int[]
2022-07-17 19:48:24 +02:00
Christoffer Lerno
4beb7eff8f
Add support for : slices. Version bumped to 0.2.16
2022-07-17 19:48:24 +02:00
Christoffer Lerno
b1d83e2ccd
Auto-import std::core. Fix module assignment of declarations. Introspection improvements. Deref null error panics in safe mode. Support for LLVM 15
2022-06-29 21:57:35 +02:00
Christoffer Lerno
df41caabdd
Global @align fixed #446 .
2022-06-04 23:19:27 +02:00
Christoffer Lerno
890c4bc435
0.2.0. Build system improvements. Target changes x64-windows -> windows-x64, x64-darwin -> macos-x64. Improved mac support. LLD linking for Mac, Windows, Linux. Cross linking for Mac, Windows. Clean up string use. Fix of debug handling of multiple compilation units per module. MSVC CI
2022-04-26 13:20:33 +02:00
Christoffer Lerno
8743223dd6
Allocators. Rename of "optenum" to fault. Memcpy and memset added. Cleanup of declaration use.
2022-04-09 20:07:59 +02:00
Christoffer Lerno
2e2a1ca21a
Fix defer with static variables.
2022-03-31 10:11:37 +02:00
Christoffer Lerno
b31629c5e8
Removal of "or_else jump". Fixes to defer & macros/blocks, optimized failable return. @noscope macros removed. Disallow meaningless defer.
...
Correctly show error on return or rethrow inside of a defer. Fix copying an access expression. Removing scoped expr.
2022-03-26 20:16:36 +01:00
Christoffer Lerno
6789fab93c
Panic function that may be redefined. Trap and stacktrace builtins. Bug using builtin fixed. Fixes to using $$LINE and friends. Produces a stacktrace on error.
2022-03-18 12:43:17 +01:00
Christoffer Lerno
1061b4e1dd
Make doc an AST type.
2022-03-11 12:24:07 +01:00
Christoffer Lerno
e02362de0c
Resolve contracts as they are encountered.
2022-03-11 11:17:39 +01:00
Christoffer Lerno
6a48f81485
Smaller Decl and Expr. Compressed TypeInfo.
2022-03-09 19:10:11 +01:00
Christoffer Lerno
069a2d40cb
Changing how defer works. Remove of undef. Simplify ensure.
2022-03-08 14:15:31 +01:00
Christoffer Lerno
9b0dfe8ba3
Cleanup: remove CT_ELIF ast node.
2022-03-04 17:08:47 +01:00
Christoffer Lerno
2802b2b96d
Ensure, $eval and $evaltype, @unreachable() replaces $unreachable. <Type>.sizeof
2022-03-04 15:49:17 +01:00
Christoffer Lerno
4f4bc80953
Symtab has a new hash map type. New, small, sourcespan, external symbols simplified. Updated docs.
2022-03-01 10:32:52 +01:00
Christoffer Lerno
8922399c36
Add $for
2022-01-24 22:52:01 +01:00
Christoffer Lerno
1e7ad2e241
Add $foreach
2022-01-24 18:53:44 +01:00
Christoffer Lerno
4059d22315
Remove unnecessary load in LLVM statement lowering. Added more tests from Clang.
2022-01-17 17:08:28 +01:00
Christoffer Lerno
041c096801
Refactored some of the llvm lowering. Work on TB. Disabled mimalloc due to issues with LLVM.
2022-01-09 21:23:37 +01:00
Christoffer Lerno
a176ae353b
Refactored function pointer.
2022-01-07 19:13:07 +01:00
Christoffer Lerno
8a840746f6
Compound statements are linked lists. Remove unused "global_symbols" "public_symbols" "qualified_symbols". Reduce max hash map load.
2022-01-05 19:40:44 +01:00
Christoffer Lerno
1d5ff71b21
Rearchitecture contexts. Fixing macro resulution, hash arguments and defers.
2022-01-04 20:45:58 +01:00
Christoffer Lerno
fd1353f0f1
Removed scratch hash table use for parameter checks. Faster symtab setup. Scrubbed the lexer somewhat without changing behaviour.
2022-01-01 22:08:07 +01:00
Christoffer Lerno
0a7200ac24
Symtab default size change, some minor cleanup.
2021-12-29 23:36:15 +01:00
Christoffer Lerno
a0be188902
Lexing updated with simpler code. Note: may have bugs.
2021-12-27 15:45:54 +01:00
Christoffer Lerno
6f77fdf800
Update assert for WASM part 3
2021-12-20 02:43:36 +01:00
Christoffer Lerno
8f6dd64483
Update assert for WASM part 2
2021-12-20 02:35:01 +01:00
Christoffer Lerno
04c3efc3c3
Update assert for WASM
2021-12-20 00:32:27 +01:00
Christoffer Lerno
4b3232ead6
Some initial wasm support.
2021-12-19 12:18:43 +01:00
Christoffer Lerno
572aafe8b9
Remove use of LLVMBuildCall
2021-12-17 15:45:09 +01:00
Christoffer Lerno
1bb9c2d249
Allow the compiler to be called multiple times (while leaking)
2021-12-02 22:50:38 +01:00
Christoffer Lerno
e31d189837
Fix of issue of with generic typedefs.
2021-12-01 16:24:59 +01:00