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
RevLine 
[4573]1README-icgrep.txt
[3915]2
[4573]3This is the open-source version of icgrep 1.x.     
[3915]4
[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.   
9
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.
13
[4039]14Normal usage to find lines in a file f matching a regexp r is:
15icgrep r f
16
17To produce a count of matching lines only, use the command:
18icgrep -c r f
19
[4528]20To read the regexp to be matched from file regexpf use the command:
[4039]21
[4528]22icgrep -f regexpf f
[4039]23
[4528]24See http://parabix.costar.sfu.ca/wiki/ICgrep for more information.
[4039]25
26BUILD
27
[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.   
[3915]31
[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
[4953]35cmake -DCMAKE_INSTALL_PREFIX=../libllvm -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_TOOLS=OFF -DLLVM_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang ../llvm-3.6.2.src
[3915]36(L3) Still in the llvm-build directory, enter the commands "make" and then "make install"
37
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"
[3915]44
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.
47
[4966]48NOTES on G++
49
50Currently, icgrep cannot be compiled with g++.
51
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.
57
58This issue is resolved in LLVM 3.7.
Note: See TracBrowser for help on using the repository browser.