{"id":21976617,"url":"https://github.com/lwhjp/racket-asm","last_synced_at":"2025-04-28T16:42:00.713Z","repository":{"id":40313255,"uuid":"48312940","full_name":"lwhjp/racket-asm","owner":"lwhjp","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-28T05:27:39.000Z","size":74,"stargazers_count":19,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-22T00:03:01.626Z","etag":null,"topics":["racket"],"latest_commit_sha":null,"homepage":null,"language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lwhjp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-20T08:39:29.000Z","updated_at":"2024-11-24T12:32:29.000Z","dependencies_parsed_at":"2022-08-18T02:00:35.199Z","dependency_job_id":null,"html_url":"https://github.com/lwhjp/racket-asm","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/lwhjp%2Fracket-asm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-asm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-asm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-asm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lwhjp","download_url":"https://codeload.github.com/lwhjp/racket-asm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251347687,"owners_count":21575128,"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":["racket"],"created_at":"2024-11-29T16:11:22.862Z","updated_at":"2025-04-28T16:42:00.652Z","avatar_url":"https://github.com/lwhjp.png","language":"Racket","readme":"Racket Assembler\n================\n\nInstallation\n------------\n\nProbably the easiest method is to create a local link using\n`raco pkg install` in the top level of this repository.\nThis will create links so that `require` and friends work properly.\n\nSee the `example` directory for how to create executable procedures.\n\n**NOTE** dynamic loading doesn't yet work on Racket CS (which is the\ndefault from version 8.0). This will be addressed at some point.\n\nSee `example/hello.rkt` for how to use this assembler to create an\nactual executable.\n\nOverview\n--------\n\nThis is an assembler for Racket. The idea is to support both\nspecific processor instruction sets (x86-64 to begin with) and\na generic target in the style of GNU Lightning.\n\nI used some ideas from Noel Welsh's\n[x86 assembler](https://github.com/noelwelsh/assembler/).\n\nMy immediate goal is to implement enough to write a translator\nfrom Racket bytecode to machine code, as an alternative module\nloader. (The long-term \"pie in the sky\" vision is a self-hosted\nRacket system).\n\nStatus\n------\n\nSome, but not all, x86-64 instructions are implemented.\n\nSome, but not all, of the generic instruction set is implemented.\n\nThe instructions are buggy and are likely to crash your Racket process.\n\nThe examples (adapted from the GNU Lightning examples) run, but are\nnot perfect.\n\nThe generic instruction support needs some tweaking to be more\nRacket-friendly and emit fewer useless instructions.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwhjp%2Fracket-asm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flwhjp%2Fracket-asm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwhjp%2Fracket-asm/lists"}