From: Eric Mahurin Date: 2006-10-08T03:27:13+09:00 Subject: Re: [ANN] Sequence 0.1.0 Released ------=_Part_6574_22143865.1160245629987 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 10/7/06, Caleb Clausen wrote: > > On 10/6/06, Hal Fulton wrote: > > Sounds interesting... is it better than Eric M's Cursor > > class? Different in some significant way? > > Well, Sequence is faster than Cursor for most things. I haven't > benchmarked, but (eg) #read should be at least 10-100x faster. (Except > when reading from a file, which Cursor optimizes fairly well, if I > remember.) > > I think that the support for #scan and friends (from StringScanner) is > better in Sequence. Eric will disagree with me on this. > > Cursor doesn't have an equivalent to my Sequence::Subseq. > Cursor::Linked more or less corresponds to my Sequence::List (except > that I never properly understood Cursor::Linked -- how to use it, how > it works). > > Those are the biggest differences. The sequence api has otherwise > about the same capabilities as its ancestor. I've moved everything > around to suit my way of thinking, tho, so it isn't compatible (except > for doing very simple things). > > Sorry I haven't been working on Cursor lately. I will readily admit that performance isn't too great on Cursor. I was focusing on functionality first. Unfortunately when I go back and improve performance, I'll be changing the API slightly. My focus for the year has been on Grammar which now has kick-ass performance (even faster than regexp's when used in conjunction with Dominick Baton's ruby2cext). It also has some interesting new features (like handling left recursion in an LL(1) parser). I'll try to get some of this into CVS soon at least. Because Grammar's are on par (can be faster) with regexp's I'll be removing regexp support from Cursor in the next release. It is just too ugly to support in a clean way - they are too tied to String. Grammar on the other hand can work on anything that looks remotely like a Cursor - usually just #read1next will do. So, maybe it is best that Caleb made an derivative of Cursor since he really wanted regexp support. When I get back to Cursor, I'll be improving performance quite a bit. I've been using C++ lately (which I hate) and will probably be taking some of the STL ideas (i.e. iterators, sequences, algorithms) I've learned over to Cursor. I think I'll make it so that you can #extend some of ruby's standard objects to look like a Cursor (or just #include in that class to make all of them look like Cursor's). That should give very good performance. ------=_Part_6574_22143865.1160245629987--