{"id":18421889,"url":"https://github.com/mihaiolteanu/metacircular","last_synced_at":"2025-04-13T12:10:42.439Z","repository":{"id":83101455,"uuid":"126384540","full_name":"mihaiolteanu/metacircular","owner":"mihaiolteanu","description":"SICP's metacircular evaluator in C","archived":false,"fork":false,"pushed_at":"2019-12-08T19:03:54.000Z","size":95,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T12:47:33.514Z","etag":null,"topics":["evaluator","intepreter","lisp","metacircular","scheme","sicp"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mihaiolteanu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2018-03-22T19:20:21.000Z","updated_at":"2023-04-21T17:28:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"5da64e29-7660-48f9-8b61-c49922bd4acf","html_url":"https://github.com/mihaiolteanu/metacircular","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihaiolteanu%2Fmetacircular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihaiolteanu%2Fmetacircular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihaiolteanu%2Fmetacircular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihaiolteanu%2Fmetacircular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mihaiolteanu","download_url":"https://codeload.github.com/mihaiolteanu/metacircular/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710445,"owners_count":21149190,"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":["evaluator","intepreter","lisp","metacircular","scheme","sicp"],"created_at":"2024-11-06T04:27:12.104Z","updated_at":"2025-04-13T12:10:42.413Z","avatar_url":"https://github.com/mihaiolteanu.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a Scheme interpreter written in C. The name of the project comes from\nSICP's [metacircular evaluator](https://mitpress.mit.edu/sites/default/files/sicp/full-text/sicp/book/node76.html). Of course, being written in C means it is no\nlonger metacircular, but the approach in developing the interpreter is taken\nfrom SICP's eval/apply loop. The main motivation for writing and studying this\nproject is in better understanding SICP, Scheme and interpreters/compilers in\ngeneral. Regarded as such, this project is/was a success.\n\nAnother additional motivation for starting this project was that of using and\nplaying with [modern CMake](https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/). And if you're starting a new C project that will\nsuffer a lot of bug-fixing and redesigning, as writing a compiler or interpreter\nwill surely entail, why not use a mocking library ([cmock](http://www.throwtheswitch.org/cmock)) to generate test\nmocks and a testing library ([unity](http://www.throwtheswitch.org/unity)) to run all the tests in one go? So this\nproject is also an example on how to set these up and used them so that you can\ncode with more confidence.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmihaiolteanu%2Fmetacircular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmihaiolteanu%2Fmetacircular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmihaiolteanu%2Fmetacircular/lists"}