Releases: explorable-viz/fluid
POPL 2022 artifact (final version)
Minor fixes to POPL 2022 artifact submission.
POPL 2022 artifact submission
Version used for POPL 2022 paper. Adds brushing-and-linking example via De Morgan dual, records, backtick syntax for infix function names, and basic matrix rendering for convolution examples.
PureScript migration
Also adds list comprehensions (and other syntactic sugar) and matrix convolution examples.
Online demo
Host demo online via GitHub Pages. Initial pass over Wrattler integration.
Linking visualisations
Graphics library and slicing redesign. Demo of chart-to-chart linking.
Basic execution differencing
Restore the execution indexing/differencing design which was present (although unused) in earlier implementations. The design is essentially the same as the one in my thesis, but environments currently contain “explained” values, rather than plain values, which probably impacts the amount of sharing between executions. I will revisit this in a later release. Added enough user interface to present the idea at IC 2019.
Move annotations from values to traces
Usage bits (expressing demand/availability) are no longer stored on values, but on the traces that “explain” those values. This allows values to be shared by different steps of the computation, but have different usage at each step. Also reorganised things so that traces are structurally separate from values, as they are in the formalism.
“Native object” implementation
Interpret object-language datatype constructors as JavaScript classes, values as instances of those classes, and the corresponding elimination forms as visitor objects that provide a classification callback for each constructor of the datatype.
Allows easier integration of our implementation with external libraries, and metavalues used internally by the interpreter (representing expressions, traces and so forth) to be freely used as object-language values with no reflection/reification overhead.
Basic bar chart example
First end-to-end spike of forward/backward slicing with data view and forward slicing driven by mousing over data.
Annotation-based slicing
Merge pull request #208 from rolyp/move-annotations Move usage annotations from values to traces