Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/CertainLach/gcmodule

Garbage collection for Rust inspired by CPython's gcmodule
https://github.com/CertainLach/gcmodule

cc: move GcHeader to right before CcBox

This matches the CPython implementation. "unsafe" usage is increased
but the space overhead is v...

f10e8d630f40c56512700323131ca1e570bd6468 authored almost 5 years ago by Jun Wu <[email protected]>
tests: move some tests to cc.rs

10975d06e8fa4cd8826216ab0c4394d32618e142 authored almost 5 years ago by Jun Wu <[email protected]>
manifest: drop some dependencies

No need to build regex or env_logger.

966736edbdc0c60a68bdfd1cb9b0159403d7e037 authored almost 5 years ago by Jun Wu <[email protected]>
doc: correct a typo

34b70b8febaa80c88d0169211d2ef6a271dcfb12 authored almost 5 years ago by Jun Wu <[email protected]>
tests: move utilities to a separate public module

a27ee5392d2c4a35f82793ce656df316b2cb7ab5 authored almost 5 years ago by Jun Wu <[email protected]>
fuzz: add a fuzz target

Run by "cargo +nightly fuzz run graph16".

3870270ee9def23128cd2ac2ca3dbfbe9ae25b19 authored almost 5 years ago by Jun Wu <[email protected]>
doc: minor syntax fix

02c9ca7f2c9342d1d7be2096dd0f935739a7985c authored almost 5 years ago by Jun Wu <[email protected]>
bump to 0.1.2

0405a890872026e42d9eea681ecc5eb2f4a1688d authored almost 5 years ago by Jun Wu <[email protected]>
tests: add tests calling collect multiple times

17ef64a4e91c71bfcce7fc9fb6d2aa6df1bba768 authored almost 5 years ago by Jun Wu <[email protected]>
collect: correct unreachable detection

"unreachable" requires all nodes in a connect component have refcnt 0.

ecb565eb6db18f07facf353b04e7ab86e2536e80 authored almost 5 years ago by Jun Wu <[email protected]>
debug: VERBOSE=1 turns on stderr logging

c5bae125eb92dbc34e2199a23a7d0fe43650c9db authored almost 5 years ago by Jun Wu <[email protected]>
doc: note rcgc version

71c61789ada3520e78307e1957b8d092456aed94 authored almost 5 years ago by Jun Wu <[email protected]>
workflow: use lowercase "build"

efbfa21f29a344bb8f4e59f689a29506c8c1c18d authored almost 5 years ago by Jun Wu <[email protected]>
cc: simplify a "if" a bit

8109e054b3018bf6d81816c296f1a49b847352e6 authored almost 5 years ago by Jun Wu <[email protected]>
workflow: attempt to run on nightly rust

ac41e0d020b1cd5bb45276c7a0b6c7fb0b3540a6 authored almost 5 years ago by Jun Wu <[email protected]>
cc: support Cc<dyn Trait> on stable

A bit hacky. But it seems to work.

fa4e883fca0fac16d703cd8f6c6e5d93d3367dc1 authored almost 5 years ago by Jun Wu <[email protected]>
cc: implement CoerceUnsized on nightly

0ff713b25a779cbca012839b1ec1a3702a849d92 authored almost 5 years ago by Jun Wu <[email protected]>
cc: be more friendly to unsized types

f4b2e067b72fabc9d336ac8c8402ff475ed7acf8 authored almost 5 years ago by Jun Wu <[email protected]>
trace: add as_any for downcast support

856be08bfc865b3e541f8252f8028302b8cf87b5 authored almost 5 years ago by Jun Wu <[email protected]>
remove some keywords

bc0343d67769dfd48327a060c0e03f9ff41ac052 authored almost 5 years ago by Jun Wu <[email protected]>
bump to 0.1.1

aafbc28d7bfeb1c16dad4d86d3b4dd866003cf14 authored almost 5 years ago by Jun Wu <[email protected]>
add gitignore

4b7e50846c3ca9f3331744cc3ec401bf17cd89b3 authored almost 5 years ago by Jun Wu <[email protected]>
doc: update docs

eeefdfc6fb31ee16a4ed4fe5c3f97b2688c7bb2c authored almost 5 years ago by Jun Wu <[email protected]>
github: add rust workflow

1b49433ea25e4965ee4848963028b2acd4c6c00c authored almost 5 years ago by Jun Wu <[email protected]>
note: add some notes about potential future plans

e70806e0da99c996e6f651bc1267464bb8768702 authored almost 5 years ago by Jun Wu <[email protected]>
doc: add README

7be12b797ebc7e943cb51c40f91d3832f09ec0eb authored almost 5 years ago by Jun Wu <[email protected]>
doc: simplify an example a bit

0956ab7a21095190136cd4e15461d557fef0c027 authored almost 5 years ago by Jun Wu <[email protected]>
collect: rename collect_cycles to collect_thread_cycles

41303e64778ee426c7c7cd9a2a349da4041f121e authored almost 5 years ago by Jun Wu <[email protected]>
cc: drop Trace bound

They are no longer needed. They were initially needed because drop()
wants gc_track(), and drop(...

957b71cb3370aa286c694ad53a8a1c3962500b5d authored almost 5 years ago by Jun Wu <[email protected]>
tests: add more tests

Those are also verified by valgrind.

79b0c35f5a399e26d091b4c1bd19d73b34760156 authored almost 5 years ago by Jun Wu <[email protected]>
debug: add ways to collect debug logs for testing

ccbf006c33180b6910e0651b087eb7e3101d5d95 authored almost 5 years ago by Jun Wu <[email protected]>
cc: implement common traits

68bb44715898c56de47e3e981382af52dc548c9d authored almost 5 years ago by Jun Wu <[email protected]>
tests: add tests about mixed tracked/untracked values

ede310700f1191c04a2bdea1f28bed4753e171d0 authored almost 5 years ago by Jun Wu <[email protected]>
doc: add some documentation

40a185fea1b237e9f01ba68cc3fce807a03dbd4d authored almost 5 years ago by Jun Wu <[email protected]>
tests: add quickcheck tests

Use quickcheck to generate random graphs. Also verified by valgrind.

93feed2e5c7a30450eef20503411c163978892d2 authored almost 5 years ago by Jun Wu <[email protected]>
trace: drop debug_name

Move debug_name to CcBox. This removes some dependency on the Trace bound.

ad87bab3a0b3a8ff193483f312a5eb559e48c597 authored almost 5 years ago by Jun Wu <[email protected]>
rc: rename types to cc

e33661ea446ed37829421c397ffd456b76f81ea9 authored almost 5 years ago by Jun Wu <[email protected]>
collect: implmenet basic collect algorithm

Similar to what cpython 3.8 does. Generation support is not there but
shouldn't be too hard to add.

8eaf2ceeb0ed0f3a8a703499b5aec05579525875 authored almost 5 years ago by Jun Wu <[email protected]>
rc: opt-in GC on drop

e0b9665ffdd533a25dd5a745d1395c9f7f7da99c authored almost 5 years ago by Jun Wu <[email protected]>
rc: make RcDyn private

Going to add an API that is unsafe for public consumption.

ad095215f972ddcddbfe20c831e3b43be3e57199 authored almost 5 years ago by Jun Wu <[email protected]>
rc: add APIs to force drop a value

This currently has a few steps:
1. Prepare separate "weakref" (RcDyn) list for the objects to dr...

ab97e82abc68b787fc10e219bc07289e9a928737 authored almost 5 years ago by Jun Wu <[email protected]>
tests: move to a module

43790dd8e23670b577c3309ee3bebcf81a75d8d8 authored almost 5 years ago by Jun Wu <[email protected]>
rcdyn: merge into rc.rs

The logic is coupled with other logic in Rc.

8d2884ef0d2ff8fe8e8b45a9cf57031b00cc0aee authored almost 5 years ago by Jun Wu <[email protected]>
trace: visit GcHeader instead

GcHeader has more information.

2048394b8f22d0a3ac49ee640ae8c6268ff6654d authored almost 5 years ago by Jun Wu <[email protected]>
rc: wrap value with ManuallyDrop

In upcoming changes, I need to call T's drop without releasing RcBox<T>
so ref_count still point...

e0bd647105112017839b05b6c98110d2011cd764 authored almost 5 years ago by Jun Wu <[email protected]>
rc: impl Trace for Rc<T>

10153131214e93d1b1e073b8779d82d22137fed5 authored almost 5 years ago by Jun Wu <[email protected]>
rc: use raw pointer for GcHeader

This removes potential UBs.

d0acbbb190d423f86bb925a8b1dfd3917b7394bf authored almost 5 years ago by Jun Wu <[email protected]>
rc: opt-in GC on object creation

The previous ideas are inspired by bacon-rajan-cc: opt-in GC on drop, or on
clone. That actually...

b825bc45ac008e26ada3c13daa3efa34334f8273 authored almost 5 years ago by Jun Wu <[email protected]>
collect: use CcDummy for dummy linked list node

This saves a few bytes per thread.

5968007eba2b9342f25e6c156ebb4e284a388712 authored almost 5 years ago by Jun Wu <[email protected]>
rc: add some RcDyn APIs for GC

f4697ae98ccbe576362fcd2e1eb803f059c1e726 authored almost 5 years ago by Jun Wu <[email protected]>
rc: rename mod to cc

ce36755fbf0b02f41557a941448689ccc8784d2c authored almost 5 years ago by Jun Wu <[email protected]>
rc: remove an unnecessary Option

Simplify the logic at the cost of a few extra bytes per thread.

419e00d88307c9fed0419b05c42ff4ff73805f71 authored almost 5 years ago by Jun Wu <[email protected]>
trace: define Trace trait

4737708d1ae673af299645c2361d616284026185 authored almost 5 years ago by Jun Wu <[email protected]>
add manifests

cfbac2abc5f5b86d270d4a65b8be8cec1e053b9b authored almost 5 years ago by Jun Wu <[email protected]>
rc: use 1 bit for "tracked" state

6a55d4436cc6c8a6ffd2984a4863706f6a4022fa authored almost 5 years ago by Jun Wu <[email protected]>
rc: initial integration with Trace

317c47f278c6745f81f03774bdb5e8810353bd53 authored almost 5 years ago by Jun Wu <[email protected]>
rc: initial implementation

6fed32b25dd49e3a5aba720957583edb4cb0f76d authored almost 5 years ago by Jun Wu <[email protected]>
trace: impl Trace for common types

33bb09f09140a8b43efaddcefdb9c3030d3d6e7a authored almost 5 years ago by Jun Wu <[email protected]>
rc: add GcHeader

5d5b3d373de3f513bfcfd16e727a2418a584d2b3 authored almost 5 years ago by Jun Wu <[email protected]>
rcdyn: type-erased Rc<T>

93476e75fc417470cd41aab2ff539e1168b1cd0e authored almost 5 years ago by Jun Wu <[email protected]>