{"push_id":538220940,"size":14,"distinct_size":14,"ref":"refs/heads/master","head":"2a12c20cce0928250453752b45f635c16b7762aa","before":"ea4daf3da1b6f167e627186f7fdc8906242d6efe","commits":[{"sha":"deb61656d2de02c6dd01a743e8fc77b442f92ff0","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:types: can_use_quickisa: reorder tests, based on statit info","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/deb61656d2de02c6dd01a743e8fc77b442f92ff0"},{"sha":"78a8f551c2dedc2f3ab17681b6c511d50d2a6019","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"Makefile: bootstrap: use -iquote not -I to point to lib/\n\nUsing -I, it is possible to use #include <lib/...>, as was done in\nreflect.h. The problem is that gcc then may treat files that include\nreflect.h (here nodes.h) as a system header, under certain\ncircumstances. Namely, because of a ccache recompilation avoidance trick\n(check the cpp output for differences before really deciding to\nrecompiler), gcc is passed that cpp output directly. And somehow,\nnodes.h code ends up with such a line directive:\n\n\t# 405 \"bootstrap/nodes.c\" 3 4\n\n3 is a flag that indicates it should be treated as a system header, in\nwhich most warnings are silenced.\n\nAccording to the doc of gcc, this should only happen for headers found\nin -isystem. It is not at all clear why nodes.h is seen as a system\nheader. This appears to be a gcc bug.\n\nIn any case, there is a different gcc bug in that this problem does not\nappear if\n\n\texport CCACHE_RUN_SECOND_CPP\n\nis set. Then ccache doesn't feed gcc the cpp output, but let gcc do the\nwhole chain itself. And this works just fine. gcc shouldn't behave\ndifferently with either technique.\n\nWe do set CCACHE_RUN_SECOND_CPP to limit our exposure to such\ndifferences in behavior in gcc, sticking to what is likely the most\ncommon way to use gcc.\n\n\tgcc (GCC) 4.9.2","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/78a8f551c2dedc2f3ab17681b6c511d50d2a6019"},{"sha":"043202ea5b92c8fa2cd3fd305530ab67b0f1aa9d","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:inference: fix for nullable refs in wildcard functions\n\nConvert Nonnull_cast to wildcard function. Can now write\n\n\tinline Slice_impl shallow met$ Unsafe_data = @$t\n\t        return Nonnull_cast self$dat\n\nwith no explicit generic arg.","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/043202ea5b92c8fa2cd3fd305530ab67b0f1aa9d"},{"sha":"97f560d070cc55363b5533a02062baa89dbdc7e3","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:mempool: mempool_free: noop for now, but to be added where needed\n\nWe should start keeping track of the places where we currently let\nmemory \"leak\" in the mempool. They're not real leaks, of course. But we\ncould reuse these memory locations down the road (e.g. free lists by\nsize, maybe using a given mempool only for objects of a particular\nsize).","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/97f560d070cc55363b5533a02062baa89dbdc7e3"},{"sha":"d6e26c8d3f8d585d4426b69f1f14b901370009fa","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:scope: move scope out of struct node, now via reference\n\nMost nodes don't need a scope, so we save on memory, about 10% on\n./ncc0 t00/arith.n, and a little on run time.","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/d6e26c8d3f8d585d4426b69f1f14b901370009fa"},{"sha":"ca2413c5161b00ade6be9e6bc006d52d29ac2c01","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"boostrap:constraints: statit: wasn't incrementing count_by_type","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/ca2413c5161b00ade6be9e6bc006d52d29ac2c01"},{"sha":"0f0401b9b5ace56e074edcf3cbbabe3736f22d16","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:cprinter: print_topdeps: look at non-exported from other modules\n\nIf an non-exported symbol is used by an exported inline symbol, we need\nto declare it for its (inlined) user.\n\nThis allows us to remove a number of artificially inlined and exported\nsymbols.\n\nFrom now on, inline is really only meaningful on exported symbols, and\nindicates how much information is crossing the ABI boundary between\nmodules. Inside a module, inline has no particular meaning.\n\nAs an exception, until the compiler is fixed, global lets must be marked\n'inline' explicitly if they are being used outside their module, even\nindirectly. This is because topdeps tracks dependencies on typs, and\nglobal lets are not type declarations.","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/0f0401b9b5ace56e074edcf3cbbabe3736f22d16"},{"sha":"4aacb16748e4f5e1b5700d3a5bc5e50450e5ec3f","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:cprinter: split and simplify print_linkage","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/4aacb16748e4f5e1b5700d3a5bc5e50450e5ec3f"},{"sha":"211559b1254052b204cb84e242122e4063455f8a","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:passfwd: also mark inline LETs inside a generic struct","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/211559b1254052b204cb84e242122e4063455f8a"},{"sha":"df9877c7b9ce64d8a374456599d9faf1bfcb3c1f","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap: WITHIN can appear in MODULE_BODY\n\nSkip in ssa and cprinter.","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/df9877c7b9ce64d8a374456599d9faf1bfcb3c1f"},{"sha":"ceb0430d65afbd48dbcf5362b792bbdd0749892e","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:inference: even non-implicit generic instantiations calls have wildcards\n\nWe need to handle that case too.","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/ceb0430d65afbd48dbcf5362b792bbdd0749892e"},{"sha":"483575221c29b46335803878b360575d0677fdc1","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:cprinter: let print_defintf proceed for Reflect_type","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/483575221c29b46335803878b360575d0677fdc1"},{"sha":"12287d9c46bf6f450ec4e043c63277d4644fa61f","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"bootstrap:cprinter: skip: properly detect generics when considering LET","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/12287d9c46bf6f450ec4e043c63277d4644fa61f"},{"sha":"2a12c20cce0928250453752b45f635c16b7762aa","author":{"email":"58e6b3a414a1e090dfc6029add0f3555ccba127f@nanocritical.com","name":"Eric Rannaud"},"message":"Accept recent test output changes","distinct":true,"url":"https://api.github.com/repos/nanocritical/n/commits/2a12c20cce0928250453752b45f635c16b7762aa"}]}