Christoffer Lerno
2600c3116c
Do not add the libc allocator if it isn't available.
2024-09-02 01:44:35 +02:00
Christoffer Lerno
d635cfb90f
printf will now show errors in the output when there are errors.
2024-08-31 19:36:18 +02:00
Christoffer Lerno
6cb6113c57
- Memory leak in Object when not using temp allocators.
...
- Tracking allocator would double the allocations in the report.
2024-08-31 03:35:39 +02:00
Christoffer Lerno
26acce246d
Fixed int128 div/mod. Fix WASM memory init priority.
2024-08-27 04:31:14 +02:00
Christoffer Lerno
388578c209
Too restrictive compile time checks for @const. Fixes to wasm nolibc in the standard library.
2024-08-26 13:33:15 +02:00
Christoffer Lerno
4b2019cf20
Add "allocator-required" functions.
2024-08-25 21:53:54 +02:00
Christian Buttner
19d37ef641
Add types::is_signed, is_unsigned and inner_type. ( #1365 )
...
Add `types::is_signed`, `is_unsigned` and `inner_type`.
2024-08-23 19:01:05 +02:00
Christian Buttner
59ed118e66
Address/memory/thread sanitizer.
2024-08-23 16:06:22 +02:00
Christoffer Lerno
d32861193b
DynamicArenaAllocator would not correctly free.
2024-08-20 22:42:01 +02:00
Christoffer Lerno
79a1639f8a
Fix aligned alloc for Win32 targets.
2024-08-19 15:25:00 +02:00
Christoffer Lerno
20b0bf43ad
Fix of dstring.
2024-08-18 09:50:54 +02:00
Christoffer Lerno
edfea639cf
- Introduce $vaarg[...] syntax and deprecate the old $vaarg(...).
...
- Similar change to `$vasplat`: `$vasplat` and `$vasplat[1..]`.
2024-08-16 09:28:28 +02:00
Christoffer Lerno
3ccb4b9ec3
$exec may now provide a stdin parameter. Deprecated path.append, path.tappend, getcwd, tgetcwd, path.absolute, ls. Deprecated env::get_config_dir, replaced by env::new_get_config_dir. Added path.has_extension, path.new_append, path.temp_append, new_cwd, temp_cwd, path.new_absolute, new_ls, temp_ls. Added dstring.replace Updated win escapes for exec.
2024-08-15 00:31:47 +02:00
Christoffer Lerno
2706495668
Add temp allocator scribble. Make bufferstream safer.
2024-08-11 01:17:03 +02:00
Christoffer Lerno
811cb2b95c
Add string methods to json, and fix issue in dstring when the formatter uses temp. Remove unnecessary use of temp allocator in to_format for json.
2024-08-10 19:13:58 +02:00
Samuel Goad
f85c4cd79f
Update string_iterator.c3 to include extra convenience methods ( #1327 )
...
Update string_iterator.c3 to include extra convenience methods
Added peek: returns the next character without incrementing current
Added has_next: checks if the iterator has another element
Added get: gets the current element (the same one that was returned with the previous call to next).
2024-08-09 23:10:46 +02:00
Christoffer Lerno
44db4a21fc
Add @tag and .tagof .has_tagof. Allow bitstructs to have attributes.
2024-08-09 15:03:44 +02:00
Christoffer Lerno
0ef0f62b69
Only destroy temp allocators on env::LIBC.
2024-08-08 12:48:01 +02:00
Christoffer Lerno
56b771a7ad
Support destroying temp allocators, and destroy temp allocators on exit.
2024-08-07 16:24:26 +02:00
Christoffer Lerno
14358417c8
Refactoring -> ensure built in aliases have a valid unit.
2024-08-05 21:44:02 +02:00
Christoffer Lerno
2748cf99b3
- Fix issue where a compile time parameter is followed by "...".
...
- Fix issue with some conversions to untyped list.
- Experimental change: add `+++` `&&&` `|||` as replacement for `$concat`, `$and` and `$or`.
2024-08-04 23:16:25 +02:00
Christoffer Lerno
8498cb6258
Add @const attribute for macros, for better error messages with constant macros #1293
2024-08-02 15:01:02 +02:00
Christoffer Lerno
e1a13e433f
Experimental xtensa support
2024-07-31 01:36:28 +02:00
Christoffer Lerno
e66001c182
Using winmain would call the wrong definition #1265 .
2024-07-29 15:04:32 +02:00
Christoffer Lerno
bf8ca989d6
Add --show-backtrace option to disable backtrace for even smaller binary.
2024-07-28 01:10:59 +02:00
Christoffer Lerno
34993a20fd
Fix broken WASM std library code.
2024-07-26 19:20:58 +02:00
Christian Buttner
edc55a2afd
Small fixes to stdlib. ( #1247 )
...
Small fixes to stdlib. Match the signature of `NativeConditionVariable.wait_timeout` and `NativeMutex.lock_timeout` of thread_win32.c3 to `ConditionVariable.wait_timeout` and `TimedMutex.lock_timeout` to avoid casting errors. Add `time::us`.
2024-07-20 19:19:16 +02:00
Christian Buttner
b18661a8b0
Make stdlib mem::allocator more complete. ( #1238 )
...
Make stdlib mem::allocator more complete. Fill in some gaps and docstrings. List.to_new_array. Handle overalignment smoothly in list.
2024-07-15 16:35:40 +02:00
Christoffer Lerno
fba706f10b
Updated sorting code.
2024-07-09 01:04:11 +02:00
Alex Anderson
900c1152d3
add insertion sort ( #1225 )
2024-07-08 18:53:47 +02:00
Christian Buttner
cc9ca35e04
Add $debugtrap builtin. ( #1220 )
...
Add `$breakpoint` builtin.
2024-07-04 00:50:29 +02:00
Christian Buttner
12051e7544
Fix $$unaligned_store arg check and add test. ( #1224 )
...
Fix `$$unaligned_store` arg check and add test.
2024-07-04 00:44:32 +02:00
Christoffer Lerno
ba5b045351
Fix Type->$Type in allocator #1223
2024-07-03 15:57:17 +02:00
Christian Buttner
10ed03d6bf
Extend win32 stdlib API.
2024-07-03 11:11:34 +02:00
Christoffer Lerno
91ad3ee0a2
Fix regression for math::log
2024-07-01 16:52:39 +02:00
Christoffer Lerno
09876cefde
@unaligned_store and @unaligned_load
2024-06-30 01:05:57 +02:00
Christian Buttner
0b971c2bd0
Fix off-by-one errors for stdlib unicode conversions.
2024-06-23 23:46:19 +02:00
Christoffer Lerno
f2e5c5e9b9
- Fix bug with @jump miscompile
...
- Remove "panic" text from unreachable() when safe mode is turned off.
2024-06-22 23:20:23 +02:00
Christoffer Lerno
819049d596
@str_hash, @str_upper, @str_lower, @str_find compile time macros.
2024-06-16 21:16:03 +02:00
Christoffer Lerno
147dee6ec7
Addition of $append and $concat functions. Added $$str_hash builtin. Fix to the macho runtime.
2024-06-16 01:57:05 +02:00
Christoffer Lerno
e293c435af
0.6.0: init_new/init_temp removed. LinkedList API rewritten. List "pop" and "remove" function now return Optionals. RingBuffer API rewritten. Allocator interface changed. Deprecated Allocator, DString and mem functions removed. "identity" functions are now constants for Matrix and Complex numbers. @default implementations for interfaces removed. any* => any, same for interfaces. Emit local/private globals as "private" in LLVM, following C "static". Updated enum syntax. Add support [rgba] properties in vectors. Improved checks of aliased "void". Subarray -> slice. Fix of llvm codegen enum check. Improved alignment handling. Add --output-dir #1155 . Removed List/Object append. GenericList renamed AnyList. Remove unused "unwrap". Fixes to cond. Optimize output in dead branches. Better checking of operator methods. Disallow any from implementing dynamic methods. Check for operator mismatch. Remove unnecessary bitfield. Remove numbering in --list* commands Old style enum declaration for params/type, but now the type is optional. Add note on #1086 . Allow making distinct types out of "void", "typeid", "anyfault" and faults. Remove system linker build options. "Try" expressions must be simple expressions. Add optimized build to Mac tests. Register int. assert(false) only allowed in unused branches or in tests. Compile time failed asserts is a compile time error. Remove current_block_is_target. Bug when assigning an optional from an optional. Remove unused emit_zstring. Simplify phi code. Remove unnecessary unreachable blocks and remove unnecessary current_block NULL assignments. Proper handling of '.' and Win32 '//server' paths. Add "no discard" to expression blocks with a return value. Detect "unsigned >= 0" as errors. Fix issue with distinct void as a member #1147 . Improve callstack debug information #1184 . Fix issue with absolute output-dir paths. Lambdas were not type checked thoroughly #1185 . Fix compilation warning #1187 . Request jump table using @jump for switches. Path normalization - fix possible null terminator out of bounds. Improved error messages on inlined macros.
...
Upgrade of mingw in CI. Fix problems using reflection on interface types #1203 . Improved debug information on defer. $foreach doesn't create an implicit syntactic scope.
Error if `@if` depends on `@if`. Updated Linux stacktrace. Fix of default argument stacktrace. Allow linking libraries directly by file path. Improve inlining warning messages. Added `index_of_char_from`. Compiler crash using enum nameof from different module #1205 . Removed unused fields in find_msvc. Use vswhere to find msvc. Update tests for LLVM 19
2024-06-12 10:14:26 +02:00
Christoffer Lerno
8b6735a6aa
Allow recursive function definitions as long as they are pointers #1182 . Add 'zstr' variants for string::new_format / string::tformat.
2024-04-16 19:42:32 +02:00
Christoffer Lerno
1a25746343
Regression: no stacktrace.
2024-03-12 17:31:06 +01:00
Christoffer Lerno
7ea3d230bb
0.5.5 features ( #1151 )
...
0.5.5 Disallow multiple `_` in a row in digits, e.g. `1__000`. #1138 . Fixed toposort example. Struct/union members now correctly rejects members without storage size #1147 . `math::pow` will now correctly promote integer arguments. `math::pow` will now correctly promote integer arguments. Added `new_aligned` and `alloc_aligned` functions to prevent accidental under-alignment when allocating simd. Pointer difference would fail where alignment != size (structs etc) #1150 . Add test that overalignment actually works for lists. Fixed array calculation for npot2 vectors. Use native aligned alloc on Windows and POSIX. Deprecates "offset". Simplification of the Allocator interface.
2024-02-22 17:13:51 +01:00
Christoffer Lerno
bec1116f86
Fixes to scoped mem report.
2024-02-17 11:52:18 +01:00
Christoffer Lerno
4ce62cf221
Fix of allocator::new.
2024-02-16 21:55:30 +01:00
Christoffer Lerno
748c737e8f
0.5.4: Hash variables accept designated initializers. @safemacro overrides the need for @ in macro names. Fixes to macro context evaluation. Updated allocator api. Removed install_win_reqs.bat. Deterministic @init for MacOS. Fixed temp memory issue with formatter. Support LLVM 19. Add support to compare bitstructs using == and !=. Support Windows .def files. Removed invalid grammar from grammar.y. Support compile time folding of &|^~ for bitstructs. output project setting now respected. Fix issue where constants were not properly constant folded. Add temp_push/pop. Aliased declarations caused errors when used in initializers. Fix export output. Fix of const ternary #1118 . Fix of $$MODULE in nested macros #1117 . Fix debug info on globals. out now correctly detects subscript[] use #1116 . Lateral implicit imports removed. Default to '.' if no libdir is specified. Improved error messages for --lib. Fix raylib snake example. Overzealous local escape check corrected #1127 . Improved yacc grammar #1128 . --linker argument #1067 . Fixes to the matrix operations #1130 . Added GenericList.
2024-02-15 21:39:33 +01:00
Christoffer Lerno
deb4cc7c4b
0.5.3: Single-module not respected. Fix issue with compiler defined types. Fix optimization levels for projects. Use GEP i8 on offsets. Optimize foreach on len 1 arrays. Move panic blocks last. Fix generic module wildcard imports. Deprecate init_temp / init_new. Fix issue with macro vaarg and untyped lists. Fix extern const globals.
2024-01-14 15:34:54 +01:00
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
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.
2023-12-08 18:59:57 +01:00