Closed berekuk closed 8 months ago
Latest commit: 1f5972fc22d8d00ce760a5c450cb078f4d850999
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
The latest updates on your projects. Learn more about Vercel for Git ↗︎
Name | Status | Preview | Updated (UTC) |
---|---|---|---|
quri-hub | ✅ Ready (Inspect) | Visit Preview | Feb 13, 2024 7:55pm |
quri-ui | ✅ Ready (Inspect) | Visit Preview | Feb 13, 2024 7:55pm |
squiggle-components | ✅ Ready (Inspect) | Visit Preview | Feb 13, 2024 7:55pm |
squiggle-website | ✅ Ready (Inspect) | Visit Preview | Feb 13, 2024 7:55pm |
This implements the following items from #1932:
Performance benefits are around 20-25% for pure Squiggle code.
I expected more, but seems like we might be limited by
frTypes
performance.Note: I'm using "compiler" for AST -> Expression tranformation, and "interpreter" for Expression -> Value transformation below.
Good things about this PR besides performance:
FrameStack
andStackTrace
, which allowed me to get rid of that shift-by-one issue that I had to deal with in https://github.com/quantified-uncertainty/squiggle/pull/1172#issuecomment-1264115038Somewhat worrisome things about this PR:
Expression
type) is now more condensed, and could be harder to debug; stringified IRs only contain stack references, I don't store names there anymore. We still carry AST values in the IR, but my guess is that we should stop doing that over time, and move to separately stored source maps.Things to do before merge: