{"id":28089526,"url":"https://github.com/lambda-mountain-compiler-backend/lambda-mountain","last_synced_at":"2026-04-01T18:00:58.773Z","repository":{"id":177963045,"uuid":"661157396","full_name":"Lambda-Mountain-Compiler-Backend/lambda-mountain","owner":"Lambda-Mountain-Compiler-Backend","description":"Compiler Backend for LSTS (Typed Macro Assembler)","archived":false,"fork":false,"pushed_at":"2026-03-31T03:35:17.000Z","size":550030,"stargazers_count":35,"open_issues_count":235,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-31T05:56:17.138Z","etag":null,"topics":["assisted-reasoning","c","compiler","coq","css","functional-programming","html","macro-assembler","programming-language","self-hosting","static-site-generator","wasm","x86"],"latest_commit_sha":null,"homepage":"https://lambda-mountain-compiler-backend.github.io/lsts-language-reference/","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/Lambda-Mountain-Compiler-Backend.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"andrew-johnson-4","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-07-02T01:10:10.000Z","updated_at":"2026-03-31T03:34:56.000Z","dependencies_parsed_at":"2026-02-26T00:05:33.026Z","dependency_job_id":null,"html_url":"https://github.com/Lambda-Mountain-Compiler-Backend/lambda-mountain","commit_stats":null,"previous_names":["andrew-johnson-4/-","andrew-johnson-4/lambda-mountain","lambda-mountain-compiler-backend/lambda-mountain"],"tags_count":665,"template":false,"template_full_name":null,"purl":"pkg:github/Lambda-Mountain-Compiler-Backend/lambda-mountain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda-Mountain-Compiler-Backend%2Flambda-mountain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda-Mountain-Compiler-Backend%2Flambda-mountain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda-Mountain-Compiler-Backend%2Flambda-mountain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda-Mountain-Compiler-Backend%2Flambda-mountain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lambda-Mountain-Compiler-Backend","download_url":"https://codeload.github.com/Lambda-Mountain-Compiler-Backend/lambda-mountain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lambda-Mountain-Compiler-Backend%2Flambda-mountain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"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":["assisted-reasoning","c","compiler","coq","css","functional-programming","html","macro-assembler","programming-language","self-hosting","static-site-generator","wasm","x86"],"created_at":"2025-05-13T12:59:33.419Z","updated_at":"2026-04-01T18:00:58.620Z","avatar_url":"https://github.com/Lambda-Mountain-Compiler-Backend.png","language":"C","funding_links":["https://github.com/sponsors/andrew-johnson-4"],"categories":[],"sub_categories":[],"readme":"# [Lambda Mountain](https://github.com/andrew-johnson-4/-/wiki)\n\nλ☶ (pronounced Lambda Mountain) is a typed macro assembler that provides a relatively clean implementation of **System F\u003c: with Specialization**.\n\n* [TUTORIAL](https://github.com/andrew-johnson-4/LSTS/wiki)\n* [WIKI](https://github.com/andrew-johnson-4/-/wiki)\n* [DOCS](https://lambda-mountain-compiler-backend.github.io/lsts-language-reference/)\n* [DISCORD](https://discord.gg/sW2ksPY9jj)\n\n### Not Your Average Assembler\n\nDespite being an assembler, LM provides\n* self-hosting (LM is written in LM)\n* algebraic data types\n* parameterized code and data\n* typesafe hygienic macros\n* platform agnostic standard libraries\n* *à la carte* garbage collection\n\n### Why Such a Small Codebase?\n\nLM is currently about 4000 lines of code.\nLM solves an N by M Problem with language frontends vs language backends.\nThe LM project might interface with larger codebases that define frontends or backends, but the core LM Calculus can stay small.\n\n### What is a Fragment Assembler?\n\nAn assembler takes pieces of data and sticks them together. Assemblers don't always understand the meaning of what they do, they just do it.\n\nA fragment is a Key-Value Map of Strings to S-Expressions. This data structure permits more detailed manipulation of code than a typical assembler.\n\n### \"Build Your Own Compiler\" Development\n\nLM, being a high-level assembler, directly puts the programmer in the position of creating their own custom compiler.\nThe problem here of course is that compilers are potentially complex and subtle.\nTo make this more practical, LM leverages cutting-edge techniques to create a more foregiving and approachable experience to developing new compiler features.\nThis is a problem that is somewhat unique to LM-style development and our community is still learning how to make this more practical.\n\n### LSTS Flavor\n\nThe [LSTS](https://github.com/Lambda-Mountain-Compiler-Backend/LSTS) language that LM is developed in is a straightforward extension of C semantics.\nYou can think of LSTS as just a macro that generates C code.\n\nThe LSTS memory model is a restriction of the C memory model with several things such as always-on zero-initialization.\n\nThe LSTS expression model is a subset of the C expression model with things that don't behave like expressions altered to just return Nil.\n\n### IDE Support\n\nCurrently, there is only Vim and NeoVim syntax highlighting.\n[instructions](./vim/README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambda-mountain-compiler-backend%2Flambda-mountain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flambda-mountain-compiler-backend%2Flambda-mountain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambda-mountain-compiler-backend%2Flambda-mountain/lists"}