Slava and I have been busy since Squiggle 0.7. We’ve been getting ready for the Squiggle Hub, and have been making a bunch of improvements to make that experience usable.
As part of the preparation for more users, we’ve deprecated some syntax. This might break your models, so keep an eye on this (it should be easy to fix). We generally don’t intend to deprecate much between major version numbers, but this seemed like a reasonable time to make an exception.
@quri/squiggle-lang
Breaking changes
SampleSet
distributions are now used as the default.This change is important because only SampleSet distributions handle correlations, and users expecting correlations got confused when the defaults were for symbolic distributions instead. If you want to use symbolic formats, you can, like:
Sym.normal(5,2)
.
a to b
expressions always evaluate to lognormal distributions, limited to positive-only arguments.Previously these changed to use normal distributions at values zero or less, and this confused users. https://github.com/quantified-uncertainty/squiggle/issues/1095
|>
pipes syntax is removed, in favor of the->
syntax.We had two syntaxes that did the same thing, and wanted to clean this up.
#
comments support is removed, in favor of the//
syntax.Renamed functions such as
scaleLog
,scalePow
, etc. toDanger.mapYLog
,Danger.mapYPow
, etc.These were infrequently used and prone to errors.
Default sampleCount in squiggle-lang is now 1k, matching playground.
New features
Parameter annotations:
f(x: [0, 10])
see docs for detailsPlot.distFn
andPlot.numericFn
(Plot.fn
is removed)Support for manual plot scales
Support for docstrings.
/** ... */
comments are displayed in the viewerList.reduceWhile
functionDicts and bindings are ordered
map
callback supports an optional secondindex
parameterSupport for
{ foo, bar }
shorthand in dictionariesMixture correlations https://github.com/quantified-uncertainty/squiggle/pull/1732
Fixes
Exponentiation is right-associative
Units are whitelisted;
100blah
is a syntax errorFixed error message when ternary condition is wrong
Performance improvements
~2x speedup on synthetic lambda-heavy benchmarks; similar improvements on real code, on average
@quri/squiggle-components
Breaking changes
Many
@quri/squiggle-lang
APIs have changed, so this package should be updated at the same time as@quri/squiggle-components
"Input variables" tab was removed; you can inject your JSON data directly into Squiggle instead
New features
Movable divider between editor and graph view
Support for new plots:
Plot.scatter
,Table.make
and othersNew default tick format. This fixes an error that small numbers (
0.01
) were shown as10m
; #2007.Ability to "zoom in" on any variable in viewer; #1913
"Find in editor" button in viewer
Other various updates to the playground UI
Fixes
Display Infinity as "Infinity"
Fix shortcut tooltips on non-macs
Charts filter out infinity values from the domain
Improve tooltip for errors in editor
VS Code extension
Improvements to syntax highlighter
@quri/prettier-plugin-squiggle
Initial release. Install this package to format any Squiggle code with https://prettier.io. Requires Prettier v3.
@quri/ui
Initial release with common UI components by QURI, used in squiggle-components and Squiggle Hub. Storybook
You probably shouldn't use this package directly if you don't work at QURI, because we don't have any stability guarantees and optimize for our convenience.
Other
New documentation, now with search.
We've started work on relative values functionality in Squiggle Hub. This is still fairly error-prone, we'll work on cleaning it up in the next few months.