{"id":18046650,"url":"https://github.com/ltla/runtimelinksviar","last_synced_at":"2025-04-05T04:24:59.231Z","repository":{"id":82716837,"uuid":"144725675","full_name":"LTLA/RunTimeLinksViaR","owner":"LTLA","description":"Proof of concept for run-time linking of C++ libraries via R","archived":false,"fork":false,"pushed_at":"2018-08-14T13:51:56.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-10T12:29:32.432Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/LTLA.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-14T13:41:56.000Z","updated_at":"2018-08-14T13:51:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"e19a7004-8ad5-42b1-89ba-73b3a2eee556","html_url":"https://github.com/LTLA/RunTimeLinksViaR","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/LTLA%2FRunTimeLinksViaR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LTLA%2FRunTimeLinksViaR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LTLA%2FRunTimeLinksViaR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LTLA%2FRunTimeLinksViaR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LTLA","download_url":"https://codeload.github.com/LTLA/RunTimeLinksViaR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247288242,"owners_count":20914325,"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-10-30T19:08:22.684Z","updated_at":"2025-04-05T04:24:59.210Z","avatar_url":"https://github.com/LTLA.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proof of concept for run-time linking\n\nThe idea is to be able to link C++ code from different packages at run-time.\nTo demonstrate, install **packA** and **packB** in any order, and then run the following code in an R session:\n\n```{r}\nlibrary(packB)\n.Call(\"runner\", 1, 2, PACKAGE=\"packB\")\n```\n\nThe `runner` C++ function (in **packB**) will first attach **packA** to the current section;\nuse R's `R_getCCallable` mechanism to search for a C function in the shared library of **packA**;\nand finally, execute that C function and return a result (in this case, addition of the two supplied scalars).\n\nThis strategy provides more options for the **beachmat** API, in that we no longer need to define the universe of all matrix representations at compile time.\nThe aim is to allow downstream packages implementing their own matrix representations to also implement their own C++ routines that can be exploited by **beachmat**.\nThis is more efficient than relying on block realization via R for arbitrary matrices.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fltla%2Fruntimelinksviar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fltla%2Fruntimelinksviar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fltla%2Fruntimelinksviar/lists"}