Xpressive 2 0 0

Posted on  by

Win32

Linux x86

Linux AMD64

MacOSX

Solaris

HP-UX

Version 5.2.0 of the Unicode Standard consists of the core specification (The Unicode Standard, Version 5.2), together with the delta and archival code charts for this version, the 5.2.0 Unicode Standard Annexes, and the 5.2.0 Unicode Character Database (UCD). Half-time: (2 - 0) statistics: 0. Home Live 1 Feeds Alerts Rooms Login Register Recovery.


Xpressive 2 0 0 Apr

Final release: v2.0.7 (End of Series)
Release DateFile NameSizeDescription
Sources
April 12, 2012Firebird-2.0.7.13318-0.tar.bz213 MBCompressed tarball
Win32
April 12, 2012Firebird-2.0.7.13318_0_win32.exe5 MBWindows executable installer for full Classic or Superserver, recommended for first-time users
April 12, 2012Firebird-2.0.7.13318-0.zip6 MBZip kit for manual/custom installs of Classic or Superserver
April 12, 2012Firebird-2.0.7.13318-0_embed.zip4 MBEmbedded, separate download, zip kit. Custom installation required, read the Guide!
April 12, 2012Firebird-2.0.7.13318_0_win32_pdb.exe8 MBDebug build, Full Classic or Superserver, installer kit
April 12, 2012Firebird-2.0.7.13318-0_pdb.zip11 MBDebug build, Full Classic or Superserver, zip kit
April 12, 2012Firebird-2.0.7.13318-0_embed_pdb.zip6 MBDebug build, Embedded, separate download, zip kit
Linux x86
NOTE: The obsolete pthreads threading model is no longer supported. If your Linux kernel does not support NPTL threading then you will not be able to use this sub-release.
April 12, 2012FirebirdCS-2.0.7.13318-0.i686.rpm6 MBClassic server, RPM kit
April 12, 2012FirebirdCS-2.0.7.13318-0.i686.tar.gz6 MBClassic server, compressed tarball
April 12, 2012FirebirdCS-debuginfo-2.0.7.13318-0.i686.tar.gz23 MBDebug Build, Classic server, compressed tarball
April 12, 2012FirebirdSS-2.0.7.13318-0.i686.rpm6 MBSuperserver, RPM kit
April 12, 2012FirebirdSS-2.0.7.13318-0.i686.tar.gz6 MBSuperserver, compressed tarball
April 12, 2012FirebirdSS-debuginfo-2.0.7.13318-0.i686.tar.gz24 MBDebug Build, Superserver, compressed tarball
Linux AMD64
April 12, 2012FirebirdCS-2.0.7.13318-0.amd64.rpm5 MBClassic server, RPM kit
April 12, 2012FirebirdCS-2.0.7.13318-0.amd64.tar.gz5 MBClassic server, compressed tarball
April 12, 2012FirebirdCS-debuginfo-2.0.7.13318-0.amd64.tar.gz24 MBDebug Build, Classic server, compressed tarball
April 12, 2012FirebirdSS-2.0.7.13318-0.amd64.rpm6 MBSuperserver, RPM kit
April 12, 2012FirebirdSS-2.0.7.13318-0.amd64.tar.gz6 MBSuperserver, compressed tarball
April 12, 2012FirebirdSS-debuginfo-2.0.7.13318-0.amd64.tar.gz24 MBDebug Build, Superserver, compressed tarball
MacOSX
April 12, 2012FirebirdCS-2.0.7-13318-i386.pkg.zip10 MBMacOS X 10.6+ 32-bit Classic & Embedded (Intel) package, compressed
April 12, 2012FirebirdSS-2.0.7-13318-i386.pkg.zip10 MBMacOS X 32-bit Superserver (Intel) package, compressed
Older ports for Solaris
April 17, 2009FirebirdCS-2.0.5.13206--Solaris10-sparc.pkg.gz7.1 MBClassic for Solaris 10, SPARC, compressed package
Release 2.0.4
September 02, 2008FirebirdSS-2.0.4.13130-0-Solaris10-i386.pkg.gz7.1 MBSuperserver for Solaris 10, i386, compressed
August 11, 2008FirebirdCS-2.0.4.13130-0-Solaris10-i386.pkg.gz5.4 MBClassic package for Solaris 10, i386, compressed
August 11, 2008Firebird-libgcc-Solaris10-i386.pkg.gz2.1 MBFirebird Classic 2.0.4-compatible libgcc installer for Solaris 10, i386, compressed
Older ports for HP-UX (Classic only)
Release 2.0.3 for HP-UX 11
January 07, 2008FirebirdCS-2.0.3.12981-0.hppa2.0w.tar.gz11 MB64-bit Classic for HP-UX 11 (PA-RISC 2.0) - tarball
January 07, 2008FirebirdCS-2.0.3.12981-0.hppa2.0w.depot.gz5.6 MB64-bit Classic for HP-UX 11 (PA-RISC 2.0) - depot file
xpressive vs. Boost.Regex with GCC (Cygwin)
xpressive vs. Boost.Regex with Visual C++

The performance of xpressive is competitive with Boost.Regex. I have run performance benchmarks comparing static xpressive, dynamic xpressive and Boost.Regex on two platforms: gcc (Cygwin) and Visual C++. The tests include short matches and long searches. For both platforms, xpressive comes off well on short matches and roughly on par with Boost.Regex on long searches.

<disclaimer> As with all benchmarks, the true test is how xpressive performs with your patterns, your input, and your platform, so if performance matters in your application, it's best to run your own tests. </disclaimer>

Below are the results of a performance comparison between:

  • static xpressive
  • dynamic xpressive

Game 2.0

Test Specifications

Hardware:

Xpressive 2 0 0 Equals

hyper-threaded 3GHz Xeon with 1Gb RAM

Operating System:

Windows XP Pro + Cygwin

Compiler:

GNU C++ version 3.4.4 (Cygwin special)

C++ Standard Library:

GNU libstdc++ version 3.4.4

Boost.Regex Version:

1.33+, BOOST_REGEX_USE_CPP_LOCALE, BOOST_REGEX_RECURSIVE

Xpressive
xpressive Version:

0.9.6a

Comparison 1: Short Matches

The following tests evaluate the time taken to match the expression to the input string. For each result, the top number has been normalized relative to the fastest time, so 1.0 is as good as it gets. The bottom number (in parentheses) is the actual time in seconds. The best time has been marked in green.

Short Matches
static xpressivedynamic xpressiveBoostTextExpression
1(8.79e‑07s)1.08(9.54e‑07s)2.51(2.2e‑06s)100- this is a line of ftp response which contains a message string^([0-9]+)(- $)(.*)$
1.06(1.07e‑06s)1(1.01e‑06s)4.01(4.06e‑06s)1234-5678-1234-456([[:digit:]]{4}[- ]){3}[[:digit:]]{3,4}
1(1.4e‑06s)1.13(1.58e‑06s)2.89(4.05e‑06s)john_maddock@compuserve.com^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.) (([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4} [0-9]{1,3})(]?)$
1(1.28e‑06s)1.16(1.49e‑06s)3.07(3.94e‑06s)foo12@foo.edu^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.) (([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4} [0-9]{1,3})(]?)$
1(1.22e‑06s)1.2(1.46e‑06s)3.22(3.93e‑06s)bob.smith@foo.tv^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.) (([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4} [0-9]{1,3})(]?)$
1.04(8.64e‑07s)1(8.34e‑07s)2.5(2.09e‑06s)EH10 2QQ^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$
1.11(9.09e‑07s)1(8.19e‑07s)2.47(2.03e‑06s)G1 1AA^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$
1.12(9.38e‑07s)1(8.34e‑07s)2.5(2.08e‑06s)SW1 1ZZ^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$
1(7.9e‑07s)1.06(8.34e‑07s)2.49(1.96e‑06s)4/1/2001^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$
1(8.19e‑07s)1.04(8.49e‑07s)2.4(1.97e‑06s)12/12/2001^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$
1.09(8.95e‑07s)1(8.19e‑07s)2.4(1.96e‑06s)123^[-+]?[[:digit:]]*.?[[:digit:]]*$
1.11(8.79e‑07s)1(7.9e‑07s)2.57(2.03e‑06s)+3.14159^[-+]?[[:digit:]]*.?[[:digit:]]*$
1.09(8.94e‑07s)1(8.19e‑07s)2.47(2.03e‑06s)-3.14159^[-+]?[[:digit:]]*.?[[:digit:]]*$

Comparison 2: Long Searches

The next test measures the time to find all matches in a long English text. The text is the complete works of Mark Twain, from Project Gutenberg. The text is 19Mb long. As above, the top number is the normalized time and the bottom number is the actual time. The best time is in green.

Long Searches
static xpressivedynamic xpressiveBoostExpression
1(0.0263s)1(0.0263s)1.78(0.0469s)Twain
1(0.0234s)1(0.0234s)1.79(0.042s)Huck[[:alpha:]]+
1.84(1.26s)2.21(1.51s)1(0.687s)[[:alpha:]]+ing
1.09(0.192s)2(0.351s)1(0.176s)^[^]*?Twain
1.41(0.08s)1.21(0.0684s)1(0.0566s)Tom Sawyer Huckleberry Finn
1.56(0.195s)1.12(0.141s)1(0.125s)(Tom Sawyer Huckleberry Finn).{0,30}river river.{0,30}(Tom Sawyer Huckleberry Finn)

Below are the results of a performance comparison between:

Xpressive 2 0 0 =

  • static xpressive
  • dynamic xpressive

Test Specifications

Hardware:

hyper-threaded 3GHz Xeon with 1Gb RAM

Operating System:

Windows XP Pro

Compiler:

Visual C++ .NET 2003 (7.1)

C++ Standard Library:

Dinkumware, version 313

Boost.Regex Version:

1.33+, BOOST_REGEX_USE_CPP_LOCALE, BOOST_REGEX_RECURSIVE

xpressive Version:

0.9.6a

Comparison 1: Short Matches

2.0 Facebook

The following tests evaluate the time taken to match the expression to the input string. For each result, the top number has been normalized relative to the fastest time, so 1.0 is as good as it gets. The bottom number (in parentheses) is the actual time in seconds. The best time has been marked in green.

Short Matches
Xpressive
static xpressivedynamic xpressiveBoostTextExpression
1(3.2e‑007s)1.37(4.4e‑007s)2.38(7.6e‑007s)100- this is a line of ftp response which contains a message string^([0-9]+)(- $)(.*)$
1(6.4e‑007s)1.12(7.15e‑007s)1.72(1.1e‑006s)1234-5678-1234-456([[:digit:]]{4}[- ]){3}[[:digit:]]{3,4}
1(9.82e‑007s)1.3(1.28e‑006s)1.61(1.58e‑006s)john_maddock@compuserve.com^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.) (([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4} [0-9]{1,3})(]?)$
1(8.94e‑007s)1.3(1.16e‑006s)1.7(1.52e‑006s)foo12@foo.edu^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.) (([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4} [0-9]{1,3})(]?)$
1(9.09e‑007s)1.28(1.16e‑006s)1.67(1.52e‑006s)bob.smith@foo.tv^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.) (([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4} [0-9]{1,3})(]?)$
1(3.06e‑007s)1.07(3.28e‑007s)1.95(5.96e‑007s)EH10 2QQ^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$
1(3.13e‑007s)1.09(3.42e‑007s)1.86(5.81e‑007s)G1 1AA^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$
1(3.2e‑007s)1.09(3.5e‑007s)1.86(5.96e‑007s)SW1 1ZZ^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$
1(2.68e‑007s)1.22(3.28e‑007s)2(5.36e‑007s)4/1/2001^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$
1(2.76e‑007s)1.16(3.2e‑007s)1.94(5.36e‑007s)12/12/2001^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$
1(2.98e‑007s)1.03(3.06e‑007s)1.85(5.51e‑007s)123^[-+]?[[:digit:]]*.?[[:digit:]]*$
1(3.2e‑007s)1.12(3.58e‑007s)1.81(5.81e‑007s)+3.14159^[-+]?[[:digit:]]*.?[[:digit:]]*$
1(3.28e‑007s)1.11(3.65e‑007s)1.77(5.81e‑007s)-3.14159^[-+]?[[:digit:]]*.?[[:digit:]]*$

Comparison 2: Long Searches

The next test measures the time to find all matches in a long English text. The text is the complete works of Mark Twain, from Project Gutenberg. The text is 19Mb long. As above, the top number is the normalized time and the bottom number is the actual time. The best time is in green.

Long Searches
static xpressivedynamic xpressiveBoostExpression
1(0.019s)1(0.019s)2.98(0.0566s)Twain
1(0.0176s)1(0.0176s)3.17(0.0556s)Huck[[:alpha:]]+
3.62(1.78s)3.97(1.95s)1(0.492s)[[:alpha:]]+ing
2.32(0.344s)3.06(0.453s)1(0.148s)^[^]*?Twain
1(0.0576s)1.05(0.0606s)1.15(0.0664s)Tom Sawyer Huckleberry Finn
1.24(0.164s)1.44(0.191s)1(0.133s)(Tom Sawyer Huckleberry Finn).{0,30}river river.{0,30}(Tom Sawyer Huckleberry Finn)