Skip to main content

Shared Rust/WASM compiler core for Xian contracts

Project description

xian-compiler-core

This crate is the landing zone for the central Rust/WASM compiler described in ../../docs/RUST_COMPILER_CORE.md.

The current slice owns the artifact model, hashing rules, diagnostics, source units, parser adapter, Xian-owned syntax tree, semantic linting, source normalization, structural xian_ir_v1 lowering, and compiler fixture loader. The checked-in compiler fixtures are still generated from the current Python compiler and act as the parity oracle during the migration.

Current Surface

  • SourceUnit: validated source/module/profile input wrapper
  • ContractArtifact: typed xian_contract_artifact_v1 deployment artifact
  • build_contract_artifact(...): construct artifact metadata from canonical source and canonical IR bytes
  • validate_contract_artifact(...): verify artifact format, profile, hashes, JSON IR, and embedded IR identity fields
  • CompilerDiagnostic: stable structured diagnostic payload
  • parse_source(...): RustPython-backed parser adapter for the current Python-like contract syntax, returning an opaque parsed module
  • parse_diagnostics(...): deterministic parser diagnostic adapter with source ranges
  • parse_to_syntax(...): parse source and convert it into a compact Xian-owned syntax tree
  • build_syntax_tree(...): convert an existing parsed module into Xian syntax
  • SyntaxModule, SyntaxStatement, SyntaxExpression: Rust-owned syntax data model used by later lint/normalize/lower stages
  • lint_syntax(...): semantic lint rules over SyntaxModule
  • normalize_syntax(...): deterministic formatter over the Xian syntax tree
  • normalize_source(...): parse, optionally lint, and return canonical source
  • lower_syntax_to_ir(...): lower a validated syntax tree into structural xian_ir_v1
  • lower_source_to_ir(...): normalize, parse, optionally lint, and lower source into structural xian_ir_v1
  • lower_source_to_ir_json(...): return canonical JSON for the lowered IR
  • compile_contract_artifact(...): normalize, lower, and build a hash-checked xian_contract_artifact_v1
  • describe_vm_host_surface(): expose the xian_vm_v1_host_v1 host catalog
  • diagnose_contract(...): first high-level compiler entrypoint; currently validates source/profile, parser diagnostics, unsupported syntax nodes, and semantic lint diagnostics when lint is enabled
  • compiler_version(): machine-readable version and schema metadata
  • CompilerFixture: typed representation of xian.compiler_fixture.v1
  • parse_compiler_fixture_json(...): load a fixture JSON document
  • CompilerFixture::validate_basic(): deterministic structural checks for accepted and rejected fixture records

Fixtures are generated from the current Python compiler with:

uv run python scripts/generate_compiler_fixtures.py \
  packages/xian-compiler-core/tests/sources

Run the Rust fixture checks with:

cargo test --manifest-path packages/xian-compiler-core/Cargo.toml

Check the optional binding layers with:

cargo check --manifest-path packages/xian-compiler-core/Cargo.toml \
  --features python-extension
cargo check --manifest-path packages/xian-compiler-core/Cargo.toml \
  --features wasm

Build the Python package locally with:

uv run python -c "import xian_compiler_core"

Build the WASM package from packages/xian-compiler-core/npm with:

npm run build

The WASM build requires wasm-pack and a Rust toolchain with the wasm32-unknown-unknown standard library installed. The generated npm package is consumed by browser apps such as xian-ide-web and by JS callers that want to compile source locally.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xian_tech_compiler_core-0.1.2.tar.gz (69.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xian_tech_compiler_core-0.1.2-cp314-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.14+Windows x86-64

xian_tech_compiler_core-0.1.2-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14+manylinux: glibc 2.17+ x86-64

xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14+macOS 11.0+ ARM64

xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14+macOS 10.12+ x86-64

File details

Details for the file xian_tech_compiler_core-0.1.2.tar.gz.

File metadata

  • Download URL: xian_tech_compiler_core-0.1.2.tar.gz
  • Upload date:
  • Size: 69.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xian_tech_compiler_core-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a0e670ca5908c394af2b17928eb39d3d42b27bca31ba168c8378a6f1df59a677
MD5 c8dc9cc0b651b4145aa3aaf2ed579dcd
BLAKE2b-256 218827cfb52a6978cbf832776110abb465d074bb3d66199a84450181994ddc57

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.2.tar.gz:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.2-cp314-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.2-cp314-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9081cfb9bdfe581d333ba3b9fcaf47fc74098e5c3bac23106cd2c35065a8e825
MD5 3852ca02dd65d937b35c8f774e168d7e
BLAKE2b-256 f05f0d26c23e43d3766d58ccdf6b1717211f18854f48987476f719f1507b3fbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.2-cp314-abi3-win_amd64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.2-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.2-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a909abf9622d191290028bc3ac79b74f5b9fd261dfc593729991c287df661a5
MD5 ae95a112f62f533befdc4c00f3e17a9f
BLAKE2b-256 b23b6bb9eac6d51adea6e7688ba77643527f6c37c421050c27218644786507c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.2-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f08c7dbc40a6e59aa68728b5611930bf672e6c8d1d8eb19694e31abf7fa98038
MD5 9dbc6bc7c8ddbec0a4f88466d6ba0232
BLAKE2b-256 1d17e285caf49bdac9ec63c597ea70f5b06455f64d5ad181dbaa85e6a2551d2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 55dd3af44f348e21a172671c0af2d21836bce171d9fee51719a79f870c6f6893
MD5 6f6bbea8051ef4544e2d9632dd631a9b
BLAKE2b-256 4fb79b3d71d72e5b20aeec26a17ecddb6e5054b524e894192426bae852bdc27f

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.2-cp314-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page