{"push_id":1928224004,"size":13,"distinct_size":8,"ref":"refs/heads/feature/gh138-iter-and","head":"9ab2a8adc4242affb807ae61c3d396a140c5893e","before":"85f298ea71bd78e82f0522ca1d8fc7b39473f2b2","commits":[{"sha":"d147a9366b9d62946111f1c00d5aa637b2cc59d4","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"hv_undef_flags: make public API\n\nhv_set_name is ditto.\nproper indenting.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/d147a9366b9d62946111f1c00d5aa637b2cc59d4"},{"sha":"7a503b482ce46c708c82430cb0224ac74aa3ec90","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"hash api: add docs for most hash macros","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/7a503b482ce46c708c82430cb0224ac74aa3ec90"},{"sha":"264b7f7a3118253ddf9781647b9d8d038646c177","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"fields: switch internal implementation\n\nlinear buffer of name\\0PADOFFSET in HvFIELDS(klass).\nMuch faster than the global GV lookup (nested hash lookups), into\ntwo names.\n\nAdd the \"Too many fields\" error (U16_MAX).\n\n2 temp defines for benchmarking:\n* OLD_FIELDS_GV - old API via global @%FIELDS data,\n  25% slower.\n* FIELDS_DYNAMIC_PADSIZE\n  use size 1 or 8 for padoffsets inside fields. (cache oblivious)\n  TODO: still unstable with cc -O1","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/264b7f7a3118253ddf9781647b9d8d038646c177"},{"sha":"9f9d04408bd9ab46b5c740ec9d4ea69fb73feb58","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"fields: fix optimized FIELDS_DYNAMIC_PADSIZE\n\nbypass the optimizers insistence to use a whole word from char* fields.\nCertainly a compiler bug.\n\nNow pretty fast (10% faster with FIELDS_DYNAMIC_PADSIZE),\nand uses much less memory even optimized.\n\nCloses #322 - fields API refactor","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/9f9d04408bd9ab46b5c740ec9d4ea69fb73feb58"},{"sha":"3dbf9d7f47ea40c3951edef543af1f8bf7845494","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"improve valgrind safety a bit\n\nwith -O3, check more wordwise comparisons","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/3dbf9d7f47ea40c3951edef543af1f8bf7845494"},{"sha":"61c281b223928b6fdef25c63f37439dfbf962bc5","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"iter: disable unroll loop for now\n\nit is only a TODO -Dkv message right now.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/61c281b223928b6fdef25c63f37439dfbf962bc5"},{"sha":"68dbe813a7475dcf7d59f35b403bfbac316a54b4","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"iter: change to UNOP WIP\n\ninline the subsequent OP_AND into OP_ITER\n\nnot a LOGOP since op_first is the same as op_next,\nand is not needed here.\nOTHER is always either yes or no,\niter produces it by itself.\nfirst: yes (continue), next: no (leaveloop)\n\nSee #138","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/68dbe813a7475dcf7d59f35b403bfbac316a54b4"},{"sha":"2a33b3053f2e60dd4f470afaf0256759550709d8","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"iter: make it a LOGOP\n\nto please postfix re-ordering, which fixes up\nthe sibling and next ptrs.\nThis way peep and ck have less problems, even if it\nwastes an unneded op_first ptr. This is true for all\nLOGOPs btw. where op_first is only needed for kids during\ncompilation.\n\nNote: This version is still a hack. We still have to fixup the loop\nlinklist (next ptrs) in rpeep.\n\nSpecial-case newOP for OP_ITER in newWHILEOP to reserve 2 ptrs.\nnewUNOP would alloc an unneded STUB and newLOGOP is too heavy\nand too early.\n\nAlso fix op_dump for iter.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/2a33b3053f2e60dd4f470afaf0256759550709d8"},{"sha":"8072afec7fc742752a84be91cf2ea91feb1110b7","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"iter: close iter hack in rpeep\n\nthe structure is already ok from newWHILEOP.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/8072afec7fc742752a84be91cf2ea91feb1110b7"},{"sha":"b7872a3037b8c1f5d329c5fef7f4cb33181ea414","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"iter: expr->first -> null dummy\n\nexpr is a tree, with kids.\nother is the block to be executed in the loop.\nset expr->first not empty, but need a fresh null op without siblings.\nexpr->next -> leave\n\nalso need to fixup the relink the final tree in postfix order,\nthe next and parents.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/b7872a3037b8c1f5d329c5fef7f4cb33181ea414"},{"sha":"632d8667a08ef8d0164e463cce1564d71ea915f2","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"iter: relink range and nested loopvar WIP\n\nglobal $_ loopvar or refs are nested: rv2gv -> gv _\nwith `for $_ ()`, or `for \\$ref ()`.\n\nAlso handle missing a loop var when a lexical.\n\nNote that a normal scalar symbol itervar $sv or $_ must be always\nrv2gv - gv, as enteriter/cx_pushloop_for can only handle gv or pad\nitervars, a sv is always a magic ref.\nThis should be changed to allow fast non-lexical GVSV itervars.\nOnly implicit $_ is pretty fast this way, as it does not need a rv2gv deref.\n\n- This passes all t/op/for.t tests, but crashes with make_patchnum\n at pp_iter_ary: corrupt cx->blk_loop.state_u.ary.ary\n in a nested loop.\n\nnested loops:\nSEGV:\n gmpb -Dtsk -e'@a=(0..1);for my $a (@a) { print $_ for (@a) }'\npanic:\n gmpb -Dtxk -e'my @names=qw(1 2);for my $n (@names) { for my $x (keys %ENV){print $x}}'","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/632d8667a08ef8d0164e463cce1564d71ea915f2"},{"sha":"ade11394dbefe70610d735d17bfd44efaaa72b94","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"t/op/for.t: add failing testcases\n\nfor nested loops.\nfirst segfaults (wrong next ptr),\nsecond panics with wrong pp_iter, unhandled CXt type=4.\nprobably same root cause.","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/ade11394dbefe70610d735d17bfd44efaaa72b94"},{"sha":"9ab2a8adc4242affb807ae61c3d396a140c5893e","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpan.org"},"message":"wip: simplify OpNEXT(OpLAST(listop))\n\nTODO: LINKLIST loop corrupts the LOGOP->OTHER ptr?","distinct":true,"url":"https://api.github.com/repos/perl11/cperl/commits/9ab2a8adc4242affb807ae61c3d396a140c5893e"}]}
{"actor":{"display_login":"rurban"}}