e37366f8dd9f62bc2d8d60927a3fc7dc4cde4ef2
Three classes of fix from the LLVM-IR audit: 1. != on Float: fcmp une, NOT fcmp one. one is 'ordered and not equal' (false for nan!=nan, breaks IEEE / user-fixed constraint). une is 'unordered or not equal' (true for nan!=nan, matches IEEE and Rust f64::ne). 2. crates/ailang-codegen/src/synth.rs touches the Float primitive at five sites the original spec missed: llvm_type, builtin_ail_type, builtin_effect_op_ret, type_descriptor (descriptor 'Fl' to avoid collision with ADT-name F-prefix), builtin_binop (becomes a transitional artefact, replaced by type-dispatched helper). 3. Float literals lower as LLVM hex-float syntax (double 0x4014...); nan/inf/neg_inf as direct SSA double constants at use site (NOT via the __unreachable__ analogue, which is a terminator instruction not a value); container slot layout precision (monomorphisation vs bitcast).
Description
No description provided
Languages
Rust
91.6%
Python
4.6%
C
1.8%
LLVM
1.6%
Shell
0.4%