Christoffer Lerno
13bb2b6690
Const Enums From / to ordinal using casts is back. Add "--use-old-enums", deprecating lookup.
2025-06-30 21:41:52 +02:00
Christoffer Lerno
a55f56a88f
Linker errors when shadowing @local with public function #2198
2025-06-18 02:07:07 +02:00
Christoffer Lerno
8c741c617c
Variable aliases of aliases would not resolve correctly. #2131
...
Variable aliases could not be assigned to.
2025-05-15 09:36:16 +02:00
Christoffer Lerno
3888fcb182
- Add @operator_r and @operator_s attributes.
2025-04-13 13:43:03 +02:00
Christoffer Lerno
8c23c5028d
Make @public import recursive. #2018
...
`import` can now both be @public and @norecurse.
2025-03-10 15:33:29 +01: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
062a67fe75
Updates to file:: and path::, Path is now passed an allocator. path::traverse function. mkdir / rmdir / chdir works directly with strings. Strings get file_basepath, path_dirname. Test suite runner now uses lib7. Bug when printing a parameter declaration error. Fix optional jumps in expression lists, #1942 .
2025-02-25 02:18:33 +01:00
Christoffer Lerno
a056efce04
Additional cleanup.
2025-01-30 19:32:20 +01:00
Christoffer Lerno
f863c4ae84
Fix incorrect arg type failing MSVC compilation. Missing ASSERT updated. Update python script. Fix bug printing error duplicate generic module.
2025-01-20 03:35:49 +01:00
Christoffer Lerno
bb2a2526e4
Refactoring access + some macro renaming.
2025-01-20 02:44:39 +01:00
Christoffer Lerno
c5dbbf9ff7
Compiler allows a generic module to be declared with different parameters #1856 .
2025-01-17 23:24:42 +01:00
Christoffer Lerno
c0dcae4f1d
Improve ordering of method registration to support adding methods to generic modules with method constraints #1746
2024-12-31 18:15:38 +01:00
Christoffer Lerno
b882265e52
Start work on 0.6.5
2024-11-10 01:18:56 +01:00
Christoffer Lerno
6bbc77a69c
Segfault with passing a program with - using stdin. Using no module with - would reject the program. #1523
2024-10-06 12:19:13 +02:00
Christoffer Lerno
413877b59d
Allow ^ suffix for non-recursive imports #1480 .
2024-09-25 15:23:21 +02:00
Christoffer Lerno
da47588502
Make methods be available in earlier stages of analysis. Add @adhoc attribute to allow types with ad hoc generic declarations.
2024-09-25 14:26:49 +02:00
Christoffer Lerno
df4eb3d0f0
Allow var in lambdas in macros. Allow ad hoc generic declaration in lambdas and type definitions. Fix deprecation flag.
2024-09-09 21:46:06 +02:00
Christoffer Lerno
d1a0ec5a35
Compiler didn't detect when a module name was used both as a generic and regular module.
2024-08-23 19:31:49 +02:00
Christoffer Lerno
14358417c8
Refactoring -> ensure built in aliases have a valid unit.
2024-08-05 21:44:02 +02:00
Christoffer Lerno
43ea05aad2
Remove $expand.
2024-08-03 12:47:19 +02:00
Christoffer Lerno
7f00f35f4b
$expand macro, to expand a string into code. opt project setting now properly documented.
2024-08-01 00:07:16 +02:00
Christoffer Lerno
5cf1f13328
Private function called from nested macro not visible to linker #1232
2024-07-09 22:01:39 +02:00
Christoffer Lerno
e2a39aa12e
Updated mangling code.
2024-06-28 00:57:14 +02:00
Christoffer Lerno
079cbb8f68
Updated module mangling, restrict module names.
2024-06-27 13:37:37 +02:00
Christoffer Lerno
0a8a63bc15
Fix to headergen. Updated module name store.
2024-06-26 11:43:14 +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
d01d8d3663
"protocol" => "interface"
2023-10-20 14:12:08 +02:00
Christoffer Lerno
49c4595457
Dynamic protocols.
2023-10-05 15:20:41 +02:00
Christoffer Lerno
4cc30c0d33
Replace static initializer with @init / @finalizer
2023-10-03 12:45:43 +02:00
Christoffer Lerno
91bb31856b
Introduce initial $exec.
2023-08-07 19:43:57 +02:00
Christoffer Lerno
d7d7fd3a10
Rewrite of function pointer handling.
2023-07-21 01:44:37 +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
8c73a450a1
Reduce memory consumtion. Add "range"
2023-06-25 21:39:53 +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
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
f8208f946b
Remove "generic" code paths.
2023-03-01 12:01:43 +01:00
Christoffer Lerno
818396b6f3
Updated module visibility import visibility. Fixes to @local
2023-02-15 09:47:51 +01:00
Christoffer Lerno
03cd56e46b
Add @local and fix visibility issues for generic methods.
2023-02-14 12:17:56 +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
f313e90e28
Some work on headers. Fix unsigned negation on consts.
2023-02-09 09:15:51 +01:00
Christoffer Lerno
ef7365224f
Added $include.
2022-12-29 16:12:03 +01:00
Christoffer Lerno
eaaa5362a5
Output messages at compile time.
2022-12-07 18:48:55 +01:00
Christoffer Lerno
49eacb8824
More support for test. Panic function update.
2022-11-14 11:48:12 +01:00
Christoffer Lerno
e1b5b0b60c
Implement static finalize / initialize. Version bump.
2022-09-28 17:18:20 +02:00
Christoffer Lerno
6b1370ba76
Support varargs for macros. Bugfix member access. Support macro varargs.
2022-08-27 02:25:08 +02:00
Christoffer Lerno
9886d381c0
Update allocator and resolution.
2022-07-30 02:55:32 +02:00
Christoffer Lerno
c02ce5ce2a
Better error on all upper parameter names. "Upper case" -> "uppercase"
2022-07-26 22:01:23 +02:00