Merge selfhosting-dev into main (Core-13 pure CI/tests + LLVM bridge) (#126)

* WIP: sync before merging origin/main

* fix: unify using/module + build CLI; add missing helper in runner; build passes; core smokes green; jit any.len string now returns 3

* Apply local changes after merging main; keep docs/phase-15 removed per main; add phase-15.1 docs and tests

* Remove legacy docs/phase-15/README.md to align with main

* integration: add Core-13 pure CI, tests, and minimal LLVM execute bridge (no docs) (#125)

Co-authored-by: Tomoaki <tomoaki@example.com>

---------

Co-authored-by: Selfhosting Dev <selfhost@example.invalid>
Co-authored-by: Tomoaki <tomoaki@example.com>
This commit is contained in:
moe-charm
2025-09-07 07:36:15 +09:00
committed by GitHub
parent 07350c5dd9
commit b8bdb867d8
70 changed files with 2010 additions and 57 deletions

36
.github/workflows/core13-pure-llvm.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: Core-13 Pure CI (LLVM)
on:
push:
pull_request:
jobs:
test-core13-pure-llvm:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Install LLVM 18 (llvm-config-18)
run: |
sudo apt-get update
sudo apt-get install -y curl ca-certificates lsb-release wget gnupg
curl -fsSL https://apt.llvm.org/llvm.sh -o llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18
llvm-config-18 --version
- name: Run tests with Core-13 pure mode + LLVM
env:
NYASH_MIR_CORE13_PURE: "1"
run: |
export LLVM_SYS_180_PREFIX="$(llvm-config-18 --prefix)"
export LLVM_SYS_181_PREFIX="$(llvm-config-18 --prefix)"
cargo test --features llvm --all-targets --no-fail-fast

27
.github/workflows/core13-pure.yml vendored Normal file
View File

@ -0,0 +1,27 @@
name: Core-13 Pure CI
on:
push:
pull_request:
jobs:
test-core13-pure:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Build (release)
run: cargo build --release
- name: Run tests with Core-13 pure mode
env:
NYASH_MIR_CORE13_PURE: "1"
run: cargo test --all-targets --no-fail-fast

54
.github/workflows/selfhost-minimal.yml vendored Normal file
View File

@ -0,0 +1,54 @@
name: Selfhost Minimal Smoke
on:
push:
branches: [ selfhosting-dev ]
paths:
- 'apps/selfhost-minimal/**'
- 'src/**'
- 'tools/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/selfhost-minimal.yml'
- 'docs/**'
pull_request:
branches: [ selfhosting-dev ]
paths:
- 'apps/selfhost-minimal/**'
- 'src/**'
- 'tools/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'docs/**'
jobs:
selfhost-minimal:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
CARGO_TERM_COLOR: always
NYASH_DISABLE_PLUGINS: '1'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust (stable)
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry and build
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Build (release, cranelift-jit)
run: cargo build --release --features cranelift-jit
- name: Run selfhost-minimal smoke
run: bash tools/selfhost_vm_smoke.sh