{"id":19137624,"url":"https://github.com/yuanming-hu/cpp-host-metal","last_synced_at":"2026-03-19T08:19:01.278Z","repository":{"id":77491684,"uuid":"237643378","full_name":"yuanming-hu/cpp-host-metal","owner":"yuanming-hu","description":"Test if we can use Metal runtime in C++","archived":false,"fork":false,"pushed_at":"2020-01-21T12:57:37.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-03T13:45:26.630Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"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/yuanming-hu.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}},"created_at":"2020-02-01T16:31:02.000Z","updated_at":"2023-11-06T18:57:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"d9e78b65-e700-4ff8-83ed-233cd2934f80","html_url":"https://github.com/yuanming-hu/cpp-host-metal","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/yuanming-hu%2Fcpp-host-metal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuanming-hu%2Fcpp-host-metal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuanming-hu%2Fcpp-host-metal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuanming-hu%2Fcpp-host-metal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuanming-hu","download_url":"https://codeload.github.com/yuanming-hu/cpp-host-metal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240216313,"owners_count":19766565,"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-11-09T06:38:59.273Z","updated_at":"2025-10-25T16:40:36.980Z","avatar_url":"https://github.com/yuanming-hu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ Hosted Metal\n\n## Progress\n\n* `newBufferWithBytesNoCopy:length:options:deallocator:` working!\n  * Pass the memory allocated by `mmap()`. \n  * **Both `ptr` and `length`** must be aligned to the page size. `ptr`'s alignment is guaranteed by `mmap()`, but not `length`. So we have to manually round up `length` to page size.\n* The Metal compute pipeline works in C++ via objc-runtime.\n  * Each line in the Metal compute kernel must be separated by `\\n`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuanming-hu%2Fcpp-host-metal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuanming-hu%2Fcpp-host-metal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuanming-hu%2Fcpp-host-metal/lists"}