{"push_id":1261138897,"size":19,"distinct_size":0,"ref":"refs/heads/bugfix/dXSUB_SYS-gh68","head":"245c21804db185d3248f5a08cd153a86736220b6","before":"593394b80bd8a73c2621e4de286f6761e2686fd0","commits":[{"sha":"b0f4e090e2608c2fb2dd5abaa6f761a38724a8b2","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"hek: simplify HVhek_MASK to utf8 only\n\nHVhek_MASK is only needed during hash collision comparisons.\nThere we only need the 2 UTF8 bits: HVhek_UTF8 and HVhek_WASUTF8,\nbut not the 3 others: UNSHARED, TAINTED, STATIC. (the 2 last being\ncperl-only)\n\nHVhek_ENABLEHVKFLAGS is now not needed anymore.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/b0f4e090e2608c2fb2dd5abaa6f761a38724a8b2"},{"sha":"229e81e41a6e371736212fdf0ec0d90e9129a25d","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"hash: strEQc + -DH improvements\n\nprefer strEQc over strnEQ.\nprefix the -DH hex action code with 0x","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/229e81e41a6e371736212fdf0ec0d90e9129a25d"},{"sha":"cbf599359af18b2f780e4af6501913c910209e5c","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Sys-Syslog: relax TRAVIS/darwin test failures\n\nSee e.g. https://travis-ci.org/perl11/cperl/jobs/154112450","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/cbf599359af18b2f780e4af6501913c910209e5c"},{"sha":"d567c2226e8282212ec7c39b6c6e9fc434a780a2","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Fix RT#129027 segv in mess_sv\n\nWe cannot report a location of an error when we already freed curcop\nFixes https://rt.perl.org/Public/Bug/Display.html?id=129027","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/d567c2226e8282212ec7c39b6c6e9fc434a780a2"},{"sha":"cb9f7d31c67c4793817c86fe6de88181aa435ee4","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"Fix RT#125351 ck_shift NULL compcv\n\nDo not access an empty PL_compcv.  The syntax error\nis reported lateron.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/cb9f7d31c67c4793817c86fe6de88181aa435ee4"},{"sha":"cf97ba57f6539843ff5c9f95eaaadd6fd1d6faeb","author":{"name":"Father Chrysostomos","email":"37fa7a34a8d5b6053ff1321531490229a194a5be@cpan.org"},"message":"[perl #126482] Fix assert fail ‘a_const a_const’\n\nMentioning a constant twice in a row results in an assertion failure:\n\n$ ./miniperl -e 'sub ub(){0} ub ub'\nAssertion failed: (SvTYPE(cv) == SVt_PVCV || SvTYPE(cv) == SVt_PVFM), function Perl_cv_const_sv_or_av, file op.c, line 7926.\nAbort trap: 6\n\nA bisect points to 2eaf799e7, but I don’t understand why that commit\nintroduced it.  I suspect it was failing an assertion for a slightly\ndifferent reason back then, but am too lazy to check.\n\nIn any case, it fails now because, while ‘ub ub’ is being compiled,\nwhen the sub is looked up initially (in toke.c:yylex), we call\nrv2cv_op_cv with the RV2GVOPCV_RETURN_STUB flag, which allows a\nbare constant ref to be returned.  So the ‘cv’ variable contains\nan RV (\\0):\n\n\t\t    cv = lex\n\t\t\t? isGV(gv)\n\t\t\t    ? GvCV(gv)\n\t\t\t    : SvROK(gv) && SvTYPE(SvRV(gv)) == SVt_PVCV\n\t\t\t\t? (CV *)SvRV(gv)\n\t\t\t\t: ((CV *)gv)\n\t\t\t: rv2cv_op_cv(rv2cv_op, RV2CVOPCV_RETURN_STUB);\n\n(‘ub’ here is a constant 0, which is stored in the symbol table as\n\\0; i.e., ‘sub ub(){0}’ is equivalent to ‘BEGIN { $::{ub} = \\0 }’.)\n\nThen if we see a word immediately following it (the second ‘ub’) we\ncheck a little further down to see whether it might be a method call.\nThat entails calling intuit_method, which does this:\n\n\tindirgv = gv_fetchpvn_flags(tmpbuf, len, ( UTF ? SVf_UTF8 : 0 ), SVt_PVCV);\n\tif (indirgv && GvCVu(indirgv))\n\t    return 0;\n\nSo we are looking to see whether the second word refers to a sub and\ndeciding this is not an indirect method call if there is a sub.\n\nBut calling gv_fetchpvn_flags like that has the effect of upgrading\nthe symbol table entry to a full GV.  Since the ‘cv’ variable in yylex\npoints to that symbol table entry, it ends up pointing to a GV, which\ncertain code later on does not expect to happen.\n\nSo we should pass the GV_NOADD_NOINIT flag to gv_fetchpvn_flags to\nprevent lookup of the second bareword from upgrading the entry (we\nalready do that earlier in intuit_method for the first bareword).  We\nonly check the GV to see whether it has a sub or io thingy in it any-\nway, so we don’t actually need a full GV.  (As a bonus, GvIO will\nalready work on a non-GV and return NULL, so that part of the code\nremains unchanged.)","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/cf97ba57f6539843ff5c9f95eaaadd6fd1d6faeb"},{"sha":"eee4813486078dba817c5de820cd7d3e76335337","author":{"name":"Karl Williamson","email":"2feb030871c150b01b91007f61aaa19bb91d66bd@cpan.org"},"message":"Move some global destruction to where it belongs\n\nOut of ignorance, I put this locale global destruction in the per-thread\ndestruction code, leading to segfaults on at least Darwin.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/eee4813486078dba817c5de820cd7d3e76335337"},{"sha":"a492b9d6a36220c930826ddc3f6925cb990105fa","author":{"name":"Father Chrysostomos","email":"37fa7a34a8d5b6053ff1321531490229a194a5be@cpan.org"},"message":"parser.h: Use UV for string delims\n\nWe will need to store characters > 255 in here.\n\nAlso, cast accordingly in toke.c.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/a492b9d6a36220c930826ddc3f6925cb990105fa"},{"sha":"bd9c7eae010093fac33936294c9762c5f6fd8339","author":{"name":"Father Chrysostomos","email":"37fa7a34a8d5b6053ff1321531490229a194a5be@cpan.org"},"message":"[perl #128701] Fix err msg for Unicode delimiters\n\nThe output of\n\n    perl -CS -e 'use utf8; q«'\n\nis now correctly:\n\n    Can't find string terminator \"«\" anywhere before EOF at -e line 1.\n\nPreviously, the first byte of the delimiter (as encoded in UTF-8)\nwould be used instead:\n\n    Can't find string terminator \"Â\" anywhere before EOF at -e line 1.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/bd9c7eae010093fac33936294c9762c5f6fd8339"},{"sha":"3a03a74426ff81a30eed51af303a1e28c6edaf0b","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"scan_str: use singe-byte PL_multi_open\n\nPL_multi_open is now multibyte (UV), but we check here only for single\nbytes","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/3a03a74426ff81a30eed51af303a1e28c6edaf0b"},{"sha":"bb3961e52f74b7bacc9cbc8e7d618277fbcde4d1","author":{"name":"Father Chrysostomos","email":"37fa7a34a8d5b6053ff1321531490229a194a5be@cpan.org"},"message":"Handle missing Unicode heredoc terminators correctly","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/bb3961e52f74b7bacc9cbc8e7d618277fbcde4d1"},{"sha":"106da7864cea58912e8e53bf4653d7d8e8a934b6","author":{"name":"Father Chrysostomos","email":"37fa7a34a8d5b6053ff1321531490229a194a5be@cpan.org"},"message":"Add tests for runaway q«« strings\n\nfixed by a2775dfdc (cb65013 in perl5).\n\nSigned-off-by: Reini Urban <rurban@cpanel.net>","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/106da7864cea58912e8e53bf4653d7d8e8a934b6"},{"sha":"8aa90a35abcb3ee8d2048acac1a73b856d99aa70","author":{"name":"David Mitchell","email":"79caf591e37e1438a2d55ae59670d5cd0d717764@iabyn.com"},"message":"\"\" . open(my $fh,...) gave wrong warning\n\nRT #128940\n\n    $ perl -we 'print \"\" . open my $fh, \"<\", \"no / such / file\"'\n    Use of uninitialized value $fh in concatenation (.) or string at -e line 1.\n                           ^^^","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/8aa90a35abcb3ee8d2048acac1a73b856d99aa70"},{"sha":"86a554898ee8cc2f1b7dc8f468faa4b7169f2110","author":{"name":"David Mitchell","email":"79caf591e37e1438a2d55ae59670d5cd0d717764@iabyn.com"},"message":"buffer overflow in \"string terminator\" err msg\n\nRT #128952\n\nIn\n    eval \"q\" . chr(100000000064);\n\ngenerating the error message C<Can't find string terminator \"XXX\"'>\nwas overrunning a buffer designed to hold a single utf8 char, since\nit wasn't allowing for the \\0 at the end.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/86a554898ee8cc2f1b7dc8f468faa4b7169f2110"},{"sha":"b736bdfff17933b44e92f450682adb5082af7d4e","author":{"name":"Father Chrysostomos","email":"37fa7a34a8d5b6053ff1321531490229a194a5be@cpan.org"},"message":"[perl #128951] Fix ASan error with @{\\327\n\nBy \\327 I mean character number 327 in octal.\n\nWithout memory tools like ASan, it produces garbled output.  The added\ntest fails like this:\n\n# Failed test 18 - @ { \\327 \\n - used to garble output (or fail asan) [perl \\#128951] at ./test.pl line 1058\n#      got \"Unrecognized character \\\\xD7; marked by <-- HERE after \\x{a0}\\x{f6}@3\\x{a8}\\x{7f}\\000\\000@{<-- HERE near column -1 at - line 1.\"\n# expected \"Unrecognized character \\\\xD7; marked by <-- HERE after @{<-- HERE near column 3 at - line 1.\"\n\nDave Mitchell’s explanation from the RT ticket:\n> The src code contains the bytes:\n>\n>     @ { \\327 \\n\n>\n> after seeing \"@{\" the lexer calls scan_ident(), which sees the \\327 as an\n> ident, then calls S_skipspace_flags() to skip the spaces following the\n> ident.  This moves the current cursor position to the \\n, and since that's\n> a line boundary, its updates PL_linestart and PL_bufptr to point to \\n\n> too.\n>\n> When it finds that the next char isn't a '}', it does this:\n>\n>             /* Didn't find the closing } at the point we expected, so restore\n>                state such that the next thing to process is the opening { and */\n> \t    s = SvPVX(PL_linestr) + bracket; /* let the parser handle it */\n>\n> i.e. it moves s back to the \"{\\317\" then continues.\n>\n> However, PL_linestart doesn't get reset, so later when the parser\n> encounters the \\327 and tries to croak with \"Unrecognized character %s ...\",\n> when it prints out the section of src code in error, since s < PL_linestr,\n> negative string lengths and ASAN errors ensue.\n\nThis commit fixes it by passing the LEX_NO_INCLINE flag (added by\n21791330a), which specifies that we are not trying to read past the\nnewline but simply peek ahead.  In that case lex_read_space does not\nreset PL_linestart.\n\nBut that does cause problems with code like:\n\n${;\n#line 3\n\n}\n\nbecause we end up jumping ahead via skipspace without updating the\nline number.  So we need to do a skipspace_flags(..., LEX_NO_INCLINE)\nfirst (i.e., peek ahead), and then when we know we don’t need to go\nback again we can skipspace(...) for real.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/b736bdfff17933b44e92f450682adb5082af7d4e"},{"sha":"d7e1522fa39de20dd5f7f672c1e0ef1413381ef2","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":"maxo++ in custom_op_register\n\nThe static number of OPs is determined by MAXO,\nbut users can add custom ops.\n\nNote that perl5.25.4 removes the dynamic part maxo.\nI find it useful, as only maxo returns the number of ops.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/d7e1522fa39de20dd5f7f672c1e0ef1413381ef2"},{"sha":"96281806e7b60161d1420609f70312fd913bd802","author":{"name":"Father Chrysostomos","email":"37fa7a34a8d5b6053ff1321531490229a194a5be@cpan.org"},"message":"[perl #126041] Only clear LS_COLORS for glob\n\nWhen miniperl calls csh to implement glob(), we clear %ENV temporarily\nto avoid csh dying on invalid values for things like LS_COLORS.  That\nhas proven to have far too many problems, since many system-dependent\nenv vars are necessary for calling an external process.  See the RT\nticket for details.\n\nA better solution is temporarily to clear only those vars that are\nknown to be problematic and make csh possibly fail.  There only hap-\npens to be one of those at present, namely LS_COLORS.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/96281806e7b60161d1420609f70312fd913bd802"},{"sha":"db5c33a91b9b1396c0f09743648c03cc7e5a06a5","author":{"name":"Daniel Dragan","email":"5a6b7f04a018f04b3797245d9d819fcd593a8fa5@hotmail.com"},"message":"#126041 preserve systemroot env var during env wipe for Win32 in magic.t\n\nThis fixes a test fail with VC 2005 on WinXP in magic.t. See perl #126041\nfor an example of the failure. Systemroot env var is required on WinXP to\nload SXS tracked DLLs, VC 2005 and 2008's MS libc's are SXS tracked\n(before and after are not), so once %ENV is wipe and systemroot is deleted\nthe require Win32; cant load the XS DLL because the XS DLL is linked\nagainst the SXS tracked libc specific to 2005/2008.","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/db5c33a91b9b1396c0f09743648c03cc7e5a06a5"},{"sha":"245c21804db185d3248f5a08cd153a86736220b6","author":{"name":"Reini Urban","email":"124d4de0b2391c49441429d4e282b8f880187ae3@cpanel.net"},"message":".git-rr-cache: merge-5.25 branches","distinct":false,"url":"https://api.github.com/repos/perl11/cperl/commits/245c21804db185d3248f5a08cd153a86736220b6"}]}
{"actor":{"display_login":"rurban"}}