Brummel
cc2d6944c1
iter 23.2.1: runtime/str.c with ail_str_eq + unconditional link
2026-05-10 21:49:45 +02:00
Brummel
1f244379de
iter 23.1.4 fixup: local-hit with mismatching type_name falls through to imports-fallback
2026-05-10 21:35:43 +02:00
Brummel
aace5e3ce2
iter 23.1.4: E2E fixture — bare LT match via implicit prelude import
2026-05-10 21:32:05 +02:00
Brummel
47d95d0c60
iter 23.1.3 fixup: clarify imports-fallback anchor + comment on env.imports vs env.module_imports duplication
2026-05-10 21:28:53 +02:00
Brummel
24af13e7e0
iter 23.1.3 fixup: cover AmbiguousType branch with cross-module test
2026-05-10 21:25:26 +02:00
Brummel
842df380a4
iter 23.1.3: implicit prelude import + symmetric bare-type-name imports-fallback in Term::Ctor synth
2026-05-10 21:24:16 +02:00
Brummel
927f7ea38f
iter 23.1.2 fixup: align workspace-root idiom + add collision test for ReservedModuleName
2026-05-10 21:16:56 +02:00
Brummel
3742583924
iter 23.1.2: load_workspace auto-injects prelude module
2026-05-10 21:13:40 +02:00
Brummel
6be5abf23a
fix: Pattern::Lit::Float typecheck-reject is unreachable through check_module
2026-05-10 17:10:31 +02:00
Brummel
23b625f326
test: red for Pattern::Lit::Float not rejected through full check pipeline
...
Pins fieldtest finding B1 (docs/specs/2026-05-10-fieldtest-floats.md).
DESIGN.md and JOURNAL Floats.3 promise that pattern-matching on a
Float literal is hard-rejected at typecheck via
CheckError::FloatPatternNotAllowed, but the rejection only fires when
typecheck is reached directly. The full check pipeline runs
ailang_core::desugar::desugar_module first, and build_eq rewrites
Pattern::Lit { Literal::Float } arms into (== scrutinee 1.5_FLOAT)
before typecheck — so the existing iter-3.4 reject arm at lib.rs:2316
is unreachable on input flowing through check / check_module /
check_workspace.
The existing reject_float_pattern_in_match test in builtins.rs calls
synth(...) directly on a hand-built Term::Match, bypassing desugar; it
passes today but does not protect the spec'd property. This new test
exercises check(&m) end-to-end and asserts the FloatPatternNotAllowed
error — currently fails because check returns Ok(CheckedModule).
GREEN side handed off to skills/implement mini-mode.
2026-05-10 17:04:12 +02:00
Brummel
ea8988b529
floats iter 5.1: prose renders Float literals (finite + NaN/Inf)
2026-05-10 16:36:12 +02:00
Brummel
9764b616ce
floats iter 4.6: codegen io/print_float + examples/floats.ail.json E2E fixture
2026-05-10 16:25:25 +02:00
Brummel
bde5aafb03
floats iter 4.5: codegen Float constants nan/inf/neg_inf as hex-double SSA values
2026-05-10 16:20:37 +02:00
Brummel
613aa39f0f
floats iter 4.4 fixup: float_to_str returns CodegenError::Internal instead of panic
2026-05-10 16:18:39 +02:00
Brummel
581144a4f9
floats iter 4.4: codegen neg/int_to_float/float_to_int_truncate/is_nan + float_to_str-deferred
2026-05-10 16:15:39 +02:00
Brummel
3869641a31
floats iter 4.3: codegen Float comparison arms (fcmp olt/ole/ogt/oge/UNE) + lower_eq Float
2026-05-10 16:10:13 +02:00
Brummel
2a290704df
floats iter 4.2 fixup: 3-tuple return for builtin_binop_typed + classifier helper
2026-05-10 16:07:11 +02:00
Brummel
8044a4d98c
floats iter 4.2: codegen arithmetic dispatch on arg type — fadd/fsub/fmul/fdiv double
2026-05-10 16:01:35 +02:00
Brummel
ac5e17e541
floats iter 4.1: codegen primitive registration + Float literal hex-double lowering
2026-05-10 15:54:20 +02:00
Brummel
d6da5c26b1
floats iter 3.4: typecheck rejects Pattern::Lit Float with FloatPatternNotAllowed
2026-05-10 15:40:33 +02:00
Brummel
fd3f74cfa0
floats iter 3.3: install Float constants nan/inf/neg_inf + io/print_float effect op
2026-05-10 15:35:19 +02:00
Brummel
60a4c687b3
floats iter 3.2: install neg/int_to_float/float_to_int_truncate/float_to_str/is_nan
2026-05-10 15:31:14 +02:00
Brummel
6890aa244f
floats iter 3.1 fixup: correct stale ==-comparison comment + asymmetric Float test args + drop spec-section reference
2026-05-10 15:28:55 +02:00
Brummel
0981804dd3
floats iter 3.1: widen +/-/*/// and !=/</<=/>/>= to polymorphic forall a
2026-05-10 15:24:13 +02:00
Brummel
c619697a76
floats iter 2.3: surface print emits shortest round-trippable decimal with .0 fallback
2026-05-10 15:11:31 +02:00
Brummel
f62bff08a3
floats iter 2.2: parser accepts Tok::Float in term and pat-lit positions
2026-05-10 15:07:39 +02:00
Brummel
f960e39f8b
floats iter 2.1 fixup: drop task-tags + refresh stale prose + uppercase-E + leading-dot tests
2026-05-10 15:04:50 +02:00
Brummel
d0c9133ae4
floats iter 2.1: Tok::Float + LexError::InvalidFloat + spec-A2 grammar validator
2026-05-10 15:00:46 +02:00
Brummel
b2d31824a1
floats iter 1.4 fixup: drop intra-doc-links to private hex_u64 (rustdoc baseline preservation)
2026-05-10 14:49:21 +02:00
Brummel
1a4e2f04b7
floats iter 1.4: refresh canonical.rs 'no floats' doc comment
2026-05-10 14:47:43 +02:00
Brummel
7c95a69780
floats iter 1.3: bit-stability tests for Literal::Float
2026-05-10 14:45:34 +02:00
Brummel
93bae2d02a
floats iter 1.2 fixup: replace iter-N comment with durable rationale for explicit assertions
2026-05-10 14:44:14 +02:00
Brummel
aa5b88e8d4
floats iter 1.2: register Float as a primitive type name
2026-05-10 14:42:23 +02:00
Brummel
93fe2da33c
floats iter 1.1 fixup: trim form_a.md FLOAT bullet to match neighbour style
2026-05-10 14:40:16 +02:00
Brummel
ec2811194b
floats iter 1.1: Literal::Float variant + canonical hex serde + drift-test anchors
2026-05-10 14:36:08 +02:00
Brummel
e21f264b93
design-md-consolidation 3.4 nit: drop task-ref doc-comment prefix + align def-kind list with lowercase tags
2026-05-10 12:57:11 +02:00
Brummel
934a6e18e6
design-md-consolidation 3.4 fixup: align DESIGN.md ClassDef/InstanceDef JSON tags with ast.rs lowercase serde rename
2026-05-10 12:53:36 +02:00
Brummel
4651fed5b7
design-md-consolidation 3.4: add design_schema_drift.rs — exhaustive-match drift test for ast.rs vs DESIGN.md §Data-model
2026-05-10 12:51:39 +02:00
Brummel
e5d1c1e33b
design-md-consolidation 3.3: ast.rs doc-comment names DESIGN.md §Data-model as canonical schema, drift test as enforcement
2026-05-10 12:48:21 +02:00
Brummel
dafdf17f72
iter 22-tidy.7: extract duplicate_clause_err helper, retire 17 inline blocks
2026-05-10 05:14:53 +02:00
Brummel
51011511b4
iter 22-tidy.6.2: write_fn_def renders forall class constraints
2026-05-10 04:58:01 +02:00
Brummel
788c9808dd
iter 22-tidy.6.1 fixup: cover abstract-method + instance-override branches; doc + fallback comments
2026-05-10 04:54:22 +02:00
Brummel
d1c992d49a
iter 22-tidy.6.1: write_class_def + write_instance_def — full Form-B projection
2026-05-10 04:47:50 +02:00
Brummel
4cb69f85f7
iter 22-tidy.5.3: parse_data rejects duplicate doc clause
2026-05-10 04:35:49 +02:00
Brummel
9097b88625
iter 22-tidy.5.2: drop transient iter-tags from parse_fn duplicate-clause tests
2026-05-10 04:33:59 +02:00
Brummel
3fd17827bf
iter 22-tidy.5.2: parse_const rejects duplicate doc/type/body clauses
2026-05-10 04:31:08 +02:00
Brummel
9592478971
iter 22-tidy.5.1: parse_fn rejects duplicate doc/type/params/body clauses
2026-05-10 04:27:19 +02:00
Brummel
557bf57cdb
iter 22-tidy.4: mono::primitive_surface_name delegates to ailang-core
2026-05-10 04:18:46 +02:00
Brummel
5fd95e4e9f
iter 22-tidy.4: route 4 matches! sites through is_primitive_name
2026-05-10 04:15:47 +02:00
Brummel
9523a1cd63
iter 22-tidy.4: pin lockstep invariant + tighten module doc
2026-05-10 04:13:41 +02:00