Sorry to get back to you so late - here's what I can offer:

As far as I'm aware, the code in the vim71-ian branch of the
repository contains almost all of the stable work done by both myself
and Xiaozhou, so that's the best place to look.  There's a bunch of
testing code in that branch as well, but it isn't all documented
(sorry).  The tools I've been using are vgrep, regtest, and the
run_tests shell script (found in reg_test/).  Xiaozhou also wrote up a
test file for use with 'make test', but I'm not well acquainted with
its contents.

On Fri, Mar 28, 2008 at 5:53 AM, Andrei Aiordachioaie
<[EMAIL PROTECTED]> wrote:
>
>  From what I've looked at the test-cases, it seems that the NFA
>  implementation is not greedy, as it should be. I will look more into
>  it.
It's greedy in its own way: IIRC, leftmost-first, with the exception
of ordered alternation (see
http://groups.google.com/group/vim_dev/browse_thread/thread/9db490f9c4297c8e
for a discussion of that feature).

>  So for the project, I want to extend the test-suite to compare the way
>  regexps are handled in the old vs the new engine. Maybe this uncovers
>  other bugs. Then, the largest portion of the project would be fixing
>  the found bugs. And if that takes little time, I could work on the old
>  regexp engine bugs.

The largest batch of test cases is in reg_test/files/basic.dat, which
can be run with "./regtest --engine=nfa reg_test/files/basic.dat".

This file has been modified so all tests succeed with the old vim
matching engine.  So the failures there represent the differences
between the old and new engines.  The --engine=[nfa,bt] flag on
regtest and vgrep control which engine is used, so you can compare
easily.  There are a few lingering bugs to be ironed out, but it seems
like we're pretty close to a correct engine - more of the work will
probably go into making it faster.

>  Do you have any other ideas? Would this be enough
>  for a 2.5 months project?

Here's what I wrote to another student who enquired about the project:

"The short answer is yes, there's more work to be done by another
student.  I've been slowly working on fixing a few lingering problems
in the code we wrote last summer (thus the commits you saw).  The code
is very close to running correctly. However, it's not super fast at
this point, so one big project might be optimizing the new code so
that it is more comparable to the speed of the old engine on
non-pathological cases.  There are also some more features that would
be great to add (off the top of my head, a couple are multibyte
characters and the \{n,m} construct).  And of course, there's a
non-trivial amount of work in just preparing the code for inclusion in
Vim's source.  I just haven't found the time this semester to do as
much as I had hoped, so again, yes, I think another summer on this
project would prove fruitful.  If you'd like a better idea of where
development left off, I suggest poking through the archives of the
group we used at <http://groups.google.com/group/vim-soc-regexp>.  The
last couple commits I've made are not yet documented, so don't worry
too much about those for the moment."

Hope all this helps,
Ian

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui