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

Comparision to the Scheme standards #277

Open
omentic opened this issue Oct 25, 2024 · 1 comment
Open

Comparision to the Scheme standards #277

omentic opened this issue Oct 25, 2024 · 1 comment

Comments

@omentic
Copy link

omentic commented Oct 25, 2024

This is a cool project! Reading through the README and documentation, this calls itself a Scheme in the vein of Racket but doesn't mention how compatible it is with R5RS/R6RS/R7RS. I would assume it's not compatible, given the Racket inspiration - but it would be nice to have a comparison! Is Steel close to a superset of any of the standards?

(feel free to close this if not desired)

@mattwparas
Copy link
Owner

Thanks for taking an interest!

I haven't taken a stance that I will be 100% compatible through and through, however the goal is to be mostly compatible with r5rs, and eventually r7rs. If not completely compatible by default, I'd like to provide libraries that enable full compatibility. Every so often I work on porting code from https://github.com/ecraven/r7rs-benchmarks and that helps figure out where steel is at.

Its a good idea to have the compliance monitored somehow - I can probably set up the test suite to report something to the readme (just provide a dump of the results, or something). As of right now you can see the status within cogs/r5rs.scm and cogs/r7rs.scm - the r7rs one is not yet complete, but the r5rs one has a test suite ported from chibi scheme.

The results for r5rs:

Passed:  245
Skipped compilation (expected failure):  43
Failed:  0

The vast majority of those are simply due to missing library functions that won't be a huge lift to implement. The only one that might require some hefty work is implementing let-syntax.

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

No branches or pull requests

2 participants