Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
450 commits
Select commit Hold shift + click to select a range
df15323
Add native string concatenation semantics
deltathedumb Jul 22, 2026
5e91985
Run native string addition normalization
deltathedumb Jul 22, 2026
1186e55
Test native string addition normalization
deltathedumb Jul 22, 2026
3f9f23d
Keep POP_TOP mutation observable
deltathedumb Jul 22, 2026
04ebb21
Test observable POP_TOP storage
deltathedumb Jul 22, 2026
7ecbe5e
Avoid native list pop for POP_TOP
deltathedumb Jul 22, 2026
96092df
Test slice-based POP_TOP lowering
deltathedumb Jul 22, 2026
f2b4780
Stop emitting POP_TOP for expression statements
deltathedumb Jul 22, 2026
23d22d2
Test omitted expression POP_TOP emission
deltathedumb Jul 22, 2026
10aba30
Lower every POP_TOP through stable name storage
deltathedumb Jul 22, 2026
17a6d0a
Test stable lowering for all POP_TOP emissions
deltathedumb Jul 22, 2026
6191c0b
Use identifier-safe native discard names
deltathedumb Jul 22, 2026
804e821
Expect identifier-safe discard names
deltathedumb Jul 22, 2026
ac68ee0
Inline native discard bytecode emissions
deltathedumb Jul 22, 2026
4b00f13
Preserve indentation for inline discard lowering
deltathedumb Jul 22, 2026
0bd33b0
Test inline indentation-safe discard lowering
deltathedumb Jul 22, 2026
d1e783c
Type native parser expression results as objects
deltathedumb Jul 22, 2026
6486ef9
Type embedded parser expression results
deltathedumb Jul 22, 2026
d84ee9b
Test native parser expression result typing
deltathedumb Jul 22, 2026
6a0593f
Use dict-backed native AST expression locals
deltathedumb Jul 22, 2026
1fbc7c8
Expect dict-backed parser expression locals
deltathedumb Jul 22, 2026
dcd2dce
Fast-path native expression statements before assignment checks
deltathedumb Jul 22, 2026
8285e9f
Test native expression-statement fast path
deltathedumb Jul 22, 2026
5fa8744
Validate native expression fast path deterministically
deltathedumb Jul 22, 2026
ee5b87c
Validate the specific expression fast-path branch
deltathedumb Jul 22, 2026
aed4a4c
Validate expression fast-path ordering structurally
deltathedumb Jul 22, 2026
0f54c66
Preserve expression AST nodes through ExprStmt fields
deltathedumb Jul 22, 2026
8d10073
Test ExprStmt field normalization
deltathedumb Jul 22, 2026
77e6333
Pass expression AST nodes positionally
deltathedumb Jul 22, 2026
d525d5d
Require positional ExprStmt fast path
deltathedumb Jul 22, 2026
e969c78
Box native expression AST results before construction
deltathedumb Jul 22, 2026
6343992
Test boxed native expression fast path
deltathedumb Jul 22, 2026
1ef2e8d
Install compiler-safe ExprStmt initializer
deltathedumb Jul 22, 2026
8ba3b60
Run compiler-safe ExprStmt initializer normalization
deltathedumb Jul 22, 2026
ec9ed23
Test compiler-safe ExprStmt initializer
deltathedumb Jul 22, 2026
d954031
Use direct ExprStmt initializer assignments
deltathedumb Jul 22, 2026
1e64c2b
Test direct ExprStmt initializer assignments
deltathedumb Jul 22, 2026
c2c108c
Fix ExprStmt initializer assembly parameter load
deltathedumb Jul 22, 2026
6c45c9a
Repair ExprStmt parameter load in generated assembly
deltathedumb Jul 22, 2026
7e384c2
Test ExprStmt assembly parameter repair
deltathedumb Jul 22, 2026
7a7dbf9
Make native parser unexpected-token error compiler-safe
deltathedumb Jul 22, 2026
61659cb
Normalize native parser unexpected-token errors
deltathedumb Jul 22, 2026
ec8be22
Test compiler-safe native parser error message
deltathedumb Jul 22, 2026
919f4a7
Trace Windows boolean conformance failure
deltathedumb Jul 22, 2026
2d0b819
Preflight Windows boolean statements individually
deltathedumb Jul 22, 2026
8b42fb9
Trace native control-flow conformance failure
deltathedumb Jul 22, 2026
31a85c3
Trace Windows boolean crash address
deltathedumb Jul 22, 2026
d32ffca
Trace native control-flow crash address
deltathedumb Jul 22, 2026
0a0204d
Trace native function conformance crash
deltathedumb Jul 22, 2026
2cdc6d5
Unpack native MAKE_FUNCTION list specifications
deltathedumb Jul 22, 2026
1af4bea
Test native MAKE_FUNCTION list unpacking
deltathedumb Jul 22, 2026
1b17c87
Add native-safe frontend name index normalizer
deltathedumb Jul 22, 2026
0468abb
Apply native-safe frontend name lookup
deltathedumb Jul 22, 2026
2e12471
Test native-safe frontend name lookup
deltathedumb Jul 22, 2026
7a3010b
Canonicalize native function specifications
deltathedumb Jul 22, 2026
16fa96f
Use canonical native MAKE_FUNCTION layout
deltathedumb Jul 22, 2026
5713ff2
Test canonical native MAKE_FUNCTION layout
deltathedumb Jul 22, 2026
037e299
Test canonical native function specifications
deltathedumb Jul 22, 2026
2174e11
Wire canonical native function specifications
deltathedumb Jul 22, 2026
aefee02
Make function-spec rewrite indentation independent
deltathedumb Jul 22, 2026
ca5f35c
Count native function defaults explicitly
deltathedumb Jul 22, 2026
770ff72
Test explicit native function default counts
deltathedumb Jul 22, 2026
48a82a5
Normalize native function argument binding
deltathedumb Jul 22, 2026
8d9aa7b
Test native function binding normalization
deltathedumb Jul 22, 2026
2581994
Run native function binding normalization
deltathedumb Jul 22, 2026
5ef9f53
Narrow function binding validation
deltathedumb Jul 22, 2026
25653de
Make function binding normalization idempotent
deltathedumb Jul 22, 2026
f5ffbad
Test idempotent function binding normalization
deltathedumb Jul 22, 2026
604c95c
Order function binding before native semantics
deltathedumb Jul 22, 2026
9973081
Type native function argument names
deltathedumb Jul 22, 2026
1a11002
Test typed native function names
deltathedumb Jul 22, 2026
9b0a9d4
Normalize native function parameter names
deltathedumb Jul 22, 2026
e1b3496
Test native function parameter normalization
deltathedumb Jul 22, 2026
0b47001
Normalize native function parameter names
deltathedumb Jul 22, 2026
23b7f38
Use canonical full-core normalization pipeline
deltathedumb Jul 22, 2026
0f251c2
Normalize lambda and function parameter names
deltathedumb Jul 22, 2026
eefb198
Test lambda and function parameter normalization
deltathedumb Jul 22, 2026
fa79355
Read native parameter names dynamically
deltathedumb Jul 22, 2026
651bb34
Test dynamic native parameter lookup
deltathedumb Jul 22, 2026
633bbb7
Fix CI to validate the current PortaPy branch
deltathedumb Jul 22, 2026
59b8586
Remove obsolete hard-coded branch verifier
deltathedumb Jul 22, 2026
445a285
Add one-shot release branch synchronizer
deltathedumb Jul 22, 2026
537bf06
Remove one-shot release branch synchronizer
deltathedumb Jul 22, 2026
77e7cb3
Preserve hosted pytest diagnostics in CI
deltathedumb Jul 22, 2026
418119d
Propagate native callable return kinds
deltathedumb Jul 22, 2026
475ca39
Test native callable return kind propagation
deltathedumb Jul 22, 2026
fe9764b
Make full-core normalization failures actionable
deltathedumb Jul 22, 2026
1fa460c
Track native user-function return kinds
deltathedumb Jul 22, 2026
5fdc824
Apply function return-kind normalization in full-core builds
deltathedumb Jul 22, 2026
dd92eb5
Preserve native default argument AST nodes
deltathedumb Jul 22, 2026
dd38315
Test native default argument node preservation
deltathedumb Jul 22, 2026
d78e05f
Run native default argument normalization
deltathedumb Jul 22, 2026
c7b52bd
Make native host ID getters type-safe
deltathedumb Jul 22, 2026
f454393
Normalize native defaults structurally
deltathedumb Jul 22, 2026
097fb11
Unify native callable return-kind tracking
deltathedumb Jul 22, 2026
424d34d
Test unified callable return-kind inference
deltathedumb Jul 22, 2026
17c1aea
Run callable return-kind stabilizer after expression inference
deltathedumb Jul 22, 2026
b642ab9
Preserve concise full-core normalization diagnostics
deltathedumb Jul 22, 2026
b90b25b
Pin frontend default AST nodes
deltathedumb Jul 22, 2026
43f7429
Test typed default AST extraction
deltathedumb Jul 22, 2026
d6f94eb
Make native-default normalization tests structural
deltathedumb Jul 22, 2026
3f4d1ea
Transport native keyword arguments without raw dict ABI
deltathedumb Jul 22, 2026
c98e3d3
Apply native keyword transport normalization
deltathedumb Jul 22, 2026
b8aaa6e
Run native keyword transport before VM rewrites
deltathedumb Jul 22, 2026
1a0b42e
Test native keyword transport normalization
deltathedumb Jul 22, 2026
b293336
Remove duplicate native shared-library workflow
deltathedumb Jul 22, 2026
4dfbf34
Remove duplicate native function workflow
deltathedumb Jul 22, 2026
3b3c59e
Remove duplicate native host-object workflow
deltathedumb Jul 22, 2026
4097a43
Remove duplicate native list workflow
deltathedumb Jul 22, 2026
58812fc
Remove duplicate native host-call workflow
deltathedumb Jul 22, 2026
8ad1ff1
Remove duplicate native handle workflow
deltathedumb Jul 22, 2026
f84d3b5
Remove duplicate native environment-adapter workflow
deltathedumb Jul 22, 2026
b8fabcb
Remove duplicate universal environment workflow
deltathedumb Jul 22, 2026
938311f
Store native defaults as dict-backed AST nodes
deltathedumb Jul 22, 2026
49b0447
Test dict-backed default field storage
deltathedumb Jul 22, 2026
f998874
Preserve lexical super across keyword transport
deltathedumb Jul 22, 2026
39eacbe
Test lexical super through keyword transport
deltathedumb Jul 22, 2026
d1dcfea
Require keyword transport output to parse
deltathedumb Jul 22, 2026
7e5ad28
Run release builds only for explicit publication
deltathedumb Jul 22, 2026
539cbac
Capture native build diagnostics in canonical CI
deltathedumb Jul 22, 2026
64f56f9
Remove duplicate native build diagnostic workflow
deltathedumb Jul 22, 2026
f77c61c
Consolidate release checks into canonical CI
deltathedumb Jul 22, 2026
963a4b9
Type native keyword keys before binding
deltathedumb Jul 22, 2026
fcc06e3
Remove duplicate CSharp FFI workflow
deltathedumb Jul 22, 2026
c989c87
Remove duplicate full-core audit workflow
deltathedumb Jul 22, 2026
31b7dfa
Test typed native keyword transport
deltathedumb Jul 22, 2026
23ad737
Enforce Python keyword mapping semantics natively
deltathedumb Jul 22, 2026
9e1d407
Execute native keyword transport semantics in tests
deltathedumb Jul 22, 2026
cf44098
Gate final native semantic regressions
deltathedumb Jul 22, 2026
32c033b
Install pinned asmpython in hosted CI
deltathedumb Jul 22, 2026
191f805
Keep keyword transport test independent of build-only asmpython
deltathedumb Jul 22, 2026
caf7fd4
Reconcile full-core workflow with main
deltathedumb Jul 22, 2026
8224c89
Reconcile consolidated CI with main
deltathedumb Jul 22, 2026
40ff0e2
Make string-addition normalization indentation-aware
deltathedumb Jul 22, 2026
a63de40
Run the full-core normalizer exactly once
deltathedumb Jul 22, 2026
0b5ce5e
Gate single-pass full-core normalization
deltathedumb Jul 22, 2026
3a91036
Make full-core normalizer directly executable
deltathedumb Jul 22, 2026
addb1c4
Run full-core validation as a package module
deltathedumb Jul 22, 2026
a3be8d0
Gate module-based full-core normalization
deltathedumb Jul 22, 2026
68445b7
Gate importable full-core validation module
deltathedumb Jul 22, 2026
3f01e5c
Avoid unresolved Enum equality in native probe
deltathedumb Jul 22, 2026
1c6565b
Complete native probe linking on Linux and Windows
deltathedumb Jul 22, 2026
4a0b2fe
Store native value handles in an indexed list
deltathedumb Jul 22, 2026
754bf00
Test indexed native value handle storage
deltathedumb Jul 22, 2026
87f234a
Fix Linux stack alignment in native container writes
deltathedumb Jul 22, 2026
273a563
Test native nested-call stack alignment normalization
deltathedumb Jul 22, 2026
0db036a
Fix reference runtime handle normalization ordering
deltathedumb Jul 22, 2026
f993aac
Fix native keyword AST field extraction
deltathedumb Jul 22, 2026
028cf6a
Test compiler-safe keyword field extraction
deltathedumb Jul 22, 2026
3d0843a
Normalize materialized native value lookups
deltathedumb Jul 22, 2026
fbc93b3
Test native list-backed value lookup normalization
deltathedumb Jul 22, 2026
5fe5f9f
Adapt materialized full runtime to list-backed handles
deltathedumb Jul 22, 2026
40f4f5a
Allow already-adapted materialized value lookups
deltathedumb Jul 22, 2026
6834f95
Materialize native values by handle kind
deltathedumb Jul 22, 2026
6969a83
Keep native parser target expressions boxed
deltathedumb Jul 22, 2026
ea27aba
Run boxed parser target dispatch normalization
deltathedumb Jul 22, 2026
d56750b
Test boxed native parser target dispatch
deltathedumb Jul 22, 2026
b4a1beb
Preserve native control-flow statement bodies
deltathedumb Jul 22, 2026
f8cebe1
Replace native statement body calls with hoisted values
deltathedumb Jul 22, 2026
8cfb7d9
Run native statement body normalization
deltathedumb Jul 22, 2026
be74e7d
Test native control-flow body normalization
deltathedumb Jul 22, 2026
084f7c1
Fix native statement body test fixture
deltathedumb Jul 22, 2026
aea76d7
Align generated ELF call stacks
deltathedumb Jul 22, 2026
9abe4a3
Test generated ELF stack alignment
deltathedumb Jul 22, 2026
d154bf9
Preserve native attribute target fields
deltathedumb Jul 22, 2026
fbaafbb
Test native attribute target field preservation
deltathedumb Jul 22, 2026
a71e616
Fix native target dispatch validation invariant
deltathedumb Jul 22, 2026
8e42ad3
Restore native exception handlers on return
deltathedumb Jul 22, 2026
389163d
Test native exception handler cleanup
deltathedumb Jul 22, 2026
9da16ff
Finalize exception handlers during export pass
deltathedumb Jul 22, 2026
effdbf0
Make NASM finalizer directly executable
deltathedumb Jul 22, 2026
7c79649
Normalize opaque native AST field loads
deltathedumb Jul 22, 2026
5f664cf
Run native AST field-load normalization
deltathedumb Jul 22, 2026
7645bd8
Test native AST runtime field loads
deltathedumb Jul 22, 2026
8b2a21a
Avoid ExprStmt parameter class collision
deltathedumb Jul 22, 2026
767471d
Test ExprStmt collision-safe initializer
deltathedumb Jul 22, 2026
e244184
Repair native constructor name collisions
deltathedumb Jul 22, 2026
fb0744d
Test all native constructor collision repairs
deltathedumb Jul 22, 2026
3fae075
Keep ExprStmt collision repair before semantics
deltathedumb Jul 22, 2026
872b596
Run MatchAs defaults before constructor collision repair
deltathedumb Jul 22, 2026
8a0b33f
Test full-core normalization dependency order
deltathedumb Jul 22, 2026
bd8fd6c
Add post-semantics pattern collision repair
deltathedumb Jul 22, 2026
9ec04e6
Run pattern collision repair after semantics
deltathedumb Jul 22, 2026
731dd25
Keep ExprStmt tests scoped to early pass
deltathedumb Jul 22, 2026
85030a1
Test post-semantics pattern collision repair
deltathedumb Jul 22, 2026
c9d19bd
Wire post-semantics pattern collision repair
deltathedumb Jul 22, 2026
084d918
Test pattern collision pipeline wiring
deltathedumb Jul 22, 2026
ecd6e95
Keep pattern collision pass explicit
deltathedumb Jul 22, 2026
52c7298
Avoid compiler import in order test
deltathedumb Jul 22, 2026
7abf61b
Allow already-correct ExprStmt assembly
deltathedumb Jul 22, 2026
09899f6
Test already-correct ExprStmt assembly
deltathedumb Jul 22, 2026
48f0221
Rename flattened native local collisions
deltathedumb Jul 22, 2026
9c2ebfa
Normalize flattened local class collisions last
deltathedumb Jul 22, 2026
175b749
Test flattened local collision normalization
deltathedumb Jul 22, 2026
05824f2
Repair flattened parameter class collisions
deltathedumb Jul 23, 2026
a3fe8a7
Normalize flattened parameter collisions before locals
deltathedumb Jul 23, 2026
1cfd3c4
Test flattened parameter collision repair
deltathedumb Jul 23, 2026
5f00f7d
Repair native ExceptHandler type parameter
deltathedumb Jul 23, 2026
4c38772
Repair builtin type parameter before native compile
deltathedumb Jul 23, 2026
8ef7bb6
Test native builtin type parameter repair
deltathedumb Jul 23, 2026
f14e2ef
Repair native type and slice parameters
deltathedumb Jul 23, 2026
a1847db
Normalize native runtime opcode specs
deltathedumb Jul 23, 2026
59749e8
Run native runtime spec normalization
deltathedumb Jul 23, 2026
adbbb6a
Test native runtime spec normalization
deltathedumb Jul 23, 2026
435dbd8
Make runtime spec normalization shape-independent
deltathedumb Jul 23, 2026
ddf9d4f
Run runtime spec pass after text normalizers
deltathedumb Jul 23, 2026
e77348a
Test AST runtime spec normalization
deltathedumb Jul 23, 2026
e90c966
Normalize native VM iteration and imports
deltathedumb Jul 23, 2026
873f631
Run native runtime dispatch normalization
deltathedumb Jul 23, 2026
b38ea00
Test native runtime dispatch normalization
deltathedumb Jul 23, 2026
e0b909e
Use typed native opcode spec objects
deltathedumb Jul 23, 2026
18c6a4e
Test typed native opcode spec objects
deltathedumb Jul 23, 2026
1baf036
Cover all builtin parameter collision repairs
deltathedumb Jul 23, 2026
334ec95
Fix native keyword class and import dispatch
deltathedumb Jul 23, 2026
98e23f9
Test native keyword class and import dispatch
deltathedumb Jul 23, 2026
f8a4eaf
Bound Linux full-core probe execution
deltathedumb Jul 23, 2026
d5c67a6
Repair native handle kind slot lookup
deltathedumb Jul 23, 2026
2afd10d
Test native handle kind slot repair
deltathedumb Jul 23, 2026
3633d73
Run native handle kind access repair
deltathedumb Jul 23, 2026
f58ca57
Parse full default argument expressions
deltathedumb Jul 23, 2026
f0d6e5b
Test full native default expressions
deltathedumb Jul 23, 2026
6da3447
Normalize native iteration closures and exceptions
deltathedumb Jul 23, 2026
cf30eed
Run default expression parser normalization
deltathedumb Jul 23, 2026
29153c7
Run native execution state normalization
deltathedumb Jul 23, 2026
89b2a33
Test native execution state normalization
deltathedumb Jul 23, 2026
abea02e
Isolate native default argument unit tests
deltathedumb Jul 23, 2026
4f93195
Separate default expression parser normalization
deltathedumb Jul 23, 2026
b73a342
Repair vendored parser default expressions
deltathedumb Jul 23, 2026
c122522
Run default expression normalization after parser combine
deltathedumb Jul 23, 2026
eecf98a
Target combined parser for default expressions
deltathedumb Jul 23, 2026
112aeea
Remove stale default expression monkeypatch
deltathedumb Jul 23, 2026
0df9a26
Preserve native exception status identity
deltathedumb Jul 23, 2026
e00ae17
Test native exception status preservation
deltathedumb Jul 23, 2026
70ac788
Transport native missing-name errors
deltathedumb Jul 23, 2026
2cc3937
Map native NameError to not found
deltathedumb Jul 23, 2026
000693f
Test native error-kind transport
deltathedumb Jul 23, 2026
265db5f
Run native exception status normalization
deltathedumb Jul 23, 2026
6698918
Fix exception status negative fixture
deltathedumb Jul 23, 2026
24ad284
Fix native error transport validation
deltathedumb Jul 23, 2026
9da916f
Preserve native TypeError detail
deltathedumb Jul 23, 2026
94dc331
Use one native exception status transport
deltathedumb Jul 23, 2026
c12d9b6
Preserve positional and keyword parameter markers
deltathedumb Jul 23, 2026
1a45892
Test native function parameter markers
deltathedumb Jul 23, 2026
4cbec73
Run native parameter marker normalization
deltathedumb Jul 23, 2026
607bd9c
Fix return kind normalizer callback
deltathedumb Jul 23, 2026
b49c87a
Validate exact flattened argument bridge shape
deltathedumb Jul 23, 2026
5c0d623
Lower native len calls with value-kind hints
deltathedumb Jul 23, 2026
e9712df
Test kind-aware native len lowering
deltathedumb Jul 23, 2026
ac0d61d
Run kind-aware native len normalization
deltathedumb Jul 23, 2026
614dc4c
Fix native container length lowering
deltathedumb Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 159 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,181 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
bootstrap:
hosted:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
python-version: '3.12'
- run: python -m pip install -e '.[test]'
- name: Run hosted tests
- name: Run complete hosted suite
shell: bash
run: |
set -o pipefail
python -m pytest -x -vv 2>&1 | tee hosted-pytest.log
- name: Check public C example
run: cc -std=c11 -Wall -Wextra -Werror -Iinclude -fsyntax-only examples/embed.c
- uses: actions/upload-artifact@v4
if: always()
with:
name: portapy-hosted-pytest
path: hosted-pytest.log

audit:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install verified asmpython
run: |
python -m pip install --no-cache-dir --force-reinstall \
'git+https://github.com/deltathedumb/asmpython.git@376cf9422c28123673a1dedd7dd66b845f3c5ed1'
- name: Audit full-core imports and source positions
shell: bash
run: |
mkdir -p dist
python tools/normalize_full_core_probe.py
python tools/normalize_full_core_lambdas.py
python -m asmpython._compiler.import_audit \
src/portapy/native_full_core_probe.py \
> dist/full-core-import-audit.txt 2>&1
python tools/asmpython_parse_audit.py \
src/portapy/core/frontend.py \
src/portapy/core/vm.py \
> dist/full-core-parse-audit.txt 2>&1
- uses: actions/upload-artifact@v4
if: always()
with:
name: full-core-import-audit
path: |
dist/full-core-import-audit.txt
dist/full-core-parse-audit.txt

native:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
target: linux
- os: windows-2025
target: windows
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Linux dependencies
if: matrix.target == 'linux'
shell: bash
run: |
sudo apt-get update
sudo apt-get install --yes nasm gcc binutils
python -m pip install -e '.[test]'
python -m pip install --no-cache-dir --force-reinstall \
'git+https://github.com/deltathedumb/asmpython.git@376cf9422c28123673a1dedd7dd66b845f3c5ed1'
- name: Install Windows dependencies
if: matrix.target == 'windows'
shell: powershell
run: |
& .\tools\install_windows_toolchain.ps1
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
python -m pip install -e '.[test]'
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
& .\tools\install_pinned_asmpython.ps1
- name: Build Linux standalone library
if: matrix.target == 'linux'
shell: bash
run: |
mkdir -p dist
set -o pipefail
PYTHONPATH="$PWD" python -m pytest -q 2>&1 | tee dist/pytest.log
- run: cc -std=c11 -Wall -Wextra -Werror -Iinclude -fsyntax-only examples/embed.c
python tools/build_native_typed.py \
--target linux \
--output dist/libportapy.so \
--work-dir dist/build-verify-linux \
2>&1 | tee dist/build-linux.log
- name: Build Windows standalone library
if: matrix.target == 'windows'
shell: powershell
run: |
New-Item -ItemType Directory -Force dist | Out-Null
$output = & python tools/build_native_typed.py `
--target windows `
--output dist/portapy.dll `
--work-dir dist/build-verify-windows `
2>&1
$buildStatus = $LASTEXITCODE
$output | Tee-Object -FilePath dist/build-windows.log
if ($buildStatus -ne 0) { exit $buildStatus }
- name: Verify Linux standalone library
if: matrix.target == 'linux'
shell: bash
run: |
if readelf -dW dist/libportapy.so | grep -Ei 'libpython|python3'; then
echo 'CPython linkage is forbidden'
exit 1
fi
if readelf -dW dist/libportapy.so | grep -q TEXTREL; then
echo 'text relocations are forbidden'
exit 1
fi
python tools/run_native_release_conformance.py \
dist/libportapy.so \
--output-dir dist/conformance-linux
- name: Verify Windows standalone library
if: matrix.target == 'windows'
shell: powershell
run: |
$imports = (& objdump -p dist/portapy.dll | Out-String)
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
if ($imports -match 'DLL Name:\s*(python|libpython)[^\s]*\.dll') {
throw 'CPython linkage is forbidden'
}
python tools/run_native_release_conformance.py `
dist/portapy.dll `
--compiler gcc `
--output-dir dist/conformance-windows
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
- name: Verify direct CSharp PInvoke
if: matrix.target == 'windows'
shell: powershell
run: |
dotnet build examples/csharp/PortaPyExample.csproj `
--configuration Release `
--output dist/csharp
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Copy-Item dist/portapy.dll dist/csharp/portapy.dll
Push-Location dist/csharp
try {
$output = @(dotnet PortaPyExample.dll)
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
} finally {
Pop-Location
}
$output | Out-File -Encoding utf8 dist/csharp-output.txt
if ($output[-1] -ne 'Hello, world!') {
throw "unexpected C# output: $($output -join [Environment]::NewLine)"
}
- uses: actions/upload-artifact@v4
if: always()
with:
name: hosted-ci
name: portapy-ci-${{ matrix.target }}
path: dist
56 changes: 0 additions & 56 deletions .github/workflows/csharp-ffi.yml

This file was deleted.

75 changes: 0 additions & 75 deletions .github/workflows/full-core-import-audit.yml

This file was deleted.

Loading
Loading