gingerBill
31f0aaa62f
Try to improve const union LLVM construction
2025-09-24 09:55:22 +01:00
gingerBill
549edcc0f9
Use a RwMutex instead of BlockingMutex
2025-09-10 21:00:43 +01:00
gingerBill
8df69c95c3
Add -integer-division-by-zero:all-bits
2025-08-10 18:29:08 +01:00
gingerBill
b6e0b48481
Rename block names from div to mod.
2025-08-10 17:58:46 +01:00
gingerBill
4cbcb3ace7
Add shortcut for unsigned_x/power_of_two -> unsigned_x >> log2(power_of_two)
2025-08-10 17:53:07 +01:00
gingerBill
da76c743e9
Add shortcut for division by a constant
2025-08-10 17:42:49 +01:00
gingerBill
8c1eda3e3a
Handle fixed_point_div and fixed_point_div_sat
2025-08-08 11:10:01 +01:00
gingerBill
ee01643229
Add -integer-division-by-zero:self
2025-08-08 10:41:05 +01:00
gingerBill
991883d0e1
Add #+feature integer-division-by-zero:<string>
2025-08-08 10:24:44 +01:00
gingerBill
e4a0228a80
Define the behaviour of integer division by zero
2025-08-08 10:00:11 +01:00
gingerBill
f8d24923fd
Fix cstring != ""
2025-08-02 13:23:20 +01:00
gingerBill
86bd9186f9
Fix string16 != "" comparison
2025-08-02 13:17:31 +01:00
gingerBill
7c281a9614
Fix [^]u16 <-> cstring16 conversions
2025-08-02 12:51:08 +01:00
gingerBill
620bf162a0
Cache const string16 in LLVM
2025-08-02 12:32:18 +01:00
gingerBill
ae02d3d02d
Begin supporting string16 across the core library
2025-08-02 11:55:16 +01:00
gingerBill
2561427dd3
Add string16 and cstring16 (UTF-16 based strings)
2025-08-02 11:00:15 +01:00
Jeroen van Rijn
fab7715c35
Allow -dynamic-literals for [dynamic]T
2025-06-03 15:22:20 +02:00
Jeroen van Rijn
ab95932502
-dynamic-literals
2025-05-19 20:44:27 +02:00
gingerBill
92df892f25
Merge pull request #5064 from harold-b/hb/objc-classes
...
Add support for Objective-C class implementation
2025-05-08 12:58:33 +01:00
Jeroen van Rijn
8097b59e30
Also allow comparing SOA pointers against each other
...
This compares the data pointer *and* the index.
```odin
package scratch
import "core:fmt"
Foo :: struct {a, b: int}
main :: proc() {
a := new(#soa[dynamic]Foo)
a^ = make(#soa[dynamic]Foo, 12, 12)
b := new(#soa[dynamic]Foo)
b^ = make(#soa[dynamic]Foo, 12, 12)
fmt.printfln("&a[0]: %p, &b[0]: %p, Same: %v", &a[0], &b[0], &a[0] == &b[0]) // Same: false
fmt.printfln("&a[0]: %p, &b[0]: %p, Same: %v", &a[0], &b[1], &a[0] == &b[1]) // Same: false
fmt.printfln("&a[0]: %p, &b[0]: %p, Same: %v", &a[0], &b[2], &a[0] == &b[2]) // Same: false
fmt.printfln("&a[0]: %p, &a[1]: %p, Same: %v", &a[0], &a[1], &a[0] == &a[1]) // Same: false
fmt.printfln("&a[1]: %p, &a[2]: %p, Same: %v", &a[1], &a[2], &a[1] == &a[2]) // Same: false
fmt.printfln("&a[2]: %p, &a[3]: %p, Same: %v", &a[2], &a[3], &a[2] == &a[3]) // Same: false
fmt.printfln("&a[0]: %p, &a[0]: %p, Same: %v", &a[0], &a[0], &a[0] == &a[0]) // Same: true
fmt.printfln("&a[1]: %p, &a[1]: %p, Same: %v", &a[1], &a[1], &a[1] == &a[1]) // Same: true
fmt.printfln("&a[2]: %p, &a[2]: %p, Same: %v", &a[2], &a[2], &a[2] == &a[2]) // Same: true
}
```
2025-05-06 15:10:08 +02:00
bogwi
904a64a45e
Add support for SoaPointer nil comparison in lb_emit_comp_against_nil
2025-05-06 14:21:18 +09:00
Harold Brenes
c2dfc4b749
Cleanup ivar generation for selector expressions.
...
Cleanup ObjC superclass resolution.
2025-04-30 20:32:34 -04:00
Laytan Laats
396a18efce
fix variable NaN comparisons
2025-04-30 20:04:24 +02:00
Harold Brenes
53adff38f0
Fixes to Ivar pseudo fields.
2025-04-23 02:05:33 -04:00
Harold Brenes
bca02f81cd
Include the ivar in the Objective-C class unconditionally of it being used or not.
...
Allow pseudo-fields for ivar access.
2025-04-22 19:18:53 -04:00
Jeroen van Rijn
b27008e0f9
Simplify condition, op = Token_Sub was trivially true
2025-04-10 17:58:54 +02:00
Jeroen van Rijn
3a7691c714
Fixes #5026
2025-04-10 17:54:58 +02:00
gingerBill
fe040d1bbd
Propagate @(link_section=<string>) to nested declarations
2025-04-08 11:36:53 +01:00
gingerBill
56e0ab7655
Fix #4952
2025-03-24 13:11:41 +00:00
gingerBill
af37ca1286
Fix #4573
2025-03-07 10:38:36 +00:00
gingerBill
f9d85a7311
Try to make globally generated variables deterministic in name
2025-02-25 14:29:14 +00:00
gingerBill
c2cafcbe14
Fix #4819
2025-02-24 14:07:39 +00:00
Barinzaya
266e84103e
Fixed an issue with SIMD vector equality.
...
Comparing SIMD vectors with `==` was checking that the mask of elements
that matched was not 0, meaning it succeeded if *any* element was equal,
rather than if *all* elements were equal.
2025-02-20 17:05:07 -05:00
Laytan Laats
b77430bea8
-obfuscate-source-code-locations on bounds checks and type assertions
2025-02-05 19:42:20 +01:00
gingerBill
2656ecd4e1
Fix #4773 - Change order of evaluation for slicing indices
2025-01-29 15:53:34 +00:00
gingerBill
bca08d3b85
Make -no-dynamic-literals the default now
2025-01-05 13:33:06 +00:00
gingerBill
7b334d2bd9
Add #branch_location
2025-01-01 17:26:15 +00:00
gingerBill
0a29d36aa3
Fix bug with comparisons with big endian types
2024-12-12 15:44:49 +00:00
gingerBill
44124cb639
Merge pull request #4440 from 0dminnimda/support_llvm19
...
Add support for llvm version 19
2024-11-27 21:15:59 +00:00
gingerBill
e38a08013e
Remove #relative types from the compiler
2024-11-14 16:17:24 +00:00
gingerBill
31ea10490f
Fix auto_cast matrix bug
2024-11-04 12:35:17 +00:00
0dminnimda
dbed2c92b4
Add support for llvm version 19
2024-10-31 15:56:23 +03:00
bobsayshilol
771d308d64
Fix invalid union access
...
UBSan spotted that |src->Basic.kind| had a value outside the range of
|BasicKind| due to it actually being a |Type_Pointer|. Since these are
stored in a union there could be cases where the value of |kind| just
so happens to be |Basic_string|, in which case the branch would have
been taken when it shouldn't have been.
To fix this simply check that it's a |Type_Basic| before treating it as
a |Basic|.
2024-10-27 21:24:36 +00:00
Laytan Laats
da1e09c95d
check packed load and set alignment on all loads, not just lb_emit_load
2024-10-25 15:23:15 +02:00
Laytan Laats
5d4fd09ff0
fix quaternion64 arith
...
Fixes #4282
2024-10-02 23:28:09 +02:00
gingerBill
225ffdec36
Fix union comparison bug
2024-09-30 11:10:16 +01:00
Karl Zylinski
007730bfbc
Fix for crash when emitting a comparison between a constant array and a non-constant value.
2024-09-25 23:42:35 +02:00
gingerBill
9b06ea5bfd
Fix #4229 for edge case os.Error/os.Errno legacy bodge
2024-09-11 12:01:01 +01:00
gingerBill
0a08a65202
Simplify #row_major matrix and matrix_flatten behaviour
2024-09-07 12:21:29 +01:00
gingerBill
9197a126fc
Use XOR directly rather than (~x) & mask
2024-08-30 10:52:11 +01:00