Skip to content

Commit 1530d5b

Browse files
hyperpolymathclaude
andcommitted
feat: implement Phase 1 meta-framework — manifest, codegen, ABI, tests
iseriser now generates complete -iser repositories from language descriptions. The manifest schema ([project], [language], [output]) drives a three-stage pipeline: parser (semantic validation), scaffold (20+ file generation including Cargo.toml, Rust src, Idris2 ABI, Zig FFI, CI/CD, docs), and customizer (paradigm/target/type-system-specific extras like ADT mappers, array bridges, BEAM NIF boilerplate, deep ABI proof docs). 57 tests pass: 24 unit (abi, parser, scaffold, customizer, manifest), 9 integration (Chapel/Gleam/Julia/Idris2/ReScript pipelines, validation). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 7c63636 commit 1530d5b

12 files changed

Lines changed: 3758 additions & 99 deletions

File tree

Cargo.lock

Lines changed: 906 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/newlang/README.adoc

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
= NewLang Example
2+
3+
This directory contains an example iseriser manifest that generates
4+
a complete -iser for a fictional language called "NewLang".
5+
6+
== Usage
7+
8+
[source,bash]
9+
----
10+
cd /path/to/iseriser
11+
cargo run -- generate -m examples/newlang/iseriser.toml -o /tmp/generated
12+
----
13+
14+
This produces a complete `newlangiser/` repository under `/tmp/generated/`
15+
with Cargo.toml, src/, Idris2 ABI, Zig FFI, tests, CI/CD, and docs.
16+
17+
== Language Description
18+
19+
* *Name:* NewLang
20+
* *Paradigm:* functional
21+
* *Type system:* algebraic
22+
* *Target:* native
23+
* *Key primitives:* atom, channel, record

examples/newlang/iseriser.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
#
3+
# Example iseriser manifest: generate an -iser for a fictional language "NewLang".
4+
#
5+
# NewLang is a functional language with algebraic types that compiles to native
6+
# code. It has three key primitives that need FFI bindings: atom, channel, record.
7+
#
8+
# To generate:
9+
# cargo run -- generate -m examples/newlang/iseriser.toml -o /tmp/generated
10+
11+
[project]
12+
name = "newlangiser"
13+
version = "0.1.0"
14+
15+
[language]
16+
name = "NewLang"
17+
paradigm = "functional"
18+
type-system = "algebraic"
19+
compilation-target = "native"
20+
key-primitives = ["atom", "channel", "record"]
21+
22+
[output]
23+
repo-name = "newlangiser"
24+
github-org = "hyperpolymath"
25+
description = "NewLang interop -iser — generated by iseriser"

0 commit comments

Comments
 (0)