Recovering the MVS 3.8j source at DLIB level, so that MVS/CE can be built from that source in future.
Built on Dave Kreiss' Build MVS from Source — his reconstructed source,
his DSK* PTFs, his build jobstreams and his utilities. He answered on
2026-09-06 that this work may be released as freeware, with no copyright and
no terms, and asked to be credited by name and email:
Dave Kreiss, davekreiss@gmail.com. Without his fifteen years on it there
would be nothing here to recover.
- A source tree at the DLIB level of MVS 3.8j — distribution-independent, so not "source for our MVS/CE" but source for MVS 3.8j. That is the trunk; everything beyond — a BREXX integration, 3390 extensions, whatever comes — is development branching off from there.
- Building MVS/CE from that source. The seam is in the MVS-sysgen project's
sysgen.py:step_03_build_dlibsproduces the DLIBs from IBM'szdlib1.hettape, and everything after it derives from those DLIBs. If the DLIB content comes from our source, the rest of the chain builds on unchanged.
The source IBM shipped does not match the object code IBM shipped. The object carries maintenance levels the source never received. Closing that gap is the task.
The success criterion is objective: the assembled CSECT is byte-identical to its counterpart in the distribution library, or it is not. That is precisely what makes the work automatable.
Recovery runs on the host; MVS is only an oracle and a runtime. Assembly is
done with as370 from cc370, comparison
with cmplmd370 from the same toolchain. An agent works through a module list;
SMP only comes in at the end of the chain.
The traffic goes both ways. cc370's own test corpora are, without exception,
cc370 output — necessary, and unable to find a gap in cc370's own format
readers. The material here is not: 5,252 distribution-library members bound by
IBM's linkage editor, and 3,904 compared pairs in
work/measurements/tree-run.jsonl.gz.
Running it against the tools found four real defects on 2026-09-06 alone. When
something breaks, send the case, not the diagnosis — twice that day the
diagnosis was wrong and the case was not.
| Directory | Contents |
|---|---|
docs/ |
plan, runbook, analysis of Dave Kreiss' project, message drafts |
baseline/ |
MVS/CE baseline: inventories, checksums, DLIB comparisons |
src/ |
the recovered source, by target library |
tables/ |
generated tables: ported / missing |
tools/ |
pipeline and orchestrator |
work/ |
derived material: the macro corpus, measurements, extracted utilities |
evidence/ |
per-module chain of evidence: diffs, iteration history, reports |
ptf/ |
SMP packaging: ++PTF/++USERMOD, JCLIN |
Raw material does not live here but in ~/repos/MVSSRC: Dave Kreiss'
install package and his working state (MVSBLD/, 5,529 modules), the
correspondence as PDFs, the TSO sources and two web mirrors.
TODO.md— what to do nextdocs/workplan.md— why and where todocs/kreiss-project.md— what we are building ondocs/runbook.md— how things actually work
- Dave Kreiss' material — freeware, no copyright, no terms, credited as
above.
UTL31,LOADLMDandMAPLMDare deliberately not here: they descend from the disassembler on CBT tape file 217 (R. Thornton) and their terms are unknown to him too. - IBM MVS 3.8 material — macros and source extracted from a running MVS/CE and from public mirrors of MVS 3.8 source. It is distributed the way the hobbyist community has distributed it for decades.
- Our own work — tools, documents, measurements. Take it and use it.
Everything in this repository is English — documents, issues, pull requests,
commit messages, comments. German reference copies of the plan and the project
analysis are kept outside the repository, in ~/repos/MVSSRC/WORK/doc/.