{"id":24926202,"url":"https://github.com/jakobknauer/l0","last_synced_at":"2026-04-28T11:34:03.468Z","repository":{"id":275415484,"uuid":"819986119","full_name":"jakobknauer/L0","owner":"jakobknauer","description":"Statically typed, compiled programming language based on LLVM","archived":false,"fork":false,"pushed_at":"2025-02-23T18:22:08.000Z","size":366,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T19:26:36.180Z","etag":null,"topics":["compiler","cpp","cpp23","llvm"],"latest_commit_sha":null,"homepage":"","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/jakobknauer.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":"2024-06-25T15:12:10.000Z","updated_at":"2025-02-23T18:22:12.000Z","dependencies_parsed_at":"2025-02-23T19:35:49.161Z","dependency_job_id":null,"html_url":"https://github.com/jakobknauer/L0","commit_stats":null,"previous_names":["jakobknauer/l0"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobknauer%2FL0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobknauer%2FL0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobknauer%2FL0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobknauer%2FL0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakobknauer","download_url":"https://codeload.github.com/jakobknauer/L0/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246025939,"owners_count":20711575,"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":["compiler","cpp","cpp23","llvm"],"created_at":"2025-02-02T12:26:29.715Z","updated_at":"2026-04-28T11:34:03.433Z","avatar_url":"https://github.com/jakobknauer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\nL0 is statically typed, compiled programming language that I started as a hobby project to get into compilers and the LLVM toolchain.\n\nL0 features and characteristics:\n- Strong and static typing\n- Structures and enums\n- Namespaces\n- Type inference for local variables\n- Immutability by default\n- Functions as first-class citizens, higher-order functions, anonymous functions, closures\n- Pointer semantics and arithmetic\n- Manual memory management\n\n## Examples\n\nThis is a Hello World program in L0:\n\n```\nfn main () -\u003e ()\n{\n    printf(\"Hello, World!\\n\");\n};\n```\n\nYou can find more examples in [the examples directory](examples):\n- [Variables](examples/variables/variables.l0)\n- [Control Flow and Booleans](examples/control-flow/control-flow.l0)\n- [References and Dynamic Allocations](examples/references/references.l0)\n- [Functions](examples/functions/functions.l0)\n- [Namespaces](examples/namespaces/namespaces.l0)\n- [Structs](examples/structs/structs.l0)\n- [Enums](examples/enums/enums.l0)\n- [Closures](examples/closures/closures.l0)\n- [An interactive program for computing faculties](examples/faculty). This includes a String struct representing strings of dynamic size, conversion from and to integers, etc.\n\n## Build\n\nTo build the project itself, run\n\n```shell\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake\n```\n\n## Run\n \n```shell\n# Generate textual IR representation from L0 files\nbuild/src/l0/main/l0c \u003cfile1.l0 file2.l0 ...\u003e\n\n# Compile and link to executable\nclang \u003cfile1.ll file2.ll ...\u003e -o \u003coutput_file\u003e\n\n# E.g. to build and run the faculty example:\ncd examples/faculty\n../build/src/l0/main/l0c \"faculty.l0\" \"math.l0\" \"print.l0\" \"read.l0\" \"string.l0\"\nclang *.ll -o faculty\n./faculty\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakobknauer%2Fl0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakobknauer%2Fl0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakobknauer%2Fl0/lists"}