Christoffer Lerno
aa216fa510
Dev ( #859 )
...
* Fix bug where analysing subexpr relied on them not being analysed. Fix issue where converting a const initializer bool to integer failed. Fix of issue where the case check assumed other cases were const values.
* Fix bug where analysing subexpr relied on them not being analysed. Fix issue where converting a const initializer bool to integer failed. Fix of issue where the case check assumed other cases were const values. Remove PTHREAD for windows.
* Fix bug where analysing subexpr relied on them not being analysed. Fix issue where converting a const initializer bool to integer failed. Fix of issue where the case check assumed other cases were const values. Remove PTHREAD for windows.
2023-07-17 02:00:27 +02:00
Christoffer Lerno
8a4e6f7dd3
Fix bug where @local declarations would get registered as @private for generic modules. #856 . Update to consistent tab spacing.
2023-07-15 19:27:24 +02:00
Christoffer Lerno
4325d017c8
Compacted section list. Somewhat more controlled ctarg search.
2023-07-15 16:31:53 +02:00
Christoffer Lerno
34306cbf5d
Fixes missing checks to body arguments. Do not create debug declaration for value-only parameter. Bug in alignment for atomics. Macro ref parameters are pointers.
2023-07-15 15:11:44 +02:00
Christoffer Lerno
fc316b1031
Improve the error message on accidentally passing a ref parameter as a pointer.
2023-07-11 12:18:18 +02:00
Christoffer Lerno
dddeca1856
Remove assert(try). Prevent nextcase with expression if there is no switch. Fix issue with multiple declarations and compile time variables. Nextcase default. Dropped support for non-const-int ranges.
2023-07-11 01:04:35 +02:00
Christoffer Lerno
cd73b9bc42
Require exhaustive enum switching.
2023-07-09 16:25:15 +02:00
Christoffer Lerno
8b605d9183
$embed.
2023-07-09 01:18:01 +02:00
Christoffer Lerno
5f711408c0
Fix compiler error when taking the address of a parameterized function. Fix issue when being generic over a function type, this fixes #836 .
2023-07-08 13:32:32 +02:00
Christoffer Lerno
4f7b42cdc4
New generic syntax and ad hoc invocation.
2023-07-06 23:43:36 +02:00
Christoffer Lerno
848a5212ef
Fixes #811 . Update some stdlib methods. Header printout correctly picks a name. #804
2023-07-03 13:17:43 +02:00
Christoffer Lerno
f651a59294
Fix on rethrow + macros.
2023-06-27 13:19:28 +02:00
Christoffer Lerno
be04473af4
Name change, some updates using "from end" indexing.
2023-06-24 18:21:16 +02:00
Christoffer Lerno
0eee9daf1d
Macros generating lambdas now actually is a thing.
2023-06-22 23:42:40 +02:00
Christoffer Lerno
4d552ae44d
Update $include syntax and behaviour. Remove top level $if completely.
2023-06-21 16:27:53 +02:00
Christoffer Lerno
76d75ac375
Fix passing temporary objects by reference for methods.
2023-06-13 12:22:35 +02:00
Christoffer Lerno
4c1edfb941
Dev ( #777 )
...
* The new @if directive.
2023-06-10 23:16:28 +02:00
Christoffer Lerno
b794c893d6
Dynamic dispatch.
2023-05-25 22:28:45 +02:00
Christoffer Lerno
ddd0497922
Better lowering of distinct types. Noreturn function call expr recognized as a "jump" for escape analysis. Preferring "def" in libs. To upper / to lower for ascii. Initial dynlib support.
2023-05-21 21:41:01 +02:00
Christoffer Lerno
4d0f73a8f5
Consistent naming in allocators. Fix where cast from char array -> bitstruct would not work.
2023-05-10 10:30:37 +02:00
Christoffer Lerno
db8c46d6c5
Addition of "distinct" and "inline" as keywords. Removal of "alias" keyword.
2023-05-04 08:48:17 +02:00
Christoffer Lerno
809321e20c
Updated grammar. Removal of elif. Removal of ':' ';' in some ct statements. Empty faults is now an error. Remove "define" for types. Remove "private". Better errors on incorrect bitstruct syntax. Introduction of wildcard type rather than optional wildcard. Removal of scaled vector type. mkdir and rmdir. Disallow define @Foo() = { @inline }. Add handling for @optreturn and change it to @return!. Restrict interface style functions. Updated x64 ABI. stdlib updates to string. Removed deprecated functions. Update how variadics are implemented. Extended error messages. x86 ABI fixes. Shift check fixes. '!' and '?' are flipped. No trailing ',' allowed in functions. Fix to string parsing. Allow l suffix. Simplifying flatpath. any replaces variant, anyfault replaces anyerr. Allow getting the underlying type of anyfault. De-duplicate string constants. Fix of readme. Extended list. Fix of "(MyEnum)x + 1". Clock and DateTime types. Fixes to array concat.
2023-04-21 10:56:39 +02:00
Christoffer Lerno
ad7ee06635
Grammar updates. Updated enum member parsing.
2023-03-22 21:46:47 +01:00
Christoffer Lerno
1c4ab48da7
Update for mingw
2023-03-21 14:06:11 +01:00
Christoffer Lerno
0a826d588f
Update
2023-03-21 00:59:41 +01:00
Christoffer Lerno
93fa135d28
Deprecation of define Type = ...
2023-03-20 22:56:06 +01:00
Christoffer Lerno
8b0df0ee11
try? / catch?
2023-03-17 22:49:48 +01:00
Christoffer Lerno
e2b9a35dfe
Add tentative ".ordinal" on faults. Allow anyerr and fault to be initialized with null.
2023-03-15 14:32:00 +01:00
Christoffer Lerno
3cb94a2857
Temporarily disable LLVM 17. Generic module contracts enabled.
2023-03-14 23:25:52 +01:00
Christoffer Lerno
9b81623680
Make string literals default to char[]
2023-03-08 11:24:11 +01:00
Christoffer Lerno
1035de3b36
Remove all locations when enums are implicitly lowered to integers. Remove the menagerie of flattening functions. Incidentally this also fixes a bunch of not-yet tested errors with distinct types.
2023-03-04 22:14:29 +01:00
Christoffer Lerno
488472ecbb
Improve enum add/sub.
2023-03-03 17:43:13 +01:00
Christoffer Lerno
ea3b32f68b
Further casting cleanup.
2023-03-03 14:43:32 +01:00
Christoffer Lerno
a2911292d8
Simplify narrowing semantics.
2023-03-02 22:04:15 +01:00
Christoffer Lerno
07e4aab48b
Fix of bool -> float vector cast. Correctly widen C style varargs for distinct types and optionals.
2023-03-02 11:35:05 +01:00
Christoffer Lerno
0dcad6f5cf
Improve and simplify casts.
2023-03-01 22:43:50 +01:00
Christoffer Lerno
f8208f946b
Remove "generic" code paths.
2023-03-01 12:01:43 +01:00
Christoffer Lerno
9db845903e
Cleanup and allow complex array length inference, e.g. "int[*][2][*] a = ..."
2023-02-28 17:37:17 +01:00
Christoffer Lerno
cc19168c7b
Some general cleanup.
2023-02-28 01:15:30 +01:00
Christoffer Lerno
1c83a484da
Print warnings on deprecated.
2023-02-27 18:59:25 +01:00
Christoffer Lerno
bd8bff85d6
Add tracking allocator. Fix substruct issue.
2023-02-27 17:05:27 +01:00
Christoffer Lerno
dd4edfb747
Updated malloc/calloc/realloc/free deprecation of old helper functions. Add checks to prevent incorrect alignment on types when using malloc. Better errors from $assert. Added @deprecated. Fixed issue using named arguments after varargs.
2023-02-27 15:03:27 +01:00
Christoffer Lerno
feaf8b3b2c
Update HashMap functionality. Fix check when appending to VarString. Fix issue with decls accidentally invalidated during $checked eval. Fold optional when casting slice to pointer.
2023-02-27 00:10:01 +01:00
Christoffer Lerno
10272dbf38
Delay C abi lowering until requested on-demand to prevent circular dependencies.
2023-02-24 22:01:55 +01:00
Christoffer Lerno
8f5676b488
Add defer catch/try. Fix missing defer invoked on return a > 0 ? Foo.ABC! : 1
2023-02-21 20:10:03 +01:00
Christoffer Lerno
e3416a1c40
Allow @test with modules. Change name mangling for non exports.
2023-02-20 16:02:30 +01:00
Christoffer Lerno
62fbf4da47
Add simple bitstruct.
2023-02-18 16:59:52 +01:00
Christoffer Lerno
6e8c69cd52
Add & ^ | to bitstructs.
2023-02-18 16:21:30 +01:00
Christoffer Lerno
a0a5c940f1
Add --strip-unused.
2023-02-16 22:11:42 +01:00
Christoffer Lerno
0aa776d61b
Allow @export on modules, to implicitly @export all in the module section. Add expect on error comparisons, expecting them to be false by default. Support @extern on modules.
2023-02-16 13:05:09 +01:00