summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* op.c: Add debugging dump functionKarl Williamson2019-11-065-4/+53
| | | | This function dumps out an inversion map
* op.h: Add synonyms for some tr/// valuesKarl Williamson2019-11-061-0/+3
|
* Change names of some OPpTRANS flagsKarl Williamson2019-11-064-92/+97
| | | | | | | These two flags will shortly become obsolete, replaced by ones with different meanings. This flag makes the new ones the normal ones, and makes the old names synonyms so that code that refers to them can compile.
* doop.c: Refactor do_trans_complex()Karl Williamson2019-11-062-14/+27
| | | | | | | I had trouble understanding how this uncommented routine worked. And it turned out to be broken, squeezing the pre-transliterated characters instead of the post-transliterated ones. This fixes the TODO test added in the previous commit.
* t/op/tr.t: Add tests, incl. a TODOKarl Williamson2019-11-061-10/+46
| | | | | | | | This adds a TODO test which demonstrates that the current tr/// is broken, to be fixed by the next commit. It adds other tests designed to stress the forthcoming revisions in the implementation of tr///.
* doop.c: Change name of variableKarl Williamson2019-11-061-9/+9
| | | | This helped me understand what was going on in this function
* doop.c: Change out-of-bounds valueKarl Williamson2019-11-062-2/+3
| | | | | | This currently uses 0xfeedface as a marker for something that isn't a legal value. But that could in fact become legal at same point. This defines a value TR_OOB that can be guaranteed not to become legal.
* doop.c: Add, revise commentsKarl Williamson2019-11-061-16/+31
|
* op.c: Simplify expression.Karl Williamson2019-11-061-3/+2
| | | | | This also makes sure 'struct_size' has the correct value in it for any future uses.
* regen/ebcdic.pl: Add tables that partition by UTF-8 lengthKarl Williamson2019-11-062-1/+161
| | | | | These will be used in a future commit. This creates equivalence classes of ranges of code points whose UTF-8 representations are the same length
* op.c, doop.c Use mnemonics instead of numeric valuesKarl Williamson2019-11-063-22/+36
| | | | For legibility and maintainability
* doop.c: Add a parameter to a few fcnsKarl Williamson2019-11-064-30/+18
| | | | | instead of deriving it each time from inside the function. This is in preparation for future commits.
* Change macro name in tr/// codeKarl Williamson2019-11-063-18/+22
| | | | This makes it more mnemonic. Also add an explanation in toke.c
* op.c: Comments onlyKarl Williamson2019-11-061-3/+5
| | | | Indent for clarity, and add a comment
* doop.c, op.c: White-space onlyKarl Williamson2019-11-062-102/+103
| | | | Remove trailing blanks and outdent a doubly indented block
* op.c: Indent some codeKarl Williamson2019-11-061-102/+102
| | | | | This is in preparation for a future commit which will surround this with an 'if'.
* toke.c: comment, White-space onlyKarl Williamson2019-11-061-2/+3
| | | | Wrap a too-long line
* Allow core to work with code points above IV_MAXKarl Williamson2019-11-062-1/+7
| | | | | Higher has been reserved for core use, and a future commit will want to finally do this.
* Move some static fcns from regcomp.c to invlist_inline.hKarl Williamson2019-11-065-172/+185
| | | | | They are still only accessible from regcomp.c, but this is in preparation for them to be usable from other core files as well.
* regcomp.c: Change name of static function.Karl Williamson2019-11-064-11/+11
| | | | This removes an unnecessary leading underscore
* invlist_inline.h: White space onlyKarl Williamson2019-11-061-1/+5
| | | | Fold a too-long line
* invlist_inline.h: Restrict files symbols are inKarl Williamson2019-11-061-1/+1
| | | | These are only needed in regcomp.c, so restrict them to that file
* Update IO-Compress to CPAN version 2.089Chris 'BinGOs' Williams2019-11-0643-335/+956
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [DELTA] 2.089 3 November 2019 * bin/streamzip Add zipstream to EXE_FILES https://github.com/pmqs/IO-Compress/issues/5 7f5ed78e5652125c9ba78aab720e18d384d59c00 fb8cd6480af6303f58fd2e12d4999cd1830f0c5f 2.088 31 October 2019 * t/105oneshot-zip-only.t Fix reset of CompSize 6034da95f1dc5a594edc0d26e6add8d86990ad56 * Add Support Details ad66b6ec4cf175a70e53f74572eed5f403648f11 * Update site for Bzip2 to sourceware 77497aeb2a234889a2b2c4ac7ea2f620895b16a9 * Fix number of tests bc4e234449a82fb00f66af752dfc4c96097b2a4d * Add streamzip script to bin 76d2795d0587bafb0cc398e97142740acba82a42 * zipdetails * Update zipdetails to version 1.11 8958cb3aa90745a4b3369479846846fdca6b4f76 * Zip64 extra field typo f186380d701fe5257f9fc92d69160dc6382cfc24 * t/105oneshot-zip-only.t test with deflated directory 16bfffcf5089af67cb7f68685cc61d06409cba73 * t/105oneshot-zip-only.t Add test for encrypted Zip files 5ad813115aed000f88d7df28261b43c00ae56525 2c64e255feb5a1ee33d033f7eccb6feca12ebe97 * Documentation Updates https://github.com/pmqs/IO-Compress/issues/2 e1fd0d4eda0a8496981cbd83ad06906f4ae586a5 * Mention xz, lzma etc https://github.com/pmqs/IO-Compress/issues/4 126f7b9da97b572d0fb89a9bdcc190c5405c72b8
* Update Compress-Raw-Bzip2 to CPAN version 2.089Chris 'BinGOs' Williams2019-11-0613-48/+48
| | | | | | | | | | | | | | | | [Delta] 2.089 3 November 2019 * No Changes 2.088 31 October 2019 * Add Support Details 37e04fb3dc50287a3512b004282425c6eedb8af6 * upgrade to Bzip2 1.0.8 027a30848ee57731b435d2ea7af09e532bf6fbfd
* Update Compress-Raw-Zlib to CPAN version 2.089Chris 'BinGOs' Williams2019-11-062-2/+8
| | | | | | | | | | | | | | | | [DELTA] 2.089 3 November 2019 * No Changes 2.088 31 October 2019 * Add SUPPORT section d348ad76c2073a2973d094891fbd0c2e24bf397d * 000prereq.t: dump Perl version e1afe502818cb1ccf5bad917b14b029b408f47f1
* prevent a race between name-based stat and an open modifying atimeTony Cook2019-11-071-2/+4
| | | | | | | | | Most linux systems rarely update atime, so it's very unlikely for this issue to trigger there, but on a system with classic atime behaviour this was a race between open modifying atime and time() ticking over. gh #17234
* add defensive parensYves Orton2019-11-061-29/+29
|
* rework U8TOxx_LE macros to force unsigned accessYves Orton2019-11-061-17/+47
| | | | | | | | | This introduces a _shifted_octet() utility macro to make things more clear, it also adds support for USE_UNALIGNED_PTR_DEREF for little-endian platforms that allow unaligned access. This must be manually defined and ONLY affects little endian builds currently, and is there primarily for -g builds on x86 (eg for perl developers themselves).
* Fix the UTO*_LE macrosMatt Turner2019-11-051-6/+6
| | | | | | | | | | | Embarrassingly I got confused and swapped them (BYTEORDER == 0x1234 etc is not great...). Somehow the perl test suite still passes with this, but fortunately the test suite for modules like Algorithm-MinPerfHashTwoLevel caught the problem. Fixes: https://github.com/Perl/perl5/issues/17244 Fixes: https://github.com/Perl/perl5/issues/17247 Fixes: https://rt.cpan.org/Ticket/Display.html?id=130890
* Remove compiler in .travis.ymlSteve Peters2019-11-051-6/+0
| | | SInce `clang` was removed as a compiler option in the previous change to `.travis.yml`, no need to exclude Linux from using it. Also, no need for the excludes for OS X since was removed.
* perlop.pod: Slight clarificationKarl Williamson2019-11-051-1/+1
|
* toke.c: comment changesKarl Williamson2019-11-051-9/+2
| | | | | These should have been included in 0c311b7c345769239f38d0139ea7738feec5ca4d
* gv.c: SVf needs to be surrounded by spacesKarl Williamson2019-11-051-2/+2
| | | | perl can be compiled with C++, and this is illegal there.
* Remove unused `key` and `orig_keyword` parameters from `yyl_key_core`Dagfinn Ilmari Mannsåker2019-11-051-3/+5
| | | | | They were only ever passed as zeros, so just make them local to the function.
* Rename `tmp` local to `key` in `yyl_keylookup`Dagfinn Ilmari Mannsåker2019-11-051-9/+9
| | | | Also only initialise it just before it's actually used.
* Remove unused `key` parameter from `yyl_just_a_word`Dagfinn Ilmari Mannsåker2019-11-051-13/+12
|
* t/re/speed.t: increase timeoutDavid Mitchell2019-11-051-1/+2
| | | | | | | Test 58 is supposed to finish in milliseconds, or take 10s of seconds if it hits the bug. It currently tests for <= 1s and is failing occasionally in smokes. Increase the timeout to 2s and see if the issue goes away. Also add a diag() to display the elapsed time on failure.
* enforce strict for barewords in multiconcatTony Cook2019-11-042-0/+10
| | | | gh #17254
* Doc: fix sv_setsv_cow referenceSergey Aleynikov2019-11-041-1/+1
| | | | It's no more present in pp_hot.c
* S_gv_fetchmeth_internal fix STRLEN warningNicolas R2019-11-041-3/+3
| | | | | | | | | | Fixes #17250 cast STRLEN to int Fix warnings from recent change GH #17222 We could also consider casting it using ' x & PERL_INT_MAX'
* [MERGE] Even smaller tokeAaron Crane2019-11-042-1767/+1789
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This continues the work merged in 5015bd0bb5ee7e0fa1ede1669bdfcd7bb5f10ebd, factoring code out of Perl_yylex() and its callees, in the hope of making the lexer easier to understand locally. The work in the previous branch used unbounded tail recursion in some places. Some compilers may have been able to compile the tail-recursive calls as jumps under some optimisation modes, but we cannot rely on that. So this further work replaces the unbounded recursion with gotos or other control structures. It's a little annoying not to have been able to eliminate those gotos, but these remaining gotos all occur within a function that's considerably smaller and easier to understand, and they merely jump all the way back to the top of that function. After these changes, the largest remaining piece of Perl_yylex() is just over 900 lines (down from originally >4100), and consists of a single switch statement, all of whose case groups are independent. This branch also contains a note in perldelta that this major refactoring has taken place. Closes #17220
| * perldelta for recent toke.c refactoringAaron Crane2019-11-041-7/+7
| |
| * toke.c: const-ify formbrack parametersAaron Crane2019-11-041-2/+2
| |
| * toke.c: replace recursive calls to yyl_try() with gotoAaron Crane2019-11-041-15/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The downside of writing these calls recursively is that not all compilers will compile the tail-position calls as jumps; that's especially true in earlier versions of this refactoring process (where yyl_try() took a large number of arguments), but it's not in general something we can expect to happen — especially in the presence of `-O0` or similar compiler options. This can lead to call-stack overflow in some circumstances. Most recursive calls to yyl_try() occur within yyl_try() itself, so we can easily replace them with an explicit `goto` (which is what most compilers would use for the recursive calls anyway, now that yyl_try() takes ≤3 parameters). There are only two other recursive-call cases. One is yyl_fake_eof(), which as far as I can tell is never called repeatedly within a single file; this seems safe. The other is yyl_eol(). It has exactly two distinct return paths, so this commit moves the retry logic into its yyl_try() caller. With this change, we no longer seem to trigger call-stack overflow. Closes #17220
| * toke.c: delete unused bof parametersAaron Crane2019-11-041-14/+13
| |
| * toke.c: don't pass around a copy of PL_parser->saw_infix_sigilAaron Crane2019-11-041-56/+65
| | | | | | | | | | | | | | | | | | | | | | | | There's exactly one place where we need to consult it (and that only for producing good error messages in a specific group of term-after-term situations). The reason for passing it around was so that it could be reset to false early on in the process of lexing a token, while then allowing the three separate cases that might need to set it true to do so independently. Instead, centralise the logic of determining when it needs to be true.
| * toke.c: remove some spurious orig_keyword usesAaron Crane2019-11-041-6/+4
| |
| * toke.c: remove formbrack argument from yyl_try()Aaron Crane2019-11-041-23/+20
| | | | | | | | | | With this commit, yyl_try() has few enough arguments that the RETRY() macro no longer serves any useful purpose; delete it too.
| * toke.c: delete weird initial_state arg to yyl_try()Aaron Crane2019-11-041-20/+13
| | | | | | | | | | | | | | I thought I was going to end up using this for more stuff, but I've found better approaches. This commit also removes two more goto targets.
| * toke.c: factor out static yyl_keylookup()Aaron Crane2019-11-041-157/+143
| |