Skip to content

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 03 Aug 08:04
· 325 commits to main since this release

Features

  • fuzz: the AOT differential over generated programs
  • fuzz: a type-directed generator, and the false-positive oracle it unlocks
  • fuzz: the tier-1 JIT differential over generated programs
  • fuzz: a leak/RC oracle over generated programs
  • fuzz: the runtime-rejection census, and a gate so it cannot grow in silence
  • fuzz: an execution oracle — what the checker promises vs what running does

Fixes

  • loader: α-rename every binder a merged module holds
  • loader: a merged module's bindings carry its identity
  • loader: merged module statements run in their own module's order
  • fmt: a ? on a ? keeps its parentheses, and the precedence table gets a matrix
  • check: an enum variant takes the fields it declares
  • check: a scalar match with no catch-all is provably non-exhaustive
  • check: assert takes a bool and at most a message
  • check: a container is indexed by its key type, and for needs something iterable
  • check: a non-callable value is not callable, and a module has the functions it has
  • check: a condition must be a bool, and a literal pattern must be able to match
  • check: && and || take bools
  • check: none is an Option, not a value of whatever type is expected
  • check: an ordering needs one type; a function value and a tuple are closed
  • check: two declarations of one name in one file collide (E0020)
  • check: a for (a, b) pattern needs a tuple element with a position per name
  • check: a declared type is not callable
  • check: the hoisted-globals fallback licenses a deferred reference, not an early one
  • bundle: cap the inflate so a payload cannot expand without bound
  • fmt: comments inside ${…} holes survive, and stay in their branch
  • fmt: a trailing comment belongs to its region, not just its line
  • fmt: a spread list is not the same as one concatenated with something
  • fmt: the placement oracle counts only statement else if
  • fmt: two comment relocations, both from an unwalked region
  • fmt: the placement oracle measures AST blocks, not braces
  • fmt: a resugared conditional is not brace-delimited either
  • fmt: an arrow closure is not self-delimiting

Documentation

  • contributing: the census, the leak oracle, and the tier-1 differential
  • fuzz: name the real check-vs-run surfaces instead of a placeholder link
  • contributing: structured fuzzing joins the testing architecture

Refactoring

  • fmt: the formatter's invariants become a shared oracle

CI & build

  • release: a release tells the para repos to bump their toolchain pin

Housekeeping

  • release: bump workspace version to 0.4.2
  • loader: two dependency packages may each bind the same name
  • fuzz: ungrouped hex digits in the jit seed
  • rustfmt the new checker gates and the run oracle
  • fuzz: the .noeb container, and what the compiler assumes
  • fuzz: the formatter's oracle runs over generated programs in the gate
  • fuzz: a structured generator of valid Noeta programs

Full changelog: v0.4.1...v0.4.2