Xpressive 2 0 0
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 Date | File Name | Size | Description |
Sources | |||
April 12, 2012 | Firebird-2.0.7.13318-0.tar.bz2 | 13 MB | Compressed tarball |
Win32 | |||
April 12, 2012 | Firebird-2.0.7.13318_0_win32.exe | 5 MB | Windows executable installer for full Classic or Superserver, recommended for first-time users |
April 12, 2012 | Firebird-2.0.7.13318-0.zip | 6 MB | Zip kit for manual/custom installs of Classic or Superserver |
April 12, 2012 | Firebird-2.0.7.13318-0_embed.zip | 4 MB | Embedded, separate download, zip kit. Custom installation required, read the Guide! |
April 12, 2012 | Firebird-2.0.7.13318_0_win32_pdb.exe | 8 MB | Debug build, Full Classic or Superserver, installer kit |
April 12, 2012 | Firebird-2.0.7.13318-0_pdb.zip | 11 MB | Debug build, Full Classic or Superserver, zip kit |
April 12, 2012 | Firebird-2.0.7.13318-0_embed_pdb.zip | 6 MB | Debug 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, 2012 | FirebirdCS-2.0.7.13318-0.i686.rpm | 6 MB | Classic server, RPM kit |
April 12, 2012 | FirebirdCS-2.0.7.13318-0.i686.tar.gz | 6 MB | Classic server, compressed tarball |
April 12, 2012 | FirebirdCS-debuginfo-2.0.7.13318-0.i686.tar.gz | 23 MB | Debug Build, Classic server, compressed tarball |
April 12, 2012 | FirebirdSS-2.0.7.13318-0.i686.rpm | 6 MB | Superserver, RPM kit |
April 12, 2012 | FirebirdSS-2.0.7.13318-0.i686.tar.gz | 6 MB | Superserver, compressed tarball |
April 12, 2012 | FirebirdSS-debuginfo-2.0.7.13318-0.i686.tar.gz | 24 MB | Debug Build, Superserver, compressed tarball |
Linux AMD64 | |||
April 12, 2012 | FirebirdCS-2.0.7.13318-0.amd64.rpm | 5 MB | Classic server, RPM kit |
April 12, 2012 | FirebirdCS-2.0.7.13318-0.amd64.tar.gz | 5 MB | Classic server, compressed tarball |
April 12, 2012 | FirebirdCS-debuginfo-2.0.7.13318-0.amd64.tar.gz | 24 MB | Debug Build, Classic server, compressed tarball |
April 12, 2012 | FirebirdSS-2.0.7.13318-0.amd64.rpm | 6 MB | Superserver, RPM kit |
April 12, 2012 | FirebirdSS-2.0.7.13318-0.amd64.tar.gz | 6 MB | Superserver, compressed tarball |
April 12, 2012 | FirebirdSS-debuginfo-2.0.7.13318-0.amd64.tar.gz | 24 MB | Debug Build, Superserver, compressed tarball |
MacOSX | |||
April 12, 2012 | FirebirdCS-2.0.7-13318-i386.pkg.zip | 10 MB | MacOS X 10.6+ 32-bit Classic & Embedded (Intel) package, compressed |
April 12, 2012 | FirebirdSS-2.0.7-13318-i386.pkg.zip | 10 MB | MacOS X 32-bit Superserver (Intel) package, compressed |
Older ports for Solaris | |||
April 17, 2009 | FirebirdCS-2.0.5.13206--Solaris10-sparc.pkg.gz | 7.1 MB | Classic for Solaris 10, SPARC, compressed package |
Release 2.0.4 | |||
September 02, 2008 | FirebirdSS-2.0.4.13130-0-Solaris10-i386.pkg.gz | 7.1 MB | Superserver for Solaris 10, i386, compressed |
August 11, 2008 | FirebirdCS-2.0.4.13130-0-Solaris10-i386.pkg.gz | 5.4 MB | Classic package for Solaris 10, i386, compressed |
August 11, 2008 | Firebird-libgcc-Solaris10-i386.pkg.gz | 2.1 MB | Firebird 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, 2008 | FirebirdCS-2.0.3.12981-0.hppa2.0w.tar.gz | 11 MB | 64-bit Classic for HP-UX 11 (PA-RISC 2.0) - tarball |
January 07, 2008 | FirebirdCS-2.0.3.12981-0.hppa2.0w.depot.gz | 5.6 MB | 64-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
Xpressive 2 0 0 Equals
hyper-threaded 3GHz Xeon with 1Gb RAM
Windows XP Pro + Cygwin
GNU C++ version 3.4.4 (Cygwin special)
GNU libstdc++ version 3.4.4
1.33+, BOOST_REGEX_USE_CPP_LOCALE, BOOST_REGEX_RECURSIVE
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 xpressive | dynamic xpressive | Boost | Text | Expression |
---|---|---|---|---|
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 xpressive | dynamic xpressive | Boost | Expression |
---|---|---|---|
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
hyper-threaded 3GHz Xeon with 1Gb RAM
Windows XP Pro
Visual C++ .NET 2003 (7.1)
Dinkumware, version 313
1.33+, BOOST_REGEX_USE_CPP_LOCALE, BOOST_REGEX_RECURSIVE
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
static xpressive | dynamic xpressive | Boost | Text | Expression |
---|---|---|---|---|
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 xpressive | dynamic xpressive | Boost | Expression |
---|---|---|---|
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) |