Published Dec 28, 2023

@quri/squiggle-lang (opens in a new tab)

Tags and decorators

Squiggle now supports tags (Tag.* functions) and decorators (@decoratorName) that can be used to affect how the value is displayed. (#2572 (opens in a new tab) and others).

Tags can be attached to any value, and decorators can be attached to any variable or function definition.

Decorators are proxied to Tag functions, e.g. @name("X var") x = 5 is the same as x = 5 ->"X var").

Builtin tags: @name, @description, @format, @showAs, @hide.

Dates and Durations improvements (#2572 (opens in a new tab)).

Added date domains, f(x: [Date(1980), Date(2050)]), that's used in function plots for the x axis.

You can now type Date(2023) to represent Jan 1 2023.

Standard library

Other changes

  • Fix pointwise combination precision issues on discrete PointSet dists. This was affecting mixture and pointwise operators. (#2514 (opens in a new tab))

  • Expose getFunctionDocumentation function to render documentation in the playground (#2583 (opens in a new tab))

@quri/squiggle-components (opens in a new tab)

@quri/prettier-plugin-squiggle (opens in a new tab)

vscode-squiggle (opens in a new tab)

  • Use 0.9.0 Squiggle

  • Convert webview implementation to TypeScript