Commit Graph
19653 Commits
Author SHA1 Message Date
gingerBill 95f3194c08 Divvy out the entity graph's edge searches one node at a time and empty each search's visited set by what was put in it 2026-10-05 08:54:24 +01:00
gingerBill 92fbab1b5a Find the global initialization order alongside the minimum dependency set as only the backend reads it 2026-10-05 08:37:49 +01:00
gingerBill ba17318ff6 For the min dep set, do not record local variables, constants, or labels 2026-10-05 08:25:20 +01:00
gingerBill 5adc9426a1 Mark the min dep set's entities with no declaration without walking them, skip the type info lock for types already added, and split the walk into tasks sooner 2026-10-05 00:52:07 +01:00
gingerBill 003e64ca4b Sort the lazily checked entities with natural_merge_sort too 2026-10-05 00:17:37 +01:00
gingerBill 5a2f09b002 Add natural_merge_sort in sort.cpp and use it to sort the global entities 2026-10-05 00:15:41 +01:00
gingerBill 6abf51b621 Add untyped expression values in parallel with a thread_pool_for_chunks helper shared with the cycle scan 2026-10-04 23:53:55 +01:00
gingerBill caefb4809d Remove add_type_info_for_type_definitions which ran before any minimum dependency count was set and so never added anything 2026-10-04 23:39:12 +01:00
gingerBill 043890d609 Check for type and inline cycles in one parallel pass over the definitions 2026-10-04 23:34:28 +01:00
gingerBill 7cbb04159d Name nested and anonymous procedures from their enclosing declarations alone so the name never depends on which module names them first 2026-10-04 23:22:32 +01:00
gingerBill 0cbc5a6602 Define an anonymous procedure in every module that reaches it, so which module defines it never depends on timing 2026-10-04 23:02:40 +01:00
gingerBill 07b984f9c9 Correct type aliases per package in parallel, visiting only constants of an identifier 2026-10-04 22:34:00 +01:00
gingerBill 9a521c6064 Check file scope directives in parallel once every global entity has been checked 2026-10-04 21:50:44 +01:00
gingerBill 1296ed9660 Make the string interner's cells one cache line with a 4 MB table and hash each identifier once 2026-10-04 21:22:49 +01:00
gingerBill bab596921c Read a file on Windows without a seek or a separate attribute query and list a directory with one attribute query and a large fetch 2026-10-04 20:27:01 +01:00
gingerBill 707c314aaa Remove the global locks from resolving import paths and queue an import's package as soon as the import is parsed 2026-10-04 20:12:59 +01:00
gingerBill e774d7954c Allow the compiler with slightly older forms of the compiler which only have default_hasher and not default_hasher_fixed 2026-10-04 19:36:19 +01:00
gingerBill 0eee2664d8 Merge pull request #7744 from odin-lang/bill/soa-pointer-using
Update test_core_runtime.odin
2026-10-04 19:17:34 +01:00
gingerBill 4957867890 Update test_core_runtime.odin 2026-10-04 19:16:24 +01:00
gingerBill dd14b4db9b Merge pull request #7743 from odin-lang/bill/soa-pointer-using
Allow `using` on `#soa` pointers, and make the fields a `using` `#soa` pointer parameter promotes assignable
2026-10-04 19:16:04 +01:00
gingerBill 8a72e22f03 Allow using on #soa pointers, and make the fields a using #soa pointer parameter promotes assignable 2026-10-04 19:14:17 +01:00
gingerBill f05c574cae Merge pull request #7520 from Pippoosh/fix-soa-pointer-using-field
Fix #soa pointer field access through using
2026-10-04 19:01:28 +01:00
gingerBill 18aead3ba1 Merge pull request #7729 from odin-lang/bill/llvm-backend-improvements
LLVM Backend Performance Improvements to Reduce Compile Times Part 2
2026-10-04 19:01:11 +01:00
gingerBill 448f859cee Read a switch's case values with LLVMGetSwitchCaseValue on LLVM 22 which no longer keeps them in its operands 2026-10-04 18:42:06 +01:00
gingerBill 6679c120f9 Wait for a polymorphic struct's fields before reading them in the subtype and comparison checks 2026-10-04 18:34:52 +01:00
gingerBill 19cbd86501 Merge pull request #7738 from staledonuts/master
Fix glsl mix_vec4 and mix_dvec4 implementations
2026-10-04 18:24:41 +01:00
Jeroen van Rijn dc0b041d59 #force_inline math.lerp, unlerp, saturate 2026-10-04 19:20:29 +02:00
Jeroen van Rijn 667efeb840 Merge pull request #7731 from Arthur031221/fix/timezone-utc-nanoseconds-20261004-s29
Preserve fractional timestamps in timezone conversions
2026-10-04 05:24:55 -07:00
DeadDonuts Corp. 79a112a18f Merge branch 'odin-lang:master' into master 2026-10-04 13:26:35 +02:00
Jeroen van Rijn cda48c4622 Merge pull request #7739 from Kelimion/radlink_default
Make `radlink` default linker on Windows
2026-10-04 04:12:06 -07:00
Jeroen van Rijn be590a7c35 Make radlink default linker on Windows 2026-10-04 13:00:24 +02:00
gingerBill 52fcaaf024 Copy a large loaded aggregate through a local when the fast instruction selector cannot store it one field at a time 2026-10-04 10:49:41 +01:00
gingerBill c7de0b9e36 Copy a constant built in a local of its own rather than loading and storing it, and use a constant slice's backing array directly 2026-10-04 10:48:53 +01:00
gingerBill ccf1ae4fe9 Move the lowering for LLVM's fast instruction selector to llvm_backend_opt.cpp 2026-10-04 10:16:50 +01:00
gingerBill ddcf115f6f Implement the same large aggregate improvement for or_else 2026-10-04 10:12:35 +01:00
gingerBill 6fbc112088 Lower more instructions for the fast instruction selector in LLVM 2026-10-04 10:05:19 +01:00
DeadDonuts Corp. 0ade92df56 Fix glsl mix_vec4 and mix_dvec4 implementations
Fix mix implementation typo bug.
Line 763 and 766  never used the target value to progress y  channel.
2026-10-04 11:01:30 +02:00
gingerBill 55eecd010a In a ternary if expr, large aggregate need to be selected through memory 2026-10-04 09:58:15 +01:00
Jeroen van Rijn 930cb5dab3 Merge pull request #7733 from BradLewis/fix/odin-parser-for-stmt-comma
Fix odin parser assert with invalid for-in stmt
2026-10-03 15:26:13 -07:00
gingerBill 1396a36bd3 Prefer /OPT:NOICF when using -debug on Windows to improve linking performance 2026-10-03 23:25:17 +01:00
Brad Lewis 66ccc1011c Fix odin parser assert with invalid for-in stmt 2026-10-04 09:11:04 +11:00
gingerBill 5a4b877beb Only match the missing procedure assertion in the equal procedure dependencies issue test 2026-10-03 22:33:08 +01:00
gingerBill 733c3fdea7 Add to the tests the equal procedure dependencies test 2026-10-03 22:31:40 +01:00
gingerBill b079c1a23b Merge pull request #7672 from MatzeOGH/fast_float_swar_parse
Second Part of the Fast Float Port (SWAR based scanning)
2026-10-03 22:31:02 +01:00
gingerBill bdb0364739 Remove the missing procedures fallback from the backend: the checker adds the Objective-C runtime procedures the backend calls, local foreign procedures with a duplicate name are bound to the existing declaration, and local procedures passed to a $ parameter are created up front 2026-10-03 22:26:08 +01:00
Arthur031221anddozn d046345202 Preserve fractional timestamps in timezone conversions
Apply timezone offsets to the normalized nanosecond timestamp.
Test fractional roundtrips, dates before 1970 and nanosecond carry.

Co-authored-by: dozn <16659513+dozn@users.noreply.github.com>
Signed-off-by: Arthur031221 <levi74108520963@gmail.com>
2026-10-04 03:39:11 +08:00
gingerBill 5795183b75 Queue a polymorphic specialization's body when it is first used rather than when it is generated, so the minimum dependency set is only generated once; assert that every body in it was checked rather than checking any missed ones late 2026-10-03 19:37:26 +01:00
gingerBill cd08004d33 Free the temporary memory of each procedure once it is generated; keep the strings used as keys of the constant string maps permanently 2026-10-03 18:38:09 +01:00
gingerBill 1688a2f9b1 Merge pull request #7728 from odin-lang/bill/map-improvements
`map` performance improvements
2026-10-03 18:18:22 +01:00
gingerBill 5c787d0e72 Re-enable the temporary_allocator() and fix the arena_temp_end 2026-10-03 18:17:25 +01:00