{"id":13732250,"url":"https://github.com/gligneul/Lua-Low-Level","last_synced_at":"2025-05-08T06:31:46.114Z","repository":{"id":197322484,"uuid":"42790724","full_name":"gligneul/Lua-Low-Level","owner":"gligneul","description":"Per function, Lua JIT using LLVM C++ toolchain","archived":false,"fork":false,"pushed_at":"2017-06-08T04:20:41.000Z","size":572,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-02T20:13:52.656Z","etag":null,"topics":[],"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/gligneul.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":"2015-09-19T21:44:53.000Z","updated_at":"2023-09-05T23:28:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"994b1090-a04a-42b2-932d-d4ee36f05327","html_url":"https://github.com/gligneul/Lua-Low-Level","commit_stats":null,"previous_names":["gligneul/lua-low-level"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gligneul%2FLua-Low-Level","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gligneul%2FLua-Low-Level/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gligneul%2FLua-Low-Level/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gligneul%2FLua-Low-Level/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gligneul","download_url":"https://codeload.github.com/gligneul/Lua-Low-Level/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213757426,"owners_count":15634177,"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":[],"created_at":"2024-08-03T02:01:50.408Z","updated_at":"2024-08-03T02:09:19.342Z","avatar_url":"https://github.com/gligneul.png","language":"C","funding_links":[],"categories":["Scripting"],"sub_categories":[],"readme":"# Lua Low Level\n\n## Brief\nThis is an alternative Lua (5.3.2) implementation that aims to archive better \nperformance by generating native code with the help of LLVM toolchain.\n\nFor further information about Lua, see https://www.lua.org.\n\n\u003cb\u003eATENTION: This is still on development state.\u003c/b\u003e\n\n## Usage\nThe usage should be equal to the standard Lua interpreter.\nThe compilation is done automatically by default, but you can also pre-compile\na function by calling ```lll.compile(f)```. You can also disable the\nauto compilation or change the number of calls required to auto compile a\nfunction.\n\n## TODO List\n- Support coroutines;\n- Archive better performance by proper implementing the SSA format;\n- Support newer LLVM versions;\n- Support gcc/g++ compilation;\n- Rename the genarated binary to ```lll```.\n\n## Requiriments\n- LLVM (version 3.5)\n- Clang (same version of llvm)\n\n## Compilation\nRun ```make``` at project root folder.\nThe compilation/installation is equal to Lua.\n\n## Library\nA library is provided to manually control the LLL compiler behavior.\n\n```\nlll.compile(f)\n  Compiles $f and returns true if it succeeds. If not, returns false and the\n  error message.\n\nlll.setAutoCompileEnable(b)\n  Enables or disables the auto compilation. $b will be converted to a boolean.\n  (default = enable)\n\nlll.isAutoCompileEnable()\n  Returns whether the auto compilation is enable.\n\nlll.setCallsToCompile(calls)\n  Sets the number of $calls required to auto compile a function. (default = 50)\n\nlll.getCallsToCompile()\n  Obtains the number of calls required to auto-compile a function.\n\nlll.isCompiled(f)\n  Returns whether $f is compiled.\n\nlll.debug(f)\n  Writes in stderr the generated LLVM IR of $f. (DEBUG)\n\nlll.write(f, path)\n  Writes to $path (default = 'f') the generated IR and the respective assembly\n  (.s) file. The asm file is created by llc command. (DEBUG)\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgligneul%2FLua-Low-Level","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgligneul%2FLua-Low-Level","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgligneul%2FLua-Low-Level/lists"}