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

Bug: unhandled nested death infinite loop #68

Open
homonoidian opened this issue Dec 18, 2022 · 1 comment
Open

Bug: unhandled nested death infinite loop #68

homonoidian opened this issue Dec 18, 2022 · 1 comment
Assignees
Labels
bug Something isn't working

Comments

@homonoidian
Copy link
Collaborator

[ [ die ] open ] @: *died foo to repro

Sometimes can crash the interpreter.

Doesn't skip dh unless in it!

@homonoidian homonoidian added this to the 0.0.6 milestone Dec 18, 2022
@homonoidian homonoidian self-assigned this Dec 18, 2022
@homonoidian
Copy link
Collaborator Author

Too hard for 0.0.6, been stuck trying to solve this for a few days and stuck still.

I'm starting to think that the existence of *died is wrong rather than the fact it doesn't work in certain cases. But it's pretty hard to come up with an alternative: *died is not about returning ok, result or crap like that, it's about catching errors coming mainly from "the deep below", namely the native code part of the language.

I see how the use of Crystal exceptions & begin..rescue can be eliminated, sure (and that's what should be done when I feel like it). But this particular problem...

Death handler lookup is extremely hard in Novika. It'd be easier to have a neural network guess the right block to use rather than to devise an algo by hand... That's what I'm talking about: perhaps it is the very existence of *died that is wrong rather than the peculiarities of its shitty implementation? If it requires a shitty implementation, perhaps it's not what the language needs?

The amount of code to rewrite if I do come up with an alternative tho... Better I don't, damn!

@homonoidian homonoidian modified the milestones: 0.0.6, 0.0.7 Dec 24, 2022
@homonoidian homonoidian added the bug Something isn't working label Dec 28, 2022
@homonoidian homonoidian removed this from the 0.0.7 milestone Jan 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant