[Guix packaging] PDP-10/xpl-pdp-10 #61

Open
opened 2026-08-14 13:16:52 +00:00 by htayj · 1 comment
htayj commented 2026-08-14 13:16:52 +00:00 (Migrated from github.com)

Candidate

  • Upstream canonical URL: https://github.com/PDP-10/xpl-pdp-10
  • Source pinned commit/release when known: 0e57cbd9e2e2997134332f6784dccc262a069d99 (default-branch snapshot checked 2026-08-14)
  • Target concrete installed deliverable: host port of the PDP-10 XPL compiler
  • Primary category: compiler-toolchain
  • Tags: historical-computing, pdp-10
  • Primary language normalized: Unknown
  • Build system: gnu-build-system with bootstrap dependency
  • SPDX expression: LicenseRef-Free-Public-License-1.0.0
  • License status: declared-free
  • License evidence: GitHub repository metadata declares LicenseRef-Free-Public-License-1.0.0; the upstream license text still needs package-review confirmation.
  • Difficulty: hard — The external XPL translator/libxpl bootstrap and hard-coded developer path must be resolved; the license mapping still needs Guix review.
  • Workflow state: research
  • Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found.

Scope and blockers

Deliver the nexcom.xpl host compiler path, not the original PDP-10-only compiler.

Acceptance checks

  • guix lint -L. <package-name> and guix build -L. <package-name> pass once a package definition exists.
  • Compile a minimal host-side XPL source using only packaged local inputs.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:16:52Z.

## Candidate - Upstream canonical URL: https://github.com/PDP-10/xpl-pdp-10 - Source pinned commit/release when known: `0e57cbd9e2e2997134332f6784dccc262a069d99` (default-branch snapshot checked 2026-08-14) - Target concrete installed deliverable: host port of the PDP-10 XPL compiler - Primary category: compiler-toolchain - Tags: historical-computing, pdp-10 - Primary language normalized: Unknown - Build system: gnu-build-system with bootstrap dependency - SPDX expression: LicenseRef-Free-Public-License-1.0.0 - License status: declared-free - License evidence: GitHub repository metadata declares LicenseRef-Free-Public-License-1.0.0; the upstream license text still needs package-review confirmation. - Difficulty: hard — The external XPL translator/libxpl bootstrap and hard-coded developer path must be resolved; the license mapping still needs Guix review. - Workflow state: research - Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found. ## Scope and blockers Deliver the nexcom.xpl host compiler path, not the original PDP-10-only compiler. ## Acceptance checks - `guix lint -L. <package-name>` and `guix build -L. <package-name>` pass once a package definition exists. - Compile a minimal host-side XPL source using only packaged local inputs. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/61). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:16:52Z.
htayj commented 2026-08-25 17:17:38 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #618.

Canonical target: https://github.com/PDP-10/xpl-pdp-10 at fixed commit 0e57cbd9e2e2997134332f6784dccc262a069d99 (version 0-0e57cbd, 2021-01-29). At that exact revision, README says the original compiler is PDP-10-only and that port/nexcom.xpl is the host port built with the XPL-to-C translator at https://sourceforge.net/projects/xpl-compiler/; port/makefile gives the source-build path: translate nexcom.xpl to nexcom.c with xpl, then link nexcom.c with libxpl.a and xpl.h. The parent origin's exact-revision license evidence is github.com/PDP-10/xpl-pdp-10@0e57cbd9e2/COPYING: Free Public License 1.0.0 expressly permits use, copying, modification, and distribution for any purpose with or without fee. The bootstrap origin is the canonical SourceForge Git repository https://git.code.sf.net/p/xpl-compiler/code at fixed commit 643907731538b4e2256f11c48e3166bf5bb2609c (release 1.4, 2026-07-06); its exact-revision tree has its own COPYING with the same explicit grant, and its top-level/compiler makefiles build xpl and libxpl.a from tracked C sources before generating the XPL tools. There are no .gitmodules files or gitlink submodules in either fixed tree, so these are the complete independently fetched source origins and each has exact-revision redistribution evidence. The license is legally source-redistributable but non-standard; record LicenseRef-Free-Public-License-1.0.0 with a Guix custom license/non-copyleft value pointing to each exact COPYING file and retain both notices; the mapping needs normal Guix review, not a missing-permission blocker. No equivalent installed compiler package exists in the local channel or official Guix tree: tay/packages/pdp10-t-z.scm only provides pdp10-xpl-pdp-10-source, an unbuilt copy snapshot. Implement tay/packages/pdp10-xpl.scm, module (tay packages pdp10-xpl), with public package pdp10-xpl-pdp-10 and a private/native-input bootstrap package for the SourceForge translator. Use gnu-build-system; the target has the bootstrap translator as a native input only, implicit GCC/binutils/make for compilation, and no runtime XPL-to-C input because the generated nexcom executable is linked with libxpl.a. In the target build substitute the /Users/linda/xpl assignment in port/makefile with the bootstrap input's bin/include/lib paths, translate port/nexcom.xpl, link it with the bootstrap libxpl.a, install the executable under libexec, install port/xpl.lib and port/hello.xpl under share/pdp10-xpl, and retain the parent COPYING. The installed bin/xpl must be a Guix-path wrapper that executes the libexec compiler with -l $out/share/pdp10-xpl/xpl.lib before user arguments so the default library works from any working directory; later user -l arguments must remain able to override it. The isolated smoke proof is: in a fresh temporary directory with network disabled and no source checkout, invoke the installed bin/xpl on the installed hello.xpl with an absolute -o output path, assert exit status zero and a non-empty hello.rel; this proves the packaged host compiler and packaged local xpl.lib path without the bootstrap translator at runtime. Required acceptance facts after implementation are guix lint -L. pdp10-xpl-pdp-10 and guix build -L. pdp10-xpl-pdp-10, followed by that out-of-tree hello compilation; this research did not claim those package checks passed because no package definition was added.


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T17:17:38Z.

<!-- goocastle-disposition:sequential-reviewer:61:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #618. Canonical target: https://github.com/PDP-10/xpl-pdp-10 at fixed commit 0e57cbd9e2e2997134332f6784dccc262a069d99 (version 0-0e57cbd, 2021-01-29). At that exact revision, README says the original compiler is PDP-10-only and that port/nexcom.xpl is the host port built with the XPL-to-C translator at https://sourceforge.net/projects/xpl-compiler/; port/makefile gives the source-build path: translate nexcom.xpl to nexcom.c with xpl, then link nexcom.c with libxpl.a and xpl.h. The parent origin's exact-revision license evidence is https://github.com/PDP-10/xpl-pdp-10/blob/0e57cbd9e2e2997134332f6784dccc262a069d99/COPYING: Free Public License 1.0.0 expressly permits use, copying, modification, and distribution for any purpose with or without fee. The bootstrap origin is the canonical SourceForge Git repository https://git.code.sf.net/p/xpl-compiler/code at fixed commit 643907731538b4e2256f11c48e3166bf5bb2609c (release 1.4, 2026-07-06); its exact-revision tree has its own COPYING with the same explicit grant, and its top-level/compiler makefiles build xpl and libxpl.a from tracked C sources before generating the XPL tools. There are no .gitmodules files or gitlink submodules in either fixed tree, so these are the complete independently fetched source origins and each has exact-revision redistribution evidence. The license is legally source-redistributable but non-standard; record LicenseRef-Free-Public-License-1.0.0 with a Guix custom license/non-copyleft value pointing to each exact COPYING file and retain both notices; the mapping needs normal Guix review, not a missing-permission blocker. No equivalent installed compiler package exists in the local channel or official Guix tree: tay/packages/pdp10-t-z.scm only provides pdp10-xpl-pdp-10-source, an unbuilt copy snapshot. Implement tay/packages/pdp10-xpl.scm, module (tay packages pdp10-xpl), with public package pdp10-xpl-pdp-10 and a private/native-input bootstrap package for the SourceForge translator. Use gnu-build-system; the target has the bootstrap translator as a native input only, implicit GCC/binutils/make for compilation, and no runtime XPL-to-C input because the generated nexcom executable is linked with libxpl.a. In the target build substitute the /Users/linda/xpl assignment in port/makefile with the bootstrap input's bin/include/lib paths, translate port/nexcom.xpl, link it with the bootstrap libxpl.a, install the executable under libexec, install port/xpl.lib and port/hello.xpl under share/pdp10-xpl, and retain the parent COPYING. The installed bin/xpl must be a Guix-path wrapper that executes the libexec compiler with -l $out/share/pdp10-xpl/xpl.lib before user arguments so the default library works from any working directory; later user -l arguments must remain able to override it. The isolated smoke proof is: in a fresh temporary directory with network disabled and no source checkout, invoke the installed bin/xpl on the installed hello.xpl with an absolute -o output path, assert exit status zero and a non-empty hello.rel; this proves the packaged host compiler and packaged local xpl.lib path without the bootstrap translator at runtime. Required acceptance facts after implementation are guix lint -L. pdp10-xpl-pdp-10 and guix build -L. pdp10-xpl-pdp-10, followed by that out-of-tree hello compilation; this research did not claim those package checks passed because no package definition was added. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/61#issuecomment-5414067622). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T17:17:38Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#61
No description provided.