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.
Metadata
Release files for skime 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| skime-0.3.1.tar.gz | 33.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| skime-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 74.4 kB
Release files / skime-0.3.1.tar.gz
| Download URL | skime-0.3.1.tar.gz |
|---|---|
| Size | 33.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d25111266f448caaedbd438147208b8a58e00bf61feec11749bf15ae9b56e2ee
|
|
BLAKE2b-256 checksum How to use checksums |
1272157308c5e495a91d8fc45d0a74703b2497448d2b3928bfbe8873db34b198
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / skime-0.3.1-py3-none-any.whl
| Download URL | skime-0.3.1-py3-none-any.whl |
|---|---|
| Size | 41.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f96aa5245f0808864c58f3556a0faaeac155f93d16b3416d89be6e843fc06c90
|
|
BLAKE2b-256 checksum How to use checksums |
0c1807f7f832f804088c5a4b02390af98723859e72005de4ebb840080939607b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|