Skip to content

initial github workflow - #31

Open
kolemannix wants to merge 20 commits into
masterfrom
claude/github-actions-workflow-c8df62
Open

kolemannix wants to merge 20 commits into
masterfrom
claude/github-actions-workflow-c8df62

Conversation

@kolemannix

@kolemannix kolemannix commented Jul 20, 2026 •

Copy link
Copy Markdown
Owner

GitHub Actions CI on ubuntu-24.04: apt LLVM 21 (llvm/lld/libclang dev packages), stable Rust with rust-cache, then ./test.sh. On failure a step prints how module setups' regenerated bindings differ from the committed ones.

Getting test.sh green on Linux surfaced and fixed:

  • cargo test --lib links LLVM dynamically like the rest of the build (static link needs Polly)
  • extern global declarations were emitted with hidden visibility, so environ could not bind to libc
  • the VM resolved extern globals only through the process handle, which on Linux cannot see a library opened RTLD_LOCAL; it now uses the enclosing ns's lib handle like extern fns
  • platform.k1 chose the clock source via a runtime bool, so Linux links saw the mach externs; the choice is now a #if at the use site
  • k1bindgen with neither +include nor +exclude emitted only the header (regression from 2026-08-28); test.sh now builds k1bindgen and puts it on PATH for module setups
  • signed MIN / -1 and MIN % -1 trapped on x86 (and would on wasm); codegen now wraps like the VM

dogfood/gengame is gated to macOS in test.sh (Cocoa frameworks, hand-vendored raylib archive).

Open: one run saw an intermittent SIGSEGV inside k1_test on Linux that did not reproduce on rerun.

🤖 Generated with Claude Code

@kolemannix
kolemannix force-pushed the claude/github-actions-workflow-c8df62 branch from c17d267 to 51d76e8 Compare September 4, 2026 17:41
kolemannix and others added 3 commits September 4, 2026 13:55
…bals through their ns lib

Hidden visibility on an extern global declaration made ld refuse to bind libc's
environ. The VM looked extern globals up only through the process handle, which
on Linux cannot see a library opened RTLD_LOCAL; use the enclosing ns's lib
handle like extern fns do.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ks do not see mach externs

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@kolemannix
kolemannix force-pushed the claude/github-actions-workflow-c8df62 branch from e1fca28 to 5164d5c Compare September 4, 2026 18:02
kolemannix and others added 14 commits September 4, 2026 14:10
Since 2026-08-28 an empty +exclude list selected whitelist mode, so a run with
neither +include nor +exclude emitted only the header. The test always passes
+exclude and never saw it; module setups on a fresh checkout did.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… and wasm

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
still bind a variable of the right type in scope
# Conflicts:
#	dogfood/k1bindgen/k1bindgen.k1
#	src/k1/codegen_llvm.rs
#	src/k1/vm.rs
#	test.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant