Loading ...
Sorry, an error occurred while loading the content.

Re: Summer of Code: Regexp

Expand Messages
  • Andrei Aiordachioaie
    ... Thanks a lot for your reply. Running regtest with the NFA engine crashes for me right at the first test. The old engine passes all tests though. I ll try
    Message 1 of 18 , Mar 31, 2008
    • 0 Attachment
      On Mar 31, 12:54 am, "Ian Young" <ian.greenl...@...> wrote:
      > 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<andrei6...@...> 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 (seehttp://groups.google.com/group/vim_dev/browse_thread/thread/9db490f9c...
      > 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

      Thanks a lot for your reply. Running regtest with the NFA engine
      crashes for me right at the first test. The old engine passes all
      tests though. I'll try to find a way to include them in the main
      testing suite, along with the new engine.

      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.