Releases: manucorporat/noise-lang
Release list
@noiselang/core@0.8.0
Minor Changes
- 7744ce7:
plot::line(xs, ys)— the two-argument form plots a vector of values (numbers, estimates, or random variables, banded by ±1 sd like the one-argument form) against an explicit deterministic numeric x-axis, with the axis named after its source array. Histogram/introspection draw collection now runs on the parallel sampling driver (bit-identical stream, multicore wall-clock). - 7744ce7: Slider values are now true runtime uniforms in every backend (PLAN-UNIFORM-INPUTS P1): the WGSL and WASM emitters lower
input::cones instead of declining them, and the value rides the dispatch (a GPU params block / a host-written memory region) rather than the compiled artifact. Dragging a slider re-dispatches cached pipelines and cached kernel instances with zero recompiles, and slider-heavy documents GPU-accelerate —turboquant.noisedrops from ~14 s to under 0.1 s on the GPU CLI.
@noiselang/core@0.7.0
Minor Changes
-
d38da29: Sliders work everywhere a number does, plus
onehotand "did you mean?" hints.input::realevaluates to a symbolic value (Value::Sym), a fourth scalar shape beside
Num/Est/Dist, and most builtins had never grown an arm for it — everymath::ufunc,
norm/normsq/normalize/mse,max/min/cummax/cummin/quantize,count/any/all,
andpoisson/geometric/normal_complexall rejected a slider. They now defer symbolically, so
the value stays an input (no recompile on drag) and gives the same answer as the constant it
currently holds. A pair of tests locks this in: each builtin is exercised with a slider against the
literal, and any newmath/vec/randname that is neither probed nor explicitly exempt fails
the suite.New
onehot(v, width)— the length-widthindicator row ofv: 1 at indexv, 0 elsewhere.
A randomvyields a row of indicator RVs; a constantvfolds to a constant array.Unknown module calls now suggest the nearest registered name (
math::sqtr→ "did you mean
math::sqrt?"), with an edit-distance budget that stays quiet for genuinely unrelated names.
@noiselang/core@0.6.0
Minor Changes
- b1729c1: Array slicing: indexing with a deterministic array of indices selects into a new array. Since
a..bis already an array,xs[0..r]takes the firstrelements (Rust-style half-open), and
any index list works —xs[[2, 0, 0]]reorders and repeats,xs[perm]applies a deterministic
permutation. Each index obeys the existing scalar rules (constant non-negative integer, bounds
checked element-wise); random indices inside the array are an error. It is pure build-time sugar
for[for i in inds { xs[i] }], so nothing changes for codegen. The secretary example's
observation phase collapses from a fold loop tobar = max(quality[0..r]).
@noiselang/core@0.5.1
Patch Changes
- cd83e72: Fix the engine worker failing to load in bundled production builds. The worker URL was hoisted into
a variable, which stopped bundlers from recognizingnew Worker(new URL('./worker.js', import.meta.url))
as a worker — soworker.jswas copied verbatim instead of bundled, and itsimport './gpu-protocol.js'
resolved to a file that was never emitted. Every run then hung forever waiting on a worker that had
died on load. Dev servers were unaffected, so this only appeared in production bundles.