Skip to content

Commit

Permalink
released 5.0
Browse files Browse the repository at this point in the history
faster SIMD regex search methods; improved anchor and word boundary matching speed and support; new `std::string_view strview()` matcher method.
  • Loading branch information
genivia-inc committed Oct 29, 2024
1 parent f737e1e commit aa99680
Show file tree
Hide file tree
Showing 375 changed files with 6,871 additions and 4,709 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ for lex and syntax error reporting, lexer rule execution performance profiling,
and other new features.

Only RE/flex supports POSIX regex lazy matching in linear time using an
advanced DFA transformation algorithm invented by Dr. Robert van Engelen.
advanced DFA transformation algorithm (invented by Dr. Robert van Engelen.)

RE/flex is faster than Flex and much faster than regex libraries such as
Boost.Regex, C++11 std::regex, PCRE2 and RE2. For example, tokenizing a 2 KB
Expand Down Expand Up @@ -58,7 +58,7 @@ efficiency. By default, RE/flex uses DFA-based extended regular expression
matching in linear time, the fastest method (as shown in the table).

The RE/flex matcher tracks line numbers, column numbers, and indentations,
whereas Flex does not (option noyylineno) and neither do the other regex
whereas Lex and Flex do not (option noyylineno) and neither do the other regex
matchers in the table (except PCRE2 and Boost.Regex when used with RE/flex).
Tracking this information incurs some overhead. RE/flex also automatically
decodes UTF-8/16/32 input and accepts `std::istream`, strings, and wide strings
Expand Down Expand Up @@ -605,6 +605,7 @@ Changelog
- May 12, 2024: 4.3.0 faster `Matcher::find()` with refactored SIMD (SSE2/AVX2/AVX512BW/NEON/AArch64) code; larger default 256KB buffer (from 128KB).
- Jun 6, 2024: 4.4.0 upgraded `reflex::Matcher` and `reflex::FuzzyMatcher` to respect Unicode word boundaries instead of only ASCII `\<`, `\>`, `\b`, `\B`; upgraded regex Unicode converters to Unicode `[::]` character classes instead of only ASCII `[[:alpha:]]` etc.; improved FSM code generation without local c0.
- Aug 1, 2024: 4.5.0 minor speed improvements.
- Oct 29, 2024: 5.0.0 faster SIMD regex search methods; improved anchor and word boundary matching speed and support; new `std::string_view strview()` matcher method.

[logo-url]: https://www.genivia.com/images/reflex-logo.png
[reflex-url]: https://www.genivia.com/reflex.html
Expand Down
Binary file modified bin/win32/reflex.exe
Binary file not shown.
Binary file modified bin/win64/reflex.exe
Binary file not shown.
20 changes: 10 additions & 10 deletions configure
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for re-flex 4.5.0.
# Generated by GNU Autoconf 2.72 for re-flex 5.0.0.
#
# Report bugs to <https://github.com/Genivia/RE-flex/issues>.
#
Expand Down Expand Up @@ -605,8 +605,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='re-flex'
PACKAGE_TARNAME='reflex'
PACKAGE_VERSION='4.5.0'
PACKAGE_STRING='re-flex 4.5.0'
PACKAGE_VERSION='5.0.0'
PACKAGE_STRING='re-flex 5.0.0'
PACKAGE_BUGREPORT='https://github.com/Genivia/RE-flex/issues'
PACKAGE_URL=''

Expand Down Expand Up @@ -1332,7 +1332,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
'configure' configures re-flex 4.5.0 to adapt to many kinds of systems.
'configure' configures re-flex 5.0.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
Expand Down Expand Up @@ -1403,7 +1403,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of re-flex 4.5.0:";;
short | recursive ) echo "Configuration of re-flex 5.0.0:";;
esac
cat <<\_ACEOF
Expand Down Expand Up @@ -1506,7 +1506,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
re-flex configure 4.5.0
re-flex configure 5.0.0
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
Expand Down Expand Up @@ -1857,7 +1857,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by re-flex $as_me 4.5.0, which was
It was created by re-flex $as_me 5.0.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
Expand Down Expand Up @@ -3365,7 +3365,7 @@ fi

# Define the identity of the package.
PACKAGE='reflex'
VERSION='4.5.0'
VERSION='5.0.0'


printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
Expand Down Expand Up @@ -6944,7 +6944,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by re-flex $as_me 4.5.0, which was
This file was extended by re-flex $as_me 5.0.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -7012,7 +7012,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
re-flex config.status 4.5.0
re-flex config.status 5.0.0
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
AC_INIT([re-flex],[4.5.0],[https://github.com/Genivia/RE-flex/issues],[reflex])
AC_INIT([re-flex],[5.0.0],[https://github.com/Genivia/RE-flex/issues],[reflex])
AM_INIT_AUTOMAKE([foreign subdir-objects])
AC_CONFIG_HEADERS([config.h])
AC_COPYRIGHT([Copyright (C) 2016-2024 Robert van Engelen, Genivia Inc.])
Expand Down
20 changes: 10 additions & 10 deletions doc/html/abslexer_8h.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions doc/html/abslexer_8h__incl.map
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<map id="abslexer.h" name="abslexer.h">
<area shape="rect" id="node2" href="$input_8h.html" title="RE/flex input character sequence class. " alt="" coords="283,155,379,182"/>
<area shape="rect" id="node9" href="$absmatcher_8h.html" title="RE/flex abstract matcher base class and pattern matcher class. " alt="" coords="679,80,815,107"/>
<area shape="rect" id="node3" href="$utf8_8h.html" title="RE/flex UCS to UTF&#45;8 converters. " alt="" coords="213,230,303,257"/>
<area shape="rect" id="node10" href="$convert_8h.html" title="RE/flex regex converter. " alt="" coords="434,155,545,182"/>
<area shape="rect" id="node14" href="$debug_8h.html" title="RE/flex debug logs and assertions. " alt="" coords="1083,155,1187,182"/>
<area shape="rect" id="node16" href="$traits_8h.html" title="Type traits for (non&#45;)const type inference. " alt="" coords="569,155,666,182"/>
<area shape="rect" id="node17" href="$simd_8h.html" title="RE/flex SIMD primitives. " alt="" coords="742,155,838,182"/>
<area shape="rect" id="node11" href="$error_8h.html" title="RE/flex regex errors. " alt="" coords="599,230,692,257"/>
<area shape="rect" id="node2" href="$input_8h.html" title="RE/flex input character sequence class. " alt="" coords="81,155,178,182"/>
<area shape="rect" id="node10" href="$absmatcher_8h.html" title="RE/flex abstract matcher base class and pattern matcher class. " alt="" coords="381,80,516,107"/>
<area shape="rect" id="node3" href="$utf8_8h.html" title="RE/flex UCS to UTF&#45;8 converters. " alt="" coords="208,230,299,257"/>
<area shape="rect" id="node11" href="$convert_8h.html" title="RE/flex regex converter. " alt="" coords="717,155,828,182"/>
<area shape="rect" id="node15" href="$debug_8h.html" title="RE/flex debug logs and assertions. " alt="" coords="893,155,996,182"/>
<area shape="rect" id="node17" href="$traits_8h.html" title="Type traits for (non&#45;)const type inference. " alt="" coords="202,155,300,182"/>
<area shape="rect" id="node18" href="$simd_8h.html" title="RE/flex SIMD primitives. " alt="" coords="545,155,642,182"/>
<area shape="rect" id="node12" href="$error_8h.html" title="RE/flex regex errors. " alt="" coords="814,230,907,257"/>
</map>
2 changes: 1 addition & 1 deletion doc/html/abslexer_8h__incl.md5
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7452a3556b0aa2d610a5d727eda2113c
898959d8e27a556624d1fbf3314829a8
Binary file modified doc/html/abslexer_8h__incl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions doc/html/absmatcher_8h.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions doc/html/absmatcher_8h__incl.map
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<map id="absmatcher.h" name="absmatcher.h">
<area shape="rect" id="node2" href="$convert_8h.html" title="RE/flex regex converter. " alt="" coords="309,80,421,107"/>
<area shape="rect" id="node9" href="$debug_8h.html" title="RE/flex debug logs and assertions. " alt="" coords="5,80,109,107"/>
<area shape="rect" id="node11" href="$input_8h.html" title="RE/flex input character sequence class. " alt="" coords="606,80,703,107"/>
<area shape="rect" id="node15" href="$traits_8h.html" title="Type traits for (non&#45;)const type inference. " alt="" coords="738,80,835,107"/>
<area shape="rect" id="node16" href="$simd_8h.html" title="RE/flex SIMD primitives. " alt="" coords="910,80,1007,107"/>
<area shape="rect" id="node11" href="$input_8h.html" title="RE/flex input character sequence class. " alt="" coords="557,80,653,107"/>
<area shape="rect" id="node16" href="$traits_8h.html" title="Type traits for (non&#45;)const type inference. " alt="" coords="1030,80,1127,107"/>
<area shape="rect" id="node17" href="$simd_8h.html" title="RE/flex SIMD primitives. " alt="" coords="858,80,955,107"/>
<area shape="rect" id="node3" href="$error_8h.html" title="RE/flex regex errors. " alt="" coords="234,155,328,182"/>
<area shape="rect" id="node12" href="$utf8_8h.html" title="RE/flex UCS to UTF&#45;8 converters. " alt="" coords="504,155,594,182"/>
<area shape="rect" id="node12" href="$utf8_8h.html" title="RE/flex UCS to UTF&#45;8 converters. " alt="" coords="643,155,733,182"/>
</map>
2 changes: 1 addition & 1 deletion doc/html/absmatcher_8h__incl.md5
Original file line number Diff line number Diff line change
@@ -1 +1 @@
990f950248ac6dcdf9a8360c1600b1de
6787e5b05140d567232b4fd974e5edfd
Binary file modified doc/html/absmatcher_8h__incl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit aa99680

Please sign in to comment.