19803 Commits
Author SHA1 Message Date
Jeroen van Rijn 4d09219ff4 Merge pull request #7616 from wardjm/fix/parse_int_overflow
Fixed strconv overflow noted in issue#7608.
2026-10-08 01:57:40 -07:00
Jeffrey Ward c2684b43cb Added tests from issue 7608 comments.
Fixed "_" only and no digits. Now returns an error since this is effectively passing nothing to the parser.
2026-10-07 21:28:43 -04:00
gingerBill b0c36ab7ca Merge pull request #7816 from odin-lang/bill/atomic-memory-ordering-pass
Atomic Memory Ordering and Futex Operation Passes
2026-10-07 23:36:22 +01:00
gingerBill d2d1fe8372 Remove the redundant t.flags += {.Joined} in _join on Unix, as it was already set atomically 2026-10-07 23:27:48 +01:00
gingerBill 71e6288049 Use relaxed ordering for the early load in futex_wait and futex_wait_with_timeout, as every caller acquires itself after waking 2026-10-07 23:19:25 +01:00
gingerBill ecedcbc0bf Add @(futex=.Wait) and @(futex=.Wake) with intrinsics.Futex_Operation, so the atomic analysis checks futex words, and use relaxed ordering for Atomic_Cond's counter 2026-10-07 23:18:02 +01:00
gingerBill bb9f0a2c47 Prefix the atomic analysis procedures with check_atomic_ 2026-10-07 22:54:59 +01:00
gingerBill 158d0a9d8d Replace the #+escape-analysis/#+atomic-analysis file tags with #+analysis which takes names and ! like #+vet 2026-10-07 22:50:20 +01:00
gingerBill 7571a2676f Use relaxed ordering for nbio's mpsc head counter and pool's destroy exchange, as their acquire paired with nothing 2026-10-07 22:44:36 +01:00
gingerBill b12195bebf Add an atomic memory ordering analysis (-no-atomic-analysis, #+atomic-analysis, #+no-atomic-analysis) warning where release or acquire ordering pairs with nothing, and -vet-atomic-access for plain reads of what is accessed atomically 2026-10-07 22:43:08 +01:00
gingerBill 7743370a2d Merge pull request #7815 from SOBEX/llvm-fake-use
Adds binding for `llvm.fake.use`
2026-10-07 22:13:03 +01:00
gingerBill 42ce435053 Merge pull request #7814 from BigBoyBarney/vet-help
Update -vet flag help message
2026-10-07 22:12:56 +01:00
gingerBill 711f08a641 Make is_type_lock_free follow what each target lowers without library calls, and reject atomics on types which are not lock-free 2026-10-07 21:58:32 +01:00
gingerBill ad685e1144 Compare floats by their bits in atomic compare-exchange; reject atomics on what is within a struct #packed 2026-10-07 21:50:16 +01:00
gingerBill 403738e5cd Merge pull request #7802 from odin-lang/bill/compiler-improvements-2026-10
Flow-based Escape Analysis of Stack Memory + Show where parapoly procedures and records were instantiated in errors within them
2026-10-07 21:19:06 +01:00
gingerBill d728de8a20 Add #+escape-analysis and #+no-escape-analysis file tags, and keep the syntactic check of unsafe returns where the escape analysis is disabled 2026-10-07 21:06:56 +01:00
gingerBill 6784db9f86 Add -no-escape-analysis, which cannot be used with -vet-nil-deref or -vet-uninitialized 2026-10-07 20:56:04 +01:00
gingerBill 476ff62d6d Add -vet-uninitialized, reporting reads of what is declared with --- before anything is stored in it 2026-10-07 20:35:53 +01:00
gingerBill 043f6e4c3d Use the temporary allocator for the escape analysis's scratch memory 2026-10-07 20:08:35 +01:00
gingerBill cfde9fb9cb Tidy up check_escape.cpp 2026-10-07 20:02:04 +01:00
gingerBill 3f1a87dd33 Treat the fields brought in by 'using' on locals and in 'using' statements as part of what it was applied to in the escape analysis 2026-10-07 19:42:29 +01:00
gingerBill e512fe07d3 Add -vet-nil-deref, reporting dereferences and calls through what is nil on every path reaching them 2026-10-07 19:36:37 +01:00
SOBEX 88c4c7a0f0 Adds binding for llvm.fake.use 2026-10-07 20:18:18 +02:00
Sylphrena c270ad65be Updated -vet flag help message 2026-10-07 20:05:47 +02:00
gingerBill b9aa030773 Merge pull request #7812 from bplu4t2f/fix-test-7547-spurious-error
Fix spurious error in `test_issue_7547`
2026-10-07 19:04:34 +01:00
bplu4t2f 0fd160b942 Fix spurious error in test_issue_7547 2026-10-07 19:47:15 +02:00
gingerBill 9ee4b3f497 Cut the escape call graph's setup by numbering, counting and releasing in parallel, and finding callers alongside the groups 2026-10-07 18:16:36 +01:00
gingerBill cb3165cd2c Settle recursive escape groups one member at a time after a first parallel round 2026-10-07 18:00:18 +01:00
gingerBill 969b84fb9c Build the escape call graph's edges in parallel 2026-10-07 17:51:05 +01:00
gingerBill 20c603392e Analyse the escape summaries in the strongly connected components of the recorded calls, so the results are deterministic 2026-10-07 17:44:59 +01:00
gingerBill 6413e89d63 Merge pull request #7809 from odin-lang/bill/general-feature-improvements
General Feature Improvements
2026-10-07 17:39:07 +01:00
gingerBill 01dfa7756b Analyse the escape summaries in the call graph's strongly connected components, so the results are deterministic 2026-10-07 17:26:20 +01:00
gingerBill b428be5b42 Add tests for @(align=N) variables and the return address intrinsics 2026-10-07 17:08:21 +01:00
gingerBill e6d0112104 Add f16 variants to the core:sys/llvm standard C library bindings 2026-10-07 17:04:22 +01:00
gingerBill 94cc223925 Remove LLVM 23 support 2026-10-07 17:00:30 +01:00
gingerBill 6961b36425 Fix the core:sys/llvm bindings for current LLVM, add the missing ones; allow #const parameters to take their defaults, and reuse an intrinsic already declared by the compiler 2026-10-07 16:56:25 +01:00
gingerBill 9fb76aa3ba Add intrinsics return_address, frame_address, stack_pointer, and address_of_return_address 2026-10-07 16:32:32 +01:00
gingerBill 5659d485cb Merge the escape analysis's stores of the caller's memory from different calls 2026-10-07 16:31:08 +01:00
gingerBill 23d057c01f Use a specialization's full type for its escape summary in calls 2026-10-07 16:05:56 +01:00
gingerBill b2aa2457f7 Don't report a deprecated procedure for being named in a procedure group but only when a call selects it 2026-10-07 16:00:01 +01:00
gingerBill 5ff7268cab Add @(align=N) for variables, raising the alignment of globals, locals, @(static) and @(thread_local) variables to at least N 2026-10-07 15:54:21 +01:00
gingerBill 9863858570 Fix the deterministic CBOR encoding of maps with non-string keys 2026-10-07 15:52:48 +01:00
gingerBill c713bede2f Stop core and tests leaving references to stack memory behind 2026-10-07 15:49:33 +01:00
Jeroen van Rijn 7749885624 Merge pull request #7808 from Kelimion/fix-7806
Fix #7806
2026-10-07 07:49:06 -07:00
gingerBill 50810e6717 Add store summaries to the escape analysis 2026-10-07 15:44:07 +01:00
Jeroen van Rijn f6073fa253 Merge pull request #7807 from Kelimion/zlib
Upgrade vendor:zlib to 1.3.2
2026-10-07 07:42:23 -07:00
gingerBill 30f80e1079 Align matrices to their largest power-of-two column/row stride, capped at 16; pad fixed capacity dynamic arrays of over-aligned elements to their full size 2026-10-07 15:40:59 +01:00
Jeroen van Rijn 326aca6c67 Fix #7806 2026-10-07 16:40:28 +02:00
gingerBill 63f3df70f1 Merge pull request #7804 from BigBoyBarney/optional-vendor
Make vendor collection optional
2026-10-07 15:29:15 +01:00
Jeroen van Rijn 619dd66bc8 Upgrade vendor:zlib to 1.3.2 2026-10-07 16:28:19 +02:00