gingerBill
b7f585f448
Merge branch 'bill/rexcode' of https://github.com/odin-lang/Odin into bill/rexcode
2026-06-15 13:35:28 +01:00
Flāvius
a4f08f8307
Load rexcode encode/decode tables from committed binary blobs
...
Each ISA's hand-written ENCODING_TABLE (the single source of truth) now lives
in a per-arch tablegen/ metaprogram that flattens it and serializes committed
binary blobs; the library #loads those into @(rodata) at compile time rather
than compiling a table body. No arch keeps encoding_table.odin or
decoding_tables.odin -- only a generated tables.odin loader and tables/*.bin.
* Two-stage, type-checked pipeline: tablegen Stage A emits human-readable
generated Odin, which compiles and serializes the blobs in Stage B.
* encode() goes through encoding_forms(m); decoders are unchanged apart from
x86's flattened 2-D index. Decode tables are byte-identical to the old ones.
* build.lua: a LuaJIT driver for the metaprograms, validations, and tests,
with cross-platform gating and a clear report.
* Docs refreshed; the obsolete forward-looking plan in cross_arch_design.md
trimmed to what was actually built.
* Attribution headers added to all rexcode source files; the generators emit
them so generated files keep them.
2026-06-15 07:43:29 -04:00
gingerBill
75a8639426
Make @(rodata)
2026-06-15 12:22:37 +01:00
gingerBill
ecf9a305ee
Add @(require_results) to register procedures
2026-06-14 22:00:37 +01:00
gingerBill
5c9cd0146d
Add @(require_results) to operand procedures
2026-06-14 21:57:27 +01:00
gingerBill
611cc807cd
Add @(require_results) to instruction procedures
2026-06-14 21:54:24 +01:00
gingerBill
ced500fc94
Add fmt formatting to the Instruction.operands
2026-06-14 21:52:14 +01:00
gingerBill
c8ed0d89ed
Alignment fields in the decode entry type for ppc
2026-06-14 21:23:07 +01:00
gingerBill
695dd62b58
Align instruction helpers
2026-06-14 21:01:51 +01:00
gingerBill
15a426c6b3
Minor code style changes
2026-06-14 21:00:38 +01:00
gingerBill
2f0c1457e5
Make x86 decoding tables very uniform and orderly
2026-06-14 20:46:27 +01:00
gingerBill
19bc584a0d
Manually format the x86 encoding table
2026-06-14 20:05:10 +01:00
gingerBill
ce3ff285b6
Minor style improvement
2026-06-14 19:50:32 +01:00
gingerBill
efa535eec2
Minor clean up of the mnemonics code
2026-06-14 19:48:02 +01:00
gingerBill
d75624ccbd
Add @(require_results) where appropriate to isa
2026-06-14 19:41:05 +01:00
gingerBill
340fb4f697
Clean up x86 decoding tables
2026-06-14 19:39:34 +01:00
gingerBill
2f5d548471
Minimize rsp decoding tables
2026-06-14 19:35:30 +01:00
gingerBill
253c1570d8
Minimize riscv decoding tables
2026-06-14 19:34:16 +01:00
gingerBill
d74693eb0f
Minimize ppc_vle decoding tables
2026-06-14 19:32:53 +01:00
gingerBill
dacb5e3a17
Minimize PPC decoding tables
2026-06-14 19:30:42 +01:00
gingerBill
cd4b4e1f36
Minimize mos65816 decoding tables
2026-06-14 19:24:16 +01:00
gingerBill
70e92d2a4d
Minimize mos6502 decoder table
2026-06-14 19:23:21 +01:00
gingerBill
c8de23f678
Minimize arm64 decoding table
2026-06-14 19:22:31 +01:00
gingerBill
67dfa25696
Minimize MIPS decode table
2026-06-14 19:22:17 +01:00
gingerBill
176ee8c68d
Minimize arm32 decode table size
2026-06-14 19:19:11 +01:00
gingerBill
1adbd0dcb4
Improve formatting for x86 tables and minimize outputting "zero" entries
2026-06-14 19:16:53 +01:00
gingerBill
c49e296f5e
Update doc files
2026-06-14 18:24:59 +01:00
gingerBill
a116f69b7e
Use core:mem/virtual instead of the posix specific calls
2026-06-14 17:14:14 +01:00
gingerBill
2e58cc51d9
Improve mnemonic_builders for x86
2026-06-14 17:03:19 +01:00
gingerBill
a8d7aedf1e
Add rodata where appropriate
2026-06-14 16:50:21 +01:00
gingerBill
d6ae77b67e
core:rexcode
2026-06-14 16:30:18 +01:00
Jeroen van Rijn
7d19f3b735
Merge pull request #6463 from ngortheone/bufio_reader_read_doc
...
doc: use punctuation to disambiguate buifio.reader_read_slice doc
2026-06-13 21:52:11 +02:00
gingerBill
a0e29fca80
Merge pull request #6822 from RainerXE/pool-free-list-aba
...
core/container/pool: fix ABA race in the free list
2026-06-13 14:03:19 +01:00
TheRadischen
f41b57f1cc
fixed type in slice.rotate
...
sry bll,
i swear im never programming tired again
2026-06-12 21:48:41 +02:00
RainerXE
baf85d78a3
core/container/pool: fix ABA race in the free list
2026-06-12 09:28:14 +02:00
RainerXE
b029cf08aa
core/nbio: fix use-after-free of op.l in cross-thread exec
2026-06-11 23:34:20 +02:00
bluziDev
83702108a4
Add control sequences for Alternate Screen Buffer
...
Adds constants DECASB_ENTER and DECASB_EXIT to ansi.odin. ASB stands for Alternate Screen Buffer. DECASB_ENTER ( ?1049h ) saves the cursor position, clears the alternate buffer, and switches the view to said buffer. DECASB_EXIT ( ?1049l ) restores the main buffer's contents and the cursor position.
Commonly used by editors, games, and TUIs in general to avoid polluting the main buffer.
2026-06-10 23:48:33 -06:00
WP. Yingamphol
d3b7251757
Fix error message: 'do' not on the same line as 'for'
2026-06-07 20:22:12 +07:00
gco
77af26b5c8
fix buffer overflow when running a test which shrinks a dynamic array that was not the last allocation
2026-06-07 11:23:05 +10:00
Laytan Laats
23f57a4328
nbio(posix): fix wake_up error when the event loop hasn't ticked yet
2026-06-05 21:07:36 +02:00
Jeroen van Rijn
213b5e779b
Merge pull request #6732 from adihodos/fix-backtrace
...
Link against libstdc++exp for backtrace support
2026-06-05 16:42:04 +02:00
gingerBill
1c9fa5d0b7
Merge pull request #6731 from odin-lang/bill/expand-values-operator
...
Support `**` as `expand_values` operator: `**x` == `expand_values(x)`
2026-06-05 11:42:08 +01:00
Jeroen van Rijn
d6f6c476fc
Merge pull request #6765 from MightyChubz/fix/linux-inaccurate-meminfo
...
fix: Get meminfo from `/proc/meminfo` over `sysinfo()`
2026-06-05 09:39:30 +02:00
Alexander Cusaac (MightyChubz)
05f0539960
refactor: Move mem_unit before loop and apply it in switch statement
2026-06-04 13:21:27 -04:00
Alexander Cusaac (MightyChubz)
9942625c63
refactor: Use default_context() over removing "contextless"
2026-06-04 13:17:42 -04:00
Alexander Cusaac (MightyChubz)
c9621748a4
typo
...
oops
2026-06-03 16:55:51 -04:00
Alexander Cusaac (MightyChubz)
26f824eb8e
docs: Updated comment to explain approach more accurately
2026-06-03 16:52:58 -04:00
Alexander Cusaac (MightyChubz)
962f8dfd1b
refactor: Add fallback to sysinfo() if /proc/meminfo can't be read
...
This is likely to never _actually_ execute, and the possibility of this
failing is extremely slim, but if this _does_ fail, then this fallback
should catch it, as long as I'm understanding things correctly. If the
fallback fails, we just go back to the original assert that existed
before.
2026-06-03 16:47:37 -04:00
Alexander Cusaac (MightyChubz)
3d3aa45e02
refactor: Update fallback to just return MemFree
2026-06-03 16:45:06 -04:00
Alexander Cusaac (MightyChubz)
32de482025
docs: Add small comment to explain purpose of approach
2026-06-03 16:44:31 -04:00