[flexichain-devel] A couple of flexichain questions
Robert Strandh
strandh at labri.fr
Wed Oct 25 06:10:19 UTC 2006
Brad Beveridge writes:
> I've thought about the two methods (gap buffer vs linked list of
> lines), and basically the performance for either method is probably
> about the same for most operations.
Probably. However, a list of strings will have very bad performance
if you want to edit code with very long lines.
My intention for Climacs was to eventually use a tree of flexichains.
> The one big place that a
> gapbuffer wins is when you want to treat a large section of the buffer
> as a read-only string. For a list of lines you need to cons up a new
> string, for a gap buffer (assuming it is locked), you simply need to
> move the gap and take a pointer into the gap buffer.
Sure.
> I envision using this "large string" mode of the gap buffer for:
> - searching one huge string with CL-PPCRE
> - saving the buffer in one call
>
> So after all my rambling I have two questions:
> 1) Is it appropriate to use Flexichain in this "one large string"
> manner? Obviously you don't want to always convert to this form, but
> it is handy for running a search on the buffer and some other uses.
I think it would work pretty well.
> 2) What is involved in creating a function that consolidates the data
> into a contiguous chunk that is suitable for creating a displaced
> array into?
Well, there is an additional complication. A Flexichain is circular,
so its logical beginning could be in the middle of the physical
array.
Aside from that, you just have to move the gap to the right place, I
would think.
--
Robert Strandh
---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------
More information about the Flexichain-devel
mailing list