{"id":21606048,"url":"https://github.com/codekitchen/lua-d","last_synced_at":"2026-03-12T19:14:11.293Z","repository":{"id":975188,"uuid":"773864","full_name":"codekitchen/Lua-D","owner":"codekitchen","description":"Lua interpreter and runtime implementation in D","archived":false,"fork":false,"pushed_at":"2012-05-07T19:24:57.000Z","size":108,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-10T03:36:53.661Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"D","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/codekitchen.png","metadata":{"files":{"readme":"README","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":"2010-07-14T04:01:50.000Z","updated_at":"2023-03-23T03:03:32.000Z","dependencies_parsed_at":"2022-08-16T11:40:32.591Z","dependency_job_id":null,"html_url":"https://github.com/codekitchen/Lua-D","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codekitchen/Lua-D","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codekitchen%2FLua-D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codekitchen%2FLua-D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codekitchen%2FLua-D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codekitchen%2FLua-D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codekitchen","download_url":"https://codeload.github.com/codekitchen/Lua-D/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codekitchen%2FLua-D/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30439654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"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":[],"created_at":"2024-11-24T20:18:48.948Z","updated_at":"2026-03-12T19:14:11.276Z","avatar_url":"https://github.com/codekitchen.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Lua-D =\n\nYOU DON'T WANT THIS. This is just something I'm messing around with on a sick day, I'm all stuffy and gross and don't want to move so I needed a project. I have no idea if/when this will go anywhere. Code smells abound.\n\n== Rationale ==\n\nLua-D is an implementation of the Lua 5.1 virtual machine and runtime for D. The\ngoal is to take advantage of D's language and runtime features in a more\nintegrated way than is possible when using the C implementation.\n\n * Use D's garbage collector, rather than running both D GC and Lua GC in the\n   same process.\n * Use D's native coroutine support (in core.thread.Fiber) so that Lua threads\n   can yield across native code call sites.\n * Use D's more dynamic features to create a nicer Lua API. Yeah, turns out\n   std.variant is way buggy, and even crashes the compiler with the latest DMD\n   2.047. So not much luck here so far, though the LuaFunc usage is kind of nice\n   I guess. Probably could be more efficient though.\n * Maybe even use D's native support for closures to enable Lua's closures,\n   rather than hand-writing an upvalue implementation.\n\nAnd of course, the real rationale:\n\n * I want to learn more about compilers/VMs.\n\nRight now, Lua-D is planned to be an interpreter/runtime only. No JIT, and no\ncompiler. To run code, you'll first need to compile your .lua files to .luac\nfiles using the luac tool that comes with the official Lua distribution. Lua-D\nloads these .luac files directly. Be warned, it doesn't validate the header yet\nso loading a .luac file created with a different platform or Lua version will have weird results.\n\nI should probably just include the Lua compiler right in the binary, and call\nout to it.\n\n== This code works! ==\n\nfunction go(a)\nio.write(\"Hello world, from \",a,\"!\\n\")\nreturn 3, 4, 5\nend\n\nlocal z, x = go(_VERSION)\n\nlocal a, b, c, d, e = go(\"Lua-D\")\nio.write(\"got \",a, \" \", b,\"\\n\")\n\n== Most other code probably doesn't :/ ==\n\n\n== LICENSE ==\n\nLua license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodekitchen%2Flua-d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodekitchen%2Flua-d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodekitchen%2Flua-d/lists"}