{"id":13608639,"url":"https://github.com/darius/cant","last_synced_at":"2026-01-31T05:07:28.134Z","repository":{"id":35799426,"uuid":"40081028","full_name":"darius/cant","owner":"darius","description":"A programming argot","archived":false,"fork":false,"pushed_at":"2024-04-10T20:31:26.000Z","size":3612,"stargazers_count":58,"open_issues_count":0,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-07T14:41:43.371Z","etag":null,"topics":["hack","language","scheme","silly"],"latest_commit_sha":null,"homepage":"","language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darius.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,"publiccode":null,"codemeta":null}},"created_at":"2015-08-02T14:00:14.000Z","updated_at":"2024-04-07T07:25:43.000Z","dependencies_parsed_at":"2023-12-02T03:22:02.120Z","dependency_job_id":"fcbbaad4-cbab-4e83-968e-6ae6db8e237c","html_url":"https://github.com/darius/cant","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/darius%2Fcant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fcant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fcant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darius%2Fcant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darius","download_url":"https://codeload.github.com/darius/cant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248605234,"owners_count":21132135,"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":["hack","language","scheme","silly"],"created_at":"2024-08-01T19:01:28.857Z","updated_at":"2026-01-31T05:07:28.095Z","avatar_url":"https://github.com/darius.png","language":"Scheme","readme":"# Cant, a message-oriented language\n\nThis is a hobby project: a programming language descended mainly from\n[E](http://erights.org/) and Scheme. Nowadays there are at least two\nmore-direct E descendants, in a much more useful state: [Secure\nEcmaScript](https://github.com/Agoric/SES) and\n[Monte](https://monte.readthedocs.io/en/latest/).\n\nWhy make this, then? I've long wanted a [computing\nsystem](https://github.com/darius/cant/blob/master/system-goals.md)\nthat's completely explained, simple enough to grasp in full detail\nwithout getting bored or overwhelmed, and powerful enough that I'd\nactually use it. Wirth's Oberon is one inspiring example of such a\nsystem. I'm aiming at another according to my own taste and\nidiosyncrasies. Call it a learning project, or outsider art.\n\n### So the message is \"buzz off\"?\n\nJust don't expect any stability, at least anytime soon.\n\n## How to run it?\n\nInstall [Chez Scheme](https://cisco.github.io/ChezScheme/). Then run\n`./incant` (in Unix; if don't have a Unix shell, then adapt your\ninvocation from that script).\n\nIf you use Emacs and want a language mode, then also install\n[plug-ins/cant-mode.el](https://github.com/darius/cant/blob/master/plug-ins/cant-mode.el);\nsee the comments there.\n\n## What's done so far?\n\nA new Lisp dialect with a molasses-slow interpreter and an\nalmost-useless debugger. On the bright side, it's pretty close now to\nenforcing [capability\nsecurity](http://habitatchronicles.com/2017/05/what-are-capabilities/),\nand I'm sometimes pleased with the syntax and the library. I think\nit's more concise than Scheme without becoming more cryptic, once you\nget familiar.\n\n### Example code?\n\n```\n$ ./incant\n-\u003e (out .say \"Hey, world.\\n\")\nHey, world.\n-\u003e (to (fib n) (if (\u003c n 2) 1 (+ (fib (- n 1)) (fib (- n 2)))))\n#\u003cfib\u003e\n-\u003e (fib 10)\n89\n-\u003e \n```\n\n### Any *interesting* example code?\n\nYou can try browsing\n[examples/](https://github.com/darius/cant/tree/master/examples) and\n[library/](https://github.com/darius/cant/tree/master/library). See\n[examples/games](https://github.com/darius/cant/tree/master/examples/games) and\n[examples/automata](https://github.com/darius/cant/tree/master/examples/automata)\nfor maybe-fun starting points.\n\nTo run a source file from the shell:\n\n```\n$ ./incant examples/automata/game-of-life.cant\n```\n\nOr from the listener:\n\n```\n$ ./incant\n-\u003e (load \"examples/automata/game-of-life.cant\")\n#\u003cmap {~ update #\u003cupdate\u003e} {~ show #\u003cshow\u003e} {~ grid\u003c-picture #\u003cgrid\u003c-picture\u003e} {~ r-pentomino #\u003cset((1 -2) (1 -1) (1 0) (2 0) (0 -1))\u003e}\u003e\n-\u003e (run r-pentomino 1)\n  O   \nO O   \n  O O \n#\u003cset((1 -2) (1 0) (0 -1) (0 0) (0 -2) (2 0))\u003e\n-\u003e \n```\n\n### Documentation?\n\nThere's a start at\n[guide.md](https://github.com/darius/cant/blob/master/guide.md).\n\n### Thanks\n\nOf course, this project would not exist without Scheme or E. It's\npretty likely to get more like E, because so far I've been consulting\nmy decades-old memory instead of the sources, and E probably did\nthings better.\n\nThanks to Kragen Sitaker for early discussions about the language.\n","funding_links":[],"categories":["Uncategorized","Other"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarius%2Fcant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarius%2Fcant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarius%2Fcant/lists"}