Repository navigation
v0.3.0
v0.3.0 — M2: lowering identical to julia 1.12.6
lower ports julia 1.12.6's femtolisp front end (julia-syntax.scm,
macroexpand.scm, ast.scm, match.scm): lower.NewState().Lower(ex) is
Meta.lower of a macro-expanded top-level form, compared with julia field by
field, modulo gensym numbering.
| measured on | forms | identical to julia |
|---|---|---|
corpus (share/julia: base, Compiler, stdlib, test), 1191 files |
53 997 | 53 997 (1191/1191 files) |
| lowering snippets | 124 | 124 |
| macro-made toplevels still in hygienic scopes | 48 | 48 |
| built expressions (error paths, rare heads) | 477 | 477 |
deparse vs julia --lisp |
119 | 119 |
front-end functions vs julia --lisp |
151 | 151 |
- Hygiene (
resolve-expansion-vars,rename-symbolic-labels) ported. Lowerrefuses trees deeper thanlower.MaxDepth(lower.ErrLimit);
FuzzLowerruns on every pull request.- 100% statement coverage, every lowering expectation coming from julia.
- Known gap: a
Float64inside a lowering error message returns
lower.ErrUnsupported.
core (#9) — Julia's type objects, apply_type, and subtyping (a port of
jltypes.c and subtype.c of 1.12.6, without intersection): identical to julia
on 20 000 random pairs and 4 902 cases from test/subtype.jl. FuzzSubtype
runs on every pull request.