Christoffer Lerno
81bea9bad6
Updated untyped lists.
2022-09-24 14:35:58 +02:00
Christoffer Lerno
52f3948026
Cleanup of untyped lists.
2022-09-23 10:47:56 +02:00
Christoffer Lerno
5386b6fe50
Improve error message #543
2022-08-28 01:00:11 +02:00
Christoffer Lerno
9a69a13b04
Fixes to or/and with rethrow.
2022-08-15 14:34:18 +02:00
Christoffer Lerno
fc943a98ef
Foreach_r, bump to 0.3.15
2022-08-13 03:04:09 +02:00
Christoffer Lerno
44df6eb75b
Cleanup.
2022-08-12 18:13:24 +02:00
Christoffer Lerno
571728a42e
Bump version to 0.3.14. Better non-lvalue errors. Dereferenced optional pointers are not lvalues.
2022-08-12 00:33:09 +02:00
Christoffer Lerno
852c08e5fe
Better handling of foreach lowering.
2022-08-11 21:25:11 +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
6d2ab0c985
Fix ordering of @builtin. malloc <-> alloc, malloc, calloc, realloc, free builtins.
2022-08-04 01:49:36 +02:00
Christoffer Lerno
cc8884d3d1
Allocators separated into aligned and non aligned operations.
2022-08-03 20:53:37 +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
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
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
09d50ebf6c
New import rules.
2022-06-04 01:41:23 +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
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
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
6a9b14d107
Added regression test for errors.
2022-03-21 18:18:14 +01:00
Christoffer Lerno
8b8a8d81db
Fix of issue with "a ?? false"
2022-03-21 13:22:59 +01:00
Christoffer Lerno
4258fe4d01
Simple check for [in] and [out] parameters.
2022-03-10 12:46:45 +01:00
Christoffer Lerno
322d714305
Dev ( #404 )
...
Remove 'errtype' name and reduce Expr / TypeInfo memory footprint.
2022-03-08 23:38:27 +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
dce33ba5b5
Fixing #380 where const aggregates were copied by value.
2022-01-20 16:52:28 +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
ea3b50d039
Codegen with better annotations on globals.
2022-01-10 13:58:15 +01:00
Christoffer Lerno
869aa7ed76
Do not store direct parameters that are only read.
2022-01-04 23:16:32 +01:00
Christoffer Lerno
c52629d60f
Main arguments are now slices if desired.
2021-12-17 01:28:57 +01:00
Christoffer Lerno
3242bcabc0
Do-while uses for codegen and somewhat smaller llvm codegen
2021-11-28 01:35:09 +01:00
Christoffer Lerno
f1f268df4a
Fix of test.
2021-11-19 15:39:02 +01:00
Christoffer Lerno
6febd8a143
Optimized assign of failable.
2021-11-19 13:29:43 +01:00
Christoffer Lerno
8cc8c321a2
Optimized rethrow expr. Fix to "Foo! x = {}" which would break. Remove unnecessary zeroing failables. Variables that are undefined do not have failable status zeroed.
2021-11-19 13:06:43 +01:00
Christoffer Lerno
b52b42d4da
Complete transition to fn. Introduce global/threadlocal
2021-11-16 17:46:44 +01:00
Christoffer Lerno
29e7af843a
Remove old try-catch. Top down promotion for binary etc. Prevent non-simple widening. Introducing wildcard failable. Move LLVM GEP usage. Regcall test and fix. Optimized slice assign.
2021-10-26 18:40:41 +02:00
Christoffer Lerno
4ca7ba048b
Updated to use ?, ?? and !! instead of !!, else and "else $unreachable"
2021-10-20 23:27:13 +02:00
Christoffer Lerno
b4df56db54
Removed original_type, pure, removed bigint, added i128 type, lots of fixes to $Foo, reassigning ct type, catch/macro, "!", removed type inference.
2021-10-19 10:39:02 +02:00
Christoffer Lerno
fb9be722bc
Fix issue with default macro arguments. Test of ?? instead of else. Added libc
2021-09-20 22:25:01 +02:00
Christoffer Lerno
1751e7ece5
Remove old try/catch. Remove incorrect flattening. Basic asm. Start work on if-catch-switch.
2021-08-24 12:41:20 +02:00
Christoffer Lerno
b4be829c71
Assert a try will unwrap. #271
2021-08-18 18:22:05 +02:00
Christoffer Lerno
f180a0d44a
Change anyerror { i64, i64 } -> i64. Cleaned up platform data and max tls / vector align. Initial work on bitstruct (just parsing). Updated try / catch semantics.
2021-08-18 17:31:09 +02:00
pitust
95836e98a2
Create {x86,x64}-elf targets, and make all targets more consistent ( #273 )
...
* Add triples for x86 and x64 targets
2021-08-16 18:38:56 +02:00
Christoffer Lerno
3a1f417ea5
Updated try tests.
2021-08-11 19:17:45 +02:00
Christoffer Lerno
da76777ee4
Fixes to aarch64 float struct return. Missing byval and align on calls. This *breaks* try-catch.
2021-08-11 19:17:45 +02:00
Christoffer Lerno
991f24d06a
Added chained unwrap test and fixed the same.
2021-08-03 19:57:44 +02:00
Christoffer Lerno
c12cba67a8
Fix of try(...) { ... } and failable state on function call.
2021-08-03 19:57:44 +02:00