{"id":31737244,"url":"https://github.com/sundown/rib","last_synced_at":"2025-10-09T09:11:33.845Z","repository":{"id":194733445,"uuid":"351132775","full_name":"Sundown/rib","owner":"Sundown","description":":leaves: A compiler backend","archived":false,"fork":false,"pushed_at":"2021-07-04T20:46:40.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-09-14T23:07:47.608Z","etag":null,"topics":["backend","compiler","lisp","llvm","rib"],"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/Sundown.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}},"created_at":"2021-03-24T15:34:48.000Z","updated_at":"2023-09-14T23:08:18.924Z","dependencies_parsed_at":"2023-09-14T23:22:21.244Z","dependency_job_id":null,"html_url":"https://github.com/Sundown/rib","commit_stats":null,"previous_names":["sundown/rib"],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/Sundown/rib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sundown%2Frib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sundown%2Frib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sundown%2Frib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sundown%2Frib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sundown","download_url":"https://codeload.github.com/Sundown/rib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sundown%2Frib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001144,"owners_count":26083021,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["backend","compiler","lisp","llvm","rib"],"created_at":"2025-10-09T09:08:32.700Z","updated_at":"2025-10-09T09:11:33.836Z","avatar_url":"https://github.com/Sundown.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"### rib\n\nA LISP syntax compiler backend emitting LLVM.\n\n:construction: Not currently usable for anything meaningful.\n\n\n```clj\n(define square real real {\n\t(ret  (* % %))\n})\n\n(define main void int {\n\t(global arr [2 3 5 7 11])\n\t(global b (square (cast (index arr 3) real))) ; and we epically do nothing with this\n\n\t(print \"stdout moment\")\n\n\t(global strucha \u003c1 \"string\"\u003e) ; structs too (no they're tuples)\n\n\t(ret 0)\n})\n```\n\ncompiles to\n\n```llvm\n; ModuleID = 'rib'\nsource_filename = \"rib\"\n\n@arr = global \u003c5 x i64\u003e \u003ci64 2, i64 3, i64 5, i64 7, i64 11\u003e\n@b = global double 0.000000e+00\n@0 = private unnamed_addr constant [14 x i8] c\"stdout moment\\00\", align 1\n@1 = private unnamed_addr constant [7 x i8] c\"string\\00\", align 1\n@strucha = global { i64, i8* } { i64 1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @1, i32 0, i32 0) }\n\ndefine double @square(double %0) {\nentry:\n  %1 = fmul double %0, %0\n  ret double %1\n}\n\ndefine i64 @main() {\nentry:\n  %0 = load \u003c5 x i64\u003e, \u003c5 x i64\u003e* @arr, align 64\n  %1 = extractelement \u003c5 x i64\u003e %0, i64 3\n  %2 = sitofp i64 %1 to double\n  %3 = call double @square(double %2)\n  store double %3, double* @b, align 8\n  %4 = call i32 @puts(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @0, i32 0, i32 0))\n  ret i64 0\n}\n\ndeclare i32 @puts(i8*)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsundown%2Frib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsundown%2Frib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsundown%2Frib/lists"}