-
Notifications
You must be signed in to change notification settings - Fork 6
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
metacircular evaluator? #11
Comments
I think it's definitely a good thing to do — both to flush out bugs and to help uncover the minimal must-haves. Unless the changes are very minor, I'd rather wait to try to propagate them — since it will only make getting In any case, I don't think it's really necessary to do so yet. You could work on it in a lightweight feature branch (for which a draft PR works fine, I think). If the work completes and it seems easy to propagate the changes, we can. But by default let's assume we will wait to merge until the other work lands. |
I was thinking of just testing in api.lisp and eval.rs for now. |
Api.lisp is fine. But I'm suggesting that we only implement there initially and not actually merge the work until we are ready to move it everywhere. I think that's a good development path anyway, which mirrors how we are likely to want to do things moving forward. And it lets us do that without entanglement with the other things that need doing before we add features. |
OK, makes sense. |
I played with some basic evaluators that can evaluate factorial: https://github.com/lurk-lang/lurk/compare/meta I ran into a small issue with Otherwise, it works in both |
Cool! Maybe we should eventually define |
I might also not yet fully understand the issue you encountered. If you have a suggestion for the right way to resolve it (if necessary), let me know. |
In Scheme, it's possible to use
where the right-hand side of a definition is not a lambda but a complex expression that contains
I am not sure it's necessary to resolve. |
Right. Given that our |
If it also works in lang.lisp without needing changes, then I guess we can merge now. In that case, feel free to PR (but also please rebase if needed). |
Do we want to be able to write a little metacircular evaluator for Lurk? I think it would be a nice stress test, but it might require adding a few more primitives (perhaps number?, symbol? and others). Is this a good time to do this, or should we first consolidate lang.lisp and eval.rs? I think it might be good to do it now, because it's easy and might help us find more bugs.
The text was updated successfully, but these errors were encountered: