{"push_id":1097953532,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"f17250449cae0e15888f6e4806ba017f9763b978","before":"dd98503e8fa28544425aceba714ce97f53407047","commits":[{"sha":"f17250449cae0e15888f6e4806ba017f9763b978","author":{"email":"1cc2aa52b354e13649f8bdf2b0cbd265ed6238b7@gmail.com","name":"Jesse Ray Adkins"},"message":"Unify collect + destroy functions under one roof.\n\nPreviously, gc collect functions and destroy functions were two\ndifferent beasts. These were, for the most part, copy+paste with a\nlittle bit of change between each class. They weren't very error prone\n(but I did notice that collect seemed to be forgetting to destroy\nfiles properly).\n\nThis patch unifies collect + gc underneath one banner. It's probably\nslower by the slightest of hairs due to having to do extra gc value\nchecks and a sentinel check at the top. This is still better.\n\nI've also added a gc sentinel as a guard against re-entrancy. It\nallows the gc to set last_pass to -1 to indicate the end. The first\ntime that is seen, the new destroy will hollow the value and swap out\nto use the sentinel. When the sentinel is seen (checked at the top),\nnothing is done at all.\n\nThe values of the sentinel are meaningless, but they can't be 0 or it\ngets \"optimized\" as a null pointer which is wrong and bad.","distinct":true,"url":"https://api.github.com/repos/jesserayadkins/lily/commits/f17250449cae0e15888f6e4806ba017f9763b978"}]}