Skip to content

ASM 0.3.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Nov 09:33
Immutable release. Only release title and notes can be modified.
5667019

ASM 0.3.0

ASM now has native assembly clients for Linux x86-64 and ARM64.
One installer selects the correct published executable for either host.
The release also reduces the work required to validate and print large local catalogs.

Install

Install curl, GNU Coreutils, and GitHub CLI 2.93.0 or later in /usr/bin.
The verifier does not need a GitHub login.
Run:

curl -qfsS -m120 https://asm.build/install.sh | sh

The installer reads the host with uname.
It binds that target to a fixed release URL, byte size, and SHA-256 digest.
It verifies the signed release before installing $HOME/.local/bin/asm.
An unsupported operating system or architecture stops installation before downloads or file changes.

The command uses the canonical HTTPS address without following redirects.
It disables curl startup configuration, rejects HTTP errors, shows failures, and limits the transfer to 120 seconds.
The README also provides inspection and complete-download commands for CI.

For an existing supported installation, run:

asm self update

Each client selects its own host artifact.
The downloaded command is never executed during installation or self-update.

Native host support

Host Executable Project build target
Linux x86-64 asm-0.3.0-x86_64-linux x86_64-linux
Linux ARM64 asm-0.3.0-aarch64-linux aarch64-linux

Both implementations use native assembly and direct Linux system calls.
The ARM64 implementation uses baseline ARMv8-A instructions.
The implementation notes describe its internal calling convention and Linux ABI boundary.

Both clients provide project creation, builds, execution, tests, registry commands, direct dependencies, publication preparation, and manual self-update.
asm new creates source and a manifest for the running host.
asm targets reports that native project target.

A client can fetch artifacts for other package targets.
General cross-build commands remain future work.
The RISC-V hello package remains available, but this release does not include a RISC-V CLI.
macOS and Windows hosts remain unsupported.

The source archive contains both CLI implementations.
Use make to select the native implementation.
The archive's root asm.toml still describes the x86-64 reference project.
Its registry source artifact is therefore labeled x86-64; it is not a falsely labeled ARM64 source package.

Registry performance

Catalog validation now uses heap sort over a separate array of record pointers.
It checks duplicate artifact identities in bounded O(n log n) work.
The input order remains unchanged.
A 64 KiB buffer reduces output system calls.
Output failures return a nonzero exit status.

On one measured x86-64 host, 4,096-record local searches had approximately 19–21 times lower median elapsed time.
The experiment compares the previous registry implementation with the changed implementation while keeping other CLI modules identical.
Small-catalog wall-time results were inconclusive, and some tail latencies increased.

Read the complete performance record for exact executable identities, hardware, methods, raw samples, and regressions.
These results do not measure ARM64 performance, network installation, or service capacity.

Release checks

CI runs the CLI contract suite on native x86-64 and ARM64 runners.
Both native jobs are required before publication.
The release builder compares two clean builds for each executable.
It checks the cross-built ARM64 version and target output through QEMU.
Emulation complements the native tests; it does not establish native performance.

The release contains source, SHA256SUMS, release.json, and the signed provenance bundle.
The source archive includes the benchmark evidence.
Bootstrap installation and self-update bind the selected executable to its exact source commit and release workflow.

Remaining limits

  • Dependencies use exact direct versions. There is no transitive resolver or version-range syntax.
  • Publication uses reviewed registry records. asm publish prepares a local submission.
  • The index has no independently signed expiry or revocation record.
  • Download observations count GitHub asset requests, not unique users or installations.
  • Hosted proof checks, public build workers, and ownership recovery remain future work.
  • The assembly server experiment remains separate from the deployed website.

ASM remains an alpha.
Read the security model and self-update contract before relying on their guarantees.
ASM uses AGPL-3.0-or-later; starter text and reference examples retain their MIT grants.
Earlier release bytes and licenses remain unchanged.