Conversation
Bind cmpbody and the historical memeqbody to their documented source registers instead of relying on an inferred ABI0 frame. Exercise unchanged Go Compare source with LLVM 22 objects on four targets and a native independent comparison oracle. Closure R26 and helper-call return context failures remain failures.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## codex/pr40-assembly-base-20261002 #259 +/- ##
====================================================================
Coverage ? 94.36%
====================================================================
Files ? 206
Lines ? 33623
Branches ? 0
====================================================================
Hits ? 31730
Misses ? 1892
Partials ? 1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft staging for the dependent llgo contribution, rebased onto upstream main
d98b43f90. This base branch copies upstream main; targeting fork main would include unrelated upstream commits. Only the allowedcpunionfork is pushed. This PR is not Ready and does not claim all assembly issues are resolved.Dependency
Use a public
go.mod replaceresolved by Go from the actual published repair head of cpunion/plan9asm#4, staging xgo-dev/plan9asm#40. No local path, invented pseudo-version or alternate LLVM fallback is committed. The workflow retains the exact replacement, compiler build-info/hash, source HEAD, Go version and LLVM 22 tool identities.Current published replacement:
github.com/cpunion/plan9asm v0.0.0-20261001201022-0dad3b634810, resolved from actual head0dad3b63481041973937f88276af10b4ff961d32. Actual Go module download and checksum verification succeeded. LLGo source4bbc5cec9324bf9b0363b5b1bc0062e6194863d0was frozen for the following execution results.Exact issue regressions
The nested
test/asmmodule is not reached by root./test/.... Dedicated Linux/AMD64 and Darwin/ARM64 jobs explicitly list and execute every source-applicable package with the checkout compiler. A failed sibling does not prevent execution of the remaining fixtures; an empty/broken package list fails. Required tools and runtime probes fail instead of skipping. Native Go baselines run alongside actual llgo compilation, linking and execution.The Linux job also requires the ARM64 typed runtime.memmove contract and actual overlap/continuation execution under pinned QEMU 10.2.3. Native Go's declaration determines the three register arguments; no extra return or speculative hidden inputs are introduced. Runtime-module selection, temporary-object lifetime, bounded assembly input, active include/header handling and runtime.getAuxv regressions remain tested.
Known unfinished contracts
Fresh public-pinned runs used Go 1.27.1, LLVM 22.1.8, the normal checkout compiler, and unchanged default assembly selection. Neither a local dependency replacement nor a standard-library suppression filter was used.
internal/plan9asmsyscall15Xdeclarationruntime.memequal_varlenR26 closure-entry contractThese are local actual-execution results, not remote CI success. CRC AVX512 and go-hex AVX were unavailable in the Linux runtime; execution of those ISA branches is not claimed. The websocket public path uses maskGo in this version, so only the explicit private-kernel oracle proves its assembly execution.
Purego's unchanged syscall15X is a native C/g0 trampoline with a dynamic 15-GP/8-FP call, callbacks, Go closure representation and fixed callback-address table. An invented Go declaration, dropping callbacks, an allowlist that suppresses standard-library assembly or an ordinary context skip would not fix it. The Darwin/ARM64 whole translator also retains runtime.memequal_varlen's missing R26 native closure-entry contract. Keep these as failures until their actual ABI/runtime contracts are implemented; no
Fixes #2707claim is made.All 53 CI-policy regression tests, actionlint and tracked-source formatting checks pass locally. New public-pinned compiler/runtime execution and remote CI are separate required gates. The final upstream contribution will target upstream main after fork validation; no upstream merge, settings change or direct push is performed.
The first full fork run finished with failures; downstream or skipped jobs are not successes. The next repair batch fixes the undownloaded replacement yielding an empty installer directory on Linux and the formatting error. Two fixture modules also incorrectly required Go 1.27.1 although the regular CI toolchain is 1.27.0: their actual native-source selection tests now pass on both patch releases. Windows canonicalization diagnostics retain the actual package/source paths and failed stage without relaxing symlink/source-root guards. This is investigation support, not a claimed Windows fix. R26/native purego contracts and Windows source-directory investigation remain required before Ready. The execution table above still describes frozen LLGo source
4bbc5cec, not execution of these later commits.