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

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

Add a note regarding g++ in README

File size: 2.3 KB
Line 
1README-icgrep.txt
2
3This is the open-source version of icgrep 1.x.     
4
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
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
20To read the regexp to be matched from file regexpf use the command:
21
22icgrep -f regexpf f
23
24See http://parabix.costar.sfu.ca/wiki/ICgrep for more information.
25
26BUILD
27
28To build icgrep, you need an installed LLVM system providing the
29core libraries.  The distribution includes a suitable source
30code version of LLVM.   
31
32To build LLVM,
33(L1) open a terminal window and cd to the llvm-build directory
34(L2) enter the following command to build the makefiles
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
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
39system generator.
40(IC1)  open a terminal window and cd to the icgrep-build directory
41(IC2)  enter the following command to build the makefiles
42cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang ../icgrep
43(IC3) Enter the command "make"
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
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.