Commit Graph

1699 Commits

Author SHA1 Message Date
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
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