Fix cross builds for fcl-base units#171
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe changes enhance the cross-compilation CI workflow by integrating FCL-base package sources into the cached FPC toolchain and updating compiler invocations to include these sources in the unit search path, enabling resolution of missing FCL units during builds. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Suite Timing
Measured on ubuntu-latest x64. |
Benchmark Results263 benchmarks Interpreted: 🟢 109 improved · 🔴 47 regressed · 107 unchanged · avg +0.6% arraybuffer.js — Interp: 🟢 4, 🔴 7, 3 unch. · avg -0.7% · Bytecode: 🟢 1, 🔴 8, 5 unch. · avg -1.1%
arrays.js — Interp: 🟢 8, 🔴 2, 9 unch. · avg +0.9% · Bytecode: 🟢 13, 🔴 1, 5 unch. · avg +4.3%
async-await.js — Interp: 🟢 3, 🔴 3 · avg +0.0% · Bytecode: 🔴 2, 4 unch. · avg -0.5%
classes.js — Interp: 🟢 16, 15 unch. · avg +1.4% · Bytecode: 🟢 7, 🔴 3, 21 unch. · avg +0.2%
closures.js — Interp: 🟢 9, 2 unch. · avg +1.7% · Bytecode: 🟢 6, 🔴 2, 3 unch. · avg +2.5%
collections.js — Interp: 🟢 3, 🔴 7, 2 unch. · avg -2.7% · Bytecode: 🟢 4, 🔴 8 · avg -3.9%
destructuring.js — Interp: 🟢 11, 🔴 3, 8 unch. · avg +1.3% · Bytecode: 🟢 7, 🔴 1, 14 unch. · avg +0.6%
fibonacci.js — Interp: 🟢 6, 2 unch. · avg +2.0% · Bytecode: 🟢 3, 🔴 4, 1 unch. · avg +0.3%
for-of.js — Interp: 🟢 7 · avg +3.9% · Bytecode: 🟢 3, 4 unch. · avg +2.2%
helpers/bench-module.js — Interp: 0 · Bytecode: 0
iterators.js — Interp: 🟢 19, 1 unch. · avg +3.4% · Bytecode: 🟢 10, 🔴 1, 9 unch. · avg +2.0%
json.js — Interp: 🔴 6, 14 unch. · avg -1.1% · Bytecode: 🔴 9, 11 unch. · avg -2.0%
jsx.jsx — Interp: 🟢 1, 🔴 4, 16 unch. · avg -0.2% · Bytecode: 🟢 13, 🔴 1, 7 unch. · avg +2.7%
modules.js — Interp: 🔴 9 · avg -5.6% · Bytecode: 🟢 1, 🔴 7, 1 unch. · avg -2.5%
numbers.js — Interp: 🟢 3, 🔴 3, 5 unch. · avg +0.2% · Bytecode: 🟢 2, 🔴 5, 4 unch. · avg +1.1%
objects.js — Interp: 🟢 3, 🔴 1, 3 unch. · avg +1.0% · Bytecode: 🟢 4, 🔴 1, 2 unch. · avg +1.8%
promises.js — Interp: 🟢 4, 8 unch. · avg +1.2% · Bytecode: 🟢 3, 🔴 2, 7 unch. · avg +0.7%
strings.js — Interp: 🟢 1, 🔴 1, 9 unch. · avg -0.2% · Bytecode: 🟢 1, 🔴 9, 1 unch. · avg -2.9%
typed-arrays.js — Interp: 🟢 11, 🔴 1, 10 unch. · avg +1.0% · Bytecode: 🟢 4, 🔴 10, 8 unch. · avg -0.9%
Measured on ubuntu-latest x64. Benchmark ranges compare cached main-branch min/max ops/sec with the PR run; overlapping ranges are treated as unchanged noise. Percentage deltas are secondary context. |
Summary
Fix cross-compilation failures when GocciaScript uses
fcl-baseunits such asBase64.The current cross toolchain only prebuilds a curated subset of FPC packages, so
Base64was unavailable even though it ships with FPC/FCL. This change caches the officialfcl-basesources in the cross toolchain and adds that package source directory to the cross compiler unit search path.Why this change
This is a targeted fix for the current breakage in cross CI.
The broader architectural issue is tracked separately in #170. That issue covers replacing the curated cross-package bootstrap with a proper FPC package installation flow so cross builds stop depending on manual package availability.
Verification
Base64resolves fromfcl-base, not from the currently curated cross-package setfcl-baseon the unit path and succeeds once the officialfcl-basesource path is availableSummary by CodeRabbit
Release Notes
Documentation
Chores