From a441552a67cccfd29199b56301f55128fb79cab1c051dcb7b8a887933983ac3a Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Sun, 28 Apr 2024 10:12:25 +0000 Subject: [PATCH 1/3] Updating link to change in openSUSE:Factory/pcre2 revision 32 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/pcre2?expand=0&rev=1c40d9260f1780f6f10629444be6cbe1 --- .gitattributes | 23 + .gitignore | 1 + baselibs.conf | 4 + pcre2-10.10-multilib.patch | 34 + pcre2-10.43.tar.bz2 | 3 + pcre2-10.43.tar.bz2.sig | Bin 0 -> 310 bytes pcre2.changes | 1411 ++++++++++++++++++++++++++++++++++++ pcre2.keyring | 39 + pcre2.spec | 262 +++++++ 9 files changed, 1777 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 baselibs.conf create mode 100644 pcre2-10.10-multilib.patch create mode 100644 pcre2-10.43.tar.bz2 create mode 100644 pcre2-10.43.tar.bz2.sig create mode 100644 pcre2.changes create mode 100644 pcre2.keyring create mode 100644 pcre2.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..0c9d64b --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,4 @@ +libpcre2-8-0 +libpcre2-16-0 +libpcre2-32-0 +libpcre2-posix3 diff --git a/pcre2-10.10-multilib.patch b/pcre2-10.10-multilib.patch new file mode 100644 index 0000000..b191633 --- /dev/null +++ b/pcre2-10.10-multilib.patch @@ -0,0 +1,34 @@ +From 1d5ce3e2e6341b01609aefab20786a8638fee17a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Tue, 6 Dec 2011 18:44:11 +0100 +Subject: [PATCH] Fix multilib + +Do not set RPATH nor add explicit -L path to compiler. +--- + pcre2-config.in | 12 ------------ + 1 file changed, 12 deletions(-) + +Index: pcre2-10.10/pcre2-config.in +=================================================================== +--- pcre2-10.10.orig/pcre2-config.in 2014-10-17 17:07:57.000000000 +0200 ++++ pcre2-10.10/pcre2-config.in 2015-06-18 20:56:20.000000000 +0200 +@@ -28,19 +28,7 @@ if test $# -eq 0; then + fi + + libR= +-case `uname -s` in +- *SunOS*) +- libR=" -R@libdir@" +- ;; +- *BSD*) +- libR=" -Wl,-R@libdir@" +- ;; +-esac +- + libS= +-if test @libdir@ != /usr/lib ; then +- libS=-L@libdir@ +-fi + + while test $# -gt 0; do + case "$1" in diff --git a/pcre2-10.43.tar.bz2 b/pcre2-10.43.tar.bz2 new file mode 100644 index 0000000..dc99e91 --- /dev/null +++ b/pcre2-10.43.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2a53984ff0b07dfdb5ae4486bbb9b21cca8e7df2434096cc9bf1b728c350bcb +size 1905255 diff --git a/pcre2-10.43.tar.bz2.sig b/pcre2-10.43.tar.bz2.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..d8e2368a06ec761436534e9b6f7a89ba42db2d4b0a1bb09679cb412afc561597 GIT binary patch literal 310 zcmV-60m=S}0W$;u0SEvc79j*h_Kj4#;y<$kn?~iAX5fVT4@1}m0%gyY*Z>L%5SM1) zg!>Oe*i&=|{xmOpdz++6-&NhfG7X^cHIz{w;=P(vYVI{?DGYn*6|t=Ln+KpGAo+LRTtReB)jrlP}5vpW0Ov0PqH1 zh5w0HU+721YV3+;sPk#yX8DGMc3KtTDN~SSxwLkgI>b>|xDh^)!DUjm+b0;AW^9>k z{B31_4(2KjGd=pNGEENogIXkK0s%(oI8+fQW>cYHI%n(e@NL + +- pcre2 10.43: + * The JIT code no longer supports ARMv5 architecture. + * A new function pcre2_get_match_data_heapframes_size() for finer + heap control. + * New option flags to restrict the interaction between ASCII and + non-ASCII characters for caseless matching and \d and friends. + There are also new pattern constructs to control these flags + from within a pattern. + * Upgrade to Unicode 15.0.0. + * Treat a NULL pattern with zero length as an empty string. + * Added support for limited-length variable-length lookbehind + assertions, with a default maximum length of 255 characters + (same as Perl) but with a function to adjust the limit. + * Perl changed the meaning of (for example) {,3} which did not + used to be recognized as a quantifier. Now it means {0,3} and + PCRE2 has also changed. Note that {,} is still not a + quantifier. + * Following Perl, allow spaces and tabs after { and before } in + all Perl- compatible items that use braces, and also around + commas in quantifiers. The one exception in PCRE2 is \u{...}, + which is from ECMAScript, not Perl, and PCRE2 follows + ECMAScript usage. + * Changed the meaning of \w and its synonyms and derivatives (\b + and \B) in UCP mode to follow Perl. It now matches characters + whose general categories are L or N or whose particular + categories are Mn (non-spacing mark) or Pc (combining + punctuation). + * Changed the default meaning of [:xdigit:] in UCP mode to + follow Perl. It now matches the "fullwidth" versions of hex + digits. PCRE2_EXTRA_ASCII_DIGIT can be used to keep it ASCII + only. + * Make PCRE2_UCP the default in UTF mode in pcre2grep and add + -no_ucp, --case-restrict and --posix-digit. + * Add --group-separator and --no-group-separator to pcre2grep. + +------------------------------------------------------------------- +Mon Dec 12 20:19:14 UTC 2022 - Andreas Stieger + +- pcre2 10.42: + * Fix 10.41 regression that added the default definition of + PCRE2_CALL_CONVENTION to pcre2posix.c instead of pcre2posix.h, + which meant that programs including pcre2posix.h but not pcre2.h + couldn't compile + * Fix an intermittent JIT fault and minor issues + +------------------------------------------------------------------- +Mon Dec 12 08:58:58 UTC 2022 - Dirk Müller + +- switch to pkgconfig(zlib) so that alternative providers can be + used + +------------------------------------------------------------------- +Tue Dec 6 21:30:50 UTC 2022 - Andreas Stieger + +- pcre2 10.41: + * pcre2grep behaves more like GNU grep for multiple patterns that + match more than once on a line + +------------------------------------------------------------------- +Sun Jul 31 06:54:48 UTC 2022 - Stephan Kulow + +- Fix the profiling call to be non-parallel again (fighting spec cleaner) + +------------------------------------------------------------------- +Thu May 5 08:15:44 UTC 2022 - pgajdos@suse.com + +- do not enable jit-sealloc [bsc#1182864] [bsc#1199208] + +------------------------------------------------------------------- +Thu May 5 06:52:30 UTC 2022 - pgajdos@suse.com + +- enable jit for s390x [bsc#1199196] + +------------------------------------------------------------------- +Sat Apr 16 10:50:31 UTC 2022 - Andreas Stieger + +- pcre2 10.40: + * Added support for Bidi_Class and a number of binary Unicode + properties, including Bidi_Control. + * A number of changes to script matching for \p and \P: + speed improvements, add the syntax \p{script:xxx} and + \p{script_extensions:xxx} (synonyms sc and scx), Changed + \p{scriptname} from being the same as \p{sc:scriptname} to + being the same as \p{scx:scriptname}, recognize the standard + Unicode 4-letter abbreviations for script names, implement + Unicode and Perl's "loose matching" rules on property names + +------------------------------------------------------------------- +Fri Nov 5 19:01:43 UTC 2021 - Andreas Stieger + +- pcre2 10.39: + * Fix incorrect detection of alternatives in first character + search in JIT + * Update to Unicode 14.0.0 + +------------------------------------------------------------------- +Sun Oct 24 14:41:00 UTC 2021 - Andreas Stieger + +- pcre2 10.38: + * Following Perl's lead, \K is now locked out in lookaround + assertions by default, but an option is provided to re-enable + the previous behaviour + +------------------------------------------------------------------- +Thu May 27 12:30:17 UTC 2021 - Andreas Stieger + +- pcre2 10.37: + * removal of the actual POSIX names regcomp etc. from the POSIX + wrapper library because these have caused issues for some + applications, replacing pcre2-symbol-clash.patch + * fix a hypothetical NULL dereference + * fix two bugs related to over-large numbers so the behaviour is + now the same as Perl + * Fix propagation of \K back from the full pattern recursion + * Restore single character repetition optimization in JIT + +------------------------------------------------------------------- +Wed Apr 14 09:57:53 UTC 2021 - Jan Engelhardt + +- Remove regcomp, regexec etc. from libpcre2-posix. + (Add pcre2-symbol-clash.patch) + +------------------------------------------------------------------- +Sat Dec 5 12:41:55 UTC 2020 - Andreas Stieger + +- pcre2 10.36: + * add GNU grep's -m (aka --max-count) option to pcre2grep + * unify the handling of substitution strings for both -O and + callouts in pcre2grep, with the addition of $x{...} and + $o{...} to allow for characters whose code points are greater + than 255 in Unicode mode + +------------------------------------------------------------------- +Wed May 13 22:24:30 UTC 2020 - Илья Индиго + +- Refresh spec-file via spec-cleaner. + * Add %make_build and %license macros. +- Update to 10.35 + * https://www.pcre.org/changelog.txt + * Use PCRE2_MATCH_EMPTY flag to detect empty matches in JIT. + * A JIT bug is fixed which allowed to read the fields + of the compiled pattern before its existence is checked. + * Added PCRE2_SUBSTITUTE_LITERAL. + * Avoid some VS compiler warnings. + * Added PCRE2_SUBSTITUTE_MATCHED. + * Added (?* and (?<* as synonms for (*napla: and (*naplb: + to match another regex engine. + * Fix *THEN verbs in lookahead assertions in JIT. + * Added PCRE2_SUBSTITUTE_REPLACEMENT_ONLY. + * The JIT stack should be freed when the low-level stack + allocation fails. + * Changed setting of CMAKE_MODULE_PATH in CMakeLists.txt from SET + to LIST(APPEND...) to allow a setting from the command line + to be included. + * Updated to Unicode 13.0.0. + * CMake build now checks for secure_getenv() and strerror(). + * Restrict the configuration setting for the SELinux compatible + execmem allocator (change 10.30/44) to Linux and NetBSD. + +------------------------------------------------------------------- +Fri Mar 27 16:26:54 UTC 2020 - Marketa Calabkova + +- Resubmit the package (bsc#1167890, jsc#SLE-11608) + +------------------------------------------------------------------- +Tue Nov 26 21:24:43 UTC 2019 - Andreas Schwab + +- Enable JIT on aarch64 + +------------------------------------------------------------------- +Fri Nov 22 19:55:35 UTC 2019 - Andreas Stieger + +- pcre2 10.34: + * implement the documented maximum number of capturing + subpatterns of 65535 + * Improve the invalid utf32 support of the JIT compiler + * Add support for matching in invalid UTF strings to the pcre2_match() + * Give more error detail for invalid UTF-8 when detected in pcre2grep + * support for invalid UTF-8 to pcre2grep. + * Adjust the limit for "must have" code unit searching, in particular, + * increase it substantially for non-anchored patterns. + * Allow (*ACCEPT) to be quantified, because an ungreedy quantifier + with a zero minimum is potentially useful. + * Some changes to the way the minimum subject length is handled + * Check for integer overflow when computing lookbehind lengths + * Implement non-atomic positive lookaround assertions + * Upgraded to Unicode 12.1.0 + * Make pcre2test -C show if libreadline or libedit is supported + * Various bug fixes and improvements + +------------------------------------------------------------------- +Thu May 2 00:36:59 UTC 2019 - Jason Sikes + +- Update to 10.33-RC1 to fix issue with LTO (boo#1133274). + * Callouts from pcre2_substitute() are now available. + + * The POSIX functions are now all called pcre2_regcomp() etc., with wrapper + functions that use the standard POSIX names. However, in pcre2posix.h the POSIX + names are defined as macros. This should help avoid linking with the wrong + library in some environments, while still exporting the POSIX names for + pre-existing programs that use them. + + * Some new options: + + (a) PCRE2_EXTRA_ESCAPED_CR_IS_LF makes \r behave as \n. + + (b) PCRE2_EXTRA_ALT_BSUX enables support for ECMAScript 6's \u{hh...} + construct. + + (c) PCRE2_COPY_MATCHED_SUBJECT causes a copy of a matched subject to be + made, instead of just remembering a pointer. + + * Some new Perl features: + + (a) Perl 5.28's experimental alphabetic names for atomic groups and + lookaround assertions, for example, (*pla:...) and (*atomic:...). + + (b) The new Perl "script run" features (*script_run:...) and + (*atomic_script_run:...) aka (*sr:...) and (*asr:...). + + (c) When PCRE2_UTF is set, allow non-ASCII letters and decimal digits in + capture group names. + + * --disable-percent-zt disables the use of %zu and %td in formatting strings + in pcre2test. They were already automatically disabled for VC and older C + compilers. + + * Some changes related to callouts in pcre2grep: + + (a) Support for running an external program under VMS has been added, in + addition to Windows and fork() support. + + (b) --disable-pcre2grep-callout-fork restricts the callout support in + to the inbuilt echo facility. + +------------------------------------------------------------------- +Wed Apr 24 17:30:36 UTC 2019 - Martin Liška + +- Disable LTO (boo#1133274). + +------------------------------------------------------------------- +Wed Jan 23 12:25:38 UTC 2019 - Bernhard Wiedemann + +- Do not run profiling in parallel for reproducible builds (boo#1040589) + +------------------------------------------------------------------- +Mon Jan 14 16:11:53 CET 2019 - kukuk@suse.de + +- Mark all license files as %license + +------------------------------------------------------------------- +Tue Dec 11 14:31:55 UTC 2018 - Cristian Rodríguez + +- Build with --enable-jit-sealloc option, otherwise when + selinux is enabled or systemd memory protections are on, + programs will fail to work with execmem violations. + +------------------------------------------------------------------- +Thu Oct 25 07:22:21 UTC 2018 - astieger@suse.com + +- pcre2 10.32: + * pcre2grep now supports the inclusion of binary zeros in + patterns that are read from files via the -f option. + * In pcre2_dfa_match(), internal recursive calls no longer use + the stack for local workspace and local ovectors + * Updated to Unicode version 11.0.0. + * (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported. + * Add support for \N{U+dddd}, but only in Unicode mode. + * Addesupport for (?^) to unset all imnsx options + +------------------------------------------------------------------- +Fri Jul 20 14:05:01 UTC 2018 - mpluskal@suse.com + +- Drop conditions for old distributions +- Do profile guided build + +------------------------------------------------------------------- +Sun Feb 18 05:15:03 UTC 2018 - avindra@opensuse.org + +- Update to new upstream release 10.31 + * New pcre2_config() options: PCRE2_CONFIG_NEVER_BACKSLASH_C and + PCRE2_CONFIG_COMPILED_WIDTHS. + * New pcre2_pattern_info() option PCRE2_INFO_EXTRAOPTIONS to + retrieve the extra compile time options. + * Public names for all pcre2_compile() error numbers. + * Added PCRE2_CALLOUT_STARTMATCH and PCRE2_CALLOUT_BACKTRACK + bits to a new field callout_flags in callout blocks. +- use https for main site +- cleanup with spec-cleaner + +------------------------------------------------------------------- +Mon Sep 11 18:14:30 UTC 2017 - jengelh@inai.de + +- Update to new upstream release 10.30 + * The main interpreter, pcre2_match(), has been refactored into + a new version that does not use recursive function calls for + remembering backtracking positions. The new implementation + allows backtracking into recursive group calls in patterns, + making it more compatible with Perl. For patterns that have a + lot of backtracking, the heap is now used, and there is + explicit limit on the amount, settable by + pcre2_set_heap_limit(). The "recursion limit" is retained, + but is renamed as "depth limit". + * The new option PCRE2_ENDANCHORED insists that a pattern match + must end at the end of the subject. + * The new option PCRE2_EXTENDED_MORE implements Perl's /xx + feature, and pcre2test is upgraded to support it. Setting + within the pattern by (?xx) is Also supported. + * (?n) can be used to set PCRE2_NO_AUTO_CAPTURE, because Perl + now has this. + * Additional pattern compile options in the compile context are + now available: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES and + PCRE2_EXTRA_BAD_ESCAPE_IS LITERAL. + * The newline type PCRE2_NEWLINE_NUL is now available. + * The match limit value now also applies to pcre2_dfa_match() + as there are patterns that can use up a lot of resources + without necessarily recursing very deeply. + * Various minor security fixes found by fuzzers: + + bsc#1037165: crash for forward reference in lookbehind with + PCRE2_ANCHORED + + CVE-2017-8786: heap-based buffer overflow write in pcre2test + (bsc#1036942) + + CVE-2017-7186: DoS by triggering an invalid Unicode property + lookup (bsc#1030066) +- Switch source URLs to use HTTP. + +------------------------------------------------------------------- +Sat Aug 5 17:34:26 UTC 2017 - astieger@suse.com + +- fix SLE 11 build + +------------------------------------------------------------------- +Tue May 2 17:28:30 UTC 2017 - astieger@suse.com + +- pcre2grep can now read .gz and .bz2 files directly +- pcre2test is now built to support line editing + +------------------------------------------------------------------- +Thu Feb 16 21:25:42 UTC 2017 - astieger@suse.com + +- pcre2 10.23: + * major re-factoring of the pcre2_compile.c file + * Back references are now permitted in lookbehind assertions when + there are no duplicated group numbers (that is, (?| has not + been used), and, if the reference is by name, there is only one + group of that name. The referenced group must, of course be of + fixed length. + * \g{+} (e.g. \g{+2} ) is now supported. It is a "forward + back reference" and can be useful in repetitions + (compare \g{-} ). Perl does not recognize this syntax. + * pcre2grep now automatically expands its buffer up to a maximum + set by --max-buffer-size. + * The -t option (grand total) has been added to pcre2grep. + * A new function called pcre2_code_copy_with_tables() exists to + copy a compiled pattern along with a private copy of the + character tables that is uses. + +------------------------------------------------------------------- +Tue Feb 7 16:19:22 UTC 2017 - dimstar@opensuse.org + +- Explicitly package %{_docdir}/%{name} to fix build with RPM 4.13. + +------------------------------------------------------------------- +Mon Aug 1 15:24:18 UTC 2016 - astieger@suse.com + +- pcre2 10.22: + * The POSIX wrapper function regcomp() did not used to + support back references and subroutine calls if called with the + REG_NOSUB option. It now does. + * A new function, pcre2_code_copy(), is added, to make a copy of a + compiled pattern. + * Support for string callouts is added to pcre2grep. + * Added the PCRE2_NO_JIT option to pcre2_match(). + * The pcre2_get_error_message() function now returns with a + negative error code if the error number it is given is unknown. + * Several updates have been made to pcre2test and test scripts + * Fix CVE-2016-3191: workspace overflow for (*ACCEPT) with deeply + nested parentheses (boo#971741) + +------------------------------------------------------------------- +Sun Jan 17 14:30:53 UTC 2016 - jengelh@inai.de + +- Update to new upstream release 10.21 +* Improve JIT matching speed of patterns starting with + or *. +* Use memchr() to find the first character in an unanchored match + in 8-bit mode in the interpreter. This gives a significant speed + improvement. +* 10.20 broke the handling of [[:>:]] and [[:<:]] in that + processing them could involve a buffer overflow if the + following character was an opening parenthesis. +* 10.20 also introduced a bug in processing this pattern: + /((?x)(*:0))#(?'/, which was fixed. +* A callout with a string argument containing an opening square + bracket, for example /(?C$[$)(?<]/, was incorrectly processed and + could provoke a buffer overflow. +* A possessively repeated conditional group that could match an empty + string, for example, /(?(R))*+/, was incorrectly compiled. +* The Unicode tables have been updated to Unicode 8.0.0. +* An empty comment (?#) in a pattern was incorrectly processed and + could provoke a buffer overflow. +* Fix infinite recursion in the JIT compiler when certain patterns + /such as (?:|a|){100}x/ are analysed. +* Some patterns with character classes involving [: and \\ were + incorrectly compiled and could cause reading from uninitialized + memory or an incorrect error diagnosis. Examples are: + /[[:\\](?<[::]/ and /[[:\\](?'abc')[a:]. +* A missing closing parenthesis for a callout with a string argument + was not being diagnosed, possibly leading to a buffer overflow. +* If (?R was followed by - or + incorrect behaviour happened instead + of a diagnostic. +* Fixed an issue when \p{Any} inside an xclass did not read the current + character. +* About 80 more fixes, which you can read about in the ChangeLog + shipped with the libpcre2-8-0 package. + +------------------------------------------------------------------- +Tue Jul 14 08:42:04 UTC 2015 - astieger@suse.com + +- PCRE2 10.20: + * Callouts with string arguments and the + pcre2_callout_enumerate() function have been implemented. + * The PCRE2_NEVER_BACKSLASH_C option, which locks out the use of + \C, is added. + * The PCRE2_ALT_CIRCUMFLEX option lets ^ match after a newline at + the end of a subject in multiline mode. + * The way named subpatterns are handled has been refactored. The + previous approach had several bugs. + * The handling of \c in EBCDIC environments has been changed to + conform to the perlebcdic document. (Incompatible change) + * Bugs have been mended, many of them discovered by fuzzers. + +------------------------------------------------------------------- +Thu Jun 18 20:51:45 UTC 2015 - astieger@suse.com + +- PCRE2, a re-working of the original PCRE library to provide an + entirely new API, version 10.10. Not source compatible. +- copy of the pcre package, with the following adjustments: + * required name changes + * adjust pcre-8.21-multilib.patch to pcre2-10.10-multilib.patch + * drop upstreamed pcre-8.32-visibility.patch + * --enable-{utf8,unicode-properties} became --enable-unicode + * drop cpp subpackage + * make test -> check + * enable 32 bit character support + +------------------------------------------------------------------- +Thu Apr 30 22:08:31 UTC 2015 - astieger@suse.com + +- pcre 8.37: + * CVE-2015-2325: Patterns with certain groups specifying a zero + minimum quantifier caused incorrect code to be compiled, + leading to an incorrect memory read. [boo#924960] + * CVE-2015-2326: Specific patterns containing a forward reference + with subroutine calls caused incorrect code to be compiled + [boo#924961] + * CVE-2014-8964: If an assertion condition was quantified with a + minimum of zero, SIGSEGV or other misbehaviour could occur. + [boo#906574] + * further bug fixes as listed in ChangeLog + +------------------------------------------------------------------- +Mon Mar 9 00:43:18 UTC 2015 - p.drouand@gmail.com + +- Update to version 3.16 + * This is primarily a bug-fix release. + * The Unicode data tables have been updated to Unicode 7.0.0. +- Remove pcre-commit1472.patch; fixed on upstream release +- Remove obsolete "Obsoletes" tag + +------------------------------------------------------------------- +Tue Sep 2 07:30:08 UTC 2014 - jengelh@inai.de + +- Improve on RPM group classification +- Remove defunct %gpg_verify (replaced by source validators), + defunct freecode link + +------------------------------------------------------------------- +Thu Aug 28 03:10:39 UTC 2014 - crrodriguez@opensuse.org + +- Harden build with full RELRO as this libraries end linked + to at least one setuid root executable. + +------------------------------------------------------------------- +Mon Jun 16 14:44:43 UTC 2014 - dvaleev@suse.com + +- Enable JIT on ppc64le as well + +------------------------------------------------------------------- +Sat May 3 06:07:56 UTC 2014 - coolo@suse.com + +- update to 0.35: + There have been performance improvements for classes containing non-ASCII + characters and the "auto-possessification" feature has been extended. Other + minor improvements have been implemented and bugs fixed. There is a new callout + feature to enable applications to do detailed stack checks at compile time, to + avoid running out of stack for deeply nested parentheses. The JIT compiler has + been extended with experimental support for ARM-64, MIPS-64, and PPC-LE. +- add pcre-commit1472.patch from SVN to work with gcc49, see + http://bugs.exim.org/show_bug.cgi?id=1463 + +------------------------------------------------------------------- +Sun Mar 23 20:50:04 UTC 2014 - tchvatal@suse.com + +- Add automake and autoconf as explicit deps as we run autoreconf + +------------------------------------------------------------------- +Sun Mar 23 20:49:02 UTC 2014 - tchvatal@suse.com + +- Add patch pcre-8.21-multilib.patch to fix RPATH issues. + * The patch is taken from RedHat. + +------------------------------------------------------------------- +Sun Mar 23 20:47:05 UTC 2014 - tchvatal@suse.com + +- Clean up with the spec cleaner. Use -j1 in tests as it is not + really thread safe + +------------------------------------------------------------------- +Sun Mar 23 20:35:09 UTC 2014 - tchvatal@suse.com + +- Version bump to 8.34: + * warning fixes + * perl fixes + * unocode6.3.0 support + * gconv support + +------------------------------------------------------------------- +Wed Nov 13 19:06:09 UTC 2013 - sweet_f_a@gmx.de + +- enable tests for all archs +- --enable-jit for sparc + +------------------------------------------------------------------- +Thu Jun 13 16:20:10 UTC 2013 - jengelh@inai.de + +- Update to new upstream release 8.33 +* The Just-In-Time compiler (JIT) now supports all pattern + features, including callouts and the backtracking verbs. In + addition, some bugs are fixed and there are minor performance + enhancements. +- More robust make install call. Provide signature verification + files (avoid depending on gpg-offline due to bootstrap cycle). + +------------------------------------------------------------------- +Sat Jun 8 20:16:10 UTC 2013 - crrodriguez@opensuse.org + +- Ensure the PCRE library and tools are built with large file + support in 32 bit archs. + +------------------------------------------------------------------- +Sun Jan 6 15:40:59 UTC 2013 - p.drouand@gmail.com + +- Update to 8.32 version: + * There is now support for 32-bit character strings and UTF-32. Like the + 16-bit support, this is done by compiling a separate 32-bit library. + * \X now matches a Unicode extended grapheme cluster. + * Case-independent matching of Unicode characters that have more than one + "other case" now makes all three (or more) characters equivalent. This + applies, for example, to Greek Sigma, which has two lowercase versions. + * Unicode character properties are updated to Unicode 6.2.0. + * The EBCDIC support, which had decayed, has had a spring clean. + * A number of JIT optimizations have been added, which give faster JIT + execution speed. In addition, a new direct interface to JIT execution is + available. This bypasses some of the sanity checks of pcre_exec() to give a + noticeable speed-up. + * A number of issues in pcregrep have been fixed, making it more compatible + with GNU grep. In particular, --exclude and --include (and variants) apply + to all files now, not just those obtained from scanning a directory + recursively. In Windows environments, the default action for directories is + now "skip" instead of "read" (which provokes an error). + * If the --only-matching (-o) option in pcregrep is specified multiple + times, each one causes appropriate output. For example, -o1 -o2 outputs the + substrings matched by the 1st and 2nd capturing parentheses. A separating + string can be specified by --om-separator (default empty). + * When PCRE is built via Autotools using a version of gcc that has the + "visibility" feature, it is used to hide internal library functions that are + not part of the public API. +- updated and versionned pcre-visibility.patch to svn trunk + * Modifications on configure.ac and makefile have been merged on upstream release + +------------------------------------------------------------------- +Fri Nov 23 19:13:09 UTC 2012 - jengelh@inai.de + +- Update package descriptions about the differences between the + PCRE library subpackages. + +------------------------------------------------------------------- +Wed Nov 7 13:35:35 UTC 2012 - cgiboudeaux@gmx.com + +- Use the --enable-pcre16 configure flag. + This switch enables 16 bit character support that will be required by Qt5 + +------------------------------------------------------------------- +Fri Aug 17 14:18:53 UTC 2012 - dimstar@opensuse.org + +- Upate to version 8.31: + + The JIT compiler now supports partial matching and the (*MARK) + and (*COMMIT) verbs + + PCRE_INFO_MAXLOOKBEHIND can be used to find the longest + lookbehing in a pattern. + + There should be a performance improvement when using the heap + instead of the stack for recursion + + pcregrep can now be linked with libedit as an alternative to + libreadline + + pcregrep now has a --file-list option where the list of files + to scan is given as a file + + pcregrep now recognizes binary files and there are related + options + + The Unicode tables have been updated to 6.1.0 +- Rebase pcre-visibility.patch. + +------------------------------------------------------------------- +Thu Jul 19 17:18:04 UTC 2012 - jengelh@inai.de + +- Only use --enable-jit on supported architectures; the build will + otherwise fail (e.g. on sparc). + +------------------------------------------------------------------- +Thu May 10 15:59:21 UTC 2012 - afaerber@suse.de + +- Add devel-static package + +------------------------------------------------------------------- +Tue Feb 7 15:10:59 UTC 2012 - crrodriguez@opensuse.org + +- fix baselibs + +------------------------------------------------------------------- +Tue Feb 7 04:40:59 UTC 2012 - crrodriguez@opensuse.org + +- Update to PCRE 8.30, upstream SONAME bump, libpcre1 +- Drop no longer needed ppc patch. +- move library back to %{_libdir} + +------------------------------------------------------------------- +Wed Feb 1 10:44:38 UTC 2012 - dvaleev@suse.com + +- Fix cache-flush on PPC + +------------------------------------------------------------------- +Wed Nov 16 08:17:40 UTC 2011 - coolo@suse.com + +- add libtool as buildrequire to avoid implicit dependency + +------------------------------------------------------------------- +Tue Nov 1 16:16:49 UTC 2011 - crrodriguez@opensuse.org + +- Update to version 8.20 + * too many fixes to list here, see included ChangeLog + * replace pcre-visibility patch with the one I submitted to + upstream for inclusion. + +------------------------------------------------------------------- +Tue Oct 11 22:39:57 UTC 2011 - dmueller@suse.de + +- udpate to 8.13: + * too many fixes to list here, see included ChangeLog + * the Unicode data tables have been updated to Unicode 6.0.0. + +------------------------------------------------------------------- +Mon Sep 19 15:15:41 UTC 2011 - coolo@suse.com + +- remove fragile _service + +------------------------------------------------------------------- +Wed Mar 9 14:20:37 UTC 2011 - coolo@novell.com + +- Update to version 8.12 + + * This release fixes some bugs in pcregrep, one of which caused the tests to fail + on 64-bit big-endian systems. There are no changes to the code of the library. + +- Update to version 8.11 + * A number of bugs in the library and in pcregrep have been fixed. As always, see + ChangeLog for details. The following are the non-bug-fix changes: + + Added --match-limit and --recursion-limit to pcregrep. + + Added an optional parentheses number to the -o and --only-matching options + of pcregrep. + + Changed the way PCRE_PARTIAL_HARD affects the matching of $, \z, \Z, \b, and + \B. + + Added PCRE_ERROR_SHORTUTF8 to make it possible to distinguish between a + bad UTF-8 sequence and one that is incomplete when using PCRE_PARTIAL_HARD. + + Recognize (*NO_START_OPT) at the start of a pattern to set the PCRE_NO_ + START_OPTIMIZE option, which is now allowed at compile time + +------------------------------------------------------------------- +Sat Oct 30 02:15:06 UTC 2010 - cristian.rodriguez@opensuse.org + +- Support GCC visibility, symbol clashes no more. + +------------------------------------------------------------------- +Sun Sep 19 11:03:57 CEST 2010 - vuntz@opensuse.org + +- Update to version 8.10: + + Major additions: + - support for (*MARK) and friends + - PCRE_UCP option, which changes the behaviour of \b, \d, \s, + and \w (and their opposites) so that they make use of Unicode + properties + + Other additions: + - support for \N, which always matches any character other than + newline + - added --line-buffered to pcregrep + + Several small new features and bugfixes +- Changes from version 8.02: + + Update Unicode data tables to Unicode 5.2.0 + + Update the licensing terms in the pcregexp.pas file + + Several bug fixes +- Changes from version 8.01: + + Several bug fixes and build system improvements +- Changes from version 8.00: + + Enhancements: + - remove restrictions on patterns used for partial matching + - give extra information for partial matches + - improve the partial matching process + - add option to make a partial match override a full match + - enhance "study" process by finding a lower bound matching + length + - groups with duplicate numbers may now have duplicated names + without the use of PCRE_DUPNAMES, but they may not have + different names + - add REG_UNGREEDY to the pcreposix interface, which maps to + PCRE_UNGREEDY. + + Several bug fixes +- Drop pcre-7.9.patch: fixed upstream. +- Rearrange spec file to have all the %files sections together, as + well as all the scriptlets together. +- Kill the main package that only included doc files like AUTHORS, + NEWS, and license, and put those files in libpcre0: this really + makes more sense. Therefore, make libpcre0 Provides/Obsoletes + libpcre0. +- We can also remove the other dependencies on the main package, + since everything already depends on libpcre0. +- Remove AutoReqProv: it's default now. +- Remove references to perl 5.005 in descriptons: it's not + mentioned anywhere anymore upstream. + +------------------------------------------------------------------- +Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de + +- use %_smp_mflags + +------------------------------------------------------------------- +Sat Apr 24 10:38:30 UTC 2010 - coolo@novell.com + +- buildrequire pkg-config to fix provides + +------------------------------------------------------------------- +Thu Feb 25 16:49:20 UTC 2010 - prusnak@suse.cz + +- build noarch docs only for >= 11.2 + +------------------------------------------------------------------- +Wed Feb 10 16:16:56 CET 2010 - ms@suse.de + +- fixed license statement according to the conversation + and permissions granted in (bnc #578724) + +------------------------------------------------------------------- +Sat Dec 12 18:38:47 CET 2009 - jengelh@medozas.de + +- add baselibs.conf as a source +- package documentation as noarch + +------------------------------------------------------------------- +Wed Oct 7 12:51:05 UTC 2009 - coolo@novell.com + +- add obsolete/provides for pcre-32bit (bnc#539543) + +------------------------------------------------------------------- +Wed Jun 10 13:03:11 CEST 2009 - coolo@novell.com + +- split package into tools, docs and libraries + +------------------------------------------------------------------- +Fri Jun 5 23:13:22 CEST 2009 - crrodriguez@suse.de + +- disable static libraries, shouldn't be used now + +------------------------------------------------------------------- +Sat May 30 22:02:07 CEST 2009 - dmueller@suse.de + +- fix symlinks to libpcre and libpcreposix to fix the build + +------------------------------------------------------------------- +Wed May 27 18:03:13 CEST 2009 - ms@suse.de + +- moved libpcre and libpcreposix to %{_lib} (bnc #507449) + +------------------------------------------------------------------- +Tue May 5 14:24:17 CEST 2009 - ms@suse.de + +- Release 7.9 11-Apr-09 (bnc #500734) + Mostly bugfixes and tidies with just a couple of minor + functional additions. + +------------------------------------------------------------------- +Wed Jan 7 12:34:56 CET 2009 - olh@suse.de + +- obsolete old -XXbit packages (bnc#437293) + +------------------------------------------------------------------- +Fri Sep 12 01:51:31 CEST 2008 - crrodriguez@suse.de + +- update to PCRE 7.8 + * More bug fixes, plus a performance improvement + in Unicode character property lookup. + see complete changelog at http://www.pcre.org/changelog.txt + + +------------------------------------------------------------------- +Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de + +- added baselibs.conf file to build xxbit packages + for multilib support + +------------------------------------------------------------------- +Fri Feb 1 19:43:16 CET 2008 - crrodriguez@suse.de + +- update to version 7.6 +- The main reason for having this release so soon after 7.5 + is because it fixes a potential buffer overflow problem in pcre_compile() + when run in UTF-8 mode. In addition, the CMake configuration files have been brought up to date. + +------------------------------------------------------------------- +Sun Jan 13 09:08:22 CET 2008 - crrodriguez@suse.de + +- update version 7.5 + 1. Applied a patch from Craig: "This patch makes it possible to 'ignore' + values in parens when parsing an RE using the C++ wrapper." + + 2. Negative specials like \S did not work in character classes in UTF-8 mode. + Characters greater than 255 were excluded from the class instead of being + included. + + 3. The same bug as (2) above applied to negated POSIX classes such as + [:^space:]. + + 4. PCRECPP_STATIC was referenced in pcrecpp_internal.h, but nowhere was it + defined or documented. It seems to have been a typo for PCRE_STATIC, so + I have changed it. + + 5. The construct (?&) was not diagnosed as a syntax error (it referenced the + first named subpattern) and a construct such as (?&a) would reference the + first named subpattern whose name started with "a" (in other words, the + length check was missing). Both these problems are fixed. "Subpattern name + expected" is now given for (?&) (a zero-length name), and this patch also + makes it give the same error for \k'' (previously it complained that that + was a reference to a non-existent subpattern). + + 6. The erroneous patterns (?+-a) and (?-+a) give different error messages; + this is right because (?- can be followed by option settings as well as by + digits. I have, however, made the messages clearer. + + 7. Patterns such as (?(1)a|b) (a pattern that contains fewer subpatterns + than the number used in the conditional) now cause a compile-time error. + This is actually not compatible with Perl, which accepts such patterns, but + treats the conditional as always being FALSE (as PCRE used to), but it + seems to me that giving a diagnostic is better. + + 8. Change "alphameric" to the more common word "alphanumeric" in comments + and messages. + + 9. Fix two occurrences of "backslash" in comments that should have been + "backspace". + + 10. Remove two redundant lines of code that can never be obeyed (their function + was moved elsewhere). + + 11. The program that makes PCRE's Unicode character property table had a bug + which caused it to generate incorrect table entries for sequences of + characters that have the same character type, but are in different scripts. + It amalgamated them into a single range, with the script of the first of + them. In other words, some characters were in the wrong script. There were + thirteen such cases, affecting characters in the following ranges: + + U+002b0 - U+002c1 + U+0060c - U+0060d + U+0061e - U+00612 + U+0064b - U+0065e + U+0074d - U+0076d + U+01800 - U+01805 + U+01d00 - U+01d77 + U+01d9b - U+01dbf + U+0200b - U+0200f + U+030fc - U+030fe + U+03260 - U+0327f + U+0fb46 - U+0fbb1 + U+10450 - U+1049d + + 12. The -o option (show only the matching part of a line) for pcregrep was not + compatible with GNU grep in that, if there was more than one match in a + line, it showed only the first of them. It now behaves in the same way as + GNU grep. + + 13. If the -o and -v options were combined for pcregrep, it printed a blank + line for every non-matching line. GNU grep prints nothing, and pcregrep now + does the same. The return code can be used to tell if there were any + non-matching lines. + + 14. Added --file-offsets and --line-offsets to pcregrep. + + 15. The pattern (?=something)(?R) was not being diagnosed as a potentially + infinitely looping recursion. The bug was that positive lookaheads were not + being skipped when checking for a possible empty match (negative lookaheads + and both kinds of lookbehind were skipped). + + 16. Fixed two typos in the Windows-only code in pcregrep.c, and moved the + inclusion of to before rather than after the definition of + INVALID_FILE_ATTRIBUTES (patch from David Byron). + + 17. Specifying a possessive quantifier with a specific limit for a Unicode + character property caused pcre_compile() to compile bad code, which led at + runtime to PCRE_ERROR_INTERNAL (-14). Examples of patterns that caused this + are: /\p{Zl}{2,3}+/8 and /\p{Cc}{2}+/8. It was the possessive "+" that + caused the error; without that there was no problem. + + 18. Added --enable-pcregrep-libz and --enable-pcregrep-libbz2. + + 19. Added --enable-pcretest-libreadline. + + 20. In pcrecpp.cc, the variable 'count' was incremented twice in + RE::GlobalReplace(). As a result, the number of replacements returned was + double what it should be. I removed one of the increments, but Craig sent a + later patch that removed the other one (the right fix) and added unit tests + that check the return values (which was not done before). + + 21. Several CMake things: + + (1) Arranged that, when cmake is used on Unix, the libraries end up with + the names libpcre and libpcreposix, not just pcre and pcreposix. + + (2) The above change means that pcretest and pcregrep are now correctly + linked with the newly-built libraries, not previously installed ones. + + (3) Added PCRE_SUPPORT_LIBREADLINE, PCRE_SUPPORT_LIBZ, PCRE_SUPPORT_LIBBZ2. + + 22. In UTF-8 mode, with newline set to "any", a pattern such as .*a.*=.b.* + crashed when matching a string such as a\x{2029}b (note that \x{2029} is a + UTF-8 newline character). The key issue is that the pattern starts .*; + this means that the match must be either at the beginning, or after a + newline. The bug was in the code for advancing after a failed match and + checking that the new position followed a newline. It was not taking + account of UTF-8 characters correctly. + + 23. PCRE was behaving differently from Perl in the way it recognized POSIX + character classes. PCRE was not treating the sequence [:...:] as a + character class unless the ... were all letters. Perl, however, seems to + allow any characters between [: and :], though of course it rejects as + unknown any "names" that contain non-letters, because all the known class + names consist only of letters. Thus, Perl gives an error for [[:1234:]], + for example, whereas PCRE did not - it did not recognize a POSIX character + class. This seemed a bit dangerous, so the code has been changed to be + closer to Perl. The behaviour is not identical to Perl, because PCRE will + diagnose an unknown class for, for example, [[:l\ower:]] where Perl will + treat it as [[:lower:]]. However, PCRE does now give "unknown" errors where + Perl does, and where it didn't before. + + 24. Rewrite so as to remove the single use of %n from pcregrep because in some + Windows environments %n is disabled by default. + +------------------------------------------------------------------- +Tue Nov 6 08:15:28 CET 2007 - crrodriguez@suse.de + +- update to version 7.4, since version 7.2, more than 40 bugs were fixed + including multiple vulnerabilities [#325921] . The list of changes is too long + to mention here, see changelog.txt for details. + +------------------------------------------------------------------- +Wed Aug 8 12:46:16 CEST 2007 - ms@suse.de + +- added fix to run ldconfig for libpcre*, Thanks to + Cristian Rodriguez who provided + the patch (#298291) + +------------------------------------------------------------------- +Mon Jul 23 15:22:40 CEST 2007 - ms@suse.de + +- update to version 7.2, fixes bug: (#293752) +- Changes from 7.1 to 7.2 + + 1. If the fr_FR locale cannot be found for test 3, try the "french" locale, + which is apparently normally available under Windows. + + 2. Re-jig the pcregrep tests with different newline settings in an attempt + to make them independent of the local environment's newline setting. + + 3. Add code to configure.ac to remove -g from the CFLAGS default settings. + + 4. Some of the "internals" tests were previously cut out when the link size + was not 2, because the output contained actual offsets. The recent new + "Z" feature of pcretest means that these can be cut out, making the tests + usable with all link sizes. + + 5. Implemented Stan Switzer's goto replacement for longjmp() when not using + stack recursion. This gives a massive performance boost under BSD, but just + a small improvement under Linux. However, it saves one field in the frame + in all cases. + + 6. Added more features from the forthcoming Perl 5.10: + + (a) (?-n) (where n is a string of digits) is a relative subroutine or + recursion call. It refers to the nth most recently opened parentheses. + + (b) (?+n) is also a relative subroutine call; it refers to the nth next + to be opened parentheses. + + (c) Conditions that refer to capturing parentheses can be specified + relatively, for example, (?(-2)... or (?(+3)... + + (d) \K resets the start of the current match so that everything before + is not part of it. + + (e) \k{name} is synonymous with \k and \k'name' (.NET compatible). + + (f) \g{name} is another synonym - part of Perl 5.10's unification of + reference syntax. + + (g) (?| introduces a group in which the numbering of parentheses in each + alternative starts with the same number. + + (h) \h, \H, \v, and \V match horizontal and vertical whitespace. + + 7. Added two new calls to pcre_fullinfo(): PCRE_INFO_OKPARTIAL and + PCRE_INFO_JCHANGED. + + 8. A pattern such as (.*(.)?)* caused pcre_exec() to fail by either not + terminating or by crashing. Diagnosed by Viktor Griph; it was in the code + for detecting groups that can match an empty string. + + 9. A pattern with a very large number of alternatives (more than several + hundred) was running out of internal workspace during the pre-compile + phase, where pcre_compile() figures out how much memory will be needed. A + bit of new cunning has reduced the workspace needed for groups with + alternatives. The 1000-alternative test pattern now uses 12 bytes of + workspace instead of running out of the 4096 that are available. + +10. Inserted some missing (unsigned int) casts to get rid of compiler warnings. + +11. Applied patch from Google to remove an optimization that didn't quite work. + The report of the bug said: + + pcrecpp::RE("a*").FullMatch("aaa") matches, while + pcrecpp::RE("a*?").FullMatch("aaa") does not, and + pcrecpp::RE("a*?\\z").FullMatch("aaa") does again. + +12. If \p or \P was used in non-UTF-8 mode on a character greater than 127 + it matched the wrong number of bytes. + +------------------------------------------------------------------- +Tue May 1 11:02:54 CEST 2007 - ms@suse.de + +- added --enable-unicode-properties configure option to support + UTF-8 character strings in \P, \p, and \X (#269749) + +------------------------------------------------------------------- +Mon Apr 30 10:12:10 CEST 2007 - trenn@suse.de + +- corrected assert compile error + +------------------------------------------------------------------- +Wed Apr 25 13:39:55 CEST 2007 - ms@suse.de + +- update to pcre 7.1 + + 1. Applied Bob Rossi and Daniel G's patches to convert the build system to one + that is more "standard", making use of automake and other Autotools. There + is some re-arrangement of the files and adjustment of comments consequent + on this. + + 2. Part of the patch fixed a problem with the pcregrep tests. The test of -r + for recursive directory scanning broke on some systems because the files + are not scanned in any specific order and on different systems the order + was different. A call to "sort" has been inserted into RunGrepTest for the + approprate test as a short-term fix. In the longer term there may be an + alternative. + + 3. I had an email from Eric Raymond about problems translating some of PCRE's + man pages to HTML (despite the fact that I distribute HTML pages, some + people do their own conversions for various reasons). The problems + concerned the use of low-level troff macros .br and .in. I have therefore + removed all such uses from the man pages (some were redundant, some could + be replaced by .nf/.fi pairs). The 132html script that I use to generate + HTML has been updated to handle .nf/.fi and to complain if it encounters + .br or .in. + + 4. Updated comments in configure.ac that get placed in config.h.in and also + arranged for config.h to be included in the distribution, with the name + config.h.generic, for the benefit of those who have to compile without + Autotools (compare pcre.h, which is now distributed as pcre.h.generic). + + 5. Updated the support (such as it is) for Virtual Pascal, thanks to Stefan + Weber: (1) pcre_internal.h was missing some function renames; (2) updated + makevp.bat for the current PCRE, using the additional files + makevp_c.txt, makevp_l.txt, and pcregexp.pas. + + 6. A Windows user reported a minor discrepancy with test 2, which turned out + to be caused by a trailing space on an input line that had got lost in his + copy. The trailing space was an accident, so I've just removed it. + + 7. Add -Wl,-R... flags in pcre-config.in for *BSD* systems, as I'm told + that is needed. + + 8. Mark ucp_table (in ucptable.h) and ucp_gentype (in pcre_ucp_searchfuncs.c) + as "const" (a) because they are and (b) because it helps the PHP + maintainers who have recently made a script to detect big data structures + in the php code that should be moved to the .rodata section. I remembered + to update Builducptable as well, so it won't revert if ucptable.h is ever + re-created. + + 9. Added some extra #ifdef SUPPORT_UTF8 conditionals into pcretest.c, + pcre_printint.src, pcre_compile.c, pcre_study.c, and pcre_tables.c, in + order to be able to cut out the UTF-8 tables in the latter when UTF-8 + support is not required. This saves 1.5-2K of code, which is important in + some applications. + + Later: more #ifdefs are needed in pcre_ord2utf8.c and pcre_valid_utf8.c + so as not to refer to the tables, even though these functions will never be + called when UTF-8 support is disabled. Otherwise there are problems with a + shared library. + +10. Fixed two bugs in the emulated memmove() function in pcre_internal.h: + + (a) It was defining its arguments as char * instead of void *. + + (b) It was assuming that all moves were upwards in memory; this was true + a long time ago when I wrote it, but is no longer the case. + + The emulated memove() is provided for those environments that have neither + memmove() nor bcopy(). I didn't think anyone used it these days, but that + is clearly not the case, as these two bugs were recently reported. + +11. The script PrepareRelease is now distributed: it calls 132html, CleanTxt, + and Detrail to create the HTML documentation, the .txt form of the man + pages, and it removes trailing spaces from listed files. It also creates + pcre.h.generic and config.h.generic from pcre.h and config.h. In the latter + case, it wraps all the #defines with #ifndefs. This script should be run + before "make dist". + +12. Fixed two fairly obscure bugs concerned with quantified caseless matching + with Unicode property support. + + (a) For a maximizing quantifier, if the two different cases of the + character were of different lengths in their UTF-8 codings (there are + some cases like this - I found 11), and the matching function had to + back up over a mixture of the two cases, it incorrectly assumed they + were both the same length. + + (b) When PCRE was configured to use the heap rather than the stack for + recursion during matching, it was not correctly preserving the data for + the other case of a UTF-8 character when checking ahead for a match + while processing a minimizing repeat. If the check also involved + matching a wide character, but failed, corruption could cause an + erroneous result when trying to check for a repeat of the original + character. + +13. Some tidying changes to the testing mechanism: + + (a) The RunTest script now detects the internal link size and whether there + is UTF-8 and UCP support by running ./pcretest -C instead of relying on + values substituted by "configure". (The RunGrepTest script already did + this for UTF-8.) The configure.ac script no longer substitutes the + relevant variables. + + (b) The debugging options /B and /D in pcretest show the compiled bytecode + with length and offset values. This means that the output is different + for different internal link sizes. Test 2 is skipped for link sizes + other than 2 because of this, bypassing the problem. Unfortunately, + there was also a test in test 3 (the locale tests) that used /B and + failed for link sizes other than 2. Rather than cut the whole test out, + I have added a new /Z option to pcretest that replaces the length and + offset values with spaces. This is now used to make test 3 independent + of link size. (Test 2 will be tidied up later.) + +14. If erroroffset was passed as NULL to pcre_compile, it provoked a + segmentation fault instead of returning the appropriate error message. + +15. In multiline mode when the newline sequence was set to "any", the pattern + ^$ would give a match between the \r and \n of a subject such as "A\r\nB". + This doesn't seem right; it now treats the CRLF combination as the line + ending, and so does not match in that case. It's only a pattern such as ^$ + that would hit this one: something like ^ABC$ would have failed after \r + and then tried again after \r\n. + +16. Changed the comparison command for RunGrepTest from "diff -u" to "diff -ub" + in an attempt to make files that differ only in their line terminators + compare equal. This works on Linux. + +17. Under certain error circumstances pcregrep might try to free random memory + as it exited. This is now fixed, thanks to valgrind. + +19. In pcretest, if the pattern /(?m)^$/g was matched against the string + "abc\r\n\r\n", it found an unwanted second match after the second \r. This + was because its rules for how to advance for /g after matching an empty + string at the end of a line did not allow for this case. They now check for + it specially. + +20. pcretest is supposed to handle patterns and data of any length, by + extending its buffers when necessary. It was getting this wrong when the + buffer for a data line had to be extended. + +21. Added PCRE_NEWLINE_ANYCRLF which is like ANY, but matches only CR, LF, or + CRLF as a newline sequence. + +22. Code for handling Unicode properties in pcre_dfa_exec() wasn't being cut + out by #ifdef SUPPORT_UCP. This did no harm, as it could never be used, but + I have nevertheless tidied it up. + +23. Added some casts to kill warnings from HP-UX ia64 compiler. + +24. Added a man page for pcre-config. + +------------------------------------------------------------------- +Fri Feb 9 10:07:29 CET 2007 - ms@suse.de + +- fixed wrong usage of assert() call + +------------------------------------------------------------------- +Tue Jan 9 11:28:53 CET 2007 - ms@suse.de + +- fixed build for all architectures + +------------------------------------------------------------------- +Mon Jan 8 16:07:02 CET 2007 - ms@suse.de + +- update to new version 7.0 + Changes: As well as a number of bugfixes, there has been a major + refactoring of the compiling code, which makes it easier to add new + features, including some new optimizations. A QuoteMeta function has been + added to the C++ wrapper. There is now a mode in which all Unicode newline + sequences are recognized. Support for the Perl 5.10 syntax for features + that were previously in PCRE but not in Perl (named groups, possessive + quantifiers) has been added. + +------------------------------------------------------------------- +Sat Oct 28 17:50:04 CEST 2006 - meissner@suse.de + +- CXXFLAGS needs RPM_OPT_FLAGS too. + +------------------------------------------------------------------- +Mon Jul 10 16:29:14 CEST 2006 - ms@suse.de + +- update to new version 6.7 +- finally removed evil configure patch +- When UTF-8 mode was not set, PCRE looped when compiling certain patterns + containing an extended class (one that cannot be represented by a bitmap + because it contains high-valued characters or Unicode property items, e.g. + [\pZ]). Almost always one would set UTF-8 mode when processing such a + pattern, but PCRE should not loop if you do not (it no longer does). + [Detail: two cases were found: (a) a repeated subpattern containing an + extended class; (b) a recursive reference to a subpattern that followed a + previous extended class. It wasn't skipping over the extended class + correctly when UTF-8 mode was not set.] +- Applied a patch from the folks at Google to pcrecpp.cc, to fix "another + instance of the 'standard' template library not being so standard". + +------------------------------------------------------------------- +Wed Jan 25 21:30:47 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Thu Jan 12 13:53:17 CET 2006 - mmj@suse.de + +- build with -fstack-protector + +------------------------------------------------------------------- +Thu Dec 1 01:39:04 CET 2005 - ro@suse.de + +- hack libtool core in configure script + since configure.in is too broken for a autoreconf ... + +------------------------------------------------------------------- +Mon Sep 19 17:53:52 CEST 2005 - mmj@suse.de + +- update to the latest version v6.4 + +------------------------------------------------------------------- +Tue Aug 2 11:19:20 CEST 2005 - mmj@suse.de + +- update to the latest version v6.2 + +------------------------------------------------------------------- +Thu Jun 23 13:18:50 CEST 2005 - mmj@suse.de + +- update to latest version v6.1 + +------------------------------------------------------------------- +Mon Jun 13 08:51:51 CEST 2005 - mmj@suse.de + +- add gcc-c++ to #nfb as well + +------------------------------------------------------------------- +Wed Jun 8 23:41:35 CEST 2005 - mmj@suse.de + +- update to latest version v6.0 + +------------------------------------------------------------------- +Mon May 23 11:17:20 CEST 2005 - mmj@suse.de + +- use --enable-utf8 +- use $RPM_OPT_FLAGS + +------------------------------------------------------------------- +Thu Mar 31 17:39:53 CEST 2005 - uli@suse.de + +- ignore test suite errors on ARM + +------------------------------------------------------------------- +Mon Nov 22 17:12:31 CET 2004 - choeger@suse.de + +- update to latest version v5.0 + +------------------------------------------------------------------- +Mon Jun 7 11:40:27 CEST 2004 - choeger@suse.de + +- update to latest version v4.5 + +------------------------------------------------------------------- +Mon Jan 5 15:39:13 CET 2004 - schwab@suse.de + +- Move pcre-config to pcre-devel. + +------------------------------------------------------------------- +Fri Oct 31 17:05:26 CET 2003 - choeger@suse.de + +- Don't build as root + +------------------------------------------------------------------- +Thu Aug 21 15:22:38 CEST 2003 - choeger@suse.de + +- update to v4.4 + +------------------------------------------------------------------- +Fri Aug 1 12:07:27 CEST 2003 - choeger@suse.de + +- disabled Test2, because it is not 64bit arch clean + (contacted author, he knows about that problem) + +------------------------------------------------------------------- +Wed Jul 30 14:56:52 CEST 2003 - choeger@suse.de + +- update to most recent version v4.3 +- splitted into -devel subpackage + +------------------------------------------------------------------- +Fri Dec 6 04:42:15 CET 2002 - coolo@suse.de + +- removed undefined symbols in libpcreposix + +------------------------------------------------------------------- +Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de + +- removed bogus self-provides + +------------------------------------------------------------------- +Fri Apr 5 10:57:15 CEST 2002 - coolo@suse.de + +- fixing autoheader usage +- forward ported %libdir changes from sles7-s390x + +------------------------------------------------------------------- +Tue Jan 22 19:07:26 CET 2002 - choeger@suse.de + +- update to version 3.9 +- added BuildRoot + +------------------------------------------------------------------- +Tue Aug 21 01:11:46 MEST 2001 - mge@suse.de + +- pcre 3.5 + +------------------------------------------------------------------- +Wed Apr 11 22:26:54 CEST 2001 - froh@suse.de + +- suse_update_config + +------------------------------------------------------------------- +Mon Dec 4 12:08:52 MET 2000 - mge@suse.de + +- pcre 3.4 + +------------------------------------------------------------------- +Tue Jun 27 19:41:41 MEST 2000 - mge@suse.de + +- pcre 3.2 + +------------------------------------------------------------------- +Thu Mar 2 12:22:48 CET 2000 - mge@suse.de + +- fixed manpath + +------------------------------------------------------------------- +Sun Feb 13 16:54:53 MET 2000 - mge@suse.de + +- update to 3.1 +- group tag + +------------------------------------------------------------------- +Mon Oct 25 23:38:47 MEST 1999 - mge@suse.de + +- initial SuSE-RPM: changed Makefile to install into /usr + diff --git a/pcre2.keyring b/pcre2.keyring new file mode 100644 index 0000000..2be7332 --- /dev/null +++ b/pcre2.keyring @@ -0,0 +1,39 @@ +This is Philip Hazel's public GPG key. + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.0 (SunOS) + +mQEMBD2z9g0BCACpGWJ4K2mjR6K9nv7/K+HLjJtDO0E0ckudeNjg2JvnuUU7m1bK +87nSklHTSMNiqmuVU5hFAuGiMGBMj31GPpce3VbABdm6TmAJB8ZndvJXyf8lC7Ko +5iZX/gCYU6817UI5pFwYR3MTIUSSxTGqk1y62pYLKUq9keSU5Cew4q1KMwl46Bn3 +SwlfQeST4WGwL2w9b8mWNltBBY23bgzwYu7vFBD4GQnfzJsvMC9lj825wob2nKy5 +CL4bY6tiYUqALzDYaIVCBqJ1Ky1rpPzRcDZUeeF8Ta3njh18Y0KzPEj+Xu5Ksexg +7LUy/2wFzVRtJgqvAFZo43KIOptsj/63zxJjAAkBAbQhUGhpbGlwIEhhemVsIDxw +aDEwQGN1cy5jYW0uYWMudWs+iQEyBBMBAgAcBQI9s/YNAhsDBAsHAwIDFQIDAxYC +AQIeAQIXgAAKCRCXZuCE+w9D2JbrCACBHrxybV+9t3TGR3+uk2QnUuct90a+udcB +cbWgKQgX345ZgwIfyoPKAbG84mN/+SFUN/Ie4ZHZxVsbN//l2P/Osx0CNQBfem4e +HUWegkFGzC5DxQhN5nsJ/GR6pnxG1l/DbNhupNY73oTajWFdi7K8jYfamU/zS/Da +VCwUKxWtGqyEqOxvbdqcjsnTMmLVfXtefx7CbKyhaClPP8Pe4FL+eqyfHJF7uywK +VWlUNmQa4E+ZAK8tkoK9sZAc0ImWwZMumiKZDEpr2D8Ty+Gg2umTS2OMIcbY8QF1 +r6DeubFabdPIe1kn0BGXtdAurhbdJCIbcAEQS0eEeWC4A4LiDprntB1QaGlsaXAg +SGF6ZWwgPHBoMTBAY2FtLmFjLnVrPokBMgQTAQIAHAUCPbaC8QIbAwQLBwMCAxUC +AwMWAgECHgECF4AACgkQl2bghPsPQ9ho5Qf+I2HUhZeXOUneeqSa+cITsIELJMrZ +UWcydY1z+L68yOqURVHB1jF4aC6QSlq0pLjozwF6KfZO5AfN9FvkRQ0DzCEXH48W +OXqzbjzgNxRMdaP5+49Axl0UQuhupGJg66T4FiGnSVBhK8kTURPCSpLLgkCJqNcY +t5zuNwk3e7JvleT59EVpk/kw3a5p9oeKYBln57pHwq+HdPLSCdkedQBKdsbNrazy +qduYEXen4ogsIoTpA9lLH1Xsi9wL+soLAlWXtl/GNa1h7Jpwn41zp1hqIZe1ebIM +dSGbtMEaGJlqgDauYJSl0lkVgaPtZCTmfAf57TsGfD0IckN2XNGLuwb6DLkBCwQ9 +s/eJAQgAuXq2I1VTDB108O0NAB6QKfA2gMHafoj3OcwEUHnJgXrHqjYOpFr0r5lC +YjwMRMvHO7r4jgtwKjGACI/1IE2hiGXkKFOWZFkCf7Qjoi13a78myC/VRwe4uEIs +xdz++w8WfzuC1sYw8d/rlybVzHTfTsKfmFOQamuyLCTm3Kdx/wZyGM7JMmgVn2zF +HWasdID0n7QJFZGR3yEfqis5zq1t3w28AaXlTZG7QtFj9V0cWIhZRjjjVe1biPA8 +Btp+eFkmcat79N9hHbiEiAY3u2qmQCcn1fiBBC0Og09cY4dRyX0/bXUo4n8lHysp +JcL/sIZ7Ahd1LOfg9h+yQfoaey78LQAGKYkBHwQYAQIACQUCPbP3iQIbDAAKCRCX +ZuCE+w9D2P0BCACXsbwFerd4wlnt8PxxQlRGXi1t4EGBFf2zSdgQvIXJ3ntPzcDU ++8hnIWQJhCTZ3PfVmoqB6ZOM1RWI/IcP6b4qVb6vJGI/VxRICraAczw+4bdFxFiB +n2+SyD4MxZg8t66FcH3fHugQqsApHTmtKmahv5BXB+0dPmP/BRUmzxYUv8hdnhHl +91S4R4BDu84DvKYyJK9jlqUl06pvqXrBSNsbWKgAJnmnDe8FaLUk+p0IXeMSavUn +T5E26MRIioxAz/G4FZI8IdO92GHTz82O7/mQMhveAdpspDvpV3M4wnldU425GlxZ +nmq1bbjAU4QVuIS9nkk2GrGx5+N6cYMy8JqG +=EHsz +-----END PGP PUBLIC KEY BLOCK----- diff --git a/pcre2.spec b/pcre2.spec new file mode 100644 index 0000000..67d552f --- /dev/null +++ b/pcre2.spec @@ -0,0 +1,262 @@ +# +# spec file for package pcre2 +# +# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2024 Andreas Stieger +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects +Name: pcre2 +Version: 10.43 +Release: 0 +Summary: A library for Perl-compatible regular expressions +License: BSD-3-Clause +Group: Development/Libraries/C and C++ +URL: https://www.pcre.org +Source0: https://github.com/PhilipHazel/pcre2/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2 +Source2: https://github.com/PhilipHazel/pcre2/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2.sig +Source3: %{name}.keyring +Source4: baselibs.conf +#PATCH-FIX-OPENSUSE tchvatal@suse.cz upstream thinks it is good idea to use rpath, taken from RH +Patch1: pcre2-10.10-multilib.patch +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc-c++ +BuildRequires: libbz2-devel +BuildRequires: libedit-devel +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: pkgconfig(zlib) + +%description +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +%package devel +Summary: A library for Perl-compatible regular expressions +Group: Development/Libraries/C and C++ +Requires: libpcre2-16-0 = %{version} +Requires: libpcre2-32-0 = %{version} +Requires: libpcre2-8-0 = %{version} +Requires: libpcre2-posix3 = %{version} +Requires: libstdc++-devel + +%description devel +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +%package devel-static +Summary: A library for Perl-compatible regular expressions +Group: Development/Libraries/C and C++ +Requires: pcre2-devel = %{version} + +%description devel-static +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +This package contains static versions of the PCRE2 libraries. + +%package -n libpcre2-8-0 +Summary: A library for Perl-compatible regular expressions +Group: System/Libraries + +%description -n libpcre2-8-0 +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +This PCRE2 library variant supports 8-bit and UTF-8 strings. +(See also libpcre2-16 and libpcre2-32) + +%package -n libpcre2-16-0 +Summary: A library for Perl-compatible regular expressions +Group: System/Libraries + +%description -n libpcre2-16-0 +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +libpcre2-16 supports 16-bit and UTF-16 strings. + +%package -n libpcre2-32-0 +Summary: A library for Perl-compatible regular expressions +Group: System/Libraries + +%description -n libpcre2-32-0 +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +libpcre2-32 supports 32-bit and UTF-32 strings. + +%package -n libpcre2-posix3 +Summary: A library for Perl-compatible regular expressions +Group: System/Libraries + +%description -n libpcre2-posix3 +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +pcre2-posix provides a POSIX-compatible API to the PCRE2 engine. + +%package doc +Summary: A library for Perl-compatible regular expressions +Group: Documentation/HTML +BuildArch: noarch + +%description doc +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +%package tools +Summary: A library for Perl-compatible regular expressions +Group: Productivity/Text/Utilities +Recommends: %{name}-doc + +%description tools +The PCRE2 library is a set of functions that implement regular +expression pattern matching using the same syntax and semantics +as Perl 5. + +PCRE2 is a re-working of the original PCRE library to provide an entirely new +API. + +%prep +%autosetup -p1 + +%build +%define _lto_cflags %{nil} +# Available JIT archs see sljit/sljitConfig.h +autoreconf -fiv +export LDFLAGS="-Wl,-z,relro,-z,now" +%configure \ +%ifarch %{ix86} x86_64 aarch64 %{arm} ppc ppc64 ppc64le mips sparc s390x + --enable-jit \ +%endif + --enable-static \ + --with-link-size=2 \ + --with-match-limit=10000000 \ + --enable-newline-is-lf \ + --enable-pcre2-16 \ + --enable-pcre2-32 \ + --enable-pcre2grep-libz \ + --enable-pcre2grep-libbz2 \ + --enable-pcre2test-libedit \ + --enable-unicode + +%if 0%{?do_profiling} + %make_build CFLAGS="%{optflags} %{cflags_profile_generate}" + export LANG=POSIX + # do not run profiling in parallel for reproducible builds (boo#1040589 boo#1102408) + %make_build -j1 CFLAGS="%{optflags} %{cflags_profile_generate}" check + %make_build clean + %make_build CFLAGS="%{optflags} %{cflags_profile_feedback}" +%else + %make_build CFLAGS="%{optflags}" +%endif + +%install +%make_install +mkdir -p %{buildroot}/%{_defaultdocdir} +mv %{buildroot}%{_datadir}/doc/pcre2 %{buildroot}/%{_defaultdocdir}/pcre2-doc +#empty dependecy_libs +find %{buildroot} -type f -name "*.la" -delete -print + +%check +export LANG=POSIX +%make_build check -j1 + +%ldconfig_scriptlets -n libpcre2-8-0 +%ldconfig_scriptlets -n libpcre2-16-0 +%ldconfig_scriptlets -n libpcre2-32-0 +%ldconfig_scriptlets -n libpcre2-posix3 + +%files -n libpcre2-8-0 +%license COPYING LICENCE +%doc AUTHORS ChangeLog NEWS README +%{_libdir}/libpcre2-8.so.* + +%files -n libpcre2-16-0 +%license LICENCE +%{_libdir}/libpcre2-16.so.* + +%files -n libpcre2-32-0 +%license LICENCE +%{_libdir}/libpcre2-32.so.* + +%files -n libpcre2-posix3 +%license LICENCE +%{_libdir}/libpcre2-posix.so.* + +%files tools +%license LICENCE +%{_bindir}/pcre2grep +%{_bindir}/pcre2test +%{_mandir}/man1/pcre2grep.1%{?ext_man} +%{_mandir}/man1/pcre2test.1%{?ext_man} + +%files doc +%license COPYING LICENCE +%doc AUTHORS ChangeLog NEWS README +%doc doc/html doc/*.txt +%doc %{_defaultdocdir}/pcre2-doc + +%files devel +%license LICENCE +%{_bindir}/pcre2-config +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/libpcre2-8.pc +%{_libdir}/pkgconfig/libpcre2-16.pc +%{_libdir}/pkgconfig/libpcre2-32.pc +%{_libdir}/pkgconfig/libpcre2-posix.pc +%{_mandir}/man1/pcre2-config.1%{?ext_man} +%{_mandir}/man3/*%{ext_man} + +%files devel-static +%license LICENCE +%{_libdir}/*.a + +%changelog From 57a91938edafac24e65ad1b56e280382722c3a4375ef17e00a3dfd343853c79b Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sun, 30 Jun 2024 21:59:10 +0000 Subject: [PATCH 2/3] - update to 10.44: * This is mostly a bug-fix and tidying release. There is one new function, to set a maximum size for a compiled pattern. The maximum name length for groups is increased to 128. * Some auxiliary files for building under VMS are added. Unicode 4-letter abbreviations for script names, implement * Following Perl's lead, \K is now locked out in lookaround * removal of the actual POSIX names regcomp etc. from the POSIX - Build with --enable-jit-sealloc option, otherwise when + bsc#1037165: crash for forward reference in lookbehind with lookup (bsc#1030066) - Enable JIT on ppc64le as well - Ensure the PCRE library and tools are built with large file - fix baselibs - Update to PCRE 8.30, upstream SONAME bump, libpcre1 - Fix cache-flush on PPC - Update to version 8.20 * replace pcre-visibility patch with the one I submitted to * the Unicode data tables have been updated to Unicode 6.0.0. - remove fragile _service - Support GCC visibility, symbol clashes no more. - disable static libraries, shouldn't be used now functional additions. * More bug fixes, plus a performance improvement - The main reason for having this release so soon after 7.5 is because it fixes a potential buffer overflow problem in pcre_compile() when run in UTF-8 mode. In addition, the CMake configuration files have been brought up to date. Windows environments %n is disabled by default. to mention here, see changelog.txt for details. - update to latest version v5.0 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/pcre2?expand=0&rev=72 --- pcre2-10.43.tar.bz2 | 3 -- pcre2-10.43.tar.bz2.sig | Bin 310 -> 0 bytes pcre2-10.44.tar.bz2 | 3 ++ pcre2-10.44.tar.bz2.sig | Bin 0 -> 310 bytes pcre2.changes | 65 +++++++++++++++++++++++----------------- pcre2.spec | 4 +-- 6 files changed, 42 insertions(+), 33 deletions(-) delete mode 100644 pcre2-10.43.tar.bz2 delete mode 100644 pcre2-10.43.tar.bz2.sig create mode 100644 pcre2-10.44.tar.bz2 create mode 100644 pcre2-10.44.tar.bz2.sig diff --git a/pcre2-10.43.tar.bz2 b/pcre2-10.43.tar.bz2 deleted file mode 100644 index dc99e91..0000000 --- a/pcre2-10.43.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2a53984ff0b07dfdb5ae4486bbb9b21cca8e7df2434096cc9bf1b728c350bcb -size 1905255 diff --git a/pcre2-10.43.tar.bz2.sig b/pcre2-10.43.tar.bz2.sig deleted file mode 100644 index d8e2368a06ec761436534e9b6f7a89ba42db2d4b0a1bb09679cb412afc561597..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}0W$;u0SEvc79j*h_Kj4#;y<$kn?~iAX5fVT4@1}m0%gyY*Z>L%5SM1) zg!>Oe*i&=|{xmOpdz++6-&NhfG7X^cHIz{w;=P(vYVI{?DGYn*6|t=Ln+KpGAo+LRTtReB)jrlP}5vpW0Ov0PqH1 zh5w0HU+721YV3+;sPk#yX8DGMc3KtTDN~SSxwLkgI>b>|xDh^)!DUjm+b0;AW^9>k z{B31_4(2KjGd=pNGEENogIXkK0s%(oI8+fQW>cYHI%n(e@NLOe*hKaR{x&*LvgiZS7jl}H9|d&PzM3xUXt}1>3TEk91Mc>l3AcI>8-yp0jbA2~ zI=3%xV16($pq6iOg|pSdc0Fu4p`s{2DNhjsK9`-GT>+TpCCQ-exfS3#p(b{E9uwmf zhWtFktz%_M%J&Eqn;m_FI8f312Qm*Vl8<6LjyL__Sl1 zV>z3Sf@6eEZMt#d>Bv(AyzQ|1$lU9ep1ti| zF|}FBL~n=SNxbB?+0ZNm*BH&m(6uxN#J(&ub!ne6`3!nfBj)loZYDCAEH~JJdbR0B I)0FuE5z?rZ4gdfE literal 0 HcmV?d00001 diff --git a/pcre2.changes b/pcre2.changes index 809baa2..094d097 100644 --- a/pcre2.changes +++ b/pcre2.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Sun Jun 30 21:58:45 UTC 2024 - Dirk Müller + +- update to 10.44: + * This is mostly a bug-fix and tidying release. There is one + new function, to set a maximum size for a compiled pattern. + The maximum name length for groups is increased to 128. + * Some auxiliary files for building under VMS are added. + ------------------------------------------------------------------- Fri Feb 16 21:06:08 UTC 2024 - Andreas Stieger @@ -85,7 +94,7 @@ Sat Apr 16 10:50:31 UTC 2022 - Andreas Stieger \p{script_extensions:xxx} (synonyms sc and scx), Changed \p{scriptname} from being the same as \p{sc:scriptname} to being the same as \p{scx:scriptname}, recognize the standard - Unicode 4-letter abbreviations for script names, implement + Unicode 4-letter abbreviations for script names, implement Unicode and Perl's "loose matching" rules on property names ------------------------------------------------------------------- @@ -100,7 +109,7 @@ Fri Nov 5 19:01:43 UTC 2021 - Andreas Stieger Sun Oct 24 14:41:00 UTC 2021 - Andreas Stieger - pcre2 10.38: - * Following Perl's lead, \K is now locked out in lookaround + * Following Perl's lead, \K is now locked out in lookaround assertions by default, but an option is provided to re-enable the previous behaviour @@ -108,7 +117,7 @@ Sun Oct 24 14:41:00 UTC 2021 - Andreas Stieger Thu May 27 12:30:17 UTC 2021 - Andreas Stieger - pcre2 10.37: - * removal of the actual POSIX names regcomp etc. from the POSIX + * removal of the actual POSIX names regcomp etc. from the POSIX wrapper library because these have caused issues for some applications, replacing pcre2-symbol-clash.patch * fix a hypothetical NULL dereference @@ -254,7 +263,7 @@ Mon Jan 14 16:11:53 CET 2019 - kukuk@suse.de ------------------------------------------------------------------- Tue Dec 11 14:31:55 UTC 2018 - Cristian Rodríguez -- Build with --enable-jit-sealloc option, otherwise when +- Build with --enable-jit-sealloc option, otherwise when selinux is enabled or systemd memory protections are on, programs will fail to work with execmem violations. @@ -319,12 +328,12 @@ Mon Sep 11 18:14:30 UTC 2017 - jengelh@inai.de as there are patterns that can use up a lot of resources without necessarily recursing very deeply. * Various minor security fixes found by fuzzers: - + bsc#1037165: crash for forward reference in lookbehind with + + bsc#1037165: crash for forward reference in lookbehind with PCRE2_ANCHORED + CVE-2017-8786: heap-based buffer overflow write in pcre2test (bsc#1036942) + CVE-2017-7186: DoS by triggering an invalid Unicode property - lookup (bsc#1030066) + lookup (bsc#1030066) - Switch source URLs to use HTTP. ------------------------------------------------------------------- @@ -486,7 +495,7 @@ Thu Aug 28 03:10:39 UTC 2014 - crrodriguez@opensuse.org ------------------------------------------------------------------- Mon Jun 16 14:44:43 UTC 2014 - dvaleev@suse.com -- Enable JIT on ppc64le as well +- Enable JIT on ppc64le as well ------------------------------------------------------------------- Sat May 3 06:07:56 UTC 2014 - coolo@suse.com @@ -547,7 +556,7 @@ Thu Jun 13 16:20:10 UTC 2013 - jengelh@inai.de ------------------------------------------------------------------- Sat Jun 8 20:16:10 UTC 2013 - crrodriguez@opensuse.org -- Ensure the PCRE library and tools are built with large file +- Ensure the PCRE library and tools are built with large file support in 32 bit archs. ------------------------------------------------------------------- @@ -626,19 +635,19 @@ Thu May 10 15:59:21 UTC 2012 - afaerber@suse.de ------------------------------------------------------------------- Tue Feb 7 15:10:59 UTC 2012 - crrodriguez@opensuse.org -- fix baselibs +- fix baselibs ------------------------------------------------------------------- Tue Feb 7 04:40:59 UTC 2012 - crrodriguez@opensuse.org -- Update to PCRE 8.30, upstream SONAME bump, libpcre1 +- Update to PCRE 8.30, upstream SONAME bump, libpcre1 - Drop no longer needed ppc patch. - move library back to %{_libdir} ------------------------------------------------------------------- Wed Feb 1 10:44:38 UTC 2012 - dvaleev@suse.com -- Fix cache-flush on PPC +- Fix cache-flush on PPC ------------------------------------------------------------------- Wed Nov 16 08:17:40 UTC 2011 - coolo@suse.com @@ -648,9 +657,9 @@ Wed Nov 16 08:17:40 UTC 2011 - coolo@suse.com ------------------------------------------------------------------- Tue Nov 1 16:16:49 UTC 2011 - crrodriguez@opensuse.org -- Update to version 8.20 +- Update to version 8.20 * too many fixes to list here, see included ChangeLog - * replace pcre-visibility patch with the one I submitted to + * replace pcre-visibility patch with the one I submitted to upstream for inclusion. ------------------------------------------------------------------- @@ -658,12 +667,12 @@ Tue Oct 11 22:39:57 UTC 2011 - dmueller@suse.de - udpate to 8.13: * too many fixes to list here, see included ChangeLog - * the Unicode data tables have been updated to Unicode 6.0.0. + * the Unicode data tables have been updated to Unicode 6.0.0. ------------------------------------------------------------------- Mon Sep 19 15:15:41 UTC 2011 - coolo@suse.com -- remove fragile _service +- remove fragile _service ------------------------------------------------------------------- Wed Mar 9 14:20:37 UTC 2011 - coolo@novell.com @@ -694,7 +703,7 @@ Wed Mar 9 14:20:37 UTC 2011 - coolo@novell.com ------------------------------------------------------------------- Sat Oct 30 02:15:06 UTC 2010 - cristian.rodriguez@opensuse.org -- Support GCC visibility, symbol clashes no more. +- Support GCC visibility, symbol clashes no more. ------------------------------------------------------------------- Sun Sep 19 11:03:57 CEST 2010 - vuntz@opensuse.org @@ -783,7 +792,7 @@ Wed Jun 10 13:03:11 CEST 2009 - coolo@novell.com ------------------------------------------------------------------- Fri Jun 5 23:13:22 CEST 2009 - crrodriguez@suse.de -- disable static libraries, shouldn't be used now +- disable static libraries, shouldn't be used now ------------------------------------------------------------------- Sat May 30 22:02:07 CEST 2009 - dmueller@suse.de @@ -800,7 +809,7 @@ Tue May 5 14:24:17 CEST 2009 - ms@suse.de - Release 7.9 11-Apr-09 (bnc #500734) Mostly bugfixes and tidies with just a couple of minor - functional additions. + functional additions. ------------------------------------------------------------------- Wed Jan 7 12:34:56 CET 2009 - olh@suse.de @@ -811,7 +820,7 @@ Wed Jan 7 12:34:56 CET 2009 - olh@suse.de Fri Sep 12 01:51:31 CEST 2008 - crrodriguez@suse.de - update to PCRE 7.8 - * More bug fixes, plus a performance improvement + * More bug fixes, plus a performance improvement in Unicode character property lookup. see complete changelog at http://www.pcre.org/changelog.txt @@ -826,9 +835,9 @@ Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de Fri Feb 1 19:43:16 CET 2008 - crrodriguez@suse.de - update to version 7.6 -- The main reason for having this release so soon after 7.5 - is because it fixes a potential buffer overflow problem in pcre_compile() - when run in UTF-8 mode. In addition, the CMake configuration files have been brought up to date. +- The main reason for having this release so soon after 7.5 + is because it fixes a potential buffer overflow problem in pcre_compile() + when run in UTF-8 mode. In addition, the CMake configuration files have been brought up to date. ------------------------------------------------------------------- Sun Jan 13 09:08:22 CET 2008 - crrodriguez@suse.de @@ -965,14 +974,14 @@ Sun Jan 13 09:08:22 CET 2008 - crrodriguez@suse.de Perl does, and where it didn't before. 24. Rewrite so as to remove the single use of %n from pcregrep because in some - Windows environments %n is disabled by default. + Windows environments %n is disabled by default. ------------------------------------------------------------------- Tue Nov 6 08:15:28 CET 2007 - crrodriguez@suse.de - update to version 7.4, since version 7.2, more than 40 bugs were fixed including multiple vulnerabilities [#325921] . The list of changes is too long - to mention here, see changelog.txt for details. + to mention here, see changelog.txt for details. ------------------------------------------------------------------- Wed Aug 8 12:46:16 CEST 2007 - ms@suse.de @@ -1317,7 +1326,7 @@ Thu Mar 31 17:39:53 CEST 2005 - uli@suse.de ------------------------------------------------------------------- Mon Nov 22 17:12:31 CET 2004 - choeger@suse.de -- update to latest version v5.0 +- update to latest version v5.0 ------------------------------------------------------------------- Mon Jun 7 11:40:27 CEST 2004 - choeger@suse.de @@ -1359,7 +1368,7 @@ Fri Dec 6 04:42:15 CET 2002 - coolo@suse.de ------------------------------------------------------------------- Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de -- removed bogus self-provides +- removed bogus self-provides ------------------------------------------------------------------- Fri Apr 5 10:57:15 CEST 2002 - coolo@suse.de @@ -1376,7 +1385,7 @@ Tue Jan 22 19:07:26 CET 2002 - choeger@suse.de ------------------------------------------------------------------- Tue Aug 21 01:11:46 MEST 2001 - mge@suse.de -- pcre 3.5 +- pcre 3.5 ------------------------------------------------------------------- Wed Apr 11 22:26:54 CEST 2001 - froh@suse.de @@ -1396,7 +1405,7 @@ Tue Jun 27 19:41:41 MEST 2000 - mge@suse.de ------------------------------------------------------------------- Thu Mar 2 12:22:48 CET 2000 - mge@suse.de -- fixed manpath +- fixed manpath ------------------------------------------------------------------- Sun Feb 13 16:54:53 MET 2000 - mge@suse.de diff --git a/pcre2.spec b/pcre2.spec index 67d552f..77ecb7b 100644 --- a/pcre2.spec +++ b/pcre2.spec @@ -1,7 +1,7 @@ # # spec file for package pcre2 # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2024 SUSE LLC # Copyright (c) 2024 Andreas Stieger # # All modifications and additions to the file contributed by third parties @@ -19,7 +19,7 @@ %global _lto_cflags %{_lto_cflags} -ffat-lto-objects Name: pcre2 -Version: 10.43 +Version: 10.44 Release: 0 Summary: A library for Perl-compatible regular expressions License: BSD-3-Clause From e2b0a951948aac644d17f8d34a34eaedacabfd0513121994312bcc582e7b062b Mon Sep 17 00:00:00 2001 From: Martin Schreiner Date: Fri, 16 Aug 2024 17:58:14 +0000 Subject: [PATCH 3/3] - Fix GitHub issue #415: Test suite fails when targeting i686. The fix is taken straight from PR #418, also on GitHub. - Add patch file: * pcre2-10.44-github-issue-415.patch OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/pcre2?expand=0&rev=73 --- pcre2-10.44-github-issue-415.patch | 5223 ++++++++++++++++++++++++++++ pcre2.changes | 8 + pcre2.spec | 4 +- 3 files changed, 5234 insertions(+), 1 deletion(-) create mode 100644 pcre2-10.44-github-issue-415.patch diff --git a/pcre2-10.44-github-issue-415.patch b/pcre2-10.44-github-issue-415.patch new file mode 100644 index 0000000..a5f9963 --- /dev/null +++ b/pcre2-10.44-github-issue-415.patch @@ -0,0 +1,5223 @@ +From fc70a2dcf913e7e2bc0465980d50e8d80e1e4cb7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= +Date: Sat, 8 Jun 2024 21:10:08 -0700 +Subject: [PATCH] pcre2test: memory reports only compiled memory usage for + code/data + +Since 05aafb2 (Implement pcre2_set_max_pattern_compiled_length() and set +this limit in the fuzzer, 2024-04-24), the memory modifier has reported +the full size of the allocated "code" returned by `pcre2_compile`. + +Problem is that the size of the structure used to hold that in memory also +depends on the platform ABI and even alignment by the compiler, and has +been therefore fragile to compare. + +Revert to reporting only the additional memory that `pcre2_compile()` will +use for the compiled pattern (including any data tables) and make sure +that the limit provided with `pcre2_set_max_pattern_compiled_length()` +also avoid the internal struct overhead. + +Fixes: #415 +--- + doc/pcre2_set_max_pattern_compiled_length.3 | 8 +- + src/pcre2_compile.c | 4 +- + src/pcre2test.c | 17 +- + testdata/testoutput8-16-2 | 171 +++++++------------- + testdata/testoutput8-16-3 | 171 +++++++------------- + testdata/testoutput8-16-4 | 171 +++++++------------- + testdata/testoutput8-32-2 | 171 +++++++------------- + testdata/testoutput8-32-3 | 171 +++++++------------- + testdata/testoutput8-32-4 | 171 +++++++------------- + testdata/testoutput8-8-2 | 171 +++++++------------- + testdata/testoutput8-8-3 | 171 +++++++------------- + testdata/testoutput8-8-4 | 171 +++++++------------- + 12 files changed, 546 insertions(+), 1022 deletions(-) + +diff --git a/doc/pcre2_set_max_pattern_compiled_length.3 b/doc/pcre2_set_max_pattern_compiled_length.3 +index 472a7bbd..679c12c2 100644 +--- a/doc/pcre2_set_max_pattern_compiled_length.3 ++++ b/doc/pcre2_set_max_pattern_compiled_length.3 +@@ -1,4 +1,4 @@ +-.TH PCRE2_SET_MAX_PATTERN_COMPILED_LENGTH 3 "24 April 2024" "PCRE2 10.44" ++.TH PCRE2_SET_MAX_PATTERN_COMPILED_LENGTH 3 "8 Jun 2024" "PCRE2 10.45" + .SH NAME + PCRE2 - Perl-compatible regular expressions (revised API) + .SH SYNOPSIS +@@ -15,9 +15,9 @@ PCRE2 - Perl-compatible regular expressions (revised API) + .rs + .sp + This function sets, in a compile context, the maximum size (in bytes) for the +-memory needed to hold the compiled version of a pattern that is compiled with +-this context. The result is always zero. If a pattern that is passed to +-\fBpcre2_compile()\fP with this context needs more memory, an error is ++memory needed to hold the compiled version of a pattern that is using this ++context. The result is always zero. If a pattern that is passed to ++\fBpcre2_compile()\fP referencing this context needs more memory, an error is + generated. The default is the largest number that a PCRE2_SIZE variable can + hold, which is effectively unlimited. + .P +diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c +index 8e6787ab..cc5b9674 100644 +--- a/src/pcre2_compile.c ++++ b/src/pcre2_compile.c +@@ -10608,8 +10608,7 @@ block for storing the compiled pattern and names table. Integer overflow should + no longer be possible because nowadays we limit the maximum value of + cb.names_found and cb.name_entry_size. */ + +-re_blocksize = sizeof(pcre2_real_code) + +- CU2BYTES(length + ++re_blocksize = CU2BYTES(length + + (PCRE2_SIZE)cb.names_found * (PCRE2_SIZE)cb.name_entry_size); + + if (re_blocksize > ccontext->max_pattern_compiled_length) +@@ -10618,6 +10617,7 @@ if (re_blocksize > ccontext->max_pattern_compiled_length) + goto HAD_CB_ERROR; + } + ++re_blocksize += sizeof(pcre2_real_code); + re = (pcre2_real_code *) + ccontext->memctl.malloc(re_blocksize, ccontext->memctl.memory_data); + if (re == NULL) +diff --git a/src/pcre2test.c b/src/pcre2test.c +index 37903451..550ae4e4 100644 +--- a/src/pcre2test.c ++++ b/src/pcre2test.c +@@ -4397,7 +4397,7 @@ static void + show_memory_info(void) + { + uint32_t name_count, name_entry_size; +-PCRE2_SIZE size, cblock_size; ++PCRE2_SIZE size, cblock_size, data_size; + + /* One of the test_mode values will always be true, but to stop a compiler + warning we must initialize cblock_size. */ +@@ -4417,18 +4417,19 @@ if (test_mode == PCRE32_MODE) cblock_size = sizeof(pcre2_real_code_32); + (void)pattern_info(PCRE2_INFO_NAMECOUNT, &name_count, FALSE); + (void)pattern_info(PCRE2_INFO_NAMEENTRYSIZE, &name_entry_size, FALSE); + +-/* The uint32_t variables are cast before multiplying to stop code analyzers +-grumbling about potential overflow. */ ++/* The uint32_t variables are cast before multiplying to avoid potential ++ integer overflow. */ ++data_size = (PCRE2_SIZE)name_count * (PCRE2_SIZE)name_entry_size * (PCRE2_SIZE)code_unit_size; + +-fprintf(outfile, "Memory allocation - compiled block : %" SIZ_FORM "\n", size); +-fprintf(outfile, "Memory allocation - code portion : %" SIZ_FORM "\n", size - +- (PCRE2_SIZE)name_count * (PCRE2_SIZE)name_entry_size * (PCRE2_SIZE)code_unit_size - +- cblock_size); ++fprintf(outfile, "Memory allocation - code size : %" SIZ_FORM "\n", size - ++ cblock_size - data_size); ++if (data_size != 0) ++ fprintf(outfile, "Memory allocation - data size : %" SIZ_FORM "\n", data_size); + + if (pat_patctl.jit != 0) + { + (void)pattern_info(PCRE2_INFO_JITSIZE, &size, FALSE); +- fprintf(outfile, "Memory allocation - JIT code : %" SIZ_FORM "\n", size); ++ fprintf(outfile, "Memory allocation - JIT code : %" SIZ_FORM "\n", size); + } + } + +diff --git a/testdata/testoutput8-16-2 b/testdata/testoutput8-16-2 +index bcb9e177..108c0bea 100644 +--- a/testdata/testoutput8-16-2 ++++ b/testdata/testoutput8-16-2 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 9 Bra + 2 5 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 174 +-Memory allocation - code portion : 38 ++Memory allocation - code size : 38 + ------------------------------------------------------------------ + 0 16 Bra + 2 7 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 38 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 172 +-Memory allocation - code portion : 36 ++Memory allocation - code size : 36 + ------------------------------------------------------------------ + 0 15 Bra + 2 6 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 36 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 182 +-Memory allocation - code portion : 46 ++Memory allocation - code size : 46 + ------------------------------------------------------------------ + 0 20 Bra + 2 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 46 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 2 Bra + 2 2 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 7 Bra + 2 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 20 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 10 Bra + 2 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 26 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 278 +-Memory allocation - code portion : 142 ++Memory allocation - code size : 142 + ------------------------------------------------------------------ + 0 68 Bra + 2 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 142 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 1784 +-Memory allocation - code portion : 1648 ++Memory allocation - code size : 1648 + ------------------------------------------------------------------ + 0 821 Bra + 2 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 1648 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 1764 +-Memory allocation - code portion : 1628 ++Memory allocation - code size : 1628 + ------------------------------------------------------------------ + 0 811 Bra + 2 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 1628 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 13 Bra + 2 9 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 176 +-Memory allocation - code portion : 40 ++Memory allocation - code size : 40 + ------------------------------------------------------------------ + 0 17 Bra + 2 13 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 40 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 242 +-Memory allocation - code portion : 54 ++Memory allocation - code size : 54 ++Memory allocation - data size : 52 + ------------------------------------------------------------------ + 0 24 Bra + 2 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 54 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 218 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 ++Memory allocation - data size : 18 + ------------------------------------------------------------------ + 0 29 Bra + 2 18 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 54 ++Memory allocation - code size : 54 ++Memory allocation - data size : 6 + ------------------------------------------------------------------ + 0 24 Bra + 2 5 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 54 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 186 +-Memory allocation - code portion : 50 ++Memory allocation - code size : 50 + ------------------------------------------------------------------ + 0 22 Bra + 2 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 50 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 214 +-Memory allocation - code portion : 78 ++Memory allocation - code size : 78 + ------------------------------------------------------------------ + 0 36 Bra + 2 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 78 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 152 +-Memory allocation - code portion : 16 ++Memory allocation - code size : 16 + ------------------------------------------------------------------ + 0 5 Bra + 2 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 16 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 152 +-Memory allocation - code portion : 16 ++Memory allocation - code size : 16 + ------------------------------------------------------------------ + 0 5 Bra + 2 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 16 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 152 +-Memory allocation - code portion : 16 ++Memory allocation - code size : 16 + ------------------------------------------------------------------ + 0 5 Bra + 2 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 16 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 10 Bra + 2 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 158 +-Memory allocation - code portion : 22 ++Memory allocation - code size : 22 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \x{c5b4} + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 158 +-Memory allocation - code portion : 22 ++Memory allocation - code size : 22 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x{8a9e} + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 190 +-Memory allocation - code portion : 54 ++Memory allocation - code size : 54 + ------------------------------------------------------------------ + 0 24 Bra + 2 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 54 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 26 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 26 + Failed: error 106 at offset 13: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 27 Bra + 2 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 194 +-Memory allocation - code portion : 58 ++Memory allocation - code size : 58 + ------------------------------------------------------------------ + 0 26 Bra + 2 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 58 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 13 Bra + 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 13 Bra + 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 23 Bra + 2 19 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 52 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 178 +-Memory allocation - code portion : 42 ++Memory allocation - code size : 42 + ------------------------------------------------------------------ + 0 18 Bra + 2 14 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 42 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +diff --git a/testdata/testoutput8-16-3 b/testdata/testoutput8-16-3 +index 4ec13ea9..28acd251 100644 +--- a/testdata/testoutput8-16-3 ++++ b/testdata/testoutput8-16-3 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 12 Bra + 3 6 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 20 Bra + 3 8 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 182 +-Memory allocation - code portion : 46 ++Memory allocation - code size : 46 + ------------------------------------------------------------------ + 0 19 Bra + 3 7 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 46 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 186 +-Memory allocation - code portion : 50 ++Memory allocation - code size : 50 + ------------------------------------------------------------------ + 0 21 Bra + 3 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 50 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 3 Bra + 3 3 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 8 Bra + 3 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 170 +-Memory allocation - code portion : 34 ++Memory allocation - code size : 34 + ------------------------------------------------------------------ + 0 13 Bra + 3 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 34 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 302 +-Memory allocation - code portion : 166 ++Memory allocation - code size : 166 + ------------------------------------------------------------------ + 0 79 Bra + 3 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 166 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 1788 +-Memory allocation - code portion : 1652 ++Memory allocation - code size : 1652 + ------------------------------------------------------------------ + 0 822 Bra + 3 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 1652 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 1768 +-Memory allocation - code portion : 1632 ++Memory allocation - code size : 1632 + ------------------------------------------------------------------ + 0 812 Bra + 3 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 1632 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 178 +-Memory allocation - code portion : 42 ++Memory allocation - code size : 42 + ------------------------------------------------------------------ + 0 17 Bra + 3 11 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 42 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 190 +-Memory allocation - code portion : 54 ++Memory allocation - code size : 54 + ------------------------------------------------------------------ + 0 23 Bra + 3 17 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 54 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 256 +-Memory allocation - code portion : 68 ++Memory allocation - code size : 68 ++Memory allocation - data size : 52 + ------------------------------------------------------------------ + 0 30 Bra + 3 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 68 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 238 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 ++Memory allocation - data size : 18 + ------------------------------------------------------------------ + 0 38 Bra + 3 23 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 206 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 ++Memory allocation - data size : 6 + ------------------------------------------------------------------ + 0 28 Bra + 3 6 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 198 +-Memory allocation - code portion : 62 ++Memory allocation - code size : 62 + ------------------------------------------------------------------ + 0 27 Bra + 3 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 62 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 242 +-Memory allocation - code portion : 106 ++Memory allocation - code size : 106 + ------------------------------------------------------------------ + 0 49 Bra + 3 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 106 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 20 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 20 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 20 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 9 Bra + 3 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \x{c5b4} + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 9 Bra + 3 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x{8a9e} + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 26 Bra + 3 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 12 Bra + 3 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 12 Bra + 3 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 32 + Failed: error 106 at offset 13: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 202 +-Memory allocation - code portion : 66 ++Memory allocation - code size : 66 + ------------------------------------------------------------------ + 0 29 Bra + 3 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 66 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 200 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 + ------------------------------------------------------------------ + 0 28 Bra + 3 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 172 +-Memory allocation - code portion : 36 ++Memory allocation - code size : 36 + ------------------------------------------------------------------ + 0 14 Bra + 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 36 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 172 +-Memory allocation - code portion : 36 ++Memory allocation - code size : 36 + ------------------------------------------------------------------ + 0 14 Bra + 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 36 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 206 +-Memory allocation - code portion : 70 ++Memory allocation - code size : 70 + ------------------------------------------------------------------ + 0 31 Bra + 3 25 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 70 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 192 +-Memory allocation - code portion : 56 ++Memory allocation - code size : 56 + ------------------------------------------------------------------ + 0 24 Bra + 3 18 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 56 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^\x{aa}] +diff --git a/testdata/testoutput8-16-4 b/testdata/testoutput8-16-4 +index 4ec13ea9..28acd251 100644 +--- a/testdata/testoutput8-16-4 ++++ b/testdata/testoutput8-16-4 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 12 Bra + 3 6 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 20 Bra + 3 8 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 182 +-Memory allocation - code portion : 46 ++Memory allocation - code size : 46 + ------------------------------------------------------------------ + 0 19 Bra + 3 7 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 46 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 186 +-Memory allocation - code portion : 50 ++Memory allocation - code size : 50 + ------------------------------------------------------------------ + 0 21 Bra + 3 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 50 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 3 Bra + 3 3 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 8 Bra + 3 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 170 +-Memory allocation - code portion : 34 ++Memory allocation - code size : 34 + ------------------------------------------------------------------ + 0 13 Bra + 3 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 34 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 302 +-Memory allocation - code portion : 166 ++Memory allocation - code size : 166 + ------------------------------------------------------------------ + 0 79 Bra + 3 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 166 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 1788 +-Memory allocation - code portion : 1652 ++Memory allocation - code size : 1652 + ------------------------------------------------------------------ + 0 822 Bra + 3 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 1652 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 1768 +-Memory allocation - code portion : 1632 ++Memory allocation - code size : 1632 + ------------------------------------------------------------------ + 0 812 Bra + 3 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 1632 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 178 +-Memory allocation - code portion : 42 ++Memory allocation - code size : 42 + ------------------------------------------------------------------ + 0 17 Bra + 3 11 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 42 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 190 +-Memory allocation - code portion : 54 ++Memory allocation - code size : 54 + ------------------------------------------------------------------ + 0 23 Bra + 3 17 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 54 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 256 +-Memory allocation - code portion : 68 ++Memory allocation - code size : 68 ++Memory allocation - data size : 52 + ------------------------------------------------------------------ + 0 30 Bra + 3 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 68 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 238 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 ++Memory allocation - data size : 18 + ------------------------------------------------------------------ + 0 38 Bra + 3 23 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 206 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 ++Memory allocation - data size : 6 + ------------------------------------------------------------------ + 0 28 Bra + 3 6 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 198 +-Memory allocation - code portion : 62 ++Memory allocation - code size : 62 + ------------------------------------------------------------------ + 0 27 Bra + 3 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 62 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 242 +-Memory allocation - code portion : 106 ++Memory allocation - code size : 106 + ------------------------------------------------------------------ + 0 49 Bra + 3 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 106 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 20 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 20 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 20 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 9 Bra + 3 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \x{c5b4} + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 9 Bra + 3 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x{8a9e} + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 26 Bra + 3 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 12 Bra + 3 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 12 Bra + 3 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 32 + Failed: error 106 at offset 13: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 202 +-Memory allocation - code portion : 66 ++Memory allocation - code size : 66 + ------------------------------------------------------------------ + 0 29 Bra + 3 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 66 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 200 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 + ------------------------------------------------------------------ + 0 28 Bra + 3 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 172 +-Memory allocation - code portion : 36 ++Memory allocation - code size : 36 + ------------------------------------------------------------------ + 0 14 Bra + 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 36 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 172 +-Memory allocation - code portion : 36 ++Memory allocation - code size : 36 + ------------------------------------------------------------------ + 0 14 Bra + 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 36 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 206 +-Memory allocation - code portion : 70 ++Memory allocation - code size : 70 + ------------------------------------------------------------------ + 0 31 Bra + 3 25 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 70 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 192 +-Memory allocation - code portion : 56 ++Memory allocation - code size : 56 + ------------------------------------------------------------------ + 0 24 Bra + 3 18 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 56 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^\x{aa}] +diff --git a/testdata/testoutput8-32-2 b/testdata/testoutput8-32-2 +index d76f3aaa..90ea536f 100644 +--- a/testdata/testoutput8-32-2 ++++ b/testdata/testoutput8-32-2 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 5 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 212 +-Memory allocation - code portion : 76 ++Memory allocation - code size : 76 + ------------------------------------------------------------------ + 0 16 Bra + 2 7 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 76 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 208 +-Memory allocation - code portion : 72 ++Memory allocation - code size : 72 + ------------------------------------------------------------------ + 0 15 Bra + 2 6 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 72 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 2 Bra + 2 2 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 176 +-Memory allocation - code portion : 40 ++Memory allocation - code size : 40 + ------------------------------------------------------------------ + 0 7 Bra + 2 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 40 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 52 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 356 +-Memory allocation - code portion : 220 ++Memory allocation - code size : 220 + ------------------------------------------------------------------ + 0 52 Bra + 2 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 220 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 3432 +-Memory allocation - code portion : 3296 ++Memory allocation - code size : 3296 + ------------------------------------------------------------------ + 0 821 Bra + 2 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 3296 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 3392 +-Memory allocation - code portion : 3256 ++Memory allocation - code size : 3256 + ------------------------------------------------------------------ + 0 811 Bra + 2 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 3256 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 200 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 + ------------------------------------------------------------------ + 0 13 Bra + 2 9 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 216 +-Memory allocation - code portion : 80 ++Memory allocation - code size : 80 + ------------------------------------------------------------------ + 0 17 Bra + 2 13 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 80 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 348 +-Memory allocation - code portion : 108 ++Memory allocation - code size : 108 ++Memory allocation - data size : 104 + ------------------------------------------------------------------ + 0 24 Bra + 2 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 108 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 300 +-Memory allocation - code portion : 128 ++Memory allocation - code size : 128 ++Memory allocation - data size : 36 + ------------------------------------------------------------------ + 0 29 Bra + 2 18 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 128 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 256 +-Memory allocation - code portion : 108 ++Memory allocation - code size : 108 ++Memory allocation - data size : 12 + ------------------------------------------------------------------ + 0 24 Bra + 2 5 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 108 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 236 +-Memory allocation - code portion : 100 ++Memory allocation - code size : 100 + ------------------------------------------------------------------ + 0 22 Bra + 2 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 100 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 292 +-Memory allocation - code portion : 156 ++Memory allocation - code size : 156 + ------------------------------------------------------------------ + 0 36 Bra + 2 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 156 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 28 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 180 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \x{c5b4} + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 180 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x{8a9e} + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 212 +-Memory allocation - code portion : 76 ++Memory allocation - code size : 76 + ------------------------------------------------------------------ + 0 16 Bra + 2 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 76 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 52 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 52 + Failed: error 106 at offset 13: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 224 +-Memory allocation - code portion : 88 ++Memory allocation - code size : 88 + ------------------------------------------------------------------ + 0 19 Bra + 2 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 88 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 220 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 + ------------------------------------------------------------------ + 0 18 Bra + 2 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 240 +-Memory allocation - code portion : 104 ++Memory allocation - code size : 104 + ------------------------------------------------------------------ + 0 23 Bra + 2 19 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 104 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 220 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 + ------------------------------------------------------------------ + 0 18 Bra + 2 14 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +diff --git a/testdata/testoutput8-32-3 b/testdata/testoutput8-32-3 +index d76f3aaa..90ea536f 100644 +--- a/testdata/testoutput8-32-3 ++++ b/testdata/testoutput8-32-3 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 5 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 212 +-Memory allocation - code portion : 76 ++Memory allocation - code size : 76 + ------------------------------------------------------------------ + 0 16 Bra + 2 7 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 76 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 208 +-Memory allocation - code portion : 72 ++Memory allocation - code size : 72 + ------------------------------------------------------------------ + 0 15 Bra + 2 6 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 72 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 2 Bra + 2 2 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 176 +-Memory allocation - code portion : 40 ++Memory allocation - code size : 40 + ------------------------------------------------------------------ + 0 7 Bra + 2 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 40 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 52 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 356 +-Memory allocation - code portion : 220 ++Memory allocation - code size : 220 + ------------------------------------------------------------------ + 0 52 Bra + 2 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 220 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 3432 +-Memory allocation - code portion : 3296 ++Memory allocation - code size : 3296 + ------------------------------------------------------------------ + 0 821 Bra + 2 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 3296 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 3392 +-Memory allocation - code portion : 3256 ++Memory allocation - code size : 3256 + ------------------------------------------------------------------ + 0 811 Bra + 2 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 3256 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 200 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 + ------------------------------------------------------------------ + 0 13 Bra + 2 9 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 216 +-Memory allocation - code portion : 80 ++Memory allocation - code size : 80 + ------------------------------------------------------------------ + 0 17 Bra + 2 13 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 80 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 348 +-Memory allocation - code portion : 108 ++Memory allocation - code size : 108 ++Memory allocation - data size : 104 + ------------------------------------------------------------------ + 0 24 Bra + 2 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 108 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 300 +-Memory allocation - code portion : 128 ++Memory allocation - code size : 128 ++Memory allocation - data size : 36 + ------------------------------------------------------------------ + 0 29 Bra + 2 18 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 128 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 256 +-Memory allocation - code portion : 108 ++Memory allocation - code size : 108 ++Memory allocation - data size : 12 + ------------------------------------------------------------------ + 0 24 Bra + 2 5 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 108 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 236 +-Memory allocation - code portion : 100 ++Memory allocation - code size : 100 + ------------------------------------------------------------------ + 0 22 Bra + 2 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 100 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 292 +-Memory allocation - code portion : 156 ++Memory allocation - code size : 156 + ------------------------------------------------------------------ + 0 36 Bra + 2 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 156 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 28 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 180 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \x{c5b4} + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 180 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x{8a9e} + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 212 +-Memory allocation - code portion : 76 ++Memory allocation - code size : 76 + ------------------------------------------------------------------ + 0 16 Bra + 2 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 76 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 52 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 52 + Failed: error 106 at offset 13: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 224 +-Memory allocation - code portion : 88 ++Memory allocation - code size : 88 + ------------------------------------------------------------------ + 0 19 Bra + 2 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 88 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 220 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 + ------------------------------------------------------------------ + 0 18 Bra + 2 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 240 +-Memory allocation - code portion : 104 ++Memory allocation - code size : 104 + ------------------------------------------------------------------ + 0 23 Bra + 2 19 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 104 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 220 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 + ------------------------------------------------------------------ + 0 18 Bra + 2 14 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +diff --git a/testdata/testoutput8-32-4 b/testdata/testoutput8-32-4 +index d76f3aaa..90ea536f 100644 +--- a/testdata/testoutput8-32-4 ++++ b/testdata/testoutput8-32-4 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 5 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 212 +-Memory allocation - code portion : 76 ++Memory allocation - code size : 76 + ------------------------------------------------------------------ + 0 16 Bra + 2 7 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 76 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 208 +-Memory allocation - code portion : 72 ++Memory allocation - code size : 72 + ------------------------------------------------------------------ + 0 15 Bra + 2 6 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 72 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 2 Bra + 2 2 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 176 +-Memory allocation - code portion : 40 ++Memory allocation - code size : 40 + ------------------------------------------------------------------ + 0 7 Bra + 2 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 40 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 52 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 356 +-Memory allocation - code portion : 220 ++Memory allocation - code size : 220 + ------------------------------------------------------------------ + 0 52 Bra + 2 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 220 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 3432 +-Memory allocation - code portion : 3296 ++Memory allocation - code size : 3296 + ------------------------------------------------------------------ + 0 821 Bra + 2 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 3296 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 3392 +-Memory allocation - code portion : 3256 ++Memory allocation - code size : 3256 + ------------------------------------------------------------------ + 0 811 Bra + 2 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 3256 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 200 +-Memory allocation - code portion : 64 ++Memory allocation - code size : 64 + ------------------------------------------------------------------ + 0 13 Bra + 2 9 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 64 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 216 +-Memory allocation - code portion : 80 ++Memory allocation - code size : 80 + ------------------------------------------------------------------ + 0 17 Bra + 2 13 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 80 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 348 +-Memory allocation - code portion : 108 ++Memory allocation - code size : 108 ++Memory allocation - data size : 104 + ------------------------------------------------------------------ + 0 24 Bra + 2 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 108 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 300 +-Memory allocation - code portion : 128 ++Memory allocation - code size : 128 ++Memory allocation - data size : 36 + ------------------------------------------------------------------ + 0 29 Bra + 2 18 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 128 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 256 +-Memory allocation - code portion : 108 ++Memory allocation - code size : 108 ++Memory allocation - data size : 12 + ------------------------------------------------------------------ + 0 24 Bra + 2 5 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 108 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 236 +-Memory allocation - code portion : 100 ++Memory allocation - code size : 100 + ------------------------------------------------------------------ + 0 22 Bra + 2 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 100 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 292 +-Memory allocation - code portion : 156 ++Memory allocation - code size : 156 + ------------------------------------------------------------------ + 0 36 Bra + 2 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 156 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 28 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 180 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \x{c5b4} + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 180 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 + ------------------------------------------------------------------ + 0 8 Bra + 2 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x{8a9e} + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 212 +-Memory allocation - code portion : 76 ++Memory allocation - code size : 76 + ------------------------------------------------------------------ + 0 16 Bra + 2 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 76 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 52 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 188 +-Memory allocation - code portion : 52 ++Memory allocation - code size : 52 + ------------------------------------------------------------------ + 0 10 Bra + 2 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 52 + Failed: error 106 at offset 13: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 224 +-Memory allocation - code portion : 88 ++Memory allocation - code size : 88 + ------------------------------------------------------------------ + 0 19 Bra + 2 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 88 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 220 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 + ------------------------------------------------------------------ + 0 18 Bra + 2 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 196 +-Memory allocation - code portion : 60 ++Memory allocation - code size : 60 + ------------------------------------------------------------------ + 0 12 Bra + 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 60 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 9 Bra + 2 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 240 +-Memory allocation - code portion : 104 ++Memory allocation - code size : 104 + ------------------------------------------------------------------ + 0 23 Bra + 2 19 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 104 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 220 +-Memory allocation - code portion : 84 ++Memory allocation - code size : 84 + ------------------------------------------------------------------ + 0 18 Bra + 2 14 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 84 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 4 Bra + 2 [^\x{aa}] +diff --git a/testdata/testoutput8-8-2 b/testdata/testoutput8-8-2 +index f3811d95..779552ac 100644 +--- a/testdata/testoutput8-8-2 ++++ b/testdata/testoutput8-8-2 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 153 +-Memory allocation - code portion : 17 ++Memory allocation - code size : 17 + ------------------------------------------------------------------ + 0 13 Bra + 3 7 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 17 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 161 +-Memory allocation - code portion : 25 ++Memory allocation - code size : 25 + ------------------------------------------------------------------ + 0 21 Bra + 3 9 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 25 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 159 +-Memory allocation - code portion : 23 ++Memory allocation - code size : 23 + ------------------------------------------------------------------ + 0 19 Bra + 3 7 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 23 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 177 +-Memory allocation - code portion : 41 ++Memory allocation - code size : 41 + ------------------------------------------------------------------ + 0 37 Bra + 3 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 41 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 143 +-Memory allocation - code portion : 7 ++Memory allocation - code size : 7 + ------------------------------------------------------------------ + 0 3 Bra + 3 3 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 9 Bra + 3 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 14 Bra + 3 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 256 +-Memory allocation - code portion : 120 ++Memory allocation - code size : 120 + ------------------------------------------------------------------ + 0 116 Bra + 3 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 120 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 962 +-Memory allocation - code portion : 826 ++Memory allocation - code size : 826 + ------------------------------------------------------------------ + 0 822 Bra + 3 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 826 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 952 +-Memory allocation - code portion : 816 ++Memory allocation - code size : 816 + ------------------------------------------------------------------ + 0 812 Bra + 3 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 816 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 158 +-Memory allocation - code portion : 22 ++Memory allocation - code size : 22 + ------------------------------------------------------------------ + 0 18 Bra + 3 12 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 22 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 24 Bra + 3 18 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 200 +-Memory allocation - code portion : 36 ++Memory allocation - code size : 36 ++Memory allocation - data size : 28 + ------------------------------------------------------------------ + 0 32 Bra + 3 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 36 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 193 +-Memory allocation - code portion : 45 ++Memory allocation - code size : 45 ++Memory allocation - data size : 12 + ------------------------------------------------------------------ + 0 41 Bra + 3 25 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 45 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 174 +-Memory allocation - code portion : 34 ++Memory allocation - code size : 34 ++Memory allocation - data size : 4 + ------------------------------------------------------------------ + 0 30 Bra + 3 7 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 34 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 167 +-Memory allocation - code portion : 31 ++Memory allocation - code size : 31 + ------------------------------------------------------------------ + 0 27 Bra + 3 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 31 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 189 +-Memory allocation - code portion : 53 ++Memory allocation - code size : 53 + ------------------------------------------------------------------ + 0 49 Bra + 3 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 53 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 10 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 7 Bra + 3 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 8 Bra + 3 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 8 Bra + 3 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 8 Bra + 3 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 12 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 10 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 10 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 10 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 10 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 14 Bra + 3 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 155 +-Memory allocation - code portion : 19 ++Memory allocation - code size : 19 + ------------------------------------------------------------------ + 0 15 Bra + 3 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \xb4 + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 155 +-Memory allocation - code portion : 19 ++Memory allocation - code size : 19 + ------------------------------------------------------------------ + 0 15 Bra + 3 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x9e + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 10 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 183 +-Memory allocation - code portion : 47 ++Memory allocation - code size : 47 + ------------------------------------------------------------------ + 0 43 Bra + 3 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 47 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 14 Bra + 3 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 14 Bra + 3 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 18 + Failed: error 106 at offset 15: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 151 +-Memory allocation - code portion : 15 ++Memory allocation - code size : 15 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 15 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 151 +-Memory allocation - code portion : 15 ++Memory allocation - code size : 15 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 15 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 151 +-Memory allocation - code portion : 15 ++Memory allocation - code size : 15 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 15 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 151 +-Memory allocation - code portion : 15 ++Memory allocation - code size : 15 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 15 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 186 +-Memory allocation - code portion : 50 ++Memory allocation - code size : 50 + ------------------------------------------------------------------ + 0 46 Bra + 3 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 50 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 151 +-Memory allocation - code portion : 15 ++Memory allocation - code size : 15 + ------------------------------------------------------------------ + 0 11 Bra + 3 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 15 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 48 ++Memory allocation - code size : 48 + ------------------------------------------------------------------ + 0 44 Bra + 3 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 48 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 161 +-Memory allocation - code portion : 25 ++Memory allocation - code size : 25 + ------------------------------------------------------------------ + 0 21 Bra + 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 25 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 161 +-Memory allocation - code portion : 25 ++Memory allocation - code size : 25 + ------------------------------------------------------------------ + 0 21 Bra + 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 25 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 153 +-Memory allocation - code portion : 17 ++Memory allocation - code size : 17 + ------------------------------------------------------------------ + 0 13 Bra + 3 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 17 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 174 +-Memory allocation - code portion : 38 ++Memory allocation - code size : 38 + ------------------------------------------------------------------ + 0 34 Bra + 3 28 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 38 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 26 Bra + 3 20 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 10 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 5 Bra + 3 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 9 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 146 +-Memory allocation - code portion : 10 ++Memory allocation - code size : 10 + ------------------------------------------------------------------ + 0 6 Bra + 3 [^\x{aa}] +diff --git a/testdata/testoutput8-8-3 b/testdata/testoutput8-8-3 +index 48e0b8aa..2657ce89 100644 +--- a/testdata/testoutput8-8-3 ++++ b/testdata/testoutput8-8-3 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 16 Bra + 4 8 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 21 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 166 +-Memory allocation - code portion : 30 ++Memory allocation - code size : 30 + ------------------------------------------------------------------ + 0 25 Bra + 4 10 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 30 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 164 +-Memory allocation - code portion : 28 ++Memory allocation - code size : 28 + ------------------------------------------------------------------ + 0 23 Bra + 4 8 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 28 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 179 +-Memory allocation - code portion : 43 ++Memory allocation - code size : 43 + ------------------------------------------------------------------ + 0 38 Bra + 4 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 43 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 145 +-Memory allocation - code portion : 9 ++Memory allocation - code size : 9 + ------------------------------------------------------------------ + 0 4 Bra + 4 4 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 151 +-Memory allocation - code portion : 15 ++Memory allocation - code size : 15 + ------------------------------------------------------------------ + 0 10 Bra + 4 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 15 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 158 +-Memory allocation - code portion : 22 ++Memory allocation - code size : 22 + ------------------------------------------------------------------ + 0 17 Bra + 4 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 22 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 268 +-Memory allocation - code portion : 132 ++Memory allocation - code size : 132 + ------------------------------------------------------------------ + 0 127 Bra + 4 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 132 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 964 +-Memory allocation - code portion : 828 ++Memory allocation - code size : 828 + ------------------------------------------------------------------ + 0 823 Bra + 4 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 828 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 954 +-Memory allocation - code portion : 818 ++Memory allocation - code size : 818 + ------------------------------------------------------------------ + 0 813 Bra + 4 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 818 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 163 +-Memory allocation - code portion : 27 ++Memory allocation - code size : 27 + ------------------------------------------------------------------ + 0 22 Bra + 4 14 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 27 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 171 +-Memory allocation - code portion : 35 ++Memory allocation - code size : 35 + ------------------------------------------------------------------ + 0 30 Bra + 4 22 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 35 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 207 +-Memory allocation - code portion : 43 ++Memory allocation - code size : 43 ++Memory allocation - data size : 28 + ------------------------------------------------------------------ + 0 38 Bra + 4 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 43 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 203 +-Memory allocation - code portion : 55 ++Memory allocation - code size : 55 ++Memory allocation - data size : 12 + ------------------------------------------------------------------ + 0 50 Bra + 4 30 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 55 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 179 +-Memory allocation - code portion : 39 ++Memory allocation - code size : 39 ++Memory allocation - data size : 4 + ------------------------------------------------------------------ + 0 34 Bra + 4 8 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 39 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 173 +-Memory allocation - code portion : 37 ++Memory allocation - code size : 37 + ------------------------------------------------------------------ + 0 32 Bra + 4 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 37 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 203 +-Memory allocation - code portion : 67 ++Memory allocation - code size : 67 + ------------------------------------------------------------------ + 0 62 Bra + 4 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 67 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 8 Bra + 4 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 9 Bra + 4 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 9 Bra + 4 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 9 Bra + 4 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 14 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 15 Bra + 4 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 16 Bra + 4 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \xb4 + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 16 Bra + 4 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x9e + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 186 +-Memory allocation - code portion : 50 ++Memory allocation - code size : 50 + ------------------------------------------------------------------ + 0 45 Bra + 4 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 50 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 16 Bra + 4 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 21 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 16 Bra + 4 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 21 + Failed: error 106 at offset 15: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 13 Bra + 4 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 13 Bra + 4 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 13 Bra + 4 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 13 Bra + 4 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 189 +-Memory allocation - code portion : 53 ++Memory allocation - code size : 53 + ------------------------------------------------------------------ + 0 48 Bra + 4 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 53 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 154 +-Memory allocation - code portion : 18 ++Memory allocation - code size : 18 + ------------------------------------------------------------------ + 0 13 Bra + 4 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 18 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 187 +-Memory allocation - code portion : 51 ++Memory allocation - code size : 51 + ------------------------------------------------------------------ + 0 46 Bra + 4 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 51 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 163 +-Memory allocation - code portion : 27 ++Memory allocation - code size : 27 + ------------------------------------------------------------------ + 0 22 Bra + 4 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 27 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 163 +-Memory allocation - code portion : 27 ++Memory allocation - code size : 27 + ------------------------------------------------------------------ + 0 22 Bra + 4 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 27 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 156 +-Memory allocation - code portion : 20 ++Memory allocation - code size : 20 + ------------------------------------------------------------------ + 0 15 Bra + 4 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 20 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 183 +-Memory allocation - code portion : 47 ++Memory allocation - code size : 47 + ------------------------------------------------------------------ + 0 42 Bra + 4 34 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 47 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 173 +-Memory allocation - code portion : 37 ++Memory allocation - code size : 37 + ------------------------------------------------------------------ + 0 32 Bra + 4 24 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 37 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 12 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 6 Bra + 4 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 11 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 148 +-Memory allocation - code portion : 12 ++Memory allocation - code size : 12 + ------------------------------------------------------------------ + 0 7 Bra + 4 [^\x{aa}] +diff --git a/testdata/testoutput8-8-4 b/testdata/testoutput8-8-4 +index 81cf0f76..8bfac41a 100644 +--- a/testdata/testoutput8-8-4 ++++ b/testdata/testoutput8-8-4 +@@ -10,8 +10,7 @@ + #pattern fullbincode,memory + + /((?i)b)/ +-Memory allocation - compiled block : 161 +-Memory allocation - code portion : 25 ++Memory allocation - code size : 25 + ------------------------------------------------------------------ + 0 19 Bra + 5 9 CBra 1 +@@ -22,8 +21,7 @@ Memory allocation - code portion : 25 + ------------------------------------------------------------------ + + /(?s)(.*X|^B)/ +-Memory allocation - compiled block : 171 +-Memory allocation - code portion : 35 ++Memory allocation - code size : 35 + ------------------------------------------------------------------ + 0 29 Bra + 5 11 CBra 1 +@@ -38,8 +36,7 @@ Memory allocation - code portion : 35 + ------------------------------------------------------------------ + + /(?s:.*X|^B)/ +-Memory allocation - compiled block : 169 +-Memory allocation - code portion : 33 ++Memory allocation - code size : 33 + ------------------------------------------------------------------ + 0 27 Bra + 5 9 Bra +@@ -54,8 +51,7 @@ Memory allocation - code portion : 33 + ------------------------------------------------------------------ + + /^[[:alnum:]]/ +-Memory allocation - compiled block : 181 +-Memory allocation - code portion : 45 ++Memory allocation - code size : 45 + ------------------------------------------------------------------ + 0 39 Bra + 5 ^ +@@ -65,8 +61,7 @@ Memory allocation - code portion : 45 + ------------------------------------------------------------------ + + /#/Ix +-Memory allocation - compiled block : 147 +-Memory allocation - code portion : 11 ++Memory allocation - code size : 11 + ------------------------------------------------------------------ + 0 5 Bra + 5 5 Ket +@@ -78,8 +73,7 @@ Options: extended + Subject length lower bound = 0 + + /a#/Ix +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 a +@@ -92,8 +86,7 @@ First code unit = 'a' + Subject length lower bound = 1 + + /x?+/ +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 x?+ +@@ -102,8 +95,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /x++/ +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 x++ +@@ -112,8 +104,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /x{1,3}+/ +-Memory allocation - compiled block : 153 +-Memory allocation - code portion : 17 ++Memory allocation - code size : 17 + ------------------------------------------------------------------ + 0 11 Bra + 5 x +@@ -123,8 +114,7 @@ Memory allocation - code portion : 17 + ------------------------------------------------------------------ + + /(x)*+/ +-Memory allocation - compiled block : 162 +-Memory allocation - code portion : 26 ++Memory allocation - code size : 26 + ------------------------------------------------------------------ + 0 20 Bra + 5 Braposzero +@@ -136,8 +126,7 @@ Memory allocation - code portion : 26 + ------------------------------------------------------------------ + + /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ +-Memory allocation - compiled block : 280 +-Memory allocation - code portion : 144 ++Memory allocation - code size : 144 + ------------------------------------------------------------------ + 0 138 Bra + 5 ^ +@@ -160,8 +149,7 @@ Memory allocation - code portion : 144 + ------------------------------------------------------------------ + + "8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 966 +-Memory allocation - code portion : 830 ++Memory allocation - code size : 830 + ------------------------------------------------------------------ + 0 824 Bra + 5 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -171,8 +159,7 @@ Memory allocation - code portion : 830 + ------------------------------------------------------------------ + + "\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b" +-Memory allocation - compiled block : 956 +-Memory allocation - code portion : 820 ++Memory allocation - code size : 820 + ------------------------------------------------------------------ + 0 814 Bra + 5 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDDqmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X +@@ -182,8 +169,7 @@ Memory allocation - code portion : 820 + ------------------------------------------------------------------ + + /(a(?1)b)/ +-Memory allocation - compiled block : 168 +-Memory allocation - code portion : 32 ++Memory allocation - code size : 32 + ------------------------------------------------------------------ + 0 26 Bra + 5 16 CBra 1 +@@ -196,8 +182,7 @@ Memory allocation - code portion : 32 + ------------------------------------------------------------------ + + /(a(?1)+b)/ +-Memory allocation - compiled block : 178 +-Memory allocation - code portion : 42 ++Memory allocation - code size : 42 + ------------------------------------------------------------------ + 0 36 Bra + 5 26 CBra 1 +@@ -212,8 +197,8 @@ Memory allocation - code portion : 42 + ------------------------------------------------------------------ + + /a(?Pb|c)d(?Pe)/ +-Memory allocation - compiled block : 214 +-Memory allocation - code portion : 50 ++Memory allocation - code size : 50 ++Memory allocation - data size : 28 + ------------------------------------------------------------------ + 0 44 Bra + 5 a +@@ -231,8 +216,8 @@ Memory allocation - code portion : 50 + ------------------------------------------------------------------ + + /(?:a(?Pc(?Pd)))(?Pa)/ +-Memory allocation - compiled block : 213 +-Memory allocation - code portion : 65 ++Memory allocation - code size : 65 ++Memory allocation - data size : 12 + ------------------------------------------------------------------ + 0 59 Bra + 5 35 Bra +@@ -252,8 +237,8 @@ Memory allocation - code portion : 65 + ------------------------------------------------------------------ + + /(?Pa)...(?P=a)bbb(?P>a)d/ +-Memory allocation - compiled block : 184 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 ++Memory allocation - data size : 4 + ------------------------------------------------------------------ + 0 38 Bra + 5 9 CBra 1 +@@ -271,8 +256,7 @@ Memory allocation - code portion : 44 + ------------------------------------------------------------------ + + /abc(?C255)de(?C)f/ +-Memory allocation - compiled block : 179 +-Memory allocation - code portion : 43 ++Memory allocation - code size : 43 + ------------------------------------------------------------------ + 0 37 Bra + 5 abc +@@ -285,8 +269,7 @@ Memory allocation - code portion : 43 + ------------------------------------------------------------------ + + /abcde/auto_callout +-Memory allocation - compiled block : 217 +-Memory allocation - code portion : 81 ++Memory allocation - code size : 81 + ------------------------------------------------------------------ + 0 75 Bra + 5 Callout 255 0 1 +@@ -305,8 +288,7 @@ Memory allocation - code portion : 81 + ------------------------------------------------------------------ + + /\x{100}/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 \x{100} +@@ -315,8 +297,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x{1000}/utf +-Memory allocation - compiled block : 151 +-Memory allocation - code portion : 15 ++Memory allocation - code size : 15 + ------------------------------------------------------------------ + 0 9 Bra + 5 \x{1000} +@@ -325,8 +306,7 @@ Memory allocation - code portion : 15 + ------------------------------------------------------------------ + + /\x{10000}/utf +-Memory allocation - compiled block : 152 +-Memory allocation - code portion : 16 ++Memory allocation - code size : 16 + ------------------------------------------------------------------ + 0 10 Bra + 5 \x{10000} +@@ -335,8 +315,7 @@ Memory allocation - code portion : 16 + ------------------------------------------------------------------ + + /\x{100000}/utf +-Memory allocation - compiled block : 152 +-Memory allocation - code portion : 16 ++Memory allocation - code size : 16 + ------------------------------------------------------------------ + 0 10 Bra + 5 \x{100000} +@@ -345,8 +324,7 @@ Memory allocation - code portion : 16 + ------------------------------------------------------------------ + + /\x{10ffff}/utf +-Memory allocation - compiled block : 152 +-Memory allocation - code portion : 16 ++Memory allocation - code size : 16 + ------------------------------------------------------------------ + 0 10 Bra + 5 \x{10ffff} +@@ -358,8 +336,7 @@ Memory allocation - code portion : 16 + Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large + + /[\x{ff}]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 \x{ff} +@@ -368,8 +345,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[\x{100}]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 \x{100} +@@ -378,8 +354,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x80/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 \x{80} +@@ -388,8 +363,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\xff/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 \x{ff} +@@ -398,8 +372,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf +-Memory allocation - compiled block : 158 +-Memory allocation - code portion : 22 ++Memory allocation - code size : 22 + ------------------------------------------------------------------ + 0 16 Bra + 5 A\x{2262}\x{391}. +@@ -413,8 +386,7 @@ Last code unit = '.' + Subject length lower bound = 4 + + /\x{D55c}\x{ad6d}\x{C5B4}/I,utf +-Memory allocation - compiled block : 159 +-Memory allocation - code portion : 23 ++Memory allocation - code size : 23 + ------------------------------------------------------------------ + 0 17 Bra + 5 \x{d55c}\x{ad6d}\x{c5b4} +@@ -428,8 +400,7 @@ Last code unit = \xb4 + Subject length lower bound = 3 + + /\x{65e5}\x{672c}\x{8a9e}/I,utf +-Memory allocation - compiled block : 159 +-Memory allocation - code portion : 23 ++Memory allocation - code size : 23 + ------------------------------------------------------------------ + 0 17 Bra + 5 \x{65e5}\x{672c}\x{8a9e} +@@ -443,8 +414,7 @@ Last code unit = \x9e + Subject length lower bound = 3 + + /[\x{100}]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 \x{100} +@@ -453,8 +423,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[Z\x{100}]/utf +-Memory allocation - compiled block : 189 +-Memory allocation - code portion : 53 ++Memory allocation - code size : 53 + ------------------------------------------------------------------ + 0 47 Bra + 5 [Z\x{100}] +@@ -463,8 +432,7 @@ Memory allocation - code portion : 53 + ------------------------------------------------------------------ + + /^[\x{100}\E-\Q\E\x{150}]/utf +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 18 Bra + 5 ^ +@@ -474,8 +442,7 @@ Memory allocation - code portion : 24 + ------------------------------------------------------------------ + + /^[\QĀ\E-\QŐ\E]/utf +-Memory allocation - compiled block : 160 +-Memory allocation - code portion : 24 ++Memory allocation - code size : 24 + ------------------------------------------------------------------ + 0 18 Bra + 5 ^ +@@ -488,8 +455,7 @@ Memory allocation - code portion : 24 + Failed: error 106 at offset 15: missing terminating ] for character class + + /[\p{L}]/ +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 15 Bra + 5 [\p{L}] +@@ -498,8 +464,7 @@ Memory allocation - code portion : 21 + ------------------------------------------------------------------ + + /[\p{^L}]/ +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 15 Bra + 5 [\P{L}] +@@ -508,8 +473,7 @@ Memory allocation - code portion : 21 + ------------------------------------------------------------------ + + /[\P{L}]/ +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 15 Bra + 5 [\P{L}] +@@ -518,8 +482,7 @@ Memory allocation - code portion : 21 + ------------------------------------------------------------------ + + /[\P{^L}]/ +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 15 Bra + 5 [\p{L}] +@@ -528,8 +491,7 @@ Memory allocation - code portion : 21 + ------------------------------------------------------------------ + + /[abc\p{L}\x{0660}]/utf +-Memory allocation - compiled block : 192 +-Memory allocation - code portion : 56 ++Memory allocation - code size : 56 + ------------------------------------------------------------------ + 0 50 Bra + 5 [a-c\p{L}\x{660}] +@@ -538,8 +500,7 @@ Memory allocation - code portion : 56 + ------------------------------------------------------------------ + + /[\p{Nd}]/utf +-Memory allocation - compiled block : 157 +-Memory allocation - code portion : 21 ++Memory allocation - code size : 21 + ------------------------------------------------------------------ + 0 15 Bra + 5 [\p{Nd}] +@@ -548,8 +509,7 @@ Memory allocation - code portion : 21 + ------------------------------------------------------------------ + + /[\p{Nd}+-]+/utf +-Memory allocation - compiled block : 190 +-Memory allocation - code portion : 54 ++Memory allocation - code size : 54 + ------------------------------------------------------------------ + 0 48 Bra + 5 [+\-\p{Nd}]++ +@@ -558,8 +518,7 @@ Memory allocation - code portion : 54 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf +-Memory allocation - compiled block : 165 +-Memory allocation - code portion : 29 ++Memory allocation - code size : 29 + ------------------------------------------------------------------ + 0 23 Bra + 5 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -568,8 +527,7 @@ Memory allocation - code portion : 29 + ------------------------------------------------------------------ + + /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf +-Memory allocation - compiled block : 165 +-Memory allocation - code portion : 29 ++Memory allocation - code size : 29 + ------------------------------------------------------------------ + 0 23 Bra + 5 A\x{391}\x{10427}\x{ff3a}\x{1fb0} +@@ -578,8 +536,7 @@ Memory allocation - code portion : 29 + ------------------------------------------------------------------ + + /[\x{105}-\x{109}]/i,utf +-Memory allocation - compiled block : 159 +-Memory allocation - code portion : 23 ++Memory allocation - code size : 23 + ------------------------------------------------------------------ + 0 17 Bra + 5 [\x{104}-\x{109}] +@@ -588,8 +545,7 @@ Memory allocation - code portion : 23 + ------------------------------------------------------------------ + + /( ( (?(1)0|) )* )/x +-Memory allocation - compiled block : 192 +-Memory allocation - code portion : 56 ++Memory allocation - code size : 56 + ------------------------------------------------------------------ + 0 50 Bra + 5 40 CBra 1 +@@ -607,8 +563,7 @@ Memory allocation - code portion : 56 + ------------------------------------------------------------------ + + /( (?(1)0|)* )/x +-Memory allocation - compiled block : 180 +-Memory allocation - code portion : 44 ++Memory allocation - code size : 44 + ------------------------------------------------------------------ + 0 38 Bra + 5 28 CBra 1 +@@ -624,8 +579,7 @@ Memory allocation - code portion : 44 + ------------------------------------------------------------------ + + /[a]/ +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 a +@@ -634,8 +588,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /[a]/utf +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 a +@@ -644,8 +597,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /[\xaa]/ +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 \x{aa} +@@ -654,8 +606,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /[\xaa]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 \x{aa} +@@ -664,8 +615,7 @@ Memory allocation - code portion : 14 + ------------------------------------------------------------------ + + /[^a]/ +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 [^a] +@@ -674,8 +624,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /[^a]/utf +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 [^a] +@@ -684,8 +633,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /[^\xaa]/ +-Memory allocation - compiled block : 149 +-Memory allocation - code portion : 13 ++Memory allocation - code size : 13 + ------------------------------------------------------------------ + 0 7 Bra + 5 [^\x{aa}] +@@ -694,8 +642,7 @@ Memory allocation - code portion : 13 + ------------------------------------------------------------------ + + /[^\xaa]/utf +-Memory allocation - compiled block : 150 +-Memory allocation - code portion : 14 ++Memory allocation - code size : 14 + ------------------------------------------------------------------ + 0 8 Bra + 5 [^\x{aa}] diff --git a/pcre2.changes b/pcre2.changes index 094d097..45eb914 100644 --- a/pcre2.changes +++ b/pcre2.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Aug 16 17:37:57 UTC 2024 - Martin Schreiner + +- Fix GitHub issue #415: Test suite fails when targeting i686. + The fix is taken straight from PR #418, also on GitHub. +- Add patch file: + * pcre2-10.44-github-issue-415.patch + ------------------------------------------------------------------- Sun Jun 30 21:58:45 UTC 2024 - Dirk Müller diff --git a/pcre2.spec b/pcre2.spec index 77ecb7b..0937fba 100644 --- a/pcre2.spec +++ b/pcre2.spec @@ -29,8 +29,10 @@ Source0: https://github.com/PhilipHazel/pcre2/releases/download/%{name}-% Source2: https://github.com/PhilipHazel/pcre2/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2.sig Source3: %{name}.keyring Source4: baselibs.conf -#PATCH-FIX-OPENSUSE tchvatal@suse.cz upstream thinks it is good idea to use rpath, taken from RH +# PATCH-FIX-OPENSUSE tchvatal@suse.cz upstream thinks it is good idea to use rpath, taken from RH Patch1: pcre2-10.10-multilib.patch +# PATCH-FIX-UPSTREAM: patch fixes issue #415 on GitHub: Test suite fails when targeting i686, fix taken from PR #418 +Patch2: pcre2-10.44-github-issue-415.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++