Christoffer Lerno
a3d15fe16c
Fix issue with zero arg @operator(construct). Assert on add to uninitialized ct variable #1765
2025-01-03 11:45:46 +01:00
Christoffer Lerno
56d25cdeeb
Remove array->vector casts
2025-01-03 01:35:51 +01:00
Francesco Alemanno
a16316d7b4
enhance default hashing strategy for basic types ( #1758 )
...
* enhance default hashing strategy for basic types
* fix
* `$defined` in a global scope should accept testing normal macros.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-01-02 20:44:33 +01:00
Christoffer Lerno
14d8e93004
Return type inference bugs with macros #1757
2025-01-02 17:34:37 +01:00
Christoffer Lerno
1994cba73e
Fix default #foo args.
2025-01-02 15:23:21 +01:00
Christoffer Lerno
7c45ae24ae
Macros with default arguments to &, # and type parameters didn't work as expected. #1754 .
2025-01-01 17:52:32 +01:00
Christoffer Lerno
faf1c5cb64
Introduce EXPR_RVALUE for some additional refactoring.
2025-01-01 12:19:00 +01:00
Christoffer Lerno
0a809ab5f0
Allow using 'var' to declare lambdas in functions.
2025-01-01 01:02:35 +01:00
Christoffer Lerno
78ff1a4af5
Support experimental @operator(construct) operator overload.
2025-01-01 00:45: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
4d15a2f45e
Improve error reporting when using type names as the function argument #1750 .
2024-12-31 16:59:51 +01:00
Christoffer Lerno
a913f21c45
Fix issue with compiling a constant struct containing a string array in a local context.
2024-12-31 16:45:10 +01:00
Christoffer Lerno
322c70433b
Refactoring, stop using int to bool as cast. Merge make any.
2024-12-31 16:32:37 +01:00
Christoffer Lerno
ad9cfcdcc7
Fix typo.
2024-12-30 18:24:01 +01:00
Christoffer Lerno
4232c9d2b0
Fix bug when including compile time parameters in trailing body more than once.
2024-12-30 17:57:36 +01:00
Christoffer Lerno
df74cbf06f
Fix bug where !! and ! was not recognized to jump out of the current scope. Remove more casts.
2024-12-30 01:43:02 +01:00
Christoffer Lerno
5af224ab16
Remove 3 casts and replace them with a single new normal expression node.
2024-12-30 00:55:40 +01:00
Totto16
43efb7df2f
fix: use helper printing macros, to use the correct printing width (e.g. %llu vs %lu)
2024-12-28 19:21:39 +01:00
Christoffer Lerno
f5cea221a6
Miscompile when indexing an array with small unsigned types.
2024-12-28 17:39:25 +01:00
Christoffer Lerno
b7082f34a1
C backend work.
2024-12-28 17:09:43 +01:00
Alexey Kutepov
e07ab7547f
Fix Segfault and UX of the c3c project add-target subcommand ( #1729 )
...
* Fix UX of the `c3c project add-target` subcommand
- Fix segfault on `project.json` containing empty map `{}`
- Enable `add-target` to operate on non-existing project files
- Extend `add-target` syntax to accept source through CLI args
This enables the following workflow without friction and needless
crashes:
```console
$ cat > main.c3 <<END
import std::io;
fn void main() {
io::printfn("Hello, World");
}
END
$ c3c project add-target main executable main.c3
$ c3c run
```
* Fix read_project() call in fetch_project()
* Keep the style of curlies consistent
2024-12-27 22:33:57 +01:00
Christoffer Lerno
08e8c9bf57
Use weak on dyn-symbols on Linux.
2024-12-27 02:05:40 +01:00
Christoffer Lerno
625152440c
Use weak_odr rather than weak on Windows which seems to prevent issues such as #1704 . Fix regression.
2024-12-26 21:35:41 +01:00
Aaron
fbd51821d1
Fixed -P JSON syntax, string conversion. ( #1714 )
...
* Fix JSON formatting in parse command, strings now "JSON-legal"
* Clean up
* Implemented JSON for CONST_BYTES
* Handle empty byte string, slightly more concise
* of course msvc is the *only* compiler that complains about this
2024-12-26 02:18:49 +01:00
Christoffer Lerno
c3ebf51295
Add "name" project property to override the name of the resulting binary. #1719
2024-12-26 02:15:45 +01:00
Christoffer Lerno
75ba4a1cdb
Incorrectly handles distinct enums and pointers with '+=' and '-=' #1717 .
2024-12-25 23:09:10 +01:00
Christoffer Lerno
e5ca9065bd
Deprecate cast conversion from enum -> integer.
2024-12-25 20:34:28 +01:00
Christoffer Lerno
7424317d03
Fix call to copy.
2024-12-25 00:16:35 +01:00
Christoffer Lerno
dbf1d91961
Add --win-vs-dirs to override VS detection dirs.
2024-12-25 00:07:57 +01:00
Christoffer Lerno
eb1644b302
Change included common options.
2024-12-24 20:43:52 +01:00
Christoffer Lerno
cde5bc3263
Change included common options.
2024-12-24 20:39:24 +01:00
Aaron
f34eb7d9f3
Prevent trailing _ for all numbers ( #1706 )
...
* moved _ check to scan_number_suffix
* Skipping underscore on list-operators command
* Disallow # from operator, update release notes
2024-12-23 21:23:46 +01:00
Guillaume M.
bf74ef0e5e
Fix crt detection for Arch Linux ( #1705 )
...
* Fix crt detection for arch linux
On archlinux, the crt is located directly in /usr/lib. Thus, the globbing done in find_linux_crt fails since it expects the crt to be in a subdirectory of /usr/lib. This patch fixes this issue.
2024-12-23 20:03:53 +01:00
Christoffer Lerno
0ff52311c3
- Fix problem where crt1 was linked for dynamic libraries on Linux and BSD. #1710
2024-12-23 20:02:17 +01:00
Christoffer Lerno
e453e6f9ca
- Add enum.from_ordinal and fault.from_ordinal
...
- Deprecate cast-style conversion from integer to enum.
- Make deprecation an error in test mode.
2024-12-23 15:27:59 +01:00
Christoffer Lerno
6078598aff
- static-lib and dynamic-lib options from the command line now produces headers.
...
- Fix bug outputting exported functions without predefined extname.
- Removed 'headers' command line option.
2024-12-22 11:49:11 +01:00
Christoffer Lerno
1362aa655f
Split help into normal and "full" help, #1703
2024-12-21 16:08:07 +01:00
Christoffer Lerno
627f10cd18
Fix bug when a macro calling an extern function was called in another module also declaring and calling the same function. #1690
2024-12-19 20:39:23 +01:00
Christoffer Lerno
4ae3d0150f
Fix case trying to initialize a char[*]* from a String.
2024-12-15 20:42:42 +01:00
Christoffer Lerno
7d153a162a
Prepare 0.6.6
2024-12-14 23:06:08 +01:00
Christoffer Lerno
7bc3e94ff3
Build 0.6.5 release. Fixed.
2024-12-14 17:38:02 +01:00
Christoffer Lerno
9c1fb26660
Build 0.6.5 release.
2024-12-14 17:33:00 +01:00
Christoffer Lerno
3dd725a0f0
Crash when a constant null typeid is checked for properties. #1679
2024-12-14 15:13:43 +01:00
Christoffer Lerno
a8aad53038
It was possible to create 0 length arrays using byte literals. #1678
2024-12-14 02:49:45 +01:00
Christoffer Lerno
723e1dd9a6
Fix issue with overloaded *= etc
2024-12-11 20:56:11 +01:00
Christoffer Lerno
061c02306f
Cast removing arbitrary array indices and converting them to pointers should always be fine #1664
2024-12-08 18:58:43 +01:00
Christoffer Lerno
f006b05010
Fix issue with accessing arrays in access-overloaded types, e.g. list[1][2] #1665 .
2024-12-08 18:04:29 +01:00
Christoffer Lerno
ea86c9d37a
Fix of issue where multiple methods were accepted for the same type. Fix of issue where a method was linked to a type alias instead of the underlying type. #1661
2024-12-06 13:09:47 +01:00
Christoffer Lerno
d1a2e6e5bd
Update Windows debug output.
2024-12-06 02:18:36 +01:00
Christoffer Lerno
b7010c83e0
Fix windows emit loc.
2024-12-04 21:33:03 +01:00