On Saturday, October 24, 2020 at 1:07:15 PM UTC-4 Edward K. Ream wrote:

> On Sat, Oct 24, 2020 at 11:53 AM Thomas Passin wrote:
>
>> Remembering back to long ago when we only had 640k of RAM at the most, 
>> there were editors that kept three screens of data in memory at once - the 
>> current page, the previous page, and the next page.  When the user scrolled 
>> forward (say), parts of the next page would be brought in, and when 
>> necessary another page would be read in from disk. An analogy would be a 
>> long continuous (paper) scroll, where only one part in the middle would be 
>> visible at any one time.
>>
>> This scheme would seem to fit right in with your thoughts above.
>>
>
> Alas not. Leo's clone-find commands would pull in the entire db. That's 
> why we need a search that is disconnected from positions and generators.
>

That the clone-find commands are written to work on the entire database 
does not change the engineering considerations that arise from the goal of 
working on a database that is either too large to fit in RAM or is so large 
that the existing code becomes too slow for a database of the desired size 
even if that database does fit in RAM. 

I suggest looking up the user manuals for the text editor in which the 
original Emacs was first written, namely TECO 
<https://en.wikipedia.org/wiki/TECO_(text_editor)>. TECO was written for 
DEC computers with tiny address space in which to hold text, and was 
written in terms of editing  the current contents of the buffer that held 
the address space's worth of the file under modification; it features 
flexible commands for paging the file's contents into the editor's buffer, 
allowing one to modify a file too big to fit. 

TECO was the power user's text editor on the PDP-8/e that was the first 
computer I used, back in the early Seventies - a machine with 12K words of 
RAM, which were divided into 4096-word fields; the computer could directly 
address the current field as pages of 128 words, meaning that addressing 
the current field required indirect addressing. TECO allowed me to think in 
terms of a buffer without tracking fields and pages - an abstraction you 
might want to consider for Leo to handle "huge outlines".

It might be of interest to note that the original Emacs was a series of 
macros written for TECO - Emacs originally stood for "Editor Macros". 

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/16558e66-03ca-4a00-a626-0f733b9a1a60n%40googlegroups.com.

Reply via email to