Skip to main content

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)

Source distribution for skime 0.3.1
File Size Uploaded
skime-0.3.1.tar.gz 33.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skime 0.3.1
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page