Skip to content

Aiki v0.4.0 Alpha 3

Latest

Choose a tag to compare

@decuser decuser released this 30 Aug 20:21

This is the third public alpha release of Aiki.

Alpha 3 is primarily a consolidation, realization, and coherence release. The
visible language remains deliberately small, while the implementation beneath
it has become substantially more exact, efficient, observable, and internally
constrained.

Aiki continues to center exact numbers, strict left-to-right binary evaluation,
first-class functions, persistent lists, shaped data, recoverable shaped
errors, proper tail calls, modules, isolated message-passing concurrency,
graphics, and explicit systems facilities. Alpha 3 also makes and and or
lazy while retaining Aiki's left-to-right evaluation model.

The numeric implementation has been substantially reworked beneath the single
language-level number type. Exact values may now use compact integers,
compact rationals, exact finite-binary carriers, or arbitrary-precision
rationals as appropriate. These are realization choices only; ordinary Aiki
arithmetic remains exact.

Lists likewise gained adaptive persistent realization beneath their immutable
language semantics. Runtime work across calls, environments, argument frames,
AST traversal, literals, parsing, strings, and other frequently exercised paths
has substantially reduced allocation and host cost without changing observable
language behavior.

Profiling has been rebuilt around a single observation network that accounts
for semantic work, call relationships, runtime boundaries, allocations, and
host cost. Coverage now combines a static model of coverable program structure
with dynamic observation-network hits rather than maintaining a second
independent runtime accounting system.

The mathematics surface is now divided explicitly by semantic role.
math/native is the portable semantic authority for exact bounded-work
mathematics and is the bare math default. math/ffi accelerates the exact
floor, ceil, and modulo surface. math/approx provides explicitly
approximate sine, cosine, and square-root services without introducing a
second numeric type.

Alpha 3 also strengthens the relationship among the grammar, evaluator,
standard library, help, documentation, native/provider policy, and command-line
tools. Shipped modules carry explicit summaries, bare/native module resolution
is documented and checked, and library documentation is mechanically compared
with exported surfaces.

Command-line organization and validation have also been tightened. Top-level
command dispatch and help share one registry, recursive target handling is
centralized, and validation is exposed through explicit levels including
make validate-lang, make validate-all, make rigorous, make distcheck,
and make historycheck.

Repository organization has been simplified. Engineering records, proposals,
profiling material, hooks, and AI-assisted development materials now live under
engineering/. Samples and editor support have explicit homes. Experiments
have moved to the separate aiki-experiments repository so machine
reconstructions and other empirical work can evolve independently of the core
language unless they expose a genuine language or runtime issue.

Alpha 3 includes updated editions of Report on the Programming Language Aiki
and This Is Aiki — The Aiki Alpha 3 Release. Historical Alpha 1 and Alpha 2
release documents remain preserved.

Aiki remains an alpha. Syntax, library interfaces, tooling, and implementation
details may still change as the language continues to be hardened and
simplified.

This release was validated on Linux, macOS, and Windows and provides
Intel/amd64 builds for all three platforms.

Prebuilt release archives are provided for:

  • aiki-v0.4.0-alpha-36-linux-amd64.tar.gz
  • aiki-v0.4.0-alpha-36-macos-amd64.tar.gz
  • aiki-v0.4.0-alpha-36-windows-amd64.tar.gz
  • SHA256SUMS

See the README and the Alpha 3 release documents for installation, Getting
Started instructions, examples, language details, project method, AI and
authorship statement, limitations, and future direction.

Feedback on language behavior, reproducible failures, documentation,
portability, performance, and the overall design is welcome.