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.1.tar.gz (33.0 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.1-py3-none-any.whl (41.4 kB view details)

Uploaded Python 3

File details

Details for the file skime-0.3.1.tar.gz.

File metadata

  • Download URL: skime-0.3.1.tar.gz
  • Upload date:
  • Size: 33.0 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.1.tar.gz
Algorithm Hash digest
SHA256 d25111266f448caaedbd438147208b8a58e00bf61feec11749bf15ae9b56e2ee
MD5 0ab188d52fd71e8988617bd9e9f02dba
BLAKE2b-256 1272157308c5e495a91d8fc45d0a74703b2497448d2b3928bfbe8873db34b198

See more details on using hashes here.

File details

Details for the file skime-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: skime-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 41.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f96aa5245f0808864c58f3556a0faaeac155f93d16b3416d89be6e843fc06c90
MD5 7fe8805c223317b28133c73b2835855c
BLAKE2b-256 0c1807f7f832f804088c5a4b02390af98723859e72005de4ebb840080939607b

See more details on using hashes here.

Supported by

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