Commit Graph

6212 Commits

Author SHA1 Message Date
gingerBill
4dceffd049 When parsing an incorrect for loop, remove assert
// caused by this:
```
for a
b, c := d()
```
2026-03-30 11:50:59 +01:00
mtarik34b
7de688d893 Use int instead of u64 2026-03-28 02:50:05 +01:00
mtarik34b
2640a18296 Undo rename of cmp_entities_for_printing 2026-03-28 02:26:56 +01:00
mtarik34b
ac17852f36 Add option to show docs in source order within each file 2026-03-28 02:26:39 +01:00
gingerBill
44bf8ba464 Support odin doc core:os style paths 2026-03-27 17:43:06 +00:00
Harold Brenes
e11bbdaa37 Fix issue where 2 when statements which eval to true
in a `foreign` block cause the rest of the statements on
the block to go unchecked
2026-03-26 19:53:59 -04:00
gingerBill
25c10c18cc Remove tilde backend 2026-03-26 11:49:39 +00:00
gingerBill
4697c8837c Merge pull request #6479 from cuiweixie/fix/llvm-cstring16-u16-multi-ptr-transmute
Fix u16 multi-pointer to cstring16 transmute condition in lb_emit_conv
2026-03-26 11:16:49 +00:00
gingerBill
e0f348bf06 Merge pull request #6478 from cuiweixie/fix/llvm-panic-subtype-cast-format
Fix GB_PANIC format string in lb_emit_conv invalid subtype cast
2026-03-26 11:16:20 +00:00
Weixie Cui
4e87f47fe3 Fix >= comparison runtime dependencies for string and cstring types
Token_GtEq incorrectly added *_gt runtime symbols for cstring, cstring16,
string16, and string comparisons; use the correct *_ge dependencies instead.
2026-03-26 18:21:27 +08:00
Weixie Cui
b16eaea8a8 Fix u16 multi-pointer to cstring16 transmute condition in lb_emit_conv
cstring16 uses UTF-16 code units; accept u16 multi-pointers, not u8.
2026-03-26 17:57:18 +08:00
Weixie Cui
a2f1aafed3 Fix GB_PANIC format string in lb_emit_conv invalid subtype cast
The panic string passed two type names but only had one %s placeholder.
2026-03-26 17:54:17 +08:00
gingerBill
0fce2da442 Add suggestion when trying to slice an enumerated array 2026-03-25 15:03:37 +00:00
gingerBill
e10257f86a Fix slicing logic of a FCD array to check if it can be sliced or not 2026-03-25 14:11:22 +00:00
gingerBill
59eaa13625 Fix indexing logic of FCD arrays 2026-03-25 14:10:08 +00:00
gingerBill
e6d7ccad2c Merge branch 'master' of https://github.com/odin-lang/Odin 2026-03-25 14:08:48 +00:00
gingerBill
a9e81e01aa Allow addressing of an index expression of an soa slice/dynamic array 2026-03-25 14:08:39 +00:00
gingerBill
e3d4d44ad9 Merge pull request #6413 from Znarf64/master
Fix #6407
2026-03-25 12:04:12 +00:00
gingerBill
b178e39f80 Improve error message when trying to pass a parapoly type to value parameter 2026-03-25 11:33:05 +00:00
gingerBill
85eeca2f03 Add missing generic #soa pointers to parapoly handling system 2026-03-25 10:15:58 +00:00
gingerBill
7fbabb491b Merge pull request #6466 from jakubtomsu/bit-field-intrin
Bit field intrinsics and fixes
2026-03-25 09:55:28 +00:00
Harold Brenes
4f6caf19f0 Ensure checking for proc property equality before checking param assignability 2026-03-23 21:15:12 -04:00
Harold Brenes
147542b5cc Allow pointers to types which have subtype fields at offset 0
to be assignable in proc parameters.

```odin
// Virtual interface
IFoo :: struct {
	foo: proc( self: ^IFoo ),
}

// Implements IFoo interface
Foo :: struct {
	using vt: IFoo,
	name: string,
}

// Implement interface via `Foo`
Foo_Impl :: IFoo {
	// `self` of type `^Foo` (not `^IFoo`) is now accepted as a valid parameter.
	foo = proc( self: ^Foo ) {
		...
	},
}
```
2026-03-23 20:55:44 -04:00
jakubtomsu
b1d9db7b15 make offset_of(Bit_Field, ...) an error, typo fix 2026-03-23 16:43:11 +01:00
jakubtomsu
a097f3c938 add type_field_bit_offset/size intrinsics 2026-03-23 16:42:30 +01:00
gingerBill
111bee6ecd Fix scope->elements iteration causing a few bugs in the doc-format 2026-03-19 20:31:01 +00:00
gingerBill
3fb430ceb7 Merge branch 'master' of https://github.com/odin-lang/Odin 2026-03-19 18:50:17 +00:00
gingerBill
e6521ed269 Inline the generic count stuff 2026-03-19 18:50:01 +00:00
Jeroen van Rijn
ea1d97f703 Merge pull request #6448 from SpaceTravelCompany/master
fixes Android build
2026-03-19 19:45:33 +01:00
Jeroen van Rijn
c29fd7f872 Merge pull request #6436 from nathanchere/patch-1
Update build_odin.sh to support LLVM 22
2026-03-19 19:18:31 +01:00
Yawning Angel
62d78d61fa src: Allow clang-style +/- for target features
This largely works as expected, except that as far as I can tell,
without explicit annotations added to the caller, (or a
`#force_inline`), the LLVM `target-features` function attribute
gets ignored by the inliner under the rationale of `-sse,-avx,-avx2`
is a subset of `+sse,+avx,+avx2`.

With `#force_no_inline` the correct code does get generated, but in
the regression I am trying to fix, the caller gratuitously also uses
SIMD, leading to horrific performance.
2026-03-19 19:25:23 +09:00
Znarf
e0d84ce73a Merge branch 'odin-lang:master' into master 2026-03-19 00:34:44 +01:00
xfitgd
b965e46d7c fixes Android build 2026-03-19 08:27:09 +09:00
Nathan Chere
d18eff9a93 Fix LLVMStructType calls deprecated as of LLVM 22 2026-03-18 21:21:00 +01:00
Nathan Chere
c2e42fe455 Remove deprecated LLVMGetGlobalContext calls 2026-03-18 21:11:12 +01:00
Nathan Chere
82d985b458 add LLVM 22 support to optimisation pass pipelines 2026-03-18 20:31:27 +01:00
Nathan Chere
eddc8084f1 update microarch table for LLVM 22 2026-03-18 18:30:39 +01:00
gingerBill
85c05b238e Handle bit fields separately 2026-03-17 13:50:49 +00:00
gingerBill
d28e19c957 Minor improve to check if the entity was already there 2026-03-17 13:47:02 +00:00
gingerBill
153a522228 Use normal i64 arithmetic instead of big-ints for hot path 2026-03-17 13:34:06 +00:00
gingerBill
46936e0e52 General improvements 2026-03-17 12:55:25 +00:00
gingerBill
e18b15e8f0 Move error-only things to the error scopes 2026-03-17 12:16:44 +00:00
gingerBill
9ad3a23f27 More improvements to performance; AtomicFreelist abstraction 2026-03-17 12:10:49 +00:00
gingerBill
b19e89578f Improve check_struct_fields performance; use CheckerTypePath free list 2026-03-17 11:42:03 +00:00
gingerBill
04cb889aed Begin interning ScopeMap strings 2026-03-17 11:04:32 +00:00
gingerBill
d5a78a9cf1 Remove canonical hash shortcut 2026-03-17 09:43:16 +00:00
gingerBill
239b86c566 Fix typos 2026-03-17 09:20:14 +00:00
gingerBill
a8c6ea7c8a Implement a new StringInterner 2026-03-17 09:18:39 +00:00
gingerBill
f7ede8632f Minor changes 2026-03-17 08:10:13 +00:00
gingerBill
cb7a87773b Split keys and slots and allocate them both together 2026-03-16 18:04:25 +00:00