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

Move non-core built-ins to optional libraries #83

jathak opened this Issue Feb 3, 2019 · 0 comments


None yet
1 participant
Copy link

jathak commented Feb 3, 2019

While it's not as bad as the old interpreter in this regard, there's a decent chunk of built-in procedures that aren't really relevant to this interpreter's core purpose: teaching 61A students Scheme.

To that end, I'd like to restrict the core library to the following:

  • Core functionality implemented in the project and described in the 61A Scheme specification
  • Core learning and teaching tools that course staff show students (or use themselves)
    • Mainly the diagramming and documentation procedures
  • Core quality-of-life utilities that are frequently used
    • clear, bindings, theme, maybe a few others

For everything else, we'll move them into a set of core libraries that can be imported when needed, similar to how the Logic library currently works (though we'll only have a single library procedure for imports, rather than a separate loading procedure for each library).

tldr: Does it spark joy teach Scheme? If not, throw it in an optional library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment