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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skime-0.3.0.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skime-0.3.0-py3-none-any.whl (41.2 kB view details)

Uploaded Python 3

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

Hashes for skime-0.3.0.tar.gz
Algorithm Hash digest
SHA256 fd9e0108ba7c7375a3e313d974a480ae70e89129ebccca2682b703589390c463
MD5 b5d0863571b474836939b66ea7cddddd
BLAKE2b-256 916e1196dd30623c1c18c7b17d9050093ef08b67e9f404fa70b51ccffa528c48

See more details on using hashes here.

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

Hashes for skime-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ada6d9ab0438fb20b6466ede31b3044df98917ab70282170d7e72997c91ba133
MD5 68bab69c0cf11231ed4745aed7f3026f
BLAKE2b-256 27db04a71246265f3f0c08c2b6a44c9c184958acd3c28be895efb4b4d71d4f76

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.1

2 files

This release

0.3.0 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page