{"id":13782627,"url":"https://github.com/jiribenes/scheme","last_synced_at":"2026-01-12T02:39:08.313Z","repository":{"id":72741558,"uuid":"75124239","full_name":"jiribenes/scheme","owner":"jiribenes","description":"Tiny, readable Scheme interpreter","archived":false,"fork":false,"pushed_at":"2021-09-16T18:11:48.000Z","size":338,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-03T18:16:42.632Z","etag":null,"topics":["interpreter","lisp","repl","scheme","scheme-interpreter","tiny"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jiribenes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-11-29T21:35:05.000Z","updated_at":"2024-07-19T01:57:39.000Z","dependencies_parsed_at":"2023-06-27T00:18:44.635Z","dependency_job_id":null,"html_url":"https://github.com/jiribenes/scheme","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiribenes%2Fscheme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiribenes%2Fscheme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiribenes%2Fscheme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiribenes%2Fscheme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jiribenes","download_url":"https://codeload.github.com/jiribenes/scheme/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225068715,"owners_count":17416119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["interpreter","lisp","repl","scheme","scheme-interpreter","tiny"],"created_at":"2024-08-03T18:01:40.301Z","updated_at":"2026-01-12T02:39:08.306Z","avatar_url":"https://github.com/jiribenes.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"\u003e [!WARNING]\n\u003e The project is unmaintained, and although a nice exercise in minimalism,\n\u003e its author would likely do most things completely differently.\n\u003e _hic sunt leones_\n\n# Scheme\n\nThis Scheme interpreter _(proper name pending)_ is a tiny, readable implementation in ~2k LoC of pedantic C99.\n\n*Features:*\n\n* Hopefully readable C99 code\n* Single-pass tree-walk interpreter\n* Easy embedding\n* Mostly R7RS compatible\n* Optional NaN tagging\n* Garbage collector (simple mark and sweep)\n* CL-like macro system (define-macro)\n* Vector type\n* Basic library\n* Hash-tables made directly in Scheme\n* Extensive tests\n\n*Planned features:*\n\n* Compiling to bytecode and running a VM\n* Tail call optimization\n* Character type\n* UTF8 strings\n* Module system\n\n## Building\n\nYou can build the project by running `make` in the root directory.\n\nThere is a `Makefile` you can customize and `src/config.h` for \ndisabling NaN tagging and/or garbage collection.\n\nThis project is buildable with Clang, GCC, TCC and strict C99/C++89 or newer on POSIX systems.\n\n## Running\n\n### REPL\n\nAfter building the project, start the REPL by calling the binary `./scheme.out` without any additional arguments.\n\nThere you can write simple (one-line) programs and get them evaluated immediately.\n\n### Script\n\nAfter building the project, call the binary with exactly one argument \nstating the path of a program *relatively to the binary*.\n\nA script *has to* start with a *begin* form.\n\nExample:\n```\n./scheme.out examples/factorial.scm\n```\n\n## Documentation\n\nSee `doc` folder in root.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiribenes%2Fscheme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjiribenes%2Fscheme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiribenes%2Fscheme/lists"}