-
Notifications
You must be signed in to change notification settings - Fork 97
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
feat: parenthetical syntax for cycles
etc.
#4608
Draft
ggreif
wants to merge
93
commits into
master
Choose a base branch
from
gabor/parentheticals
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 89 commits
Commits
Show all changes
93 commits
Select commit
Hold shift + click to select a range
d4811e2
WIP: surface syntax for parentheticals
ggreif b6d32ec
WIP: first AST modifications
ggreif d3b9415
WIP: augment IR too
ggreif 3f57777
Update src/mo_frontend/definedness.ml
ggreif 7e23ac8
WIP: fill the parenthetical
ggreif b0516b0
tweaks
ggreif dc5a72f
define and use `tupVarsP` helper
ggreif 8f7df27
teach about `SystemCyclesAddPrim`
ggreif e5f3ca9
examine all exprs
ggreif 5eb79a3
WIP: doing naughty stuff
ggreif 9672a96
WIP: this starts working
ggreif 00b2507
accept
ggreif 3d4bb5a
cleanup
ggreif d989397
compress
ggreif 892ea54
WIP: prepare `ICCallPrim` to carry setup code
ggreif 42a0471
WIP: compile the setup code
ggreif e43b1cc
elim a FIXME
ggreif 43e816c
minor refactor
ggreif 272870b
Merge branch 'master' into gabor/parentheticals
ggreif 2f22db2
explain more cycles
ggreif b6ee8dd
remove because redundant
ggreif 812d78d
fix IR renaming
ggreif e7f13f6
cleanup
ggreif ccd03db
tweaks
ggreif dbe054d
tweak
ggreif 835502c
generate less lambdas on the fly
ggreif b104f85
integrate also the invocation of the `unary_async`
ggreif 0542367
Merge branch 'master' into gabor/parentheticals
ggreif eaa577d
merge corrections
ggreif 4f77084
WIP: start defining prims
ggreif 38dfd70
WIP: `CPSAsync`
ggreif 1f61bb5
WIP: begin fleshing out receiving
ggreif 4d0d263
WIP: draft codegen for `ICCyclesPrim`
ggreif d472f53
WIP: yes, it expodes!
ggreif 48096cb
actually send the parenthetical
ggreif ff217f3
tweak
ggreif 29110d3
interpret `ICCallerPrim` as non-informative
ggreif 463f12a
Merge branch 'master' into gabor/parentheticals
ggreif 4abc9e8
WIP: pass a pair
ggreif 261ae02
simplify
ggreif 2e5b787
restrict pair creation
ggreif 8c05650
futures only
ggreif f9abea4
simplifying folds
ggreif 998f689
WIP: prepare `ICCyclesPrim` for all possibilities
ggreif 6873747
tweak
ggreif 3f4c1de
tweak
ggreif 009f05d
tweak
ggreif 2bbe8d5
WIP: this ccompiles
ggreif 391fedd
fix
ggreif 275e952
wip
ggreif 56d79fe
impl. type-checking
ggreif 4009982
WIP: pass cycles
ggreif 8628695
WIP: crash is fixed
ggreif 016ac58
fix up `ICCyclesPrim`'s type
ggreif 9c611a9
remove legacy `Cycles.add`
ggreif ee4e2c9
WIP: allow decorations on `AsyncE`
ggreif 4279b96
arrange parenthetical
ggreif 0f35682
WIP: compiles
ggreif 5a9e300
Merge branch 'master' into gabor/parentheticals
ggreif 3d5cdc7
Merge branch 'master' into gabor/parentheticals
ggreif e080bcb
wip
ggreif 3120931
merge fix
ggreif cf7cfa4
fix up test, but legacy should still work
ggreif 84e42e1
infer parenthetical
ggreif b3ea1c2
WIP: test
ggreif 6b0d54a
handle stacked parenthetials
ggreif ebc89b4
WIP: make it an option
ggreif 82f2049
WIP: thread parentheticals through for `async`
ggreif a7d2874
make sure that the record has a `cycles` field
ggreif b482532
maybe we should rule this out
ggreif 13b46f6
remove FIXMEs
ggreif b5f98a9
elim FIXMEs
ggreif 19e8058
elim FIXMEs
ggreif a0e321d
elim FIXMEs
ggreif d147896
elim FIXMEs
ggreif a23f97a
elim FIXMEs
ggreif c475dc7
tweak
ggreif 58c81b9
elim FIXMEs
ggreif 498dd9b
elim FIXMEs
ggreif 41186f3
merge `master`
ggreif 65013fa
add `M0200`
ggreif 2f179ec
start with a coarse warning
ggreif 2f938cb
say what attribute is it
ggreif 38fb28c
check `cycles` attribute type
ggreif 031c375
cleanup
ggreif ac6928c
validate `async` exprs too
ggreif b9b3c17
accept
ggreif fbaf8b4
exercise `M0200` too
ggreif 599fe2d
WIP: fire&forget doesn't work yet
ggreif 30dbe01
apply parenthetical to one-shot sends
ggreif 5be4240
start with tests for `call_raw`
ggreif a5b0984
tweaks
ggreif 137ab9a
WIP: fix problem with `Cycles.add` not sticking
ggreif 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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Thoughts on using
,
here in place of;
for consistency with other parenthesized expressions? The formatter uses this invariant (commas in parentheses, semicolons in square brackets and curly braces) to automatically replace commas with semicolons and vice versa whenever there is otherwise a syntax error that makes the AST unparseable. I can add an exception, but it seems nice to keep this pattern so that it's easier for people to remember which delimiter to use.