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

avoid infinite loop causing crash on CCL #243

Merged
merged 1 commit into from
Dec 31, 2020

Conversation

metayan
Copy link

@metayan metayan commented Dec 21, 2020

#239
infinite loop stack overflow crash

This fix from Devon7
cbaggers/cepl#350 (comment)

Issue explained in
Clozure/ccl#270 (comment)

CLHS NOTINLINE says,

In the presence of a compiler macro definition for function-name,
a notinline declaration prevents that compiler macro from being used.

The macroexpansion machinery contained in the fn library ignores this fact
and recursively compiler-macroexpands the INTERN form which was explicitly
declared NOTINLINE, which leads into infinite loops as demonstrated here.

cbaggers#239
infinite loop stack overflow crash

This fix from Devon7
cbaggers/cepl#350 (comment)

Issue explained in
Clozure/ccl#270 (comment)

CLHS NOTINLINE says,

In the presence of a compiler macro definition for function-name,
a notinline declaration prevents that compiler macro from being used.

The macroexpansion machinery contained in the fn library ignores this fact
and recursively compiler-macroexpands the INTERN form which was explicitly
declared NOTINLINE, which leads into infinite loops as demonstrated here.
@cbaggers cbaggers merged commit 9e77f30 into cbaggers:master Dec 31, 2020
@cbaggers
Copy link
Owner

Thank you @Devon7 for the fix, and @metayan for making the PR

Great stuff. Wont be in the december release but we'll get it in the one after

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.

2 participants