Feoramund
33270f14a4
Fix #3739
2024-06-12 15:31:43 -04:00
Feoramund
5b5402fb23
Add intrinsics.syscall_bsd
...
This is a BSD-style syscall that checks for a high Carry Flag as the
error state. If the CF is high, the boolean return value is false, and
if it is low (no errors) then the boolean return value is true.
2024-06-12 13:07:13 -04:00
gingerBill
c5f7788652
Check to see if matrices are exactly the same type
2024-06-12 12:54:57 +01:00
gingerBill
f57c03c170
Improve matrix type hinting rules a little
2024-06-12 12:40:29 +01:00
gingerBill
eaf1d88287
Merge pull request #3734 from Feoramund/fix-3730
...
Fix #3730
2024-06-11 12:50:41 +01:00
gingerBill
1dc90103bd
Make verification ignorable with a define flag
2024-06-11 12:30:24 +01:00
gingerBill
0b02c67cdf
Minor clean up for backend
2024-06-11 12:19:52 +01:00
gingerBill
9b0e87544a
Unify LLVMVerifyFunction invocations into on place
2024-06-11 12:07:22 +01:00
Feoramund
61c630bbf8
Fix #3730
2024-06-11 05:23:43 -04:00
gingerBill
f1779c85de
Fix #3727
2024-06-10 18:50:53 +01:00
gingerBill
eef2aef021
Fix #3724
2024-06-10 15:07:45 +01:00
gingerBill
fa3cae2bb0
Add intrinsics.procedure_of
...
```odin
foo :: proc(x: $T) { fmt.println(x) }
bar :: intrinsics.procedure_of(foo(int(123))) // parameters are never ran at compile time, similar to `size_of`
bar(333) // prints 333
```
2024-06-10 15:02:34 +01:00
gingerBill
1945218f6d
Improve parsing for label: #reverse for and label: #partial switch
2024-06-10 14:18:33 +01:00
Feoramund
71a812e7fe
Use get_final_microarchitecture() for ODIN_MICROARCH_STRING
2024-06-10 05:30:16 -04:00
Jeroen van Rijn
741ee00b64
Merge pull request #3721 from Feoramund/add-tuning-consts
...
Add compilation-related constants
2024-06-10 10:31:12 +02:00
Jeroen van Rijn
d3ae70264e
Merge pull request #3720 from Feoramund/fix-force-inline-err-typo
...
Fix typo in a `#force_inline` error message
2024-06-10 10:25:09 +02:00
Feoramund
ff7fcb6d38
Add compilation-related constants
...
`ODIN_VERSION_HASH` is the `git` SHA hash of the commit the Odin
compiler was built with.
`ODIN_MICROARCH_STRING` is the string passed to `-microarch` when
the program was built.
`ODIN_OPTIMIZATION_MODE` is an enum value of which optimization mode was
used to build the program.
2024-06-10 03:47:20 -04:00
Feoramund
45d1328a85
Fix typo in a #force_inline error message
2024-06-10 00:50:16 -04:00
Feoramund
8702bf00d5
Remove _ in Syntax_Error verbose message
2024-06-09 22:47:43 -04:00
Feoramund
9d28f2e18c
Fix or_or_<branch> error messages
2024-06-09 22:46:45 -04:00
gingerBill
7c529e990d
Add -target:freestanding_arm32 (experimental)
2024-06-09 17:48:46 +01:00
gingerBill
ef7c6b9895
Re Fix #3713
2024-06-09 14:07:07 +01:00
gingerBill
c17981ac38
Add edge case to error_operand_no_value
2024-06-09 14:02:01 +01:00
gingerBill
4b52f7fe2b
Fix #3713
2024-06-09 13:35:22 +01:00
gingerBill
8fcfd8c506
Fix sign flag
2024-06-09 13:21:22 +01:00
gingerBill
e0d0dc704c
Make f32(u8) etc do an immediate cast to f32(u32(u8)) in code generation
2024-06-09 13:20:48 +01:00
Jeroen van Rijn
14f08ff02b
Merge pull request #3712 from laytan/fix-large-ints-amd64sysv-abi
...
fix large ints amd64 sysv abi
2024-06-09 11:01:31 +02:00
Jeroen van Rijn
5d5ef78de9
Merge pull request #3711 from laytan/fix-swizzle-crash
...
fix swizzle crash due to wrong alignment
2024-06-09 11:00:15 +02:00
Jeroen van Rijn
e595bdc805
Merge pull request #3710 from laytan/fix-unreachable-with-complex-param-or-return-inits
...
fix unreachable hit when param and/or return have complex inits
2024-06-09 10:59:26 +02:00
Laytan Laats
6d862cc4e5
fix unreachable hit when param and/or return have complex inits
...
Fixes #3630
2024-06-09 04:43:19 +02:00
Laytan Laats
3628154849
fix swizzle crash due to wrong alignment
...
Fixes #3691
2024-06-09 03:33:23 +02:00
Laytan Laats
9ad9236c3b
fix large ints amd64 sysv abi
...
Fixes #3707
2024-06-09 02:47:05 +02:00
Feoramund
49f147cc86
Prevent panic when swizzle called with < 2 indices
...
The requirement for at least 2 indices has been sourced from
`lb_addr_swizzle` in `llvm_backend_general.cpp`, where there is an
assert to ensure the swizzle_count is `1 < n <= 4`.
2024-06-08 17:05:00 -04:00
gingerBill
be0774acc8
Add error message on return a constant slice value from a procedure
2024-06-08 16:07:28 +01:00
gingerBill
7e994b6d21
Remove empty line preventing a suggestion from happening
2024-06-08 15:42:19 +01:00
Laytan Laats
072825ac5a
add MacOS 14.5 to 'core:sys/info' and 'odin report'
2024-06-07 17:42:41 +02:00
Laytan Laats
e627fcb0e6
fix not printing Error: when terminal has no color support
2024-06-07 16:58:23 +02:00
Laytan Laats
29250f2657
fix regression in test_issue_2395
2024-06-07 16:33:38 +02:00
Laytan Laats
315695b4f8
collect and show docs of defineables
2024-06-07 15:08:41 +02:00
gingerBill
68781f8dd3
Remove unnecessary Wait_Signal checks
2024-06-07 00:11:00 +01:00
gingerBill
7044a7d776
Try to fix a possible race condition with polymorphic record parameters
2024-06-06 23:55:48 +01:00
Laytan Laats
fa08690686
explicit integer conversions
2024-06-06 19:49:51 +02:00
Laytan Laats
b818a77131
check if -define is actually used
2024-06-06 19:46:01 +02:00
Laytan Laats
9a95049393
-show-defineables and -export-defineables
2024-06-06 19:44:54 +02:00
Laytan
e2eb3cdd8a
fix linking on weird linuxes
2024-06-06 19:23:36 +02:00
gingerBill
039bb8794a
Improve matrix_align_of logic when it has invalid inputs.
2024-06-06 17:59:12 +01:00
gingerBill
bea47db495
Allow @(rodata) on @(static) variables
2024-06-06 15:20:47 +01:00
gingerBill
9ef43fc782
Add @(rodata)
2024-06-06 15:16:34 +01:00
gingerBill
971229fe66
Fix #3686
2024-06-06 13:27:55 +01:00
gingerBill
c4ef8e7f6c
Merge branch 'master' of https://github.com/odin-lang/Odin
2024-06-06 13:02:16 +01:00