{"id":16604194,"url":"https://github.com/mkeeter/ssra","last_synced_at":"2025-03-16T21:30:51.501Z","repository":{"id":60858292,"uuid":"543110952","full_name":"mkeeter/ssra","owner":"mkeeter","description":"The Solid-State Register Allocator","archived":false,"fork":false,"pushed_at":"2022-10-05T12:29:51.000Z","size":61,"stargazers_count":84,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-27T14:31:10.906Z","etag":null,"topics":["compiler","jit","register-allocation"],"latest_commit_sha":null,"homepage":"https://mattkeeter.com/blog/2022-10-04-ssra","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkeeter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-29T12:29:12.000Z","updated_at":"2025-02-07T10:28:06.000Z","dependencies_parsed_at":"2022-10-05T23:30:27.360Z","dependency_job_id":null,"html_url":"https://github.com/mkeeter/ssra","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/mkeeter%2Fssra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkeeter%2Fssra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkeeter%2Fssra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkeeter%2Fssra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkeeter","download_url":"https://codeload.github.com/mkeeter/ssra/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830939,"owners_count":20354853,"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","jit","register-allocation"],"created_at":"2024-10-12T00:56:10.741Z","updated_at":"2025-03-16T21:30:51.168Z","avatar_url":"https://github.com/mkeeter.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Solid-State Register Allocator\nA simple, extremely fast, reverse linear scan register allocator.\n\nSee the [detailed write-up](https://mattkeeter.com/blog/2022-10-04-ssra) for an in-depth explanation.\n\n# Building\n```\nwasm-pack build --target no-modules; and cp pkg/{ssra.js,ssra_bg.wasm} ~/Web/blog/2022-10-04-ssra/\n```\n\n# Author's note\nThrough [parallel evolution](https://en.wikipedia.org/wiki/Parallel_evolution),\nit [turns out](https://news.ycombinator.com/item?id=33093358)\nthat this code has the same design as the LuaJIT register allocator;\nif you'd like to learn more about their implementation, see\n[Mike Pall's IP disclosure](https://lua-users.org/lists/lua-l/2009-11/msg00089.html)\n– disregarding the SSL error – or their\n[source code](https://github.com/LuaJIT/LuaJIT/blob/5e3c45c43bb0e0f1f2917d432e9d2dba12c42a6e/src/lj_asm.c#L198).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkeeter%2Fssra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkeeter%2Fssra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkeeter%2Fssra/lists"}