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
92b4eeaa35
Update codegen for failable folding. Fixes chained init, e.g. "int! a = b = TestErr.FOO!"
2022-08-10 21:32:29 +02:00
Christoffer Lerno
cfcf5cbc16
Bump to 0.3.7. Fixes issue with bitoperations on booleans.
2022-08-10 11:01:14 +02:00
Christoffer Lerno
9473adbc35
Added $$sysclock() builtin.
2022-08-10 01:24:16 +02:00
Christoffer Lerno
ebd7611164
Allow compile time pointer manipulation. Ternary bug fixes.
2022-08-09 12:05:49 +02:00
Christoffer Lerno
f93c20ca34
$$syscall cleanup.
2022-08-05 12:24:33 +02:00
Christoffer Lerno
9866c7f9e9
Added $$syscall builtin.
2022-08-05 12:01:50 +02:00
Christoffer Lerno
398e19d727
Corrected default alignment on temp alloc. Added str_index_of. Added simple getline. Added a simple calculator. Allow [1..] to create a zero length slice. Added some initial macro contracts. Fix accessing enum functions. Support for @checked. Bump to 0.3.4
2022-08-05 00:42:52 +02:00
Christoffer Lerno
cc8884d3d1
Allocators separated into aligned and non aligned operations.
2022-08-03 20:53:37 +02:00
Christoffer Lerno
a109efd14c
Fix bug with ternary failables.
2022-08-01 11:22:58 +02:00
Christoffer Lerno
64d883cb99
Fix bug on runtime "nameof" with optional values. Fixed issues with integer to enum casts. 0.2.25. Added enum_by_name.
2022-07-27 00:46:02 +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
812bd8b3d0
Added $converable / $castable. Simplify and corrected if try/catch parsing. Fix bug with { [A] = 1 }
2022-07-24 15:10:04 +02:00
Christoffer Lerno
002ee006c1
More efficient int[] a = {}; Disallow zero length arrays. Bump to 0.2.19 ( #489 )
...
More efficient int[] a = {}; Disallow zero length arrays. Bump to 0.2.19. Improve error on mistyped types.
2022-07-20 22:25:03 +02:00
Christoffer Lerno
d3a053e049
Updated mangling and bump to 0.2.18
2022-07-20 12:22:03 +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
3f6b0646b3
An initial printf. Added type.inner and type.len. Bump to 0.2.15
2022-07-14 02:43:53 +02:00
Christoffer Lerno
28a8e17690
Vararg abi fix. Version bumped to 0.2.14
2022-07-13 14:19:09 +02:00
Christoffer Lerno
92542ac1f9
Fix bug with bit struct initialization and zeros. Allow float mod. Add float.max/min. Version bumped to 0.2.13
2022-07-13 00:13:34 +02:00
Christoffer Lerno
c8a614e43f
LLVM 15 compatibility fixes ( #465 )
...
More variant code. Fixes to typekind. Fixes to macro with failable returns. Remove use of LLVMConstInsert etc. Version 0.2.8
2022-07-06 16:41:52 +02:00
Christoffer Lerno
bb28f6e61c
Fix stack setting after error return. Some fixes to examples.
2022-07-02 10:54:40 +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
b0c55ff777
Support enum associated values.
2022-05-11 20:55:09 +02:00
Christoffer Lerno
9691d50a6f
@ is now part of the name of an attribute or a macro. Macros without '@' must be function-like.
2022-05-08 22:16:33 +02:00
Christoffer Lerno
29a9769651
Ordinal based enums.
2022-05-08 21:39:00 +02:00
Christoffer Lerno
22ee082d00
0.2.1 SysV ABI fix for passing certain things by struct. Fix implicitly converting to float in the case of myfloat *= -1. Prefer inferred constant over global. Allow locals to shadow global variables.
2022-04-27 16:43:25 +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
Dmitry Atamanov
151cbfd706
Semi-implemented foreach for vectors ( #423 )
...
Implement foreach for vectors
2022-04-09 20:09:35 +02:00
Christoffer Lerno
b99db4be24
Allocators. Rename of "optenum" to fault. Memcpy and memset added. Cleanup of declaration use.
2022-04-09 20:07:59 +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
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
8b8a8d81db
Fix of issue with "a ?? false"
2022-03-21 13:22:59 +01:00
Christoffer Lerno
05d8e6c7b8
Fix debug panic for vector shift and division.
2022-03-20 19:39:31 +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
e02362de0c
Resolve contracts as they are encountered.
2022-03-11 11:17:39 +01:00
Christoffer Lerno
c414459075
Fix bug with missing debug location.
2022-03-10 15:55:44 +01:00
Christoffer Lerno
8f6fb8b7d7
Move body param as decl. Fix lexer bug with docs.
2022-03-10 14:54:52 +01:00
Christoffer Lerno
0565e87e5e
Support '@pure' and parse the optreturn tag.
2022-03-10 09:46:30 +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
f54a93890a
Remove the EXPR_CONST_IDENTIFIER
2022-02-18 13:56:13 +01:00