{"id":28851608,"url":"https://github.com/jbytecode/juliac","last_synced_at":"2025-07-18T08:03:36.840Z","repository":{"id":287269185,"uuid":"964172835","full_name":"jbytecode/juliac","owner":"jbytecode","description":"Examples for Julia's generating small binary executables and libraries feature.","archived":false,"fork":false,"pushed_at":"2025-07-05T19:00:22.000Z","size":41,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-05T20:22:08.733Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Julia","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/jbytecode.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-10T19:55:37.000Z","updated_at":"2025-07-05T19:00:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"c192f5be-bedd-4390-8c79-dd3210f46acd","html_url":"https://github.com/jbytecode/juliac","commit_stats":null,"previous_names":["jbytecode/juliac"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jbytecode/juliac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbytecode%2Fjuliac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbytecode%2Fjuliac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbytecode%2Fjuliac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbytecode%2Fjuliac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbytecode","download_url":"https://codeload.github.com/jbytecode/juliac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbytecode%2Fjuliac/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265724304,"owners_count":23817783,"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":"2025-06-19T21:05:59.128Z","updated_at":"2025-07-18T08:03:36.833Z","avatar_url":"https://github.com/jbytecode.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# juliac\n\nExamples for Julia's generating small binary executables and libraries feature.\n\nNote that this feature is still under development.\n\n## My Initial Blog Post\n\nhttps://jbytecode.github.io/juliac/\n\nThis blog post represents the requirements and command line arguments of the compiler.\n\n## The Discourse Entry\n\nhttps://discourse.julialang.org/t/where-is-juliac-developed/113004?u=jbytecode\n\nThis Discourse post the entry point of my journey.\n\n## How to use this repo?\n\n- The `download.sh` script downloads the required scripts from the Julia's GitHub repository. The latest versions of these scripts are already included in this repo. To update them, type\n\n```shell\n\u003e cd juliac\n\u003e ./download.sh\n\u003e cd ..\n```\n\nin the OS terminal.\n\n### Hello World\n\n```shell\n\u003e make hello\n```\n\ngenerates the `hello` binary using `hello.jl`.\n\nPlease review the `Makefile` file to build other examples.\n\n### Calling Julia Library Function from C\n\nThe files `mylib.c`, `mylibcaller.c`, and `mylib.jl` represents calling Julia-generated dynamic library functions from within C. Here is the skeleton:\n\n```julia\nmodule MyLibrary\n\n    Base.@ccallable function myfunc(x::Float64)::Float64\n        return x^2\n    end\n\nend\n```\n\nand here the caller:\n\n```C\n#include\u003cstdio.h\u003e\n\ndouble myfunc(double);\n\nint main(){\n\tdouble result = myfunc(5.0);\n\tprintf(\"Result is %f\\n\", result);\n\treturn 0;\n}\n```\n\nwhere `myfunc` is defined in Julia.\n\n```Shell\n\u003e make mylibcaller\n```\n\ncompiles Julia and C files together and generates the shared library and the caller executable.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbytecode%2Fjuliac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbytecode%2Fjuliac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbytecode%2Fjuliac/lists"}