Repository navigation
OpenVMX V0.7-8
OVMX V0.7-8 Release Notes
Generated by tools/gen_release_notes.py from the merged history since V0.7-7 (129 commits). Do not hand-edit this file -- re-run the tool against the cut commit instead.
Features
- cut: V0.7-8 — ACLs on ODS-2 (+inheritance) + $CHKPRO, GRPPRV, mailbox protection, RIGHTSLIST holder records, default protection FA00, IO$_ACCESS + ATRDEF, executive lock manager, DECnet FAL remote DIRECTORY/DELETE/RENAME (DAP 7.2) + MAXIMUM LINKS, LIB$INITIALIZE, GCC cc1 on OVMX/Alpha, semantic oracle known-diff 310 -> 20 (#1545)
- vms-c6d1: mailbox protection via the executive's one VMS protection decision (promsk/UIC/BYPASS/READALL/SYSPRV); IO$M_NORSWAIT; sender PID proven (#1532)
- vms-9a63: GCC's cc1 builds VMS-hosted and runs on OVMX/Alpha (patches 0012/0013, <unixlib.h> C linkage, cc1-gate) (#1538)
- semantic oracle burn-down: known-diff 33 → 20 — the executive lock manager answers as OpenVMS (vms-a3d) (#1543)
- corpus: sys_find_held and sys_ident run in the guest (rights database + $GRANTID) (#1523)
- vms-768: GRPPRV enforced at the Files-11 ACP (system category for the accessor's own group) (#1508)
- vms-d404: ACL and protection inheritance on create (DEFAULT ACEs, DEFAULT_PROTECTION, new versions) (#1515)
- vms-b2f: advertise DAP 7.2 so a VMS client issues a remote RENAME (stacked on #1487) (#1534)
- vms-f91: NETACP sizes its inbound link pool from NCP SET EXECUTOR MAXIMUM LINKS (#1528)
- $PARSE of a name with more than one '.' on 64-bit: the last '.' is the type delimiter and the earlier ones stay in the name, ODS-5 escaped, as Alpha V8.4 RMS (VAX keeps RMS$_SYN) (vms-576); known-diff 42 -> 41 (#1544)
- vms-898a: also keep the guest console when a negctl run stops PARTWAY (suites NEVER RAN after some ran) (#1539)
- vms-d404: $CHKPRO + $CREATE_USER_PROFILE as OpenVMS V7.3 decides them (#1513)
- vms-d404 follow-up: a broken lock manager fails test_syssvc_acl instead of hanging the guest (#1541)
- Process default file protection is %XFA00, as VMS's RMS_FILEPROT default (#1531)
- vms-9cd: restore NETACP's three links per node (pool 9) that the #1487 squash reverted (#1537)
- $BRKTHRU to a user logged in on no terminal ends SS$_DEVOFFLINE in the IOSB, as OpenVMS (vms-eb46); sys_brkthruw's designed outcome in the no-login guest is exit(132); known-diff 43 -> 42 (#1540)
- F$USER is the process UIC in named form, rendered by $FAO !%I from the executive row (vms-86f); known-diff 89 -> 88 (#1533)
- vms-ccc: lib$spawn INPUT through RMS, honest FNF; sys_forcex runs its command file (#1524)
- vms-7d5a: RIGHTSLIST holder records + HOLDER key; $ADD_IDENT/$REM_IDENT/$ADD_HOLDER/$REM_HOLDER/$FIND_HOLDER/$FIND_HELD/$FINISH_RDB (#1507)
- vms-38b: SYS$QIO/SYS$QIOW serve IO$_ACCESS/IO$_DEACCESS (FIB, name, resultant name, attribute list) through the executive ACP (#1536)
- vms-cbd: retire the unlinked FIX-record stdio veneer and its host suites (Baron decision 2026-10-08) (#1530)
- vms-38b: ATRDEF captured from a live OpenVMS Alpha V8.4 STARLET.MLB; vms/atrdef.h generated from it; IO$_ACCESS attribute-list observation (#1535)
- vms-277a: DECnet FAL serves remote DIRECTORY/FULL, DELETE, RENAME with VAX-identical status bytes (#1487)
- Channel, device-name and EFN$C_ENF answers as OpenVMS: a channel beyond the table is SS$_IVIDENT, $CANCEL refuses an unheld channel, a malformed device name is SS$_IVDEVNAM, a mailbox's logical name goes with it, $READEF(ENF) writes 1 (vms-4a69 vms-3e9e); known-diff 94 -> 89 (#1527)
- vms-d404: ACLs on ODS-2 files -- stored as VAX V7.3 stores them, enforced by the executive ACP; SET/SHOW ACL, DIRECTORY/ACL, $PARSE_ACL/$FORMAT_ACL/$GET_SECURITY/$SET_SECURITY (#1504)
- CI: bound clang-tidy per file and run in parallel (informational job was cancelled red at the 30-min cap in 4 of 30 runs) (#1529)
- DCL lexical functions evaluate their arguments and answer as OpenVMS (vms-86f); known-diff 164 -> 94 (#1516)
- $GETDVI: TT is this process's terminal (the executive row's), and a device-name logical is translated through LNM$FILE_DEV (SYS$COMMAND) (vms-b14e); known-diff 209 -> 207 (#1526)
- semantic oracle burn-down: known-diff 209 → 201 — $CREPRC PRC$M_HIBER and VMS image specs (vms-ea42) (#1525)
- vms-9cd: NETACP admits three concurrent sessions per node (VMS DELETE ;* holds three FAL links) (#1522)
- vms-ec7e: a process without SYSNAM does not seed LNM$SYSTEM (fixes the Kernel Executive negctl red on main) (#1510)
- Common event flag clusters: re-association releases the old cluster, $DACEFC of none is success (vms-ec97); known-diff 209 -> 207 (#1521)
- One RMS name engine for $PARSE/$SEARCH/$CREATE/$OPEN/$ERASE; LIB$FIND_FILE end result (vms-670 vms-42f8 vms-576 vms-0a2 vms-137); known-diff 209 -> 176 (#1502)
- lab captures: live real-VAX brackets against a booted OVMX -- MAIL-11 inbound, SET HOST LA36, V7.3 DIRECTORY/FULL record formats (#1517)
- semantic oracle burn-down: known-diff 219 → 209 — terminal $QIO through the executive device row; SET TERMINAL reaches it (vms-d900 vms-a36) (#1520)
- $BRKTHRUW reaches real terminals and refuses as OpenVMS; $SNDOPR channel and length checks (vms-eb46); known-diff 229 -> 219 (#1519)
- $QIO/$QIOW: the service status is the queuing status; the I/O status is in the IOSB (vms-d01) (#1497)
- STR$/LIB$ routines as OpenVMS answers them (vms-bad vms-a91f vms-afcd vms-0ff7 vms-dbd vms-e1f vms-4c1 vms-74a) (#1514)
- vms-330: FAL persona proof states WHY GUEST auth / the local PUT source failed (#1511)
- semantic oracle: five new families (lock, lex, prc, brk, tt) — known-diff 140 → 264 (+125 new-family cases, −1 FAO.UIC.ID); $ENQ argument checks (#1509)
- vms-db7: LIB$INITIALIZE executed at image activation (tcc pragma extern_model, LINK.EXE psect collection, IMGACT before main) (#1505)
- test: fix main red — the MMK drive resolves its volume through its own LNM$JOB; re-anchor lnm-manager-delete-noop (per-facility negctl) (#1512)
- vms-f45: lib$spawn /NOWAIT never loses the completion (root cause of sys_forcex rc=124) (#1501)
- $GETJPI/$GETSYI/$GETDVI item codes, wildcards, node targets and widths as OpenVMS answers them (vms-bd30 vms-eb4 vms-74a vms-4ace vms-de3a) (#1498)
- vms-47f7: corpus guest default directory; LIB$CREATE_DIR rooted defaults + large initial allocation (#1496)
- vms-14b: RTAn: Device_Type, width and page from the originating terminal (CTERM) (#1483)
- semantic oracle burn-down: known-diff 192 → 151 — $FAO directive engine + $GETMSG from the observed message catalog (vms-546 …) (#1493)
- vms-9a6: grant packages:read so the buildx composite can use the GHCR mirror (#1503)
- vms-ec2 negctl: name the hole-fill checks by literal text so the host-defects selftest can find them (#1499)
- semantic oracle burn-down: known-diff 197 → 192 — LIB$*_SYMBOL call back into DCL's symbol tables (vms-cded) (#1495)
- semantic oracle burn-down: known-diff 213 → 197 — event flags: low byte names the flag, EFN$C_ENF names none (vms-3e9e) (#1494)
- vms-b447 + vms-6e28: $CREATE records the FAB's record attributes in the FAT; the NAM carries nam$w_fid / nam$w_did (#1485)
- semantic oracle burn-down: known-diff 264 → 213 — logical-name residency: executive LNM$PROCESS, per-mode names, real $CRELNM/$TRNLNM/$DELLNM (vms-ef21) (#1491)
- semantic oracle burn-down: known-diff 272 → 264 — RMS stream and access errors (vms-3b5) (#1492)
- test: startnet gate -- no echo|grep -q under pipefail (flake) (#1488)
- semantic oracle burn-down: known-diff 275 → 272 — LIB$FIND_FILE binds RMS (vms-214) (#1486)
- test_syssvc_privilege_enforce: the NETMBX section skips loudly where no NIC (the Alpha harness) enters no _NET: device (#1489)
- vms-04b: an initial connect that dies frees its block for the joiner to dial again -- no more half-open wait (#1467)
- vms-db7: DEC C feature-switch API (decc$feature_*, decc$set/get_reentrancy) over a table of honoured features; DECC$FILE_SHARING changes how the C RTL opens files (#1472)
- semantic oracle burn-down: known-diff 310 → 275 — RUN from any directory, $QIO completion, mailbox EOF, NLA0:/$GETDVI (#1482)
- CI (vms-9a6): digest-pinned GHCR mirror of base images + buildx setup that no longer needs anonymous Docker Hub (#1484)
- vms-ec2: the VC receiver keeps a frame that arrives ahead of the hole, inside the credit it granted -- as a real V7.3 port does (#1455)
- privileges: NETMBX joins VMS_PRV_M_ENFORCED (the executive refuses a channel to NET: without it) (#1481)
- vms-9f8e: every RMS-backed alpha DECC$SHR is the C RTL file layer — the FIX-record stdio veneer is no longer linked (#1480)
- vms-158 + vms-98e: RMS $OPEN fills the FAB record format; $OPEN/$CREATE fill the NAM resultant (#1442)
- vms-9f8e: directory streams in the C RTL fd layer — opendir/readdir/rewinddir/seekdir over $PARSE/$SEARCH (#1479)
- NETMBX: $ASSIGN of the DECnet network device (NET:/_NET:) requires it; proven by test_syssvc_privilege_enforce, anchored by net-assign-netmbx-check-removed (#1477)
- vms-fd1: gcov-tool builds where <ftw.h> has no nftw; client headers hide callback prototypes DECC$SHR lacks (#1478)
- corpus: lib_create_dir host status + written reason (#1474)
- vms-8d1: semantic oracle, RMS family; RMS $GET points RAB$L_RBF at the record and clears RSZ at EOF (vms-3b5, part); bounded pointer-text fields (#1469)
- vms-898a: keep death console as artifact + stop losing the ttyS1 transcript to a garbled banner (#1436)
- vms-e839: GCC patch 0010 — alpha VMS frame locals no longer overlap the arg-home area (#1475)
- privileges: SYSPRV, BYPASS and READALL join VMS_PRV_M_ENFORCED; DCL gates name the privilege VMS names (#1476)
- vms-38b: VMS-ABI system services — SYS$ASSIGN/SYS$DASSGN/SYS$TRNLNM/SYS$CRELNM over 32-bit descriptors and item lists (#1462)
- vms-8d1: semantic oracle, rights-database family (for vms-7d5a) + RIGHTSLIST.DAT FDL/record observations (#1468)
- vms-8b4d: acp-fileop-no-dlm-lock widens the unserialized RMW window in the MUTATION so the collision is deterministic (#1437)
- vms-0ae: RMS merges a relative directory ([.X], [-], []) with the process default directory (#1473)
- vms-4ba3/vms-e839: DEC C fgetname; OTS$HOME_ARGS homes floating args (printf %f was 0); varargs TUs at -O2 (#1470)
- vms-022/vms-692: VMS-layout STARLET headers + VMS-ABI SYS$PARSE/SYS$SEARCH (#1460)
- vms-8d1: semantic oracle, rtl family (#1466)
- privileges: TMPMBX + PRMMBX enforced (vms-5b8 faithful path, step 1) (#1471)
- lib$create_dir + ACP directory initial allocation and FAT version limit (#1461)
- vms-8d1: semantic oracle, info family (#1465)
- priv enforcement proofs: test_syssvc_privilege_enforce + 5 negctl defects (TMPMBX, PRMMBX, READALL, BYPASS, SYSPRV); floor 155->160 (#1459)
- vms-8d1: semantic oracle — $FAO/$FAOL/$GETMSG (#1463)
- vms-2166: RTAn: remote port info (node::user) lives in the executive; SHOW TERMINAL/PROCESS and F$GETDVI read it (#1447)
- vms-28d: DEC C struct stat — st_ino[3] File ID and st_fab_rfm/rat/fsz/mrs by default (#1453)
- corpus: re-measure baseline, regenerate scoreboard (#1458)
- vms-8d1: semantic oracle — $ASSIGN/$QIO/mailboxes (#1456)
- vms-fd1: GCC patch 0009 -- VMS-host vms-ld.c/vms-ar.c declare what they call (#1454)
- vms-b90: the C RTL file layer over RMS — stdio and descriptors on ODS-2 via $OPEN/$CREATE/$READ/$WRITE (#1451)
- vms-946: terminal_identity_gate scans the tree in one awk and one grep per token -- 57 s under load -> 0.5 s (#1452)
- vms-8d1: semantic oracle — logical names ($CRELNM/$TRNLNM/$DELLNM) (#1450)
- vms-32ae: DEC C file-spec translators — decc$to_vms / decc$from_vms / decc$translate_vms (#1441)
- vms-830: negctl anchors for efn0/setdfprot/clrast suites (#1443)
- vms-ba4: a pre-admission joiner follows a real VAX that continues the CM dialogue (the CNXMGRERR of stall-rig arms L-3/L-9) (#1430)
- vms-629: OVMX's lock directory answers a real VAX's op-0x08 barrier lookup -- unanswered, the VAX's barrier never released (#1422)
- vms-5dd2: RMS $DISPLAY fills XABDAT/XABPRO from the ODS-2 header over the ACP (#1446)
- vms-5bb5: stage NCP.EXE on the VAX system disk (#1448)
- vms-872: the process default directory is the executive's; RMS completes a relative filespec in it (#1445)
- vms-254: RMS block I/O -- SYS$READ / SYS$WRITE over the ACP window (#1438)
- vms-8d1: semantic oracle — OVMX services vs real OpenVMS (event flags) (#1440)
- vms-fb4: DEC C vfork()/exec*() — subprocess creation of ODS-2 images via the IMGACT launcher (#1423)
- vms-a70 direction B: CTERM host speaks the real protocol; a real VAX SET HOSTs into it (#1374)
- vms-44a: $CLRAST -- clear the AST-in-progress state so a queued AST is delivered at once (#1435)
- CI health: deterministic scenario_deadlock ordering (vms-5bb) + opcom gate stops walking /tmp (vms-a9a) (#1381)
- OPCDEF: 24-bit target-class mask at +1 (oracle layout) (#1433)
- vms-d85 inbound: OVMX FAL server serves a real OpenVMS COPY in both directions (dirlist, NAME, RMS stream) (#1368)
- $SETDFPROT: executive-resident process default file protection (Linux + NetBSD) (#1434)
- vms-f811 follow-up: event flag 0 is a real event flag -- completion sites set it (only EFN$C_ENF means none) (#1432)
- tools/lab-alpha: console drivers + MACRO-32 probes for the Alpha V8.4 oracle; UAFDEF/UTCDEF/FPDEF dumps (#1428)
- vms-735: V0.7-7 on the public demo -- 12 of 12, every run quiet (#1429)
- vms-f811: SYSUAF upgrade path -- legacy UAF$L_FLAGS bits are detected (OVMX flags-layout marker @0x190) and converted on first access (#1427)
- vms-6af1: NETACP serves a bounded pool of inbound sessions (R4 G2) + live object-17 FAL dispatch (#1357)
- vms-fd1: ovmx-ld searches positional archives (--library) as Unix ld and VMS LINK do, instead of whole-archiving them (#1426)
- LINK/IMGACT: cross-image REFLONG imports for 32-bit-pointer consumers (OVMX_IMP_LONG longword cells) (#1425)
- vms-f811 step 12: SS$_NOTALLPRIV = 1665 (last known mismatch) (#1413)
- vms-d85: inbound FAL runs in a FAL.EXE server process with the authenticated user's identity (R4 G3) (#1356)
- vms-f811 step 15: LIB$/STR$/MTH$_ message codes are the V7.3 values (#1419)
- vms-fd1: GCC patch 0008 -- VMS-host DELETE_IF_ORDINARY reports with error ("%s: %m") as gcc.cc does (perror_with_name was removed) (#1424)
- vms-f811 step 14: RMS FAB/RAB/NAM constants are the V7.3 values; legacy RMS sidecars converted (#1418)
- vms-44a: $CREATE_UID node field = SCSNODE (observed on the Alpha lab) (#1421)
- vms-9484: the coordinator commits the other members first, then the subject -- as a real coordinator does (#1415)
- vms-ea1: the DLM blocking AST is cat-0x02 op 0x05 on a real VAX (op 0x04 was a stale-buffer misread) (#1410)
- roadmap: reconcile for V0.7-7 (#1420)
- vms-f811 step 13: 23 small prefixes match the V7.3/V8.4 oracles (incl. the Alpha-only names) (#1417)