Skip to content
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

Cleanup #12

Merged
merged 10 commits into from
Oct 7, 2023
Merged

Cleanup #12

merged 10 commits into from
Oct 7, 2023

Conversation

Bike
Copy link
Member

@Bike Bike commented Oct 7, 2023

Various miscellaneous little changes in anticipation of doing some kinda release.

Bike added 10 commits October 6, 2023 14:58
This is how the compiler already works, and has essentially since
the beginning.
We can't actually avoid a listify-rest-args. Even if there's an
ignore declaration, the code might refer to the variable anyway,
and then by CLHS IGNORE the most we can do is style warn.
Having it push to the stack was silly when we immediately put it
into a local every time. Plus the local index is always the same
as the number of fixed parameters.
Longstanding bug.

I'm not super happy with the LET code, but it's kind of inherently
messy and this is the best I could come up with.
karlosz suggested this months ago (in a very early CVM) and it's a
good idea. I am hopeful that this will make analysis easier.

I called it "encell" instead of "encage" to keep the use of "cell"
consistent, even though "encage" is a word and "encell" isn't.
This makes things a little more complex to describe and adds a
little more code. On the other hand, it saves a stack push and pop,
and makes analysis simpler: it's impossible for PROTECT to refer
to some random alien thunk. Also, hypothetically a VM impl could
DX allocate the thunk even before analysis.
@Bike Bike merged commit cce358a into main Oct 7, 2023
2 checks passed
@Bike Bike deleted the cleanup branch October 7, 2023 02:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant