{"id":15394915,"url":"https://github.com/kassane/bdwgc-d","last_synced_at":"2025-04-14T10:35:26.431Z","repository":{"id":233938051,"uuid":"788027500","full_name":"kassane/bdwgc-d","owner":"kassane","description":"D library for interfacing with libgc (bdwgc)","archived":false,"fork":false,"pushed_at":"2024-09-16T22:56:13.000Z","size":49,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T23:44:22.984Z","etag":null,"topics":["bdwgc","bindings","d","dlang","garbage-collection","garbage-collector","gc","libgc"],"latest_commit_sha":null,"homepage":"http://bdwgc-d.dub.pm/","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kassane.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":"2024-04-17T16:32:20.000Z","updated_at":"2024-09-16T22:56:16.000Z","dependencies_parsed_at":"2024-05-01T20:29:20.036Z","dependency_job_id":"089ea87e-8af5-4ffb-9143-bd85f021eaec","html_url":"https://github.com/kassane/bdwgc-d","commit_stats":null,"previous_names":["kassane/bdwgc-d"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Fbdwgc-d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Fbdwgc-d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Fbdwgc-d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kassane%2Fbdwgc-d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kassane","download_url":"https://codeload.github.com/kassane/bdwgc-d/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248863474,"owners_count":21174008,"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":["bdwgc","bindings","d","dlang","garbage-collection","garbage-collector","gc","libgc"],"created_at":"2024-10-01T15:24:54.115Z","updated_at":"2025-04-14T10:35:26.408Z","avatar_url":"https://github.com/kassane.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bdwgc-d -- Boehm-Demers-Weiser conservative garbage collector library for D\n\nD library for interfacing with libgc (bdwgc) using [`importC`](https://dlang.org/spec/importc.html)\n\n#### What's the difference between [libgc-d](https://github.com/lycus/libgc-d)?\n\n**A:** **bdwgc-d** is generated by `importC`, not manual binding wrapper.\n\n### Required\n\n- [zig](https://ziglang.org/download) v0.12.0 or master\n- [ldc](https://ldc-developers.github.io) v1.36.0 or latest-CI (nightly)\n\n### How to use (zig build)\n\n```bash\n$ zig build -h\nProject-Specific Options:\n  -Dtarget=[string]            The CPU architecture, OS, and ABI to build for\n  -Dcpu=[string]               Target CPU features to add or subtract\n  -Ddynamic-linker=[string]    Path to interpreter on the target system\n  -Doptimize=[enum]            Prioritize performance, safety, or binary size\n                                 Supported Values:\n                                   Debug\n                                   ReleaseSafe\n                                   ReleaseFast\n                                   ReleaseSmall\n  -Denable_cplusplus=[bool]    C++ support\n  -DBUILD_SHARED_LIBS=[bool]   Build shared libraries (otherwise static ones)\n  -DCFLAGS_EXTRA=[string]      Extra user-defined cflags\n  -Denable_parallel_mark=[bool] Parallelize marking and free list construction\n  -Denable_threads=[bool]      Support threads\n  -Denable_thread_local_alloc=[bool] Turn on thread-local allocation optimization\n  -Denable_threads_discovery=[bool] Enable threads discovery in GC\n  -Denable_rwlock=[bool]       Enable reader mode of the allocator lock\n  -Denable_throw_bad_alloc_library=[bool] Turn on C++ gctba library build\n  -Denable_gcj_support=[bool]  Support for gcj\n  -Denable_sigrt_signals=[bool] Use SIGRTMIN-based signals for thread suspend/resume\n  -Denable_valgrind_tracking=[bool] Support tracking GC_malloc and friends for heap profiling tools\n  -Denable_java_finalization=[bool] Support for java finalization\n  -Denable_atomic_uncollectable=[bool] Support for atomic uncollectible allocation\n  -Denable_gc_debug=[bool]     Support for pointer back-tracing\n  -Denable_redirect_malloc=[bool] Redirect malloc and friend to GC routines\n  -Denable_disclaim=[bool]     Support alternative finalization interface\n  -Denable_dynamic_pointer_mask=[bool] Support pointer mask/shift set at runtime\n  -Denable_large_config=[bool] Optimize for large heap or root set\n  -Denable_gc_assertions=[bool] Enable collector-internal assertion checking\n  -Denable_mmap=[bool]         Use mmap instead of sbrk to expand the heap\n  -Denable_munmap=[bool]       Return page to the OS if empty for N collections\n  -Denable_dynamic_loading=[bool] Enable tracing of dynamic library data roots\n  -Denable_register_main_static_data=[bool] Perform the initial guess of data root sets\n  -Denable_checksums=[bool]    Report erroneously cleared dirty bits\n  -Denable_werror=[bool]       Pass -Werror to the C compiler (treat warnings as errors)\n  -Denable_single_obj_compilation=[bool] Compile all libgc source files into single .o\n  -Ddisable_single_obj_compilation=[bool] Compile each libgc source file independently\n  -Denable_handle_fork=[bool]  Attempt to ensure a usable collector after fork()\n  -Ddisable_handle_fork=[bool] Prohibit installation of pthread_atfork() handlers\n  -Dbuild_cord=[bool]          Build cord library\n  -Dartifact_dub=[bool]        Available artifacts to DUB\n  -Dbuild_examples=[bool]      Build Examples\n```\n\n### Compiler Support\n\n`bdwgc-d` should be compatible with multiple D compilers including `gdc`, `ldc2`, and `dmd`. When you use `dub` to build your project, it should automatically detect the compiler you have installed and use it to compile your code.\n\n#### Acknowledge for reference\n\n- [lycus/libgc-d](https://github.com/lycus/libgc-d): manual binding (**archived**)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkassane%2Fbdwgc-d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkassane%2Fbdwgc-d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkassane%2Fbdwgc-d/lists"}