bplu4t2f
94ea51a5d1
XML hot path: Use an arena instead of strings_to_free.
2026-10-09 14:00:56 +02:00
bplu4t2f
f1673a3140
Disable instrumentation for measurement (also when is awkward here :( bill what were you thinking)
2026-10-09 13:22:42 +02:00
bplu4t2f
f25fc5b2a8
XML hot path: Instrumentation and some optimizations
2026-10-09 13:11:08 +02:00
bplu4t2f
a252797538
Add comment for potential optimization
2026-10-08 23:11:48 +02:00
bplu4t2f
2d2cf5e581
strings.write_rune doesn't round-trip all the way through I/O to call append
2026-10-08 23:11:05 +02:00
bplu4t2f
40b68a7102
Experimental hot path optimization in XML test.
2026-10-08 23:09:37 +02:00
bplu4t2f
bb5fe2173d
Make math/big parsing huge radix 16 integers from strings way faster (big speedup to core tests in CI)
2026-10-08 18:02:45 +02:00
bplu4t2f
db3224348a
Speed up map tests
2026-10-08 16:11:31 +02:00
gingerBill
0e9f930983
Merge pull request #7823 from odin-lang/bill/debug-info
...
Debug Info Improvements
2026-10-08 13:55:21 +01:00
gingerBill
6bc36986d2
Keep the names of big endian types in CodeView and add RAD views to swap their bytes
2026-10-08 13:41:52 +01:00
gingerBill
311394cfbc
Clean up odin_debugger.py
2026-10-08 13:32:11 +01:00
gingerBill
756e0daac0
Show #soa arrays, set-like maps, allocators and any values in the gdb and lldb printers
2026-10-08 13:20:11 +01:00
gingerBill
4d8e8aaf4a
Mark optimized procedures, add assignment tracking, and add MD5 file checksums on LLVM 22+
2026-10-08 12:28:21 +01:00
gingerBill
8109f1a401
Copy the lldb pretty printers into the .dSYM of macOS binaries built with -debug where lldb loads them from
2026-10-08 12:04:16 +01:00
gingerBill
f689471c90
Embed the gdb pretty printers in the .debug_gdb_scripts section of ELF binaries built with -debug, and move the script next to the runtime it reads
2026-10-08 11:54:08 +01:00
gingerBill
5caf8b7408
Add gdb and lldb pretty printers for map, union, strings, slices, and dynamic arrays
2026-10-08 11:43:12 +01:00
gingerBill
ba52d1485f
Merge pull request #7821 from odin-lang/bill/7820
...
Fix #7820 : keep only the origins of what a call's flow loads from memory of an unknown type in the escape analysis
2026-10-08 11:16:22 +01:00
gingerBill
d0a5d4a8e2
Fix #7820 : keep only the origins of what a call's flow loads from memory of an unknown type in the escape analysis
2026-10-08 11:14:39 +01:00
gingerBill
81842d44dc
Improve RAD Debugger view information for unions, string16, and anything else need to be generated
2026-10-08 11:09:33 +01:00
gingerBill
fa88124d6c
Merge pull request #7819 from odin-lang/bill/atomics
...
Improved Atomic Analysis: Fences, Weak Compare-Exchange, Futex Wakes, and Volatile Memory Access
2026-10-08 10:56:38 +01:00
Jeroen van Rijn
a961bb5ddb
Merge pull request #7818 from bbodi/fix/sha3-init-round-start
...
Reset keccak_round_start in _sha3.init
2026-10-08 02:51:19 -07:00
gingerBill
535132a22e
Add @(futex_parameter="name")
2026-10-08 10:46:58 +01:00
gingerBill
29f4b033df
Describe bit_sets as flag enums on DWARF and typeid as an enum of the type table defined once alongside any, declare the element of #soa range loops
2026-10-08 10:42:43 +01:00
gingerBill
7b312ac696
Check for invalid enum kind cases with the atomic reporting
2026-10-08 10:29:26 +01:00
gingerBill
702533c4ef
Warn on volatile accesses of what is accessed atomically, as a volatile access is not atomic
2026-10-08 10:23:44 +01:00
gingerBill
399b6d4a36
Name procedures and globals in debug info by package and enclosing procedure, with literals named by line, one shared name for all polymorphic instances, and exported and custom link names kept
2026-10-08 10:10:15 +01:00
gingerBill
9db7f49441
Warn on atomics on a local whose address is only taken by them, suggesting volatile_load/volatile_store
2026-10-08 10:09:06 +01:00
bbodi
f7f3e63191
Reset keccak_round_start in _sha3.init
...
init left the round start untouched. A context that skipped zeroing
with `= ---`, or one reused after TurboSHAKE, kept a stale value, so
SHA-3 and SHAKE ran too few rounds and returned wrong hashes silently.
2026-10-08 11:02:47 +02:00
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
gingerBill
216bcf7475
Split the debug types module into eight picked by a hash of each type's name, defined in parallel rounds and anchored by a union of pointers to its types
2026-10-08 09:48:40 +01:00
gingerBill
8dee146bf3
Warn on weak compare-exchanges whose success is ignored, futexes woken before they are written, and signal fences where a thread fence would pair; reject atomics on what may be misaligned for them
2026-10-08 09:46:14 +01:00
gingerBill
91ec3aa76b
Make atomic fences only order what they may be reached after (or before), including through calls to the procedures with the relaxed accesses
2026-10-08 09:20:26 +01:00
gingerBill
0a4724602b
Define record debug types once in a debug types module with forward declarations in every other module
2026-10-08 09:18:15 +01:00
gingerBill
8c692ad0e9
Give debug types unique identifiers, describe self-referencing procedure types per debug format, declare range loop variables once, and use DWARF 5 on Darwin and Linux
2026-10-08 08:56:39 +01: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
6cfa3dafb7
Finalize debug info per module in parallel, and skip debug info work that was never used
2026-10-08 01:05:24 +01:00
gingerBill
35fdd3c499
Fix infinite recursion lowering procedure types that contain themselves
2026-10-08 00:26:40 +01: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