<div>Perlssoal, esses dias me deparei com a biblioteca TRE (<a href="http://laurikari.net/tre/about/">http://laurikari.net/tre/about/</a>):</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

TRE is a lightweight, robust, and efficient POSIX compliant regexp matching library with some exciting features such as approximate (fuzzy) matching.</blockquote><div><br></div><div>Um dos exemplos de aplicação prática dela é o utilitário 'agrep' (approximate grep).</div>

<div>Obviamente, tentei compilar a interface para Perl (<a href="https://github.com/avar/re-engine-tre">https://github.com/avar/re-engine-tre</a>). Porém esse módulo não está no CPAN, e me parece bastante desatualizado.</div>

<div>De fato, não compila. retorna erros como:</div><div><br></div><div><div>cc -c  -Itre -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -fPIC "-I/home/stas/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2/x86_64-linux/CORE"   TRE.c</div>

<div>In file included from TRE.xs:7:0:</div><div>TRE.h:22:5: warning: initialization from incompatible pointer type [enabled by default]</div><div>TRE.h:22:5: warning: (near initialization for ‘engine_tre.comp’) [enabled by default]</div>

<div>TRE.xs: In function ‘TRE_comp’:</div><div>TRE.xs:42:7: error: ‘REGEXP’ has no member named ‘refcnt’</div><div>TRE.xs:43:7: error: ‘REGEXP’ has no member named ‘extflags’</div><div>TRE.xs:44:7: error: ‘REGEXP’ has no member named ‘engine’</div>

<div>TRE.xs:47:7: error: ‘REGEXP’ has no member named ‘prelen’</div></div><div>...</div><div><br></div><div>Analisando outros módulos do namespace re::engine::* (RE2, PCRE, Plan9), percebi que a struct REGEXP em questão é recorrente. Aliás, re::engine::Plan9 não compila por causa do mesmo erro.</div>

<div>E, infelizmente, o nome REGEXP é ambíguo demais para googlar :(</div><div>Alguém faz alguma ideia do que esteja acontecendo?</div><br>ABS()<br><br>