[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: TAME Pre6



Reply to note from Harry Binswanger  Sat, 29 Jul
2006 15:55:40 -0400

> Since David Thomas uses "mark" for what we call "DeFining a
> block" I think he means that you can speed things up by
> assigning, to the delete key: DF,CR,DF,RD. I just tried that,
> and it is indeed just as speedy as RC. Perhaps RC, at machine
> code level, reduces to something equivalent to DF,CR,DF,RD.

I'm coming in from left field here, but... that sounds highly
unlikely to me. RC, like any function, is an atomic operation --
absolutely minimalist. DF,CR,DF,RD, by comparison, is a hulking big
molecule that adds a ton of overhead to a simple instruction.
But, when you think about what the ultimate instructions have to be, aren't
they, in each case:

- store (or get) the current cursor position
- store an increment of one byte (or one character for n-byters)
- delete what's between the two stored values
- close up the hole
Indeed, in my tests, DF,CR,DF,RD is slower than RC by a factor of 3!
That's funny, because there's little difference on my system. To delete a
whole line of text, I make it 2 seconds for RC and 2 1/2 seconds for the
longer version (after adding the YD per your comment below).
What's more, it fails miserably -- deletes the wrong text! -- if a
block is already defined; you need to preface all of that with a
func YD, which releases the existing DeFine (and it's crazy to undo
an existing block simply to delete a single char -- yet another
reason to steer clear of this).

Good point.


Harry Binswanger
hb@xxxxxxxx