{"id":13688549,"url":"https://github.com/srid/boalisp","last_synced_at":"2026-03-18T19:03:29.227Z","repository":{"id":962018,"uuid":"750953","full_name":"srid/boalisp","owner":"srid","description":"Lisp to Python bytecode compiler (2007 hack)","archived":false,"fork":false,"pushed_at":"2010-09-07T04:20:36.000Z","size":104,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-03T14:52:00.726Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scheme","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/srid.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}},"created_at":"2010-07-01T09:12:09.000Z","updated_at":"2022-11-19T14:03:52.000Z","dependencies_parsed_at":"2022-07-20T06:32:10.691Z","dependency_job_id":null,"html_url":"https://github.com/srid/boalisp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/srid/boalisp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srid%2Fboalisp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srid%2Fboalisp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srid%2Fboalisp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srid%2Fboalisp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srid","download_url":"https://codeload.github.com/srid/boalisp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srid%2Fboalisp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28851838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-08-02T15:01:16.371Z","updated_at":"2026-01-28T21:02:35.462Z","avatar_url":"https://github.com/srid.png","language":"Scheme","funding_links":[],"categories":["Scheme"],"sub_categories":[],"readme":"Boa Lisp\n========\n\nThe Boa Lisp compiler, written in MzScheme, compiles s-exps to Python\nbyte-code, which can be executed using the Python interpreter\nitself. This would inevitably provide the developer with Macros and\nother intuitive powers of Lisp. Thanks to SYNTAX-CASE macros in\nScheme, I could implement the parser, and perhaps macros too, using\nthe READ function. The rest is trivial. FFI is used to call AST\nfunctions in `libpython` to generate the final byte-code.\n\nConsider the following script, taken from the examples in Boa Lisp:\n\n    (import web)\n\n    (set! urls (:tuple \"/(.*)\" \"hello\"))\n\n    (class hello ()\n      (def GET (self name)\n        (if (not name)\n            (set! name \"world\"))\n        (for c in (xrange (int \"10\"))\n             (print \"Hello,\" (+ name \"!\")))))\n\n    (if (= __name__ \"__main__\")\n        (web.run urls (globals))\n        (print \"eek!\"))\n\n    (set! h (hello))\n    (h.GET \"\")\n\nThis is the Hello World [web.py](http://webpy.org/) example. It can be\ncompiled and run,\n\n    $ mzscheme -r compile.ss hello.boa hello.pyc\n    $ python hello.pyc\n\nI think, this is neat so far. Imagine being able to import Boa modules\nfrom Python and vice versa, which can be performed using import\nhooks. Although I am being listless nowadays when it comes to this\nproject, I definitely want to complete the most wanted features like\nmapping AST nodes to corresponding forms in s-exp with line number\ninformation which would help in debugging the script. Furthermore,\nhaving able to write Boa apps using the popular frameworks and\nlibraries like Twisted, Django, etc.. would prove to be very useful.\n\nContents:\n\nsyntax-case.patch:  Incomplete patch to replace `match.ss` with SYNTAX-CASE\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrid%2Fboalisp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrid%2Fboalisp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrid%2Fboalisp/lists"}