Christoffer Lerno
e91f6e268e
0.5.2: Allow trailing comma in calls and parameter declarations #1092 . Fixes issue where single character filenames like 'a.c3' would be rejected. Improve error messages for incorrect user defined foreach. Fix bug with generics in generics. Fix to error with modified vector parameters. Crash with lhs vector inference. Fixes to priority queue.
2023-12-23 23:15:51 +01:00
Poly2it
2595ed5cc9
Add compilation instructions for Void Linux
2023-12-09 15:15:17 +01:00
Christoffer Lerno
1d61ace302
Do not link with debug libc on win32 when using cross compile libs. Add delete methods to dstring. Fixes to macOS aarch64 codegen. Use glibc backtrace when available. Add load_* methods to file. The cast (int[8])int_slice[:8] now works.
v0.5.1
2023-12-08 18:59:57 +01:00
Christoffer Lerno
a50c5f4f7c
Fixes to the grammar.
2023-11-26 20:06:38 +01:00
Christoffer Lerno
a46bf4fbe0
Improve "const" error message #1079 .
2023-11-22 19:12:04 +01:00
Christoffer Lerno
0d1eab5c15
Fix of incorrect error recovery leading to confusing errors #1080
2023-11-22 19:12:04 +01:00
Christoffer Lerno
3255183ee4
0.5 release.
release_0.5
2023-11-20 23:48:18 +01:00
Tiago Teixeira
66b65a042e
Add CMake option to link c3 dynamically to LLVM/LLD ( #1077 )
...
* Add Cmake option to link c3 dynamically to LLVM/LLD
To link dynamically, use
`cmake -DC3_LINK_DYNAMIC=ON <other-options> ../`
* formatting
2023-11-20 18:10:19 +01:00
Christoffer Lerno
b8db118e64
Use signals to create the stack trace.
2023-11-20 17:17:39 +01:00
Christoffer Lerno
7c15cf2788
Hacky update to stacktrace.
2023-11-20 14:10:12 +01:00
Christoffer Lerno
31538d5955
Fix to backtrace
2023-11-20 12:39:20 +01:00
Christoffer Lerno
337eac6d2f
Only fallback on native backtrace if there is no backtrace()
2023-11-20 11:36:38 +01:00
Pierre-Nicolas Clauss
e826f02da5
feat(lib/std): get backtrace for static binaries.
2023-11-20 09:46:25 +01:00
Christoffer Lerno
d5281b10dd
Cleanup use of macro inspection to use @typekind and @typeid macros.
2023-11-18 23:35:18 +01:00
Christoffer Lerno
87fdb5956e
Improved backtrace on platforms without glibc. Added $$frameaddress and $$returnaddress properly.
2023-11-18 20:13:11 +01:00
Christoffer Lerno
00019f9d76
Small update
2023-11-17 22:10:31 +01:00
Christoffer Lerno
f257befd86
Add compatibility matrix.
2023-11-17 22:08:59 +01:00
Christoffer Lerno
07c27f3292
Remove emulated stack trace.
2023-11-17 07:27:17 +01:00
Christoffer Lerno
ffb0021d04
Use backtrace on windows. Updated backtrace API
2023-11-17 00:36:42 +01:00
Christoffer Lerno
81c93e3488
Use backtrace on windows. Updated backtrace API
2023-11-16 21:39:27 +01:00
Christoffer Lerno
587d5578ab
Fix emit location.
2023-11-13 21:42:38 +01:00
Christoffer Lerno
9345e4270a
Update panic emit.
2023-11-13 19:49:25 +01:00
Christoffer Lerno
1dde6092e5
Version update, remove unused code.
2023-11-13 18:25:06 +01:00
Christoffer Lerno
5e8816e6df
Fixes to native backtrace.
2023-11-13 17:20:46 +01:00
Christoffer Lerno
dc0aa35522
Native Linux backtrace.
2023-11-12 15:20:24 +01:00
Christoffer Lerno
f39aa1a41e
Add location tracking for memory allocations.
2023-11-09 22:03:25 +01:00
Christoffer Lerno
e31f2a03ba
Add location tracking for memory allocations.
2023-11-09 11:20:29 +01:00
Christoffer Lerno
1e38ccdd2b
Fix missing free on GrowableBitSet. init_new/init_temp for GrowableBitSet, LinkedList, List, HashMap, DString, ByteBuffer. Interface to_string renamed to_new_string. Change in allocator usage, malloc is now heap. Added new_array, new_zero_array, new, new_clear, clone. Concat => concat_new. string::printf => string::new_format, string::tprintf => string::tformat. "to_*" are now "to_new_*" and "to_temp_*". "from_*" is "new_from*"
2023-11-09 01:59:49 +01:00
Christoffer Lerno
69470b8738
Improved errors on optional return. Fixes to @nodiscard erroring. Addresses #1062
2023-11-03 23:50:15 +01:00
Christoffer Lerno
5dedaa8e67
Improve error message when creating an exe and the name is already used by a directory.
2023-11-02 21:24:44 +01:00
Christoffer Lerno
eab0b417de
Fix to print.
2023-11-01 14:08:29 +01:00
Christoffer Lerno
5e4cfacfcb
Rename "main" variable in ct_defined analysis.
2023-11-01 12:53:32 +01:00
Christoffer Lerno
120e21b80b
Convencience function for random + entropy function.
2023-10-31 22:21:38 +01:00
Christoffer Lerno
cd7a03c2cf
Interface based streams. Fix for initializing with a force unwrap inside. Allow $define to take a list. Allow $define to return error on argument type mismatch in call. Fixed broken bit operations on boolean vectors.
2023-10-31 01:06:59 +01:00
Christoffer Lerno
1aa038c92f
Interface based streams. Fix for initializing with a force unwrap inside. Allow $define to take a list. Allow $define to return error on argument type mismatch in call. Fixed broken bit operations on boolean vectors.
2023-10-31 01:06:59 +01:00
Christoffer Lerno
e4c1328ef2
Better checks for missing @dynamic. Addresses #1055 .
2023-10-28 04:12:43 +02:00
Christoffer Lerno
e17bb5f321
Void* should never deref and should allow methods to be attached to it.
2023-10-27 00:10:59 +02:00
Christoffer Lerno
a0bc03a9f5
Fix uses of @convertible.
2023-10-26 22:21:16 +02:00
Christoffer Lerno
70e7e4b1d2
Enable mingw
2023-10-26 18:54:12 +02:00
Pierre-Nicolas Clauss
7d16d9acaf
fix(build_options): detect -z flag
2023-10-26 14:23:13 +02:00
thecalculus
a7d032df21
fix: argument parsing error 'sdk_path-version' instead of 'sdk-version'
2023-10-26 13:29:39 +02:00
Christoffer Lerno
9af37fe427
$and, $or, $is_const, $assignable, .is_eq, .is_ordered, $defined($vatype(2)) works looking if we can create a type, $defined(foo[0]) $defined(foo()). Remove $checks and @checked. Improvide casting checks to always work without destructive changes.
2023-10-24 22:06:04 +02:00
Christoffer Lerno
8a12dc5bd4
Fix issue where inferred vectors where incorrectly handled in unions and structs.
2023-10-21 22:10:00 +02:00
Christoffer Lerno
d01d8d3663
"protocol" => "interface"
2023-10-20 14:12:08 +02:00
Pierre-Nicolas Clauss
e380075852
fix: standard library search paths
...
Path construction for locating the standard library expects ending
slashes.
2023-10-19 13:04:43 +02:00
Pierre-Nicolas Clauss
7df5bc0017
Add more paths to search for the standard library
...
Module `std` is searched first in a `c3` subdirectory.
Search directories are, in order and relative to the compiler executable
location:
- `lib/c3` relative to the parent directory
- `lib` relative to the parent directory
- `/lib/c3`
- `/lib`
- `/c3`
- `/`
- `c3` relative to the parent directory
- the parent directory
- `lib/c3` relative to the grand-parent directory
- `lib` relative to the grand-parent directory
2023-10-17 13:55:51 +02:00
Christoffer Lerno
9b61ddb876
Add @pure to asm. Allow regular statements in naked function.
2023-10-15 19:11:11 +02:00
pini
76fa404b89
Feat/asm x86 ( #1046 )
...
* fix(asm): consider asm blocks as volatile
When asm blocks are not marked as volatile, they may be (wrongly)
discarded by LLVM optimization passes.
* fix(asm): mark syscall as clobbering return register
The `syscall` instruction returns the system call result in the `rax`
register.
* feat(asm): add push instructions.
* feat(asm): add pop instructions
2023-10-14 20:50:45 +02:00
Christoffer Lerno
682dfd0e47
Update default asm dialect on asm strings. Fix naked function analysis.
2023-10-14 13:56:53 +02:00
Christoffer Lerno
80a9842a25
Fix incorrect check for naked functions.
2023-10-14 12:46:31 +02:00