-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Direct-style (DS) JS Backend #316
Merged
Merged
Changes from 1 commit
Commits
Show all changes
49 commits
Select commit
Hold shift + click to select a range
59496d2
First draft of direct-style (DS) version of the JS backend
b-studios 6fe7bf4
Support run
b-studios 99e0009
Use bind monad to work around JS limitations
b-studios 6eef4de
Add try-catch around entrypoints
b-studios 9a6f349
Implement free variables, once more...
b-studios c6923f7
debug free variables
b-studios 8c16835
Refactor rename
b-studios 92e52ea
Track locals explicitly
b-studios 7dcd981
Emit continuations
b-studios 73d390f
Start translating handler
b-studios 1ea3705
Support discarding the continuation
b-studios 9e10001
First support of resuming continuation
b-studios 4871641
Minor improvements
b-studios 8389346
Start working on lambda lifting (closures still need to be eta-expanded)
b-studios 6e2d08d
Implement lambda lifting
b-studios c803500
Start to support pattern matching
b-studios 8da634b
Add some tests
b-studios 22b1715
Mark tests that rely on local mutable state, regions, or bidirectiona…
b-studios cd357da
Implement local backtrackable mutable state
b-studios 9d4c748
Support regions
b-studios dbff4c6
Support bidirectional effects
b-studios 86a448e
Also rename types when testing for alpha equivalence
b-studios bdb5c91
Move LambdaLifting to separate file
b-studios 1d113ea
Adapt Renamer to new structure of BlockParam
b-studios ee17b9a
Stub compileSeparate and implement it later
b-studios eaf9165
Make DS backend work with the website (note that these changes need t…
b-studios 5dbcab6
Add two simple lambda lifting tests
b-studios 2af69d7
Fix some bugs in Renamer and simplify Optimizer
b-studios 42124ac
fix local non-recursive definitions in renamer
b-studios 1117134
Transform binder in its scope, even though this is wrong
b-studios 99440a7
Add some optimizer tests
b-studios 0e5745b
Fix one bug where inferred capture was not propagated
b-studios 675ae60
Also fix same bug for regions
b-studios dcfa4ba
Perform inlining only once and then iterate
b-studios 0ffeea3
Add macro based tracing tool
b-studios ce93739
Forgot file
b-studios 5eff913
Slightly refactor optimizer
b-studios beb1124
Fix inline full to not drop count
b-studios cf05dbd
Fix annotated free variables and avoid passing result twice
b-studios f86c82b
Share common code between JS backends
b-studios cf73a03
Prepare runtime to deal with tailcall trampolining
b-studios cb22749
Reify continuation
b-studios ac865aa
Use effects to express tail calls (UNSOUND)
b-studios 86b295a
Deprecate tail calls for now
b-studios a584793
Add while and continue
b-studios c58a5da
Support obvious tail calls manually in JS
b-studios eea5266
Fix Renamer to conform to contract given in docs
marzipankaiser e9d56de
Drop unbind
b-studios 95d8d32
Reactive last failing test
b-studios File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@marzipankaiser this test shows that
Renamer
right now is not correct.