{"id":13610545,"url":"https://github.com/Jackojc/klaxon","last_synced_at":"2025-04-12T22:34:11.210Z","repository":{"id":45025163,"uuid":"419083439","full_name":"Jackojc/klaxon","owner":"Jackojc","description":"Minimalist RPN language that compiles to x86-64 assembly (with more backends to come).","archived":false,"fork":false,"pushed_at":"2022-10-10T16:17:01.000Z","size":195,"stargazers_count":20,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-07T16:44:02.481Z","etag":null,"topics":["based-stack-based-language","compiler","concatenative","cpp","forth","klaxon","language","minimal","minimalist","native","proglangs-discord","programming-language","reverse-polish-notation","rpn","stack-based-language","stack-language","static-typing"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jackojc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"Jackojc","patreon":"jackojc","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":"Jackojc","issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-10-19T20:37:33.000Z","updated_at":"2024-03-10T21:14:52.000Z","dependencies_parsed_at":"2023-01-19T19:46:24.623Z","dependency_job_id":null,"html_url":"https://github.com/Jackojc/klaxon","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/Jackojc%2Fklaxon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jackojc%2Fklaxon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jackojc%2Fklaxon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jackojc%2Fklaxon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jackojc","download_url":"https://codeload.github.com/Jackojc/klaxon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248642256,"owners_count":21138350,"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":["based-stack-based-language","compiler","concatenative","cpp","forth","klaxon","language","minimal","minimalist","native","proglangs-discord","programming-language","reverse-polish-notation","rpn","stack-based-language","stack-language","static-typing"],"created_at":"2024-08-01T19:01:45.765Z","updated_at":"2025-04-12T22:34:10.934Z","avatar_url":"https://github.com/Jackojc.png","language":"C++","funding_links":["https://github.com/sponsors/Jackojc","https://patreon.com/jackojc","https://liberapay.com/Jackojc"],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Klaxon\n\nKlaxon is a minimalist language designed to be minimal, modular and simple to implement.\n\n![c++](https://img.shields.io/badge/c%2B%2B-%3E%3D17-blue.svg?style=flat)\n[![license](https://img.shields.io/github/license/Jackojc/klaxon.svg?style=flat)](./LICENSE)\n![code size](https://img.shields.io/github/languages/code-size/Jackojc/klaxon?style=flat-square)\n[![issues](https://img.shields.io/github/issues/Jackojc/klaxon.svg?style=flat)](https://github.com/Jackojc/klaxon/issues)\n[![discord](https://img.shields.io/discord/537732103765229590.svg?label=discord\u0026style=flat)](https://discord.gg/H2qKkSd9gC)\n\n### Philosophy \u0026 Goals\n- Bare minimum of features needed to perform useful computation\n- Features that compose [^1]\n- Do not appeal to niche use cases [^2]\n- Minimise configurability [^3]\n- Modular pipeline built on top of Unix pipes with a standard IR format\n\n[^1]: Features should not be very specific, they should compose well with other\nfeatures and give rise to emergent features.\n[^2]: Klaxon is not designed to appeal to everyone's own particular needs, it is\ndesigned to do as much as possible with the smallest surface area. This means your\nfeature request will most likely not be considered.\n[^3]: Every flag that you introduce into a compiler in order to influence its\nbehaviour results in a combinatorial explosion that makes it virtually impossible\nto properly bug test all possible paths of execution. Having one right way to\ndo something means that the compiler should (in theory) have less broken edge cases.\n\n### Features:\n- Register Allocation\n- Procedures\n- Macros\n- Compiles to x86-64 assembly\n\n### Semantics:\n- Word Size Values\n- UTF-8 Source Encoding\n- Two's Complement Signed Arithmetic\n\n### License\nThis project uses the MPL-2.0 license. (check [LICENSE](LICENSE))\n\n### Progress \u0026 Discussion\nYou can join the discord server in order to follow progress and/or contribute to discussion of the project. (https://discord.gg/H2qKkSd9gC)\n\n### Resources:\n- https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/\n- https://www.nasm.us/xdoc/2.13.03/html/nasmdoc0.html\n- https://filippo.io/linux-syscall-table/\n- https://www.felixcloutier.com/x86/\n- https://www.youtube.com/watch?v=-ti07Z0xKKg\n- https://flint.cs.yale.edu/cs421/papers/x86-asm/asm.html\n- https://www3.nd.edu/~dthain/compilerbook/compilerbook.pdf\n- https://min-lang.org/\n- http://sovietov.com/app/forthwiz.html\n- https://mcyoung.xyz/2021/06/01/linker-script/\n- https://leahneukirchen.org/blog/archive/2020/04/brute-forthing-minimal-programs-for-stack-arrangements.html\n- https://users.ece.cmu.edu/~koopman/stack_computers/appb.html\n- https://courses.cs.washington.edu/courses/cse501/15sp/papers/massalin.pdf\n- https://www.complang.tuwien.ac.at/forth/gforth/Docs-html/\n- https://uica.uops.info/\n- https://users.ece.cmu.edu/~koopman/stack_compiler/stack_co.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJackojc%2Fklaxon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJackojc%2Fklaxon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJackojc%2Fklaxon/lists"}