Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions dist/stdlib-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -4812,7 +4812,7 @@
},
"STDFIX": {
"synopsis": "m-stdlib — fixture lifecycle and per-test isolation.",
"description": "YDB nested-transaction-based isolation. YDB enforces TPQUIT:\n``tstart`` and the matching ``trollback`` MUST live in the same\nroutine frame. STDFIX therefore exposes only one-shot wrappers —\n``with`` and ``invoke`` open AND close their scope before\nreturning. There is no standalone setup() / teardown() pair.\n\nPublic labels:\n with(tag,code) ; XECUTEs code inside an auto-managed\n transaction scope; rolls back on exit\n and re-raises any error code raised\n inside ``code``.\n $$active() ; → 1 if any nested transaction is open\n (any TSTART, not just STDFIX-owned).\n register(tag,setupCode,teardownCode) ; declarative fixture\n invoke(tag,code) ; fixture-aware variant of with(): runs\n registered setup hook, then code, then\n registered teardown hook — all inside\n one rolled-back scope.\n cleanup ; idempotent rollback of any leaked\n transaction scope; safe at $tlevel=0.\n\nState layout (under ^STDLIB($job,\"FIX\",...)):\n STACK,$tlevel = tag ; one entry per open scope, set inside\n the transaction so TROLLBACK erases it.\n REG,tag,\"SETUP\" ; registered setup code\n REG,tag,\"TEARDOWN\" ; registered teardown code\n\n``trollback $tlevel-1`` rolls back exactly the level this frame\nopened, so nested with()/invoke() pairs roll back inner-only —\nbare ``trollback`` (which targets level 0) would unbalance every\nouter transaction.\n\nErrors set $ECODE to one of:\n ,U-STDFIX-EMPTY-TAG,\n ,U-STDFIX-UNREGISTERED-TAG,",
"description": "YDB nested-transaction-based isolation. YDB enforces TPQUIT:\n``tstart`` and the matching ``trollback`` MUST live in the same\nroutine frame. STDFIX therefore exposes only one-shot wrappers —\n``with`` and ``invoke`` open AND close their scope before\nreturning. There is no standalone setup() / teardown() pair.\n\nPublic labels:\n with(tag,code) ; XECUTEs code inside an auto-managed\n transaction scope; rolls back on exit\n and re-raises any error code raised\n inside ``code``.\n $$active() ; → 1 if any nested transaction is open\n (any TSTART, not just STDFIX-owned).\n register(tag,setupCode,teardownCode) ; declarative fixture\n invoke(tag,code) ; fixture-aware variant of with(): runs\n registered setup hook, then code, then\n registered teardown hook — all inside\n one rolled-back scope.\n cleanup ; idempotent rollback of any leaked\n transaction scope; safe at $tlevel=0.\n\nState layout (under ^STDLIB($job,\"FIX\",...)):\n STACK,$tlevel = tag ; one entry per open scope, set inside\n the transaction so TROLLBACK erases it.\n REG,tag,\"SETUP\" ; registered setup code\n REG,tag,\"TEARDOWN\" ; registered teardown code\n\n``trollback target`` (target = the pre-tstart $tlevel) rolls back\nexactly the level this frame opened, so nested with()/invoke() pairs\nroll back inner-only — bare ``trollback`` (which targets level 0) would\nunbalance every outer transaction.\n\nEngine portability (YDB + IRIS): YDB ``trollback n`` rolls back TO level\nn; IRIS ``trollback n`` rolls back n LEVELS (opposite meaning), so the\nrollback is engine-split — IRIS uses ``trollback $tlevel-target``. Full\npartial-rollback fidelity holds on both (nested inner-only rollback works\non IRIS too). REQUIREMENT: IRIS needs the namespace's database to be\nJOURNALED for ``TSTART`` (an unjournaled db faults ``<UNIMPLEMENTED>``);\nSTDFIX is therefore usable only on a journaled IRIS namespace. (TSTART is\nalso forbidden lexically inside an IRIS ``try{}``/``xecute``, but STDFIX's\nown tstart is a direct command, so this never bites here.)\n\nErrors set $ECODE to one of:\n ,U-STDFIX-EMPTY-TAG,\n ,U-STDFIX-UNREGISTERED-TAG,",
"errors": [
"U-STDFIX-EMPTY-TAG",
"U-STDFIX-UNREGISTERED-TAG"
Expand Down Expand Up @@ -4858,7 +4858,7 @@
"description": "Opens a YDB transaction, sets the scope tag in the stack,\nXECUTEs code, then ``trollback $tlevel-1`` to roll back\nexactly this scope. If code raises, the trap rolls back the\nscope and re-raises so the caller can observe the original\n$ECODE.",
"source": {
"file": "src/STDFIX.m",
"line": 43
"line": 53
}
},
"active": {
Expand All @@ -4885,7 +4885,7 @@
"description": "STDFIX-managed scopes also appear in ^STDLIB($job,\"FIX\",\"STACK\",N)\nfor callers that need to distinguish their own from foreign transactions.",
"source": {
"file": "src/STDFIX.m",
"line": 68
"line": 84
}
},
"register": {
Expand Down Expand Up @@ -4931,7 +4931,7 @@
"description": "",
"source": {
"file": "src/STDFIX.m",
"line": 78
"line": 94
}
},
"invoke": {
Expand Down Expand Up @@ -4973,7 +4973,7 @@
"description": "Looks up registered setup/teardown for tag, then runs setup\n(if any), code, teardown (if any) — all inside one transaction\nthat rolls back on exit.",
"source": {
"file": "src/STDFIX.m",
"line": 92
"line": 108
}
},
"cleanup": {
Expand All @@ -4997,7 +4997,7 @@
"description": "TROLLBACKs all the way to $tlevel=0 if any transaction is\nopen; safe to call at $tlevel=0 (no-op). Useful as a\ndefensive between-tests reset in runner code. Note: this\nrolls back NON-STDFIX transactions too — call only at a\ntop-level frame that owns no enclosing tstart.",
"source": {
"file": "src/STDFIX.m",
"line": 121
"line": 141
}
}
},
Expand Down
Loading
Loading