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
Christoffer Lerno
89d4c2cab7
Allocator uses protocols. Fix bug where it was not possible to pass a ref variable as a ref variable. Correct codegen for !anyptr.
2023-10-14 12:39:46 +02:00
Christoffer Lerno
54f32ed71b
Fix alignment for remaining bitstruct binary ops. Turn off broken Mingw LLVM in CI.
2023-10-13 14:43:04 +02:00
Christoffer Lerno
fed343e3bb
Fix alignment for negating bitstructs. Update mingw LLVM versions in CI.
2023-10-13 13:57:44 +02:00
Christoffer Lerno
fd21b057eb
Missing target directive in test.
2023-10-13 13:37:27 +02:00
Christoffer Lerno
e81e91be93
Fix void* <=> protocol casts. Fix of tests.
2023-10-13 12:44:58 +02:00
Christoffer Lerno
9b714e1dbb
Remove TB.
2023-10-12 22:00:49 +02:00