source: icGREP/icgrep-devel/README-icgrep.txt @ 4966

Last change on this file since 4966 was 4966, checked in by hongpum, 3 years ago

Add a note regarding g++ in README

File size: 2.3 KB
[4573]3This is the open-source version of icgrep 1.x.     
[4397]5icgrep is a very fast regular expression search program, particularly
6for complex regular expressions.  It is also a very capable engine,
7supporting most common regular expression syntax and many useful
8command line options.   
10icgrep 1.0 is designed to offer substantial Unicode support, meeting
11all the Unicode Level 1 requirements of UTS #18, the Unicode
12Technical Standard for regular expressions.
[4039]14Normal usage to find lines in a file f matching a regexp r is:
15icgrep r f
17To produce a count of matching lines only, use the command:
18icgrep -c r f
[4528]20To read the regexp to be matched from file regexpf use the command:
[4528]22icgrep -f regexpf f
[4528]24See for more information.
[3915]28To build icgrep, you need an installed LLVM system providing the
29core libraries.  The distribution includes a suitable source
[4528]30code version of LLVM.   
[4151]32To build LLVM,
[3915]33(L1) open a terminal window and cd to the llvm-build directory
34(L2) enter the following command to build the makefiles
[3915]36(L3) Still in the llvm-build directory, enter the commands "make" and then "make install"
38Using the installed LLVM, building icgrep uses the CMake build
[4151]39system generator.
[3915]40(IC1)  open a terminal window and cd to the icgrep-build directory
[4953]41(IC2)  enter the following command to build the makefiles
[4573]42cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang ../icgrep
[4151]43(IC3) Enter the command "make"
45LLVM files are governed by the LLVM Release License in LLVM-LICENSE.txt.
46icgrep is governed by Open Software License 3.0 in OSL-3.0.txt.
[4966]48NOTES on G++
50Currently, icgrep cannot be compiled with g++.
52One major issue is caused by LLVM headers (templates). ArrayRef has a
53constructor overload for initializer lists, which is only enabled if the
54compiler supports initializer lists. The detection mechanism, however, only
55works for clang, rendering this overload unavailable in g++. Yet we use this
56overload heavily especially when calling CreateGEP.
58This issue is resolved in LLVM 3.7.
Note: See TracBrowser for help on using the repository browser.