{"action":"created","issue":{"url":"https://api.github.com/repos/SodiumFRP/sodium-cxx/issues/14","repository_url":"https://api.github.com/repos/SodiumFRP/sodium-cxx","labels_url":"https://api.github.com/repos/SodiumFRP/sodium-cxx/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/SodiumFRP/sodium-cxx/issues/14/comments","events_url":"https://api.github.com/repos/SodiumFRP/sodium-cxx/issues/14/events","html_url":"https://github.com/SodiumFRP/sodium-cxx/issues/14","id":298595252,"number":14,"title":"Garbage collector for c++ version","user":{"login":"clinuxrulz","id":278292,"avatar_url":"https://avatars3.githubusercontent.com/u/278292?v=4","gravatar_id":"","url":"https://api.github.com/users/clinuxrulz","html_url":"https://github.com/clinuxrulz","followers_url":"https://api.github.com/users/clinuxrulz/followers","following_url":"https://api.github.com/users/clinuxrulz/following{/other_user}","gists_url":"https://api.github.com/users/clinuxrulz/gists{/gist_id}","starred_url":"https://api.github.com/users/clinuxrulz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clinuxrulz/subscriptions","organizations_url":"https://api.github.com/users/clinuxrulz/orgs","repos_url":"https://api.github.com/users/clinuxrulz/repos","events_url":"https://api.github.com/users/clinuxrulz/events{/privacy}","received_events_url":"https://api.github.com/users/clinuxrulz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-02-20T13:34:06Z","updated_at":"2018-02-24T22:52:25Z","closed_at":null,"author_association":"NONE","body":"@the-real-blackh \r\n\r\nI've translated \"Gc.rs\" from Rust to C++ . It is designed to work exactly the same way as the rust one. It uses the template struct ```Trace``` to mimic a ```Trace``` trait.\r\n\r\nhttps://github.com/clinuxrulz/gc-cxx\r\n\r\nIf this is the sort of approach you would like to use, then maybe it could find a home in \"SodiumFRP/..\" somewhere.\r\n\r\nThe strategy in mind for use is: ```WeakGc<>``` forward references, ```Gc<>``` back references. The back references tend to get held in the cleanup/finalizers of the sodium objects.\r\n```Trace``` implementations would need to be provided for Cell/Stream and Listener to use it. (I.E. Anywhere a ```Gc<>``` could be held needs to be made reachable by ```Trace<>::trace(...)```)\r\n\r\nHere is what it looks like when you use it:\r\nhttps://github.com/clinuxrulz/gc-cxx/blob/master/example.cpp\r\n\r\nThe example creates a cycle among 3 objects and shows them getting freed at the end of the local scope."},"comment":{"url":"https://api.github.com/repos/SodiumFRP/sodium-cxx/issues/comments/368266682","html_url":"https://github.com/SodiumFRP/sodium-cxx/issues/14#issuecomment-368266682","issue_url":"https://api.github.com/repos/SodiumFRP/sodium-cxx/issues/14","id":368266682,"user":{"login":"clinuxrulz","id":278292,"avatar_url":"https://avatars3.githubusercontent.com/u/278292?v=4","gravatar_id":"","url":"https://api.github.com/users/clinuxrulz","html_url":"https://github.com/clinuxrulz","followers_url":"https://api.github.com/users/clinuxrulz/followers","following_url":"https://api.github.com/users/clinuxrulz/following{/other_user}","gists_url":"https://api.github.com/users/clinuxrulz/gists{/gist_id}","starred_url":"https://api.github.com/users/clinuxrulz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clinuxrulz/subscriptions","organizations_url":"https://api.github.com/users/clinuxrulz/orgs","repos_url":"https://api.github.com/users/clinuxrulz/repos","events_url":"https://api.github.com/users/clinuxrulz/events{/privacy}","received_events_url":"https://api.github.com/users/clinuxrulz/received_events","type":"User","site_admin":false},"created_at":"2018-02-24T22:52:25Z","updated_at":"2018-02-24T22:52:25Z","author_association":"NONE","body":"@Ziriax that applies here. I've just realized that it is the purpose of the ```buffered``` flag (it checks it in ```release```). I originally translated it from a paper without understanding the code. Thanks."}}
{"actor":{"display_login":"clinuxrulz"}}