-
Notifications
You must be signed in to change notification settings - Fork 0
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
Fix dup/drop inference pass #104
Conversation
…n of main in the POSIX setting
…e multi-argument function. pause1 example only leaking myevent now
… many leaks and seg faults
…ntest.sh. tests/pause1.ssl
…al in function application
This PR completes work started by Yiming to fix the insertion of ref counting primitives. It turns out, several bigger changes were needed to stick strictly with caller-dup/callee-drop and get things working completely. In particular, we realized that:
In the updated compilation pass, pattern matches are the one exception to the dup-every-var rule, because we essentially elided the drop from after the match with the dup from before it. To make dups and drops easier to insert and reason with, they are now functional rather than sequential; dups now behave as identity functions that have the side effect of incrementing the reference count of its argument, while drops are now scoped, so This PR now enables reference counting by default. Note that there's still an issue with newnew1, flagged in #105 |
No description provided.