● Migration complete and verified. You were right to want to "find out" — it was a bit more than a rename. Here's #2

Merged
navicore merged 1 commit from migrate-plgc into main 2026-06-04 22:41:24 +00:00
Owner

what we found and did.

What actually changed (3 things, all handled)

  1. Flag rename — --goal → --query. (src/runner.rs, tests/curriculum.rs)
  2. New runtime dependency: clang ≥ 15 — plgc is a real LLVM compiler; it compiles each exercise to a native
    binary and links it with clang. Already provisioned: the navicore-rust runner image has clang-19, your machine
    has clang-18.
  3. CI install — the crate is plg-compiler (binary plgc), and patch-prolog2 isn't on crates.io. Per your call:
    git-install, rev-pinned (cargo install --git …/patch-prolog2.git plg-compiler --rev 2e5f8ba --locked). Captured
    in the workflow + ROADMAP that crates.io is deliberately deferred until the system matures.

What stayed identical (so the curriculum needed zero content changes)

  • Exit-code contract 0/1/2/3 — byte-for-byte the same, so runner.rs's mapping is unchanged.
  • run subcommand + --format text.
  • The ISO-subset language at parity — every operator we teach works (=.., functor/arg, prefix/infix, right-assoc
    ^), :- dynamic works, and crucially still no op/3/postfix — so the 03-operators boundary lesson is still
    accurate (now an explicit exclusion in plgc's docs).
  • Latency is a non-issue: 0.12s per compile+run; the 54-compile semantic suite runs in 3.6s.

Verified

just ci is green — 6 curriculum tests, all 27 exercises compiled and passing under plgc, fmt/clippy clean,
release build ok. Files touched: runner.rs, tests/curriculum.rs, justfile, the workflow, README, ARCHITECTURE,
ROADMAP, and the design doc — all references now point at plgc/patch-prolog2 (with intentional history notes
where the old engine is mentioned).

The one thing I can't confirm from here is the git-install succeeding on the runner (network + repo read access)
— that'll show on the first CI run. The plgc --version line right after the install will make a failure
obvious. If the runner can't read patch-prolog2 over https, the fallback is baking plgc into the image (option 1
from earlier) — say the word and I'll switch it.

what we found and did. What actually changed (3 things, all handled) 1. Flag rename — --goal → --query. (src/runner.rs, tests/curriculum.rs) 2. New runtime dependency: clang ≥ 15 — plgc is a real LLVM compiler; it compiles each exercise to a native binary and links it with clang. Already provisioned: the navicore-rust runner image has clang-19, your machine has clang-18. 3. CI install — the crate is plg-compiler (binary plgc), and patch-prolog2 isn't on crates.io. Per your call: git-install, rev-pinned (cargo install --git …/patch-prolog2.git plg-compiler --rev 2e5f8ba --locked). Captured in the workflow + ROADMAP that crates.io is deliberately deferred until the system matures. What stayed identical (so the curriculum needed zero content changes) - Exit-code contract 0/1/2/3 — byte-for-byte the same, so runner.rs's mapping is unchanged. - run subcommand + --format text. - The ISO-subset language at parity — every operator we teach works (=.., functor/arg, prefix/infix, right-assoc ^), :- dynamic works, and crucially still no op/3/postfix — so the 03-operators boundary lesson is still accurate (now an explicit exclusion in plgc's docs). - Latency is a non-issue: 0.12s per compile+run; the 54-compile semantic suite runs in 3.6s. Verified just ci is green — 6 curriculum tests, all 27 exercises compiled and passing under plgc, fmt/clippy clean, release build ok. Files touched: runner.rs, tests/curriculum.rs, justfile, the workflow, README, ARCHITECTURE, ROADMAP, and the design doc — all references now point at plgc/patch-prolog2 (with intentional history notes where the old engine is mentioned). The one thing I can't confirm from here is the git-install succeeding on the runner (network + repo read access) — that'll show on the first CI run. The plgc --version line right after the install will make a failure obvious. If the runner can't read patch-prolog2 over https, the fallback is baking plgc into the image (option 1 from earlier) — say the word and I'll switch it.
● Migration complete and verified. You were right to want to "find out" — it was a bit more than a rename. Here's
All checks were successful
CI - Linux / CI - Linux x86_64 (pull_request) Successful in 39s
e8552f8c96
what we found and did.

  What actually changed (3 things, all handled)

  1. Flag rename — --goal → --query. (src/runner.rs, tests/curriculum.rs)
  2. New runtime dependency: clang ≥ 15 — plgc is a real LLVM compiler; it compiles each exercise to a native
  binary and links it with clang. Already provisioned: the navicore-rust runner image has clang-19, your machine
  has clang-18.
  3. CI install — the crate is plg-compiler (binary plgc), and patch-prolog2 isn't on crates.io. Per your call:
  git-install, rev-pinned (cargo install --git …/patch-prolog2.git plg-compiler --rev 2e5f8ba --locked). Captured
  in the workflow + ROADMAP that crates.io is deliberately deferred until the system matures.

  What stayed identical (so the curriculum needed zero content changes)

  - Exit-code contract 0/1/2/3 — byte-for-byte the same, so runner.rs's mapping is unchanged.
  - run subcommand + --format text.
  - The ISO-subset language at parity — every operator we teach works (=.., functor/arg, prefix/infix, right-assoc
  ^), :- dynamic works, and crucially still no op/3/postfix — so the 03-operators boundary lesson is still
  accurate (now an explicit exclusion in plgc's docs).
  - Latency is a non-issue: 0.12s per compile+run; the 54-compile semantic suite runs in 3.6s.

  Verified

  just ci is green — 6 curriculum tests, all 27 exercises compiled and passing under plgc, fmt/clippy clean,
  release build ok. Files touched: runner.rs, tests/curriculum.rs, justfile, the workflow, README, ARCHITECTURE,
  ROADMAP, and the design doc — all references now point at plgc/patch-prolog2 (with intentional history notes
  where the old engine is mentioned).

  The one thing I can't confirm from here is the git-install succeeding on the runner (network + repo read access)
  — that'll show on the first CI run. The plgc --version line right after the install will make a failure
  obvious. If the runner can't read patch-prolog2 over https, the fallback is baking plgc into the image (option 1
  from earlier) — say the word and I'll switch it.
Sign in to join this conversation.
No reviewers
No labels
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
navicore/loglings!2
No description provided.