You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
go test ./cl ./ssa ./test/goroot -run 'Test(ParseDirective|XFail)' -count=1
go test ./cl ./ssa -count=1
git diff --check
Notes
The conservative liveness cleanup is intentionally limited to command-line-arguments; the test/go subprocess probe keeps coverage stable even without the full goroot workflow.
Linux goroot xfails for these cases are left in place because this pass was verified locally on darwin/arm64 only.
Updated again after LLGo shard 2 exposed a link failure from compiler-injected stack liveness helpers.
Fixes in 36044708d:
emit calls to the C runtime wrapper symbols directly instead of skipped Go helper wrappers
only enable conservative stack liveness clearing for command-line-arguments packages that actually call runtime.SetFinalizer, avoiding unrelated test/go programs pulling in the helper symbol
Local verification:
LLGO_BUILD_CACHE=off go test ./test/go -run 'TestRuntimeSetFinalizerStackObjectLiveness|TestStringConversionFromWideIntegers' -count=1 -v
go test ./cl ./ssa -count=1
git diff --check
Note: LLGO_BUILD_CACHE=off go run -tags=dev ./cmd/llgo test ... reached program execution locally but hit a macOS temp-dir cleanup error (operation not permitted) after the target code path; the plain Go test wrapper passed the same LLGo programs.
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
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.
Summary
runtime.SetFinalizeron top of BDWGC finalizers and run queued Go finalizers duringruntime.GCtest/gocoverage for finalizer behavior and stack-object liveness, and un-xfail the verified darwin/arm64 goroot casesTests
go install ./...go test ./test/go -run 'TestRuntimeSetFinalizer' -count=1 -vLLGO_ROOT=/Users/lijie/source/goplus/llgo-wt-goroot-stackobj llgo test -run 'TestRuntimeSetFinalizer' -timeout=20m -count=1 ./test/gogo test -v ./test/goroot -run '^TestGoRootRunCases$' -goroot $(go env GOROOT) -case '^(deferfin|tinyfin|stackobj|stackobj3)\.go$' -xfail /tmp/llgo-empty-xfail.yaml -count=1 -build-timeout 5m -run-timeout 20s -progress 20sgo test ./cl ./ssa ./test/goroot -run 'Test(ParseDirective|XFail)' -count=1go test ./cl ./ssa -count=1git diff --checkNotes
command-line-arguments; thetest/gosubprocess probe keeps coverage stable even without the full goroot workflow.