# SNIPPETS_VERIFIED — Q+ VS Code extension 0.6.0 snippets vs Q+ 1.3.0-dev

- date: 2026-10-29T20:59:34+08:00
- toolchain (QPLUS_ROOT): /home/fyj/qplus_work/snapshots/v13_a5_candidate
- build/bqvm sha256: 9898e6b29913b9338597549881dc7a50f01c1ffbf615c303a8632f34d29d3332 (147840 bytes)
- build/qboot.qbc sha256: 378f5f858d8553760ae4b55aecac7773cdbec6386a6a986dd34a51d722175b34 (492963 bytes)
- extension: 0.6.0

## Snippet -> instantiations -> real compiler result

### pub_fn.q (from snippets/qplus.json)
```q
// Snippet `pubfn` (instantiated defaults): pub fn + helper call.
pub fn helper(x: i32) -> i32 { return x + 1 }

fn main() -> i32 {
    return helper(41)
}
```
compile: `QPLUS_ROOT=/home/fyj/qplus_work/snapshots/v13_a5_candidate build/bqvm --timeout-ms 0 build/qboot.qbc test/fixtures/snippets/pub_fn.q -o /tmp/snip_pub_fn.qbc`
result: rc=0

### macro_repeat.q (from snippets/qplus.json)
```q
// Snippet `macrorep` (instantiated defaults): M1-lite repetition + separator.
macro arr($($x: expr),*) {
    [$( $x ),*]
}

fn main() -> i32 {
    let a: i32[3] = arr!(1, 2, 3)
    return a[0] + a[1] + a[2]
}
```
compile: `QPLUS_ROOT=/home/fyj/qplus_work/snapshots/v13_a5_candidate build/bqvm --timeout-ms 0 build/qboot.qbc test/fixtures/snippets/macro_repeat.q -o /tmp/snip_macro_repeat.qbc`
result: rc=0

### io_wait.q (from snippets/qplus.json)
```q
// Snippet `iowait` (instantiated defaults): Q+ 1.3 async IO (VM-only).
use std.async;

fn worker() -> i32 {
    let r: i32 = io_wait(0, IO_READ, 100)
    return r
}

fn main() -> i32 {
    let t: i32 = spawn(worker)
    task_wait(t)
    return 0
}
```
compile: `QPLUS_ROOT=/home/fyj/qplus_work/snapshots/v13_a5_candidate build/bqvm --timeout-ms 0 build/qboot.qbc test/fixtures/snippets/io_wait.q -o /tmp/snip_io_wait.qbc`
result: rc=0

### task_sleep_until.q (from snippets/qplus.json)
```q
// Snippet `sleepuntil` (instantiated defaults): Q+ 1.3 async IO (VM-only).
use std.async;

fn worker() -> i32 {
    task_sleep_until(0)
    return 0
}

fn main() -> i32 {
    let t: i32 = spawn(worker)
    task_wait(t)
    return 0
}
```
compile: `QPLUS_ROOT=/home/fyj/qplus_work/snapshots/v13_a5_candidate build/bqvm --timeout-ms 0 build/qboot.qbc test/fixtures/snippets/task_sleep_until.q -o /tmp/snip_task_sleep_until.qbc`
result: rc=0

## Summary
```
ok 7 - snippet fixture: task_sleep_until compiles (Q+ 1.3 async IO, VM-only)

SNIPPET COMPILE TESTS PASS (7 checks) against /home/fyj/qplus_work/snapshots/v13_a5_candidate
```

## Q+ 1.4.1 / VS Code 0.7.0 — Modules B Phase2 snippets

- toolchain: /home/fyj/qplus_work/snapshots/v141_rc1b
- bqvm: 381f4de7f79626a21e0435c634de0178cb07bbd3cac481763838e71a2acf8c50; qboot.qbc: a14de553e5525a5abe9e0107f879de0082bdd6d5695d9f1dd269ffdfa0728da6

### qmodcall — main_qualified.q + util.q + good.map
```q
// Snippet `qmodcall` (instantiated defaults): Modules B qualified call.
fn main() -> i32 {
    let a: i32 = app.util::util_base()
    print(a)
    return 0
}
```
result: rc=0 (expect 0)

### privtype — main_private_type.q + bad_privtype.map
```q
﻿// Snippet 'privtype' (instantiated): private type used cross-module -> readable TC17.
fn take(s: Secret) -> i32 { return s.v }
fn main() -> i32 { return 0 }```
result: rc=4 (expect 4)
Error: [TC17] cross-module access to private type at line 2: private to module app.util

### snippet suite
```
ok 10 - snippet fixture: private-type example fails readably with TC17

SNIPPET COMPILE TESTS PASS (10 checks) against /home/fyj/qplus_work/snapshots/v141_rc1b
```

## Q+ 1.4.2 / VS Code 0.8.0 — native --module-map + OS SDK package

- toolchain: /home/fyj/qplus_work/snapshots/v142_rc1
- bqvm: cea62cda2bf415593a028b274f906065628a9a57716668cf64b763d63c568956; qboot.qbc: 6042aa3830b14299ecaf8cdde2529963f7131740c0b4ee9af04ab10dd3376319

### qmodcall under native Modules B Phase2.1 map (test/fixtures/snippets/native)
```q
// Snippet `qmodcall` under a native Modules B Phase2.1 `--module-map`.
fn main() -> i32 {
    let a: i32 = app.util::util_base()
    print(a); print(" ")
    let c: app.util::Color = app.util::Color::Red
    print(c)
    return 0
}
```
compile rc=0 (expect 0)
run output: 10 0

### osplat / OS SDK package under native map (test/fixtures/snippets/native/os)
```q
// Snippet `osplat`: OS SDK 0.1 prototype os.platform module (VM-only).
use os.platform;

fn main() -> i32 {
    print(OS_SDK_VERSION)
    return 0
}
```
compile rc=0 (expect 0)
run output: 0.1.0-proto

### native snippet + LSP 0.8 suites
```

NATIVE SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v142_rc1

LSP 0.8 NATIVE MODULE-MAP / OS SDK TESTS PASS (4 checks) against /home/fyj/qplus_work/snapshots/v142_rc1
```

## Q+ 1.4.6 / VS Code 0.9.0 — qbc v4 module:line + std.fs

- toolchain: /home/fyj/qplus_work/snapshots/v146_rc1
- bqvm: 51b5f0f2a021e96ceeb37b38145616dd9c62d20b30019f48b1bc6f3dbe1b788a; qboot.qbc: 0090d0ab46628326b9a6de89ab5b529044e4d3f56f44e7c0248ed82820a23ba8

### qbc v4 VM runtime error module:line (module-B project, div0 in app.util)
```
Runtime error: module app.util:3: division_by_zero: division by zero
Traceback (most recent call last):
  at boom (module app.util:3, pc=11)
  at main (entry:2, pc=6)
```
mapped by qplus.moduleDiagnostics -> app.util module file line 3 (LSP 0.9 test).

### std.fs snippets (V+ 1.4.6, VM-only)
```q
use std.fs;
fn main() -> i32 {
    let ok: bool = fs_mkdir("/tmp/qplus-snippet-fs-mkdir")
    let exists: bool = fs_exists("/tmp/qplus-snippet-fs-mkdir")
    let count: i32 = fs_readdir_count("/tmp/qplus-snippet-fs-mkdir")
    print(ok); print(" "); print(exists); print(" "); print(count)
    return 0
}
```
run output: true true 0 (fsmkdir), true (fsreaddir); fsseek compiles (VM-only; AOT loud)

### LSP 0.9 / std.fs suites
```

LSP 0.9 QBC V4 MODULE:LINE / STD.FS TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v146_rc1

STD.FS SNIPPET TESTS PASS (4 checks) against /home/fyj/qplus_work/snapshots/v146_rc1
```

## Q+ 1.4.8 / VS Code 0.10.0 — hex float + qfmt + AOT POC

- toolchain: /home/fyj/qplus_work/snapshots/v148_rc1
- bqvm: 4f3bf0e6ad3df2fd744b9494d45ffc68c95fd59ddce0774f29527cf4fac543cf; qboot.qbc: 54c9860755dfeba0d2926d99a3c9376435f0b5db3cdcff74a8fdac1dc0b20414

### C99 hex float literals (v148_rc1 real output)
```q
let a: f64 = 0x1.8p+1
let b: f64 = 0x1p-1074          // smallest subnormal
let c: f64 = 0x1.fffffffffffffp+1023 // DBL_MAX
```
run output: 3.000000 4.940656e-324 1.797693e+308

overflow loud: Error: float literal out of range (|literal| > DBL_MAX)  [rc=3, compile-time]

### qfmt (tools/qfmt.sh, QPLUS_ROOT)
```
version: qfmt 1.4.8-dev
stdin --indent 2:
  fn main() -> i32 {
    if true {
      return 1
    }
    return 0
  }
check rc=1 (unformatted -> 1)
```

### A.13 AOT multi-module POC (v148_rc1, NOT AOT 2.0)
- native module-map qbc v4 AOT: EMIT_OK (POC single-layer cross-module; AOT 2.0 not claimed)
- QBC_PARSE_FAIL -2 diagnostic maps to readable A.13 boundary + --module-map hint

### LSP 0.10 / 0.10 snippets / qfmt suites
```

LSP 0.10 HEX FLOAT / AOT POC / OS.SYNC TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v148_rc1

V0.10 SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v148_rc1

QFMT INTEGRATION TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v148_rc1
```

## Q+ 1.4.9 / VS Code 0.11.0 — TC20 u64 bitwise + AOT POC2 + qfmt project config

- toolchain: /home/fyj/qplus_work/snapshots/v149_rc1
- bqvm: 4f3bf0e6ad3df2fd744b9494d45ffc68c95fd59ddce0774f29527cf4fac543cf; qboot.qbc: 54c9860755dfeba0d2926d99a3c9376435f0b5db3cdcff74a8fdac1dc0b20414

### u64 bitwise TC20 (v149_rc1 real compile output)
compile rc=4 (expect 4)
Error: u64 bitwise (& | ^ ~ << >>) is not supported by Q+ (VM has no u64 bitwise opcode; convert to i32/u32 or use explicit casts) at line 3 [TC20]

### qfmt v2 project config (.qfmt.toml indent/max_line_length)
```
  fn main() -> i32 {
    if true {
      return 1
    }
    return 0
  }
qfmt 1.4.9-dev
```

### A.13.1 AOT POC2 boundary (v149_rc1, NOT AOT 2.0)
- AOT loader accepts qbc v1/v2/v3/v4 (v2 = C-lite module table); POC2: multi shared types + two-layer A->B->C parity
- QBC_PARSE_FAIL means AOT cannot read qbc (no ELF); AOT 2.0 NOT claimed

### OS SDK local docs (QPLUS_ROOT/docs)
OS_SDK_1.5_MVP.md
OS_SDK_DESIGN.md
OS_SDK_PROTO.md

### LSP 0.11 / 0.11 snippets / qfmt project-config suites
```

Node.js v22.23.4

Node.js v22.23.4

Node.js v22.23.4
```

## Q+ 1.4.9 / VS Code 0.11.0 — TC20 u64 bitwise + AOT POC2 + qfmt project config

- toolchain: /home/fyj/qplus_work/snapshots/v149_rc1
- bqvm: 4f3bf0e6ad3df2fd744b9494d45ffc68c95fd59ddce0774f29527cf4fac543cf; qboot.qbc: 54c9860755dfeba0d2926d99a3c9376435f0b5db3cdcff74a8fdac1dc0b20414

### u64 bitwise TC20 (v149_rc1 real compile output)
compile rc=4 (expect 4)
Error: u64 bitwise (& | ^ ~ << >>) is not supported by Q+ (VM has no u64 bitwise opcode; convert to i32/u32 or use explicit casts) at line 3 [TC20]

### qfmt v2 project config (.qfmt.toml indent/max_line_length)
```
  fn main() -> i32 {
    if true {
      return 1
    }
    return 0
  }
qfmt 1.4.9-dev
```

### A.13.1 AOT POC2 boundary (v149_rc1, NOT AOT 2.0)
- AOT loader accepts qbc v1/v2/v3/v4 (v2 = C-lite module table); POC2: multi shared types + two-layer A->B->C parity
- QBC_PARSE_FAIL means AOT cannot read qbc (no ELF); AOT 2.0 NOT claimed

### OS SDK local docs (QPLUS_ROOT/docs)
OS_SDK_1.5_MVP.md
OS_SDK_DESIGN.md
OS_SDK_PROTO.md

### LSP 0.11 / 0.11 snippets / qfmt project-config suites
```

LSP 0.11 TC20 / AOT POC2 / OS DOCS TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v149_rc1

V0.11 SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v149_rc1

QFMT PROJECT-CONFIG TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v149_rc1
```

## Q+ 1.6.0 / VS Code 0.12.0 — net POC + IO env + bench + TC15

- toolchain: /home/fyj/qplus_work/snapshots/v160_rc1
- bqvm: 7068ad0e754d49a78aeee0330f624e1b21ade168b855614085bf41be4f325790; qboot.qbc: 247321578e00ea609a44286b5ff948eff93f50bd34d6785e1606b239a0380317

### net Phase1 POC (v160_rc1 real toolchain)
```q
use std.net;
fn main() -> i32 {
    let lfd: i32 = net_tcp_listen(0)
    if lfd < 0 { return 1 }
    print(net_tcp_local_port(lfd))
    net_tcp_close(lfd)
    return 0
}
```
compile rc=0 (expect 0)
run output: -4AOT rc=5 (expect 5 loud)
AOT_UNSUPPORTED_BUILTIN: sys_* fn_idx=92
- NET_IMPLEMENTATION_POC.md doc link (local, no network); QPLUS_NET_REAL opt-in; no async/UDP/DNS/TLS/public net

### A5 IO env (read-only hints, not executed)
- BQVM_IO_MAX_TASKS: only decreases the IO task cap
- BQVM_MAX_TIMEOUT_MS: only bounds io_wait timeouts
- invalid env silently falls back to defaults; extension never executes commands/sets env

### benchmark read-only link
BASELINE_1.5.0.json
BASELINE_1.5.0.md
README.md
check_regression.sh
- command hint: bash bench/check_regression.sh [--threshold 1.5] [--no-run] (read-only hint)

### TC15 integer literal range (v160_rc1 real output)
rc=4 (expect 4)
Error: integer literal out of range at line 2 type=u8 range=[0..255] [TC15]

### LSP 0.12 / 0.12 toolchain suites
```

LSP 0.12 NET POC / IO ENV / BENCH / TC15 TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v160_rc1

V0.12 SNIPPET TESTS PASS (4 checks) against /home/fyj/qplus_work/snapshots/v160_rc1
```

## Q+ 1.11/1.12 / VS Code 0.13.0 — AOT net v2 + STD API + OS SDK 1.10 + SBOM

- toolchain: /home/fyj/qplus_work/snapshots/v210_rc1
- bqvm: b862b57fd84d6e8a6044458526803c9b2434c899f76171629154b7bd79c25ea0; qboot.qbc: 7248ce0df9bf65375a3e27476c25c0d87c3b3ac425c3cc319a37eacff55e2680; cgtest_aot: 9d16235f186894eb241c383a8b19ec5f018f1590d9622f1bd8ac9d7fa7dea1d6

### AOT network v2 matrix (docs/AOT_NET_POC.md, local)
- TCP public wrappers (std.net net_tcp_*) -> native ids 200-208 + sys_env_get 251; UDP basics (net_udp_*) -> 210-214
- opt-in QPLUS_NET_REAL=1 (VM) / QPLUS_AOT_NET=1 (AOT ELF); default -8; nonblock/poll/epoll/async AOT -8
- Linux x86-64 blocking IPv4 loopback only; AOT fd = raw OS fd (VM = language slot; opaque); NOT production/AOT 2.0

### net snippets (v210_rc1 real VM + AOT ELF runs)
```
ok 2 - net_aot_echo: std.net TCP echo compiles + runs on VM (QPLUS_NET_REAL=1)
ok 3 - net_aot_echo: AOT ELF echo runs (QPLUS_AOT_NET=1, native 200-208+251)
ok 4 - std_net_udp: UDP basic subset compiles + runs on VM (QPLUS_NET_REAL=1)
ok 5 - std_net_udp: AOT ELF UDP echo runs (native 210-214)

V0.13 AOT NET SNIPPET TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v210_rc1
```

### STD API (docs/STD_API.md, 269 functions / 9 modules, NOT complete reference)
- hover for std.net/math/string/fs adds the STD API note + local doc link

### OS SDK 1.10 (docs/OS_SDK_1.10.md, external prototype NOT published)
- conformance 13 PASS / 3 PARTIAL / 4 BLOCKED; tests 27/27; fuzz 189; api_stability 116/0; VM-only / AOT loud

### SBOM signing POC (docs/SBOM_SIGNING_POC.md, local POC only)
- SPDX 2.3 + GPG RSA-2048 throwaway test key; verify 3/3; NOT production / NOT Owner release signature

### LSP 0.13 suite
```

LSP 0.13 AOT NET v2 / STD API / OS SDK 1.10 / SBOM TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v210_rc1
```

## Q+ 1.13 / VS Code 0.14.0 — float semantics + AOT net Phase4 + qpm trust

- toolchain: /home/fyj/qplus_work/snapshots/v230_rc1
- bqvm: ec4c33bc2349a0661d4cef7badbb2824fe2a096773e547fc3500e64bd8eca7bd; qboot.qbc: 7248ce0df9bf65375a3e27476c25c0d87c3b3ac425c3cc319a37eacff55e2680; cgtest_aot: 1a845fe1cd092cc372d9362e1f70fe6e3ce9133ca14ab7c6e17bc755e9ce477b

### Floating-point semantics (docs/FLOAT_PARITY.md: AOT overall parity NOT claimed)
- pow fixed in 1.13: AOT FLOAT_PARITY_PASS (pow(2,10) VM/AOT parity); general AOT f64 comparisons may be NON-NUMERIC (==/!=/</>)
- exp/log/non-integer pow/round may differ; NaN/±0 caveat; do not claim overall AOT float parity

### AOT network Phase4 (docs/AOT_NET_POC.md)
- native 217 sys_net_poll: single 4-fd POLLIN poll (timeout -2, timeout=0 no event -13, invalid -4)
- native 216 set_nonblock: connect EINPROGRESS(-14)/EAGAIN(-13); accept/recv/send E_AGAIN(-13)
- connect non-blocking completion (POLLOUT/SO_ERROR)/epoll/async remain -8; Linux x86-64 loopback opt-in, non-production
- snippet net_aot_poll v230_rc1 VM+ELF output: AOT_NET_POLL_OK 1

### qpm trust chain POC (docs/QPM_KEY_ROTATION_DESIGN.md)
- root-signed index + local TOFU keyring (trust.json); qpm trust add/list/show/remove; --index-pubkey/--trust-key; verify-index
- LOCAL POC: no key id/multi-key/expiry/revocation/transparency log/HSM; NO identity authentication; docs link only (no execution)

### LSP 0.14 / 0.14 AOT net poll suites
```

LSP 0.14 FLOAT SEMANTICS / AOT NET PHASE4 / QPM TRUST TESTS PASS (6 checks) against /home/fyj/qplus_work/snapshots/v230_rc1

V0.14 AOT NET POLL SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v230_rc1
```

## Q+ 1.15 / VS Code 0.15.0 — cast semantics + AOT net Phase5/7 + qpm revocation/transparency

- toolchain: /home/fyj/qplus_work/snapshots/v250_rc1
- bqvm: 62ad57c7d5e9db6afb8962faed85aabef2d5adac299c72a28d8c46107eadc474; qboot.qbc: 7248ce0df9bf65375a3e27476c25c0d87c3b3ac425c3cc319a37eacff55e2680; cgtest_aot: c54acc9d58c8e7d3d69540bbe5aec1c1c164a6810a07032968faf71d01b5cc1d

### Cast semantics (spec + CAST_SEMANTICS_DOCS)
- u64(x): 64-bit bit pattern (integer sign-extended then u64; float truncate then mod 2^64)
- i32(u64): low 32 bits (sign-extended) = bit truncation, NOT numeric conversion
- i32(x): narrowing only; small-int casts checked; tagged i64 / u64 tag / boxed cell notes
- KNOWN AOT DIFFERENCE (1.15, unfixed): i32(u64); overall AOT cast parity NOT claimed

### AOT net Phase5/7 (NET_IMPLEMENTATION_PHASE7.md)
- Phase5: native 218/219 connect non-blocking completion (POLLOUT/SO_ERROR)
- Phase7: send cross-thread E_INVALID(-4); UDP application queue 16 packets x <=256B (sys_net_udp_queue_len/drop, VM-only, AOT -8); accept E_TIMEOUT(-2) VM/AOT parity
- poll2/combined events Phase8 NOT landed (not claimed); epoll/async/io_wait -8; Linux x86-64 loopback opt-in, non-production
- v250_rc1 real VM output: UDP_APP_QUEUE_OK 20 16 4 15 0; AOT queue stats: -8 -8

### qpm revocation / transparency-log POC (QPM_TRANSPARENT_LOG_DESIGN.md)
- local root-signed revocations.json + .sig; qpm trust revoke / qpm revoke key; --revocations reject revoked versions/keys
- transparency log ONLY design (no append-only log/STH/inclusion/consistency/freshness); LOCAL POC, no identity auth; docs link only (no execution)

### LSP 0.15 / 0.15 net Phase7 suites
```

LSP 0.15 CAST / AOT NET PHASE7 / QPM REVOCATION TESTS PASS (4 checks) against /home/fyj/qplus_work/snapshots/v250_rc1

V0.15 NET PHASE7 UDP QUEUE SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v250_rc1
```

## Q+ 1.16 / VS Code 0.16.0 — cast fix + AOT net Phase8 + qpm translog v2

- toolchain: /home/fyj/qplus_work/snapshots/v260_rc1
- bqvm: 3c04689aa3bb04401b8a2e31f0305466c02fccd55bf2cbe3a39104752698d34f; qboot.qbc: 7248ce0df9bf65375a3e27476c25c0d87c3b3ac425c3cc319a37eacff55e2680; cgtest_aot: 014f995e727f33382e0924c953ff63e83a00723a8cffefb3f1275d37b7a178fc

### Cast fix (docs/CAST_SEMANTICS.md): i32(u64) FIXED
- AOT I2I 0xC2 width cast now dereferences/unboxes tag then sign-extends (hcall 28); tools/test_cast_parity.sh -> CAST_PARITY_PASS
- VM: u64->i32 low 32 signed; u64->i64 bit pattern; i64->i32 low 32 signed; tagged int / boxed tag7 cells documented
- residual: Linux x86-64 I2I path only; overall AOT float parity still NOT claimed

### AOT net Phase8 (NET_IMPLEMENTATION_PHASE8.md)
- native 220 sys_net_poll2: fixed 4 fds, 2-bit event mask per fd (1=READ/2=WRITE; bits 2i/2i+1); returns ready mask/-2 timeout/-13 no-event/-4 invalid
- VM builtin 155 + net_poll2 wrapper; VM net sys fuzz NET_FUZZ_PASS=14 FAIL=0 (deterministic illegal fd/close/poll/queue cases)
- Phase9 AOT UDP queue counters native 221/222 NOT landed (not claimed); epoll/async/io_wait -8; Linux loopback opt-in, non-production
- v260_rc1 real VM+AOT ELF output: AOT_NET_POLL2_OK 1 2

### qpm transparency-log v2 (QPM_TRANSPARENT_LOG_DESIGN.md)
- local root-signed revocations.json(+.sig); STH checked against full local log prefix (not a compact proof object)
- NO compact consistency proof / NO gossip / NO freshness / NO anti-rollback / NO witness / NO online service / NO HSM / NO identity auth; LOCAL POC only

### LSP 0.16 / 0.16 net Phase8 suites
```

LSP 0.16 CAST FIX / AOT NET PHASE8 / QPM TRANSLOG V2 TESTS PASS (4 checks) against /home/fyj/qplus_work/snapshots/v260_rc1

V0.16 AOT NET PHASE8 POLL2 SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v260_rc1
```

## Q+ 1.17 / VS Code 0.17.0 — std.env state + AOT net Phase9 + qpm translog2

- toolchain: /home/fyj/qplus_work/snapshots/v270_rc1
- bqvm: 3c04689aa3bb04401b8a2e31f0305466c02fccd55bf2cbe3a39104752698d34f; qboot.qbc: 7248ce0df9bf65375a3e27476c25c0d87c3b3ac425c3cc319a37eacff55e2680; cgtest_aot: 9518f9c4a68e57ac4994d70d03c157e984919b46b6e3597903116ea0d8e93fc2

### std.env current state (v270_rc1)
- only env_get(key,default) / env_or_empty(key) / env_get_int(key,default) exist (VM builtin sys_env_get=41)
- std.env.args / args_count / args_at NOT implemented (stdlib/std/env.q reserved only) -> hover marks NOT IMPLEMENTED; no fabricated argv API

### AOT net Phase9 (NET_IMPLEMENTATION_PHASE9.md)
- AOT UDP app queue 16 packets x <=256B; queue_len/drop native 221/222 (VM 153/154); VM/AOT identical AOT_NET_UDP_APP_QUEUE_OK 20 16 4 15 0 -13
- poll2 does NOT observe app-queue data -> -13 (VM/AOT identical); documented AOT fd lifecycle differences (stale queue stats after close vs VM -4; invalid fd recvfrom AOT -10 vs VM -4)
- epoll/async/io_wait remain -8 (AOT epoll NOT implemented; no AOT_EVENT_LOOP_FEASIBILITY doc, see AOT_NET_FEASIBILITY)
- v270_rc1 real VM+AOT ELF output: AOT_NET_UDP_APP_QUEUE_OK 20 16 4 15 0 -13

### qpm translog2 (QPM_TRANSPARENT_LOG_DESIGN.md)
- local POC: RFC6962 Merkle + signed STH + inclusion + O(log n) compact consistency proof (qpm log consistency/verify-consistency) + local mirror gossip (qpm log gossip)
- qpm verify --transparency-sth package-record integration and witness/auditor NOT implemented; no online service/freshness/anti-rollback/identity auth; LOCAL POC only

### LSP 0.17 / 0.17 net Phase9 suites
```

LSP 0.17 STD.ENV / AOT NET PHASE9 / QPM TRANSLOG2 TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v270_rc1

V0.17 NET PHASE9 AOT QUEUE SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v270_rc1
```

## Q+ 1.18 / VS Code 0.18.0 — std.env args (A.30) + qpm translog3 + AOT epoll status

- toolchain: /home/fyj/qplus_work/snapshots/v280_rc1
- bqvm: f241b3cce62beaca057698894faabbf701761fc2b8343e5132540d9e2497562e; qboot.qbc: 7248ce0df9bf65375a3e27476c25c0d87c3b3ac425c3cc319a37eacff55e2680; cgtest_aot: d789044d1f55b1f053c7f75e7d3d60be7b28cd79e807565766fdf41b31a2ae26

### std.env argv args implemented (A.30, STD_API_ENV.md)
- args_count(): program args only (excl. program name/path); VM native 223 / AOT _start rsp
- args_at(idx, buf, cap): raw UTF-8 bytes into i32[]/len; -4 invalid index/negative, -9 cap/capacity too small, -4 no argv; deterministic no partial writes
- no UTF-8 validation, no args()->str[], no exec; Windows/Wine AOT no argv -> -4
- v280_rc1 real VM: no args -> ARGS_COUNT 0 -4; alpha beta -> ARGS_COUNT 2 5 -9 -4

### qpm translog3 (QPM_TRANSPARENT_LOG_DESIGN.md)
- local/offline POC: qpm verify --transparency-sth linkage + qpm log witness / verify-checkpoint (newer OK size-only without --file LOG; 525/45 checks)
- limits: no online witness/auditor/gossip service, no checkpoint gossip/freshness/anti-rollback, local JSON checkpoint only, no identity auth

### AOT epoll/async status (AOT_EVENT_LOOP_FEASIBILITY.md)
- external POC only, NOT integrated: external AOT_EPOLL_LOOP_OK 2 8/NET_POC10_PASS; merged tree NET10_RUN_FAIL rc=139; native 225-227 not in tree/test.sh
- async/io_wait remain -8; hover says do NOT claim AOT epoll/async support

### LSP 0.18 / 0.18 args suites
```

LSP 0.18 STD.ENV ARGS / QPM TRANSLOG3 / AOT EPOLL STATUS TESTS PASS (5 checks) against /home/fyj/qplus_work/snapshots/v280_rc1

V0.18 STD.ENV ARGS SNIPPET TESTS PASS (3 checks) against /home/fyj/qplus_work/snapshots/v280_rc1
```

## Q+ 1.19 / VS Code 0.19.0 — AOT epoll integrated (VM/AOT not unified) + net Phase10 + qpm translog4

- toolchain: /home/fyj/qplus_work/snapshots/v290_rc1
- bqvm: 3cb6afffdf94f581fd23840b6e1d26d2e60d99a12fc7cb3286e0883b3b6e369c; qboot.qbc: 7248ce0df9bf65375a3e27476c25c0d87c3b3ac425c3cc319a37eacff55e2680; cgtest_aot: 920909ab6e00935e2a2fa678e7603fc368d13ca41d71dc62674df4c0f5a1b1be

### AOT epoll (spec A.21.8 / AOT_EVENT_LOOP_FEASIBILITY.md)
- single-thread AOT epoll POC INTEGRATED: native 225 create1/226 ctl/227 wait; helper 6,953B/0 reloc; natdisp 200..227; AOT_EPOLL_LOOP_OK 2 8 / NET_POC10_PASS
- NOT unified: VM epoll 143-146 opaque slots vs AOT raw fds 225-227; no VM/AOT diff; async/io_wait remain -8 (do NOT claim AOT async)

### net Phase10 (NET_IMPLEMENTATION_PHASE10.md, spec A.21.9)
- AOT fd lifecycle table: closed/invalid fds -> -4; double close -> -4; fixture AOT_FD_LIFECYCLE_OK 0 0 -4 -4 -4 -4 -4 -4 (VM/AOT identical)
- poll2 now observes UDP application queue (non-empty -> POLLIN ready); AOT_NET_POLL2_APP_QUEUE_OK 1 15 16; Phase9 old -13 boundary superseded
- Phase11 (AOT nonblock connect via epoll) NOT landed (not claimed); NET_POC11_PASS

### qpm translog4 (QPM_TRANSPARENT_LOG_DESIGN.md)
- local POC: checkpoint chain validation, STH freshness (verify-checkpoint --max-age; STALE/TIMESTAMP_MISSING loud), multi-witness set (witness set add/list, verify-witness-set --threshold)
- limits: no online witness/gossip/anti-rollback service, no HSM/log rotation/identity auth; cross-size witness without --file LOG is size-only; selftest 50/50 / 575

### LSP 0.19 suite
```

LSP 0.19 EPOLL INTEGRATED/NOT-UNIFIED / NET PHASE10 / QPM TRANSLOG4 TESTS PASS (4 checks) against /home/fyj/qplus_work/snapshots/v290_rc1
```
