[gnu.emacs] variable completion in minibuffer

mrd@sun.soe.clarkson.edu (Michael DeCorte) (04/12/89)

Hello,

Does anybody know what emacs does when you want variable completion
(eg. M-X rm<space>    is the same as M-X rmail)?

I am asking because I am attempting to reduce the amount of memory
that emacs will access during any given time period (not use access I
am trying to stop my 50's from trashing).

What I did was move just about everthing to site-init.el and loaded
them instead of autoloaded them.  My reasoning was that by doing so
emacs wouldn't garbage collect through the PURECODE and allow the
paging to work because over any given time period only a small amount
of emacs memory is being accessed.

Well I did this but it doesn't look good. 

Observation:  normal function execution is pretty good
              variable completion causes wild thrashing

Theory:       because emacs can not tell if a function is or isn't
              interactive without actually looking at the code
              it must scramble through all of memory to figure
              out legal completions.  In other words there isn't
              a bit set in the symbol table.

              Another theory is that there is a bit set in the symbol
              table saying if a func is intereactive but the symbol
              table itself is scattered throughout all of memory and a
              variable name completion searches all of memory because
              of this.  I am not leaning towards this because regular
              lisp execution does not seem to be altered.

I will be looking at the code but was hoping that someone could tell me
if this is correct and if not what is.

If this is correct then it appears that emacs is downright hostile to
slow paging devices or devices with little memory.


--

Michael DeCorte // (315)265-2439 // P.O. Box 652, Potsdam, NY 13676
Internet: mrd@sun.soe.clarkson.edu  // Bitnet:   mrd@clutx.bitnet        
---------------------------------------------------------------------------
Clarkson Archive Server // commands = help, index, send, path
archive-server@sun.soe.clarkson.edu
archive-server%sun.soe.clarkson.edu@omnigate.bitnet
dumb1!dumb2!dumb3!smart!sun.soe.clarkson.edu!archive-server
---------------------------------------------------------------------------