Christoffer Lerno
56f43f55f3
Add WASM test.
2024-07-26 21:39:45 +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
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
9a114b38d3
Updated retry and test.c3 examples.
2024-02-17 15:19:27 +01:00
Christoffer Lerno
812dc0c292
Update memory test code.
2024-02-16 14:19:42 +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
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
2b9276b495
Add 'exec'
2023-09-30 23:28:22 +02:00
Christoffer Lerno
e3412da033
Removed broken code. Update formatter for precision. Fix of panic.
2023-09-05 22:53:56 +02:00
Christoffer Lerno
0448038c68
Added test.
2023-08-16 15:58:33 +02:00
Christoffer Lerno
4c1edfb941
Dev ( #777 )
...
* The new @if directive.
2023-06-10 23:16:28 +02:00
Christoffer Lerno
3e54d13b62
Prefer def
2023-06-02 20:08:45 +02:00
Christoffer Lerno
172d561f07
Change syntax of $if, $assert, $include, $echo. Introduces $error
2023-05-06 12:18:00 +02:00
Christoffer Lerno
809321e20c
Updated grammar. Removal of elif. Removal of ':' ';' in some ct statements. Empty faults is now an error. Remove "define" for types. Remove "private". Better errors on incorrect bitstruct syntax. Introduction of wildcard type rather than optional wildcard. Removal of scaled vector type. mkdir and rmdir. Disallow define @Foo() = { @inline }. Add handling for @optreturn and change it to @return!. Restrict interface style functions. Updated x64 ABI. stdlib updates to string. Removed deprecated functions. Update how variadics are implemented. Extended error messages. x86 ABI fixes. Shift check fixes. '!' and '?' are flipped. No trailing ',' allowed in functions. Fix to string parsing. Allow l suffix. Simplifying flatpath. any replaces variant, anyfault replaces anyerr. Allow getting the underlying type of anyfault. De-duplicate string constants. Fix of readme. Extended list. Fix of "(MyEnum)x + 1". Clock and DateTime types. Fixes to array concat.
2023-04-21 10:56:39 +02:00
Christoffer Lerno
9c145996b0
$elif deprecated.
2023-03-20 16:54:45 +01:00
Christoffer Lerno
5ee0d52ff1
Deprecate :; in $if etc.
2023-03-20 01:03:54 +01:00
Christoffer Lerno
1480b8f872
Update examples and contracts.
2023-03-08 15:57:42 +01:00
Christoffer Lerno
9eee250b10
Add DString init.
2023-03-06 09:12:52 +01:00
Christoffer Lerno
dd4edfb747
Updated malloc/calloc/realloc/free deprecation of old helper functions. Add checks to prevent incorrect alignment on types when using malloc. Better errors from $assert. Added @deprecated. Fixed issue using named arguments after varargs.
2023-02-27 15:03:27 +01:00
Christoffer Lerno
505543e9b4
Remove import of std::array
2023-02-05 20:59:42 +01:00
Christoffer Lerno
dce171670f
Use printn rather than println. Add string methods for copying.
2023-02-04 19:48:42 +01:00
Christoffer Lerno
6407eb47a4
Remove of @extname in stdlib.
2023-02-02 21:53:37 +01:00
Christoffer Lerno
dc16f65c8e
Change printfln to printfn. Make LLVM 15 tests default.
2023-01-11 18:00:08 +01:00
Christoffer Lerno
43dc2d650c
Use "String" consistently for "char[]" ( #694 )
...
Use "String" consistently for "char[]". Fix win32 return value.
2023-01-07 22:50:33 +01:00
Christoffer Lerno
da1a45f718
Remove iptrdiff and uptrdiff. Bump version to 0.3.100
2022-11-17 23:44:54 +01: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
a7e4dda360
Added examples.
2022-07-26 02:10:18 +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
d403912ec7
Add linker and linked dir arguments to build files.
2022-07-08 14:52:58 +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
22ee082d00
0.2.1 SysV ABI fix for passing certain things by struct. Fix implicitly converting to float in the case of myfloat *= -1. Prefer inferred constant over global. Allow locals to shadow global variables.
2022-04-27 16:43:25 +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
e5bcb74822
Added levenshtein.c3 to working files. Fixes to reverse indexing. Added min/max functions. Tentatively removed "opaque"
2022-01-26 17:40:01 +01:00
Christoffer Lerno
1e56948a22
Prepare removing "func"
2022-01-18 14:15:44 +01:00
Christoffer Lerno
974cd0acc5
Rollback global.
2021-11-17 10:37:23 +01:00
Christoffer Lerno
b52b42d4da
Complete transition to fn. Introduce global/threadlocal
2021-11-16 17:46:44 +01: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
e4c7dde30b
Fix of shadowing bug. Allow pointer and subarrays to be constant initialized. Compile time values may now pass around anything considered compile time constant. It's possible to index into an initializer list at compile time. (Some work still remains on this)
2021-09-18 01:13:42 +02:00
Christoffer Lerno
b7e423adc2
Update .len for subarray to not require ()
2021-09-10 19:44:27 +02:00
Christoffer Lerno
12ffeeaad7
Fixes to the cname patch.
2021-06-30 22:41:34 +02:00
Christoffer Lerno
0605a8c500
Introduce "private" keyword and private modules / private import.
2021-05-30 16:30:16 +02:00
Christoffer Lerno
90c988cc1f
Fix issue with unifying void returns.
2021-05-20 00:12:58 +02:00
Christoffer Lerno
fc31c15914
Updated cast syntax in code samples.
2021-05-18 17:23:27 +02:00
Christoffer Lerno
1d50beb330
Work on constant string and inferred array sizes.
2021-02-03 23:01:37 +01:00
Christoffer Lerno
26d25e3f74
Recursive references between globals are now correctly handled.
2021-01-27 00:14:16 +01:00
Christoffer Lerno
3a24fbfa6d
Moved examples around. Updated (and corrected) const initialization. Removed "in" keyword. Added "member" attribute domain. Many fixes in struct padding and alignment and tests. Fixed extern global.
2021-01-24 00:55:09 +01:00
Christoffer Lerno
564c93700e
Fixed bug that would intermittently arise from multiple contexts having the same pointer (should preferably be fixed in a different way later). Free all the arenas before codegen. Change "next" to "nextcase". Allow missing function parameters. Add "inline" structs.
2021-01-03 00:15:51 +01:00