{"push_id":3024094041,"size":1,"distinct_size":1,"ref":"refs/heads/v0.x.x","head":"77773321e18099fd94d6d6b9082d96e57d646d5e","before":"d9b64e6a1d84c81d62051ce5e372a81e9f4849de","commits":[{"sha":"77773321e18099fd94d6d6b9082d96e57d646d5e","author":{"name":"Joseph Rushton Wakeling","email":"5616e8b70f9946f0c54ad1dcc357c77e4850f13a@sociomantic.com"},"message":"Add closure allocation check to CI stages\n\nThis should allow us to verify that we are not accidentally generating\ngarbage via the use of closures.  The new `closures.sh` ci helper shell\nscript exports `DFLAGS=-vgc` to make the compiler list GC allocations,\nthen invokes the `fasttest` target and greps its output for `closure`.\n\n`set -o pipefail` is used to ensure that non-zero `make` exit statuses\npropagate, and the exit status of the `grep` call is checked to ensure\nthat it is 1 (i.e. that `grep` did not find any `closure`, but exited\nwithout error).\n\nNote that in principle `make` can generate an exit status of 1, but only\nif the `-q` option is used, which should never be the case, so we should\nbe safe relying on it exiting either with 0 (success) or 2 (error).  We\nshould not need to care about it in any case, since `grep`'s exit status\nshould be checked separately thanks to the enclosing parentheses.\n\nThis should ensure that the test case will only pass if both the D build\nsucceeds and there are no reports of closure allocation.\n\nNote also that we cannot use `set -e` here as this would fail for `grep`\nexit status 1: we have to use manual exit status checks.","distinct":true,"url":"https://api.github.com/repos/sociomantic-tsunami/dmxnet/commits/77773321e18099fd94d6d6b9082d96e57d646d5e"}]}
{"actor":{"display_login":"joseph-wakeling-sociomantic"}}