In perl.git, the branch smoke-me/khw-onepass has been created <https://perl5.git.perl.org/perl.git/commitdiff/a32646a65de4ddf462961a1ef136151fcded13cf?hp=0000000000000000000000000000000000000000>
at a32646a65de4ddf462961a1ef136151fcded13cf (commit) - Log ----------------------------------------------------------------- commit a32646a65de4ddf462961a1ef136151fcded13cf Author: Karl Williamson <k...@cpan.org> Date: Thu Oct 11 15:58:41 2018 -0600 smoke commit f0bda75a1ed17f0da2affefeae82e5befe1d15bf Author: Karl Williamson <k...@cpan.org> Date: Mon Oct 8 08:00:39 2018 -0600 regcomp.c: Consolidate 2nd pass for warnings Warnings have to generally be delayed being output until the 2nd pass, as the first pass can be restarted multiple times, and so the same warning could be output multiple times if the restarted code outputs a warning. Prior to this commit, there was an assert that the warnings are being output in the 2nd pass. This commit changes it so that the assert is turned into an 'if' in common code, and the dispersed 'if's that formerly were used are removed as much as possible. If that removes an indented block, this commit also outdents the block contents. commit 1baf9568e26e32af4cc56fd859f2a92cbedc4e06 Author: Karl Williamson <k...@cpan.org> Date: Mon Oct 8 07:22:47 2018 -0600 regcomp.c: Add macro for warning experimental features This consolidates the code that warns that an experimental feature is being called into a common macro. commit ec5cf668a2f36ce33ef7f0a4adf9072e267d1e31 Author: Karl Williamson <k...@cpan.org> Date: Mon Oct 8 07:06:52 2018 -0600 regcomp.c: Put common code in a macro This trivial code is extracted into a common macro in preparation for a future commit when it will become non-trivial, and hence that logic will only have to occur once. commit 0acc902b29eede805230641c44b0c7ad621bcfbf Author: Karl Williamson <k...@cpan.org> Date: Sun Oct 7 08:03:47 2018 -0600 regcomp.c: Rename macro and label These move away from talking about pass 1, in preparation for future commits. commit 6a6aedee4233a37f14a0d36f5947c3ff326c3e52 Author: Karl Williamson <k...@cpan.org> Date: Tue Oct 2 22:24:05 2018 -0600 regcomp.c: Reorder clauses in an 'if' This will help a future commit commit dc704fe5c9b83c3c00ab105b57123ecf89514772 Author: Karl Williamson <k...@cpan.org> Date: Sun Sep 30 20:34:52 2018 -0600 This reverts commit Revert "XXX regcomp.h: -Dr turns on everything" This reverts commit commit a13f447a92cb03f02ee86445c4ce884feaf3d904 Author: Karl Williamson <k...@cpan.org> Date: Sat Sep 29 21:09:32 2018 -0600 XXX regcomp.h: -Dr turns on everything commit 4540e877e7eaf8617e0dccefb1eb09d23bee7992 Author: Karl Williamson <k...@cpan.org> Date: Tue Sep 25 10:38:57 2018 -0600 regcomp.c: Use macro instead of spelling out struct details The existing macro is now used consistently throughout this file commit 20a145e28627562b6c4dabb66aa45ca97c2c951f Author: Karl Williamson <k...@cpan.org> Date: Fri Sep 21 10:51:12 2018 -0600 Revert "remove ANYOF_MATCHES_POSIXL" This reverts commit commit 476f4f5b6c7a78ae4dd1f85265901d74e6bfd4b3 Author: Karl Williamson <k...@cpan.org> Date: Fri Sep 21 10:22:39 2018 -0600 remove ANYOF_MATCHES_POSIXL commit 8373ad077c085e16c7d1cffa60498a29070f22f6 Author: Karl Williamson <k...@cpan.org> Date: Mon Sep 17 18:17:02 2018 -0600 rxi commit d97f5fc933287a41643c15fd4fb903e835f0383a Author: Karl Williamson <k...@cpan.org> Date: Sun Sep 16 22:58:23 2018 -0600 regcomp.c: Use regnode offsets during parsing This changes the pattern parsing to use offsets from the first node in the pattern program, rather than direct addresses of such nodes. This is in preparation for a later change in which more mallocs will be done which will change those addresses, whereas the offsets will remain constant. Once the final program space is allocated, real addresses are used as currently. This limits the necessary changes to a few functions. Also, real addresses are used if they are constant across a function; again this limits the changes. Doing this introduces a new typedef for clarity 'regnode_offset' which is not a pointer, but a count. This necessitates changing a bunch of things to use 0 instead of NULL to indicate an error. A new boolean is also required to indicate if we are in the first or second passes of the pattern. And separate heap space is allocated for scratch during the first pass. commit a007dd9648cccc836be4c864a89ce1df76ccf0cf Author: Karl Williamson <k...@cpan.org> Date: Thu Sep 20 11:15:00 2018 -0600 XXX regcomp.sym: ANYOF lengths Won't compile without more stuff commit d6132ad79ed2de85e84312e28dc92ffde45d25db Author: Karl Williamson <k...@cpan.org> Date: Fri Sep 21 08:33:31 2018 -0600 regcomp.h: Swap struct vs typedef This struct has two names. I previously left the less descriptive one as the primary because of back compat issues. But I now realize that regcomp.h is only used in the core, so it's ok to swap for the better name to be primary. commit cd30a0bf547d91317dab8830d8e88c3e7e456add Author: Karl Williamson <k...@cpan.org> Date: Thu Sep 20 22:24:59 2018 -0600 regcomp.c: Generate new regnode for /[[:posix:]]/l This follows on to the previous commit and generates code to use the new regnode. This allows some simplifications, with more to come in the next commit. The determination of the regnode is moved later in the function that does this; the code that backed this out if we guessed wrong is excised. commit 22ab13d984a38db04bb34083d76806f1b2e5e7d0 Author: Karl Williamson <k...@cpan.org> Date: Thu Sep 20 10:52:01 2018 -0600 regcomp.sym: Add node type ANYOF_POSIXL This is like ANYOFL, but has runtime matches of /[[:posix:]]/ in it, which requires extra space. Adding this will allow a future commit to simplify handling for ANYOF nodes. commit 0142fb76e8d3f23bda14b4bfbaf1c446ea10dcbc Author: Karl Williamson <k...@cpan.org> Date: Thu Sep 20 22:23:00 2018 -0600 regcomp.h: Add some macros These are use to allow the bit map of run-time /[[:posix:]]/l classes to be stored in a variable, and not just in the argument of an ANYOF node. This will enable the next commit to use such a variable. The current macros are rewritten to just call the new ones with the proper arguments. A macro of a different sort is also created to allow one to set the entire bit field in the node at once. commit 3d78da315055ab1b3a2a66f1395cf89eefb41546 Author: Karl Williamson <k...@cpan.org> Date: Thu Sep 20 22:21:44 2018 -0600 regcomp.h: Remove unused macros I had kept these macros around for backwards compatibility. But now I realize regcomp.h is only for core use, so no need to retain them. commit 8b61d72d70ae9c6e4279c0fe2933f7442413617e Author: Karl Williamson <k...@cpan.org> Date: Sun Sep 16 22:53:37 2018 -0600 regcomp.c: White-space, comment only commit 4e977e953a3883b832491444c5510641c734e2a7 Author: Karl Williamson <k...@cpan.org> Date: Thu Sep 20 10:23:01 2018 -0600 regcomp.h: White-space, comments only commit 14959ac2bfc496069ac86579c592bdfa6e76db97 Author: Karl Williamson <k...@cpan.org> Date: Sun Sep 16 22:35:48 2018 -0600 regcomp.c: Add conversion macros and use them This adds macros that hide the details in finding the regnode address from the offset from the beginning of the pattern's program, and vice versa. commit 58249092e5c7344d5a36c5250e82ea015d39bfec Author: Karl Williamson <k...@cpan.org> Date: Sun Sep 16 22:25:27 2018 -0600 regcomp.c: Change macro formal parameter name The parameter is not a node, but an offset into the array of nodes; The new name is clearer. commit f568f1484b0830c21861af09cc03c7bd313c9713 Author: Karl Williamson <k...@cpan.org> Date: Sun Sep 16 22:20:42 2018 -0600 regcomp.c: Use pre-existing macro This macro expands to the code it replaces. This will make a future commit easier. commit 3e299a86c78f755f923c375d5b41c345c7c15764 Author: Karl Williamson <k...@cpan.org> Date: Sun Sep 16 20:30:33 2018 -0600 regcomp.c: Rename macros; reword some panic messages These macros had the failure code hard-wired into their names. In preparation for changing that failure code, change the names and messages into more generic ones. commit 8053c5eb13a1f304669e8a9957ce5b2d35e168cf Author: Karl Williamson <k...@cpan.org> Date: Thu Sep 20 09:44:21 2018 -0600 regcomp.h: Create FILL_NODE macro and use it This is a more fundamental operation than the pre-existing FILL_ADVANCE_NODE, which is changed to use this for the portion that fills the node but doesn't advance the pointer. commit 8251705ce3083952e12693af699e0dc4b0fe264b Author: Karl Williamson <k...@cpan.org> Date: Sat Sep 15 08:17:21 2018 -0600 regcomp.c: Add #ifdefs for RE_TRACK_PATTERN_OFFSETS This is supposed to be independent of DEBUGGING, but in fact regcomp.c would not compile unless both were false or both true commit 0af5036e49de3082138d9faa74e99122b4bb369f Author: Karl Williamson <k...@cpan.org> Date: Tue Jul 24 20:26:39 2018 -0600 XXX Don't push: Run t/harness in parallel ----------------------------------------------------------------------- -- Perl5 Master Repository