Christoffer Lerno
dc52478c09
- Warn on use of visibility modifiers on methods. #2962
2026-02-21 21:10:08 +01:00
Christoffer Lerno
7c81bb35ca
Refactored contracts ( #2960 )
...
* - Properly support `@deprecated` as contract.
- Support deprecating enum values.
- Refactor contracts
* Always copy enum constants.
* Bugfix.
2026-02-20 01:51:28 +01:00
Christoffer Lerno
c3b2694834
Generics with <>. Deprecation of {} generics.
2026-01-18 00:33:43 +01:00
Christoffer Lerno
d96624c578
Decoupled generics ( #2695 )
2025-12-29 17:01:03 +01:00
Christoffer Lerno
e605a21fd3
Revert "Revert 0.7.6 code for 0.7.5 re-release"
...
This reverts commit d1349c9cfb .
2025-09-05 23:30:35 +02:00
Christoffer Lerno
d1349c9cfb
Revert 0.7.6 code for 0.7.5 re-release
2025-09-05 18:42:54 +02:00
Christoffer Lerno
29e20ee1be
- Inlining location when accessing #foo symbols.
...
- Improve inlined-at when checking generic code.
2025-09-04 11:39:48 +02:00
Christoffer Lerno
aa910a1c44
Compiler assert when using generic parameters list without any parameters. #2369
2025-08-05 12:50:36 +02:00
Christoffer Lerno
02c0db7b8b
Multiline contract comments #2113
2025-07-11 01:18:58 +02:00
Christoffer Lerno
2dfbdea889
Update error message for struct initialization #2286
2025-07-10 16:29:49 +02:00
Christoffer Lerno
2d535aaa25
Default assert() message drops parens #2249 .
2025-06-28 00:07:26 +02:00
Christoffer Lerno
f2daf2e11e
@sprintf macro (based on the $$sprintf builtin) allows compile time format strings #1874 .
2025-06-06 03:18:28 +02:00
Christoffer Lerno
972c84b65b
for with incorrect var declaration caused crash #2154 .
2025-05-26 15:56:51 +02:00
Christoffer Lerno
93dd432b62
Improve error message when using keywords as functions/macros/variables #2133 .
2025-05-15 15:27:14 +02:00
Christoffer Lerno
25bccf4883
New faults and syntax ( #2034 )
...
- Remove `[?]` syntax.
- Change `int!` to `int?` syntax.
- New `fault` declarations.
- Enum associated values can reference the calling enum.
2025-03-10 00:11:35 +01:00
Christoffer Lerno
8c58b31bbd
Remove <[]> experimental generic syntax.
2025-02-13 12:53:46 +01:00
Christoffer Lerno
c4f9efc8f5
Allow fn int test() => @pool() { return 1; } short function syntax usage #1906 .
2025-02-08 22:45:14 +01:00
Christoffer Lerno
a056efce04
Additional cleanup.
2025-01-30 19:32:20 +01:00
Christoffer Lerno
50385be614
Some minor cleanup and updates.
2025-01-30 01:58:51 +01:00
Christoffer Lerno
b145c073f0
VERY experimental <[ ]> syntax for generics. Continue lvalue refactoring.
2025-01-23 01:29:35 +01:00
Christoffer Lerno
28428fcf30
Handle "splice splat" in the vararg slot as an expression.
2024-09-06 10:43:03 +02:00
Christoffer Lerno
ed5d338a39
Added new style named arguments.
2024-09-05 22:13:22 +02:00
Christoffer Lerno
27fd7a9088
- Fix problem where a $$FUNC would return "<GLOBAL>" when evaluated for a static in a function #1236 .
2024-07-13 19:57:04 +02:00
Christoffer Lerno
f521a0dd77
FOREACH_BEGIN / VECEACH replaced by FOREACH / FOREACH_IDX
2024-07-01 13:31:41 +02:00
Christoffer Lerno
e02f73417c
Trailing body arguments may now be &ref, #hash, $const and $Type arguments.
2024-06-22 22:04:20 +02:00
Christoffer Lerno
cfaea34053
Some additional cleanup.
2024-06-19 00:57:38 +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
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
99cfaa1583
Refactor protocols.
2023-10-06 22:31:41 +02:00
Christoffer Lerno
cfe5c649c5
Prevent ordering issues with "builtin" by resolving it early.
2023-09-05 17:29:54 +02:00
Christoffer Lerno
c07dc700df
Fix of #936 . Also some general cleanup.
2023-08-18 15:55:43 +02:00
Christoffer Lerno
8a4e6f7dd3
Fix bug where @local declarations would get registered as @private for generic modules. #856 . Update to consistent tab spacing.
2023-07-15 19:27:24 +02:00
Christoffer Lerno
dddeca1856
Remove assert(try). Prevent nextcase with expression if there is no switch. Fix issue with multiple declarations and compile time variables. Nextcase default. Dropped support for non-const-int ranges.
2023-07-11 01:04:35 +02:00
Christoffer Lerno
4f7b42cdc4
New generic syntax and ad hoc invocation.
2023-07-06 23:43:36 +02:00
Christoffer Lerno
4d552ae44d
Update $include syntax and behaviour. Remove top level $if completely.
2023-06-21 16:27:53 +02:00
Christoffer Lerno
4c1edfb941
Dev ( #777 )
...
* The new @if directive.
2023-06-10 23:16:28 +02:00
Christoffer Lerno
3a725d1348
Better error on missing ';' in certain cases.
2023-05-15 08:45:10 +02:00
Christoffer Lerno
172d561f07
Change syntax of $if, $assert, $include, $echo. Introduces $error
2023-05-06 12:18:00 +02:00
Christoffer Lerno
db8c46d6c5
Addition of "distinct" and "inline" as keywords. Removal of "alias" keyword.
2023-05-04 08:48:17 +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
ad7ee06635
Grammar updates. Updated enum member parsing.
2023-03-22 21:46:47 +01:00
Christoffer Lerno
93fa135d28
Deprecation of define Type = ...
2023-03-20 22:56:06 +01:00
Christoffer Lerno
02d073675a
Fix to deprecated syntax.
2023-03-20 11:21:55 +01:00
Christoffer Lerno
cc19168c7b
Some general cleanup.
2023-02-28 01:15:30 +01:00
Christoffer Lerno
818396b6f3
Updated module visibility import visibility. Fixes to @local
2023-02-15 09:47:51 +01:00
Christoffer Lerno
5e457be605
Implement more @export / @private improvements. Make @private default… ( #729 )
2023-02-13 08:31:40 +01:00
Christoffer Lerno
3b49b87784
Fix for nolibc (eg wasm). Add multi global declarations. Simplicity wasm export / import. Prevent "extern" functions to have a function body.
2023-02-11 11:16:31 +01:00
Christoffer Lerno
b508a43f8f
Add lambdas.
2023-01-24 10:15:23 +01:00
Christoffer Lerno
2a4d43d7c7
Fix issue when using ct types as body parameters.
2022-12-09 00:00:33 +01:00