{"push_id":1284866635,"size":24,"distinct_size":14,"ref":"refs/heads/feature/gh24-new-hash-table","head":"92b08677b224531fe87b8413e164c2513251a97f","before":"e7c469e362f0dd8c7f0c24bbae30e28d679ff5c1","commits":[{"sha":"318cb82c7e30bcd1d00063a1e6fecd14e3cf857b","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"hash -DHv: sv_peek the hek value\n\nnot just the ptr. but beware that sv_peek will recurse into -DH,\nso we need to turn it off while being there.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/318cb82c7e30bcd1d00063a1e6fecd14e3cf857b"},{"sha":"7a0749256ebb5df22b6ade6ba7b58b9a583b781d","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Net-Ping: fix t/020_external.t without net\n\nwithout internet connection or resolver\nskip ping(\"www.google.com\") test","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/7a0749256ebb5df22b6ade6ba7b58b9a583b781d"},{"sha":"1e0f2c175c9cb7d38dee3fabd4025dc49fef5a8e","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Revert hash part of 64bit upgrade, U32 keys only\n\nrevert a third part of 5484e6b881b0d997d55e3eb71959e62a0d8f36bf\nwe only want to allow max U32 hash keys, not SSize_t (63bit on 64bit).\n\nBiggest reason is that we dont want to hash 64bits, 2x slower for all cases.\nAnd allowing 63bit strings and arrays already stresses the OS too much.\n32-63bit hashes need to be used via tie to external dictionaries.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/1e0f2c175c9cb7d38dee3fabd4025dc49fef5a8e"},{"sha":"e7ad74632d3e58f453e829a360fe7660cb048c4d","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"mro: no Perl_ prefix, whitespace, riter loops\n\nsimplify mro_core, use simplier calls without Perl_\nstandardize whitespace.\n\nchange riter to use U32, we cannot start with -1.\nchange the riter loops to start at 0.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/e7ad74632d3e58f453e829a360fe7660cb048c4d"},{"sha":"636a719a77b445c478be0217e839b7b5d641644e","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"embed.fnc: whitespace","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/636a719a77b445c478be0217e839b7b5d641644e"},{"sha":"e1eebc216b6ddb517866782586ce7dc4d473897a","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Internals-DumpArenas: print empty arrays and hashes as such","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/e1eebc216b6ddb517866782586ce7dc4d473897a"},{"sha":"8d122df4d7316fde576154ac6f883ba5655fee4a","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"B: fix B::HV::MAX and KEYS type for cperl5.25\n\nU32 not STRLEN anymore.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/8d122df4d7316fde576154ac6f883ba5655fee4a"},{"sha":"924f4af816192523794f9db1d1aaf807aea480de","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"perlcdelta for U32 hashes\n\nCloses GH #193","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/924f4af816192523794f9db1d1aaf807aea480de"},{"sha":"00d4ee8a34a27b68942043801d16bc30cbc7382b","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"New error \"Too many elements\" on array or hash overflow\n\nAvoid $ary[2147483648] silently accessing $ary[-1] (32bit, 64bit analog).\nThrow now an error when extending a hash table beyond U32, before it was\nsilently ignored.\n\nAdditionally to 5.24c add a compile-time UV overflow\ncheck for shaped arrays with multideref.\n\nCloses #194","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/00d4ee8a34a27b68942043801d16bc30cbc7382b"},{"sha":"0480904f726818420919baf7bce4087f95c476fc","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":".git-rr-cache Too many elements","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/0480904f726818420919baf7bce4087f95c476fc"},{"sha":"5bfc28fec56da0fbcfb6c7e0646ecb517ce36784","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"hash: refactor hash loops (WIP)\n\n* move utf8 flag to len. accessed directly as bitfield/word union.\n* use faster cmp with static hekcmp on the stack if <256 len.\n  with HAVE_ALLOCA we could avoid this limit and the branch at all.\n* to not try to fetch/exists/delete when !HvTOTALKEYS(hv),\n* do not even calc hash until we need it in hv_store.\n* fix some masked_flags to only use HVhek_WASUTF8 explicitly, nothing else.\n\nAdd some combined accessors:\nHEK_LEN_UTF8, HEK_FLAGS_UTF8 resp. HeKFLAGS_UTF8, HeKLEN_UTF8\n\nMixed endian = big endian: We assume mixed endian to have the MSB at first.\nIf not, the faster word accessor HEK_LEN_UTF8 needs to be split into the two old\nvariants.\n\nPerformance: bench.pl (mixed ackerman) is 5.43% faster,\nbut the micro-benchmarks from perlbench-run are 4% slower.\n\nbench.pl:\n\nmy @a = (0..31);\nmy %h = (1..100);\nmy $s = '0123456789';\nsub f {\n    my ($n) = @_;\n    $n % 2 and bless{1..4} and $h{$n} and $a[$n] and $s =~ s/$/../;\n    $n<2 and return $n;\n    f($n-1)+f($n-2)\n}\nf(27)","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/5bfc28fec56da0fbcfb6c7e0646ecb517ce36784"},{"sha":"18b9ad01beacbdd9a1919c26cd3f3409592ebc85","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"disable HV_STATIC_HEKCMP for now\n\n8% slower with modern Core-2 CPUs and\nPERL_PERTURB_KEYS_TOP with much less collisions.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/18b9ad01beacbdd9a1919c26cd3f3409592ebc85"},{"sha":"f5061f4d21353414ca7cd30762e5cd2ce392e90e","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"hash: add bool HeKSVKEY(he), HEK_IS_SVKEY(hek)\n\nto check if a he is HEf_SVKEY (now checks hek_len_utf8 which is unsigned).\nand replace all `HeKLEN(entry) == HEf_SVKEY` with `HeKSVKEY(entry)`.\nInternally we check and set the full word, i.e. HEK_LEN_UTF8.\n\nNote that the mg_len still is signed and uses HEf_SVKEY (-2).\n\nMight want to change some XS modules, which checks the signed hek_len\nagainst HEf_SVKEY, which needs to mask the HEK_LEN value.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/f5061f4d21353414ca7cd30762e5cd2ce392e90e"},{"sha":"10ae6c7d07138613a91f3d2b7a7b2e13f49bf88d","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Cpanel-JSON-XS: cperl change for HeKSVKEY(he)","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/10ae6c7d07138613a91f3d2b7a7b2e13f49bf88d"},{"sha":"99ae320c78297eaf312dbc29f2192f88d96bcb77","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Internals-DumpArenas: cperl change for HeKSVKEY(he)","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/99ae320c78297eaf312dbc29f2192f88d96bcb77"},{"sha":"d4f7b27ba8c372266becf9e95a9da747b9171ddd","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Hash-Util: cperl change for HeKSVKEY(he)","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/d4f7b27ba8c372266becf9e95a9da747b9171ddd"},{"sha":"6c1cd59bfb48d733a1d23e37e88ad3d11fb673ed","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"HeSVKEY: make HEf_SVKEY -2 again\n\nlots of logic checks HEf_SVKEY < 0 (in magic code).\nrather mask the 31bits in hv.h if used outside of CORE.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/6c1cd59bfb48d733a1d23e37e88ad3d11fb673ed"},{"sha":"2aea10a6916c5e052244fbf34f6239dcc79aa49c","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"hash: skip he chain !hent_hek\n\nthe hent_next is !NULL even if hent_hek is empty.\nneed to check who broke the chain: feature/gh24-new-hash-table did it.\n\nbefore every hash lookup involved chaining 30 entries, even if the hek was empty.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/2aea10a6916c5e052244fbf34f6239dcc79aa49c"},{"sha":"90c178540e91a02597b5ae8b72f96f21eda49876","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"t/test.pl: improve like_yn\n\nreplace $_[1] with the explicit $got argument.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/90c178540e91a02597b5ae8b72f96f21eda49876"},{"sha":"f0643e4498e0ee94bb2c8df6527389b143f44d71","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"hash: add HePLACEHOLDER, add cycle check\n\nthe problem is entry=HeNEXT(entry) with IO::File, when\nthe key is taken from strtab.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/f0643e4498e0ee94bb2c8df6527389b143f44d71"}]}
{"actor":{"display_login":"rurban"}}