2026.8.24: v0.1.0
    finish x86-64 backend

2026.8.24: v0.2.0
    fix some bug and add some tests

2026.8.28: v0.3.0
    finish wasm backend

2026.9.5: v0.4.0
    finish risc-v64 backend
    
2026.9.5: v0.5.0
    finish wasm stack machine polish and docs

2026.9.13: v0.6.0
    finish loongarch64 (la64, LP64D) backend with data/float-pool emission
    add SSA interpreter (interp package) with builtin runtime and CLI --run
    fix rv64 port: isel write-back, comparison lowering, call cty return
    register encoding, conditional-branch fall-through semantics

2026.9.13: v0.7.0
    finish arm64 (AArch64, AAPCS64 ELF) backend: target constants, ABI
    lowering, instruction selection and GAS emission (emit_arm64)
    byte-exact vs vendor/qbe -t arm64: IR 5684/5684, asm 406/406
    add CLI -t arm64, compile_arm64/compile_arm64_debug API, snapshots and
    docs; make live/spill/rega target-aware (rglob, nrsave, retregs/argregs)


2026.9.19: v0.8.0
    refactor documents
    refactor repo package
    refactor float in backends

2026.9.19: v0.9.0
    rv64: emit data segments and floating-point constant pool byte-identical
    to vendor/qbe -t rv64; thread -G gas settings; unique cross-function labels
    compare.py: diff stderr for debug dumps (the old stdout compare was a no-op)
    debug dumps: drop the export keyword, canonical stage headers, fix phiins
    temp naming (Tmp.bid + single-definition early-out)
    parser errors: qbe:<file>:<line>: format, reference token names and messages
    add tools/check_rv64_asm.py independent RISC-V encodability gate

2026.9.20: v0.10.0
    align with the frozen vendor/qbe reference (ripe-lang master 661ceb2)
    debug dumps: port parse.c typecheck() (operand/jump/undefined-block checks,
    clsmerge); front-end flags now 406/406 on all three targets, differential
    matrix 99.7%
    port simpl.c blit expansion; add blit0/blit1 pseudo-ops, reqz/rnez; rv64
    vararg lowering, aggregate Cptr blobs, compare operand classes
    assembly: .text/.balign/endbr64+hint#34/.p2align/.type/.size/GNU-stack,
    leaf-function %rsp framing, reference fp-constant rodata layout, quoted
    local symbols; amd64 263/336, arm64 252/336, rv64 224/336 byte-identical

2026.9.24: v0.11.0
    complete byte-for-byte alignment with vendor/qbe (661ceb2) on amd64/arm64/rv64
    debug dumps: 12096/12096 (12 flags x 3 targets); emitted assembly:
    1008/1008 (336 compilable tests x 3 targets) byte-identical
    rega: live-out registers mapped before allocation; section-3 bshas guard
    amd64: xsel "mov" suffix, non-leaf frame parity, leaf epilogue addq,
    shift-argument fixarg; arm64: ctoa negated table, Cptr call cty bit;
    rv64: argsclass ngp check, fpstruct field classes, struct-return blobs,
    extension constant class, alloc slots grouped by alignment class
    loadopt: stable phi ordering; CI now gates every debug flag and assembly

2026.9.24: v0.12.0
    compare.py: reference and port now get their own flagsets; -G m maps to the
    matching Mach-O reference target (amd64_apple/arm64_apple) and is skipped
    for targets without one (the blanket amd64_apple mapping was wrong)
    amd64 Mach-O (-G m): byte-identical to vendor/qbe -t amd64_apple (336/336);
    no .type/.size/.note.GNU-stack, __TEXT literal sections, "_" data refs;
    CI gates it
    arm64 Mach-O: labels, sym@page/@pageoff, .balign 4, "_" prefixes and
    literal sections implemented; the Apple ABI (4-byte non-wide stack slots,
    apple_selvastart/apple_selvaarg/apple_extsb) is still pending, so arm64
    -G m is reported but not gated
    docs (en+zh): retract the previously unverified "406/406 (-G e and -G m)"
    
2026.9.24: v0.13.0
    arm64 Mach-O (-G m) now byte-identical to vendor/qbe -t arm64_apple
    (336/336; compare.py 406/406): ported the Apple ABI path -- 4-byte stack
    slots for non-wide scalars (T.apple && !KWIDE), arguments after the
    ellipsis forced to 8-byte stack slots, apple_selvastart/apple_selvaarg,
    no vararg register-save area/slot bias, and a true 16-byte stack align
    (the old stk + (stk & 15) only worked for 8-byte-aligned stacks);
    apple_extsb is a no-op here (no narrow parsb..paruh/argsb..arguh forms)
    CI now gates the Mach-O flavor on both amd64 and arm64
