Skime
Skime is a small Scheme implementation written in Python. It provides a bytecode compiler, a virtual machine, a REPL, hygienic syntax-rules macros, continuations, and a growing subset of R5RS syntax and procedures.
Installation
Skime is published on PyPI:
pip install skime
Start the REPL with:
skime
It can also be embedded in Python:
from skime.vm import VM
vm = VM()
assert vm.eval_string("(+ 1 2 3)") == 6
Project history
This repository is derived from pluskid/skime, the original Skime project. The codebase was migrated to Python 3, existing bugs were fixed, and previously unsupported features were added, including more R5RS syntax, list procedures, characters, strings, vectors, numeric procedures, and output procedures.
Skime remains a compact educational implementation rather than a complete R5RS implementation.
License and original public-domain dedication
The original author released the original project into the public domain with the following statement:
I put this project into public domain. Anyone is free to make whatever use of the code in this repo.
That public-domain dedication continues to apply to the original work. This maintained version, including the Python 3 migration and subsequent changes, is redistributed under the MIT License.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skime-0.3.0.tar.gz.
File metadata
- Download URL: skime-0.3.0.tar.gz
- Upload date:
- Size: 32.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":null,"id":"forky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd9e0108ba7c7375a3e313d974a480ae70e89129ebccca2682b703589390c463
|
|
| MD5 |
b5d0863571b474836939b66ea7cddddd
|
|
| BLAKE2b-256 |
916e1196dd30623c1c18c7b17d9050093ef08b67e9f404fa70b51ccffa528c48
|
File details
Details for the file skime-0.3.0-py3-none-any.whl.
File metadata
- Download URL: skime-0.3.0-py3-none-any.whl
- Upload date:
- Size: 41.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":null,"id":"forky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ada6d9ab0438fb20b6466ede31b3044df98917ab70282170d7e72997c91ba133
|
|
| MD5 |
68bab69c0cf11231ed4745aed7f3026f
|
|
| BLAKE2b-256 |
27db04a71246265f3f0c08c2b6a44c9c184958acd3c28be895efb4b4d71d4f76
|