all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* How does M-x completion works
@ 2010-02-22 12:35 Hibou57 (Yannick Duchêne)
  2010-02-22 16:34 ` Lennart Borgman
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2010-02-22 12:35 UTC (permalink / raw)
  To: help-gnu-emacs

Hi boys and girls,

I was stripping off from my Emacs on Windows, every things I do not need  
or use (or which is not design as I would like). But something does not  
seems logical to me : as an example, I have removed the Allout package  
(allout.el), Ok, but when I do a M-x TAB, allout-mode is still there (and  
obviously fails if I hit ENTER, as I've removed it). I've run search for  
allout inclusions in all *.el files, but this did not solve the trick.

Do some one know how M-x completion works ? Is it hard coded in the Emacs  
executable ?

By the way, is there somewhere a document which would describe the base  
line of the Emacs architecture ? This may be useful to me to figure out  
what is really optional and what is not.

Have a nice day

-- 
No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just  
not lucky


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-22 12:35 How does M-x completion works Hibou57 (Yannick Duchêne)
@ 2010-02-22 16:34 ` Lennart Borgman
       [not found] ` <4B82A7A4.6050005@easy-emacs.de>
  2010-02-22 22:06 ` Colin S. Miller
  2 siblings, 0 replies; 19+ messages in thread
From: Lennart Borgman @ 2010-02-22 16:34 UTC (permalink / raw)
  To: Hibou57 (Yannick Duchêne); +Cc: help-gnu-emacs

On Mon, Feb 22, 2010 at 1:35 PM, Hibou57 (Yannick Duchêne)
<yannick_duchene@yahoo.fr> wrote:
> Hi boys and girls,


Hi Yannic,

Maybe it would be easier for you if you first tried to describe for
yourself what you really want to do?


> I was stripping off from my Emacs on Windows, every things I do not need or
> use (or which is not design as I would like). But something does not seems
> logical to me : as an example, I have removed the Allout package
> (allout.el), Ok, but when I do a M-x TAB, allout-mode is still there (and
> obviously fails if I hit ENTER, as I've removed it). I've run search for
> allout inclusions in all *.el files, but this did not solve the trick.
>
> Do some one know how M-x completion works ? Is it hard coded in the Emacs
> executable ?
>
> By the way, is there somewhere a document which would describe the base line
> of the Emacs architecture ? This may be useful to me to figure out what is
> really optional and what is not.
>
> Have a nice day
>
> --
> No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just not
> lucky
>




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
       [not found]   ` <op.u8jfv6nuesn74s@garhos>
@ 2010-02-22 17:42     ` Andreas Röhler
  0 siblings, 0 replies; 19+ messages in thread
From: Andreas Röhler @ 2010-02-22 17:42 UTC (permalink / raw)
  To: yannick_duchene; +Cc: help-gnu-emacs

Yannick wrote:
> Hi, and thanks for the reply,
> 
> On Mon, 22 Feb 2010 16:49:56 +0100, Andreas Röhler
> <andreas.roehler@easy-emacs.de> wrote:
>>> I was stripping off from my Emacs on Windows, every things I do not need
>>> or use (or which is not design as I would like). But something does not
>>> seems logical to me : as an example, I have removed the Allout package
>>> (allout.el), Ok, but when I do a M-x TAB, allout-mode is still there
>>> (and obviously fails if I hit ENTER, as I've removed it). I've run
>>> search for allout inclusions in all *.el files, but this did not solve
>>> the trick.
>>>
>>
>> M-x unload-feature
> This was not the purpose : as an example, I've removed, deleted, the
> allout.el file, but allout-mode still appears in completion of M-x. This
> was the reason why I was wondering if weither or not the completion list
> is hard-coded. I first though Emacs was scanning modules at startup, but
> this does not seems to do so, as the allout.el file is no more there,
> but Emacs still think it's there.

Emacs is a complex machine.

Maybe have a look at these helper-functions, which are in daily use here:

http://repo.or.cz/w/elbb.git/blob/HEAD:/code/Go-to-Emacs-Lisp-Definition.el

Good luck

Andreas



> 
>>> Do some one know how M-x completion works ? Is it hard coded in the
>>> Emacs executable ?
>>
>> Try
>> C-h complete- TAB
>>
>> for example.
> Thanks, I know about Ctrl-h ;)
> 
>>> By the way, is there somewhere a document which would describe the base
>>> line of the Emacs architecture ? This may be useful to me to figure out
>>> what is really optional and what is not.
>>>
>>> Have a nice day
>>>
>>
>> To dig into a litte bit further:
>>
>> Take a course of the manual first
>> C-h i m emacs
>> Then have a look at the elisp intro
>> C-h i m Emacs Lisp Intro
>>
>> Finally
>> C-h i m Elisp
>>
>> Welcome
>>
>> Andreas
> I've already read about half of the Emacs Lisp reference (still going
> further), but so far, I did not found anything about the implementation
> of this feature. I may have a deeper look at the source again. While by
> the way, scanning files about the "allout" string (to keep the same
> example), I've found the Emacs executable contains occurrences of this
> text. So I suppose this is hard-coded, and not part of the Lisp
> implementation.
> 
> I had a look at XEmacs, to see if it's the same with this one, but
> XEmacs seems less cleaner to me (at least, I don't like it as much as
> the classic Emacs).
> 
> I'm trying to have a bare minimum Emacs for Windows (as smallest as
> possible), to be shipped with some sources which is just to be viewed
> with one major mode I'm trying to create, that's the reason why of my
> strange "tweaks" (any way, peoples who may want the full Emacs, will
> still be able to get it at the official location).
> 
> Thanks again
> 





^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-22 12:35 How does M-x completion works Hibou57 (Yannick Duchêne)
  2010-02-22 16:34 ` Lennart Borgman
       [not found] ` <4B82A7A4.6050005@easy-emacs.de>
@ 2010-02-22 22:06 ` Colin S. Miller
  2010-02-23  7:06   ` Hibou57 (Yannick Duchêne)
  2 siblings, 1 reply; 19+ messages in thread
From: Colin S. Miller @ 2010-02-22 22:06 UTC (permalink / raw)
  To: help-gnu-emacs

Hibou57 (Yannick Duchêne) wrote:
> Hi boys and girls,
> 
> I was stripping off from my Emacs on Windows, every things I do not need 
> or use (or which is not design as I would like). But something does not 
> seems logical to me : as an example, I have removed the Allout package 
> (allout.el), Ok, but when I do a M-x TAB, allout-mode is still there 
> (and obviously fails if I hit ENTER, as I've removed it). I've run 
> search for allout inclusions in all *.el files, but this did not solve 
> the trick.
> 
Yannick,

allout is probably still registered as an autoload.
Most of emacs's non-core functionality is provided by autoloaded functions.

An emacs autoload is where a function can be registered with emacs, but
not actually loaded.
When the function is first used in this instance of emacs, the defining
library is automatically loaded, and then the function is called as per usual.
This allows emacs to provide a lot of functionality without the memory and start-up
over head of actually loading the function at start up.

What does C-h f allout-mode  say?

If it is "allout-mode is an interactive autoloaded Lisp function in `allout'."
then it's an unloaded autoload, if its
"allout-mode is an interactive compiled Lisp function in `allout.el'."
then allout-mode has actually been loaded.

HTH,
Colin S. Miller



-- 
Replace the obvious in my email address with the first three letters of the hostname to reply.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-22 22:06 ` Colin S. Miller
@ 2010-02-23  7:06   ` Hibou57 (Yannick Duchêne)
  2010-02-23  8:36     ` Barry Margolin
  2010-02-24  4:10     ` Kevin Rodgers
  0 siblings, 2 replies; 19+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2010-02-23  7:06 UTC (permalink / raw)
  To: help-gnu-emacs

Le Mon, 22 Feb 2010 23:06:45 +0100, Colin S. Miller  
<no-spam-thank-you@csmiller.demon.co.uk> a écrit:

Hi Colin,

> allout is probably still registered as an autoload.
> Most of emacs's non-core functionality is provided by autoloaded  
> functions.
And moreoever, it seems registered in an hard coded way, as the exe  
contains the string "autoload-mode".

> An emacs autoload is where a function can be registered with emacs, but
> not actually loaded.
> When the function is first used in this instance of emacs, the defining
> library is automatically loaded, and then the function is called as per  
> usual.
> This allows emacs to provide a lot of functionality without the memory  
> and start-up
> over head of actually loading the function at start up.
Yes, I've seen about section 15.1 and 15.5 in the Emacs Lisp reference.
Something else also takes part here : a file named loaddefs.el, which  
contains a list of autoload definitions (which seems to confirm Emacs is  
not scanning modules at start up). I've also tried to remove this file,  
this does not change anything.

> What does C-h f allout-mode  say?
Well, it gives the help about the allout moode :)

> If it is "allout-mode is an interactive autoloaded Lisp function in  
> `allout'."
Yes, it is.

> then it's an unloaded autoload,
Yes, I was to remove it (as an example).

> if its "allout-mode is an interactive compiled Lisp function in  
> `allout.el'."
> then allout-mode has actually been loaded.
Actually, it is not.

Well, as it seems to be a hard coded reference (I looked at strings  
contained in the exe, there seems to be a lot like this), I may try to add  
a script, which, at startup, will iterate on autoload definitions, check  
for each if the corresponding file exist, and if the file if not there,  
then remove the definition (if possible). Or perhaps, as an other  
alternative, recompile an Emacs without the unneeded hard coded  
definitions.

Happy writing

-- 
No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just  
not lucky


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23  7:06   ` Hibou57 (Yannick Duchêne)
@ 2010-02-23  8:36     ` Barry Margolin
  2010-02-23  9:25       ` Hibou57 (Yannick Duchêne)
  2010-02-24  4:10     ` Kevin Rodgers
  1 sibling, 1 reply; 19+ messages in thread
From: Barry Margolin @ 2010-02-23  8:36 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 782 bytes --]

In article <op.u8kjcgzjvwnd5a@garhos>,
 Hibou57 (Yannick Duchêne) <yannick_duchene@yahoo.fr> wrote:

> Well, as it seems to be a hard coded reference (I looked at strings  
> contained in the exe, there seems to be a lot like this), I may try to add  
> a script, which, at startup, will iterate on autoload definitions, check  
> for each if the corresponding file exist, and if the file if not there,  
> then remove the definition (if possible). Or perhaps, as an other  
> alternative, recompile an Emacs without the unneeded hard coded  
> definitions.

Why?  What problem do they cause?

-- 
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23  8:36     ` Barry Margolin
@ 2010-02-23  9:25       ` Hibou57 (Yannick Duchêne)
  2010-02-23 10:03         ` Andreas Röhler
                           ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2010-02-23  9:25 UTC (permalink / raw)
  To: help-gnu-emacs

>> Well, as it seems to be a hard coded reference (I looked at strings
>> contained in the exe, there seems to be a lot like this), I may try to  
>> add
>> a script, which, at startup, will iterate on autoload definitions, check
>> for each if the corresponding file exist, and if the file if not there,
>> then remove the definition (if possible). Or perhaps, as an other
>> alternative, recompile an Emacs without the unneeded hard coded
>> definitions.
>
> Why?  What problem do they cause?
Although removed, they are still shown by the auto-completion, that's the  
trouble.


-- 
No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just  
not lucky


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23  9:25       ` Hibou57 (Yannick Duchêne)
@ 2010-02-23 10:03         ` Andreas Röhler
       [not found]         ` <mailman.1694.1266919287.14305.help-gnu-emacs@gnu.org>
  2010-02-24 20:10         ` Stefan Monnier
  2 siblings, 0 replies; 19+ messages in thread
From: Andreas Röhler @ 2010-02-23 10:03 UTC (permalink / raw)
  To: help-gnu-emacs

Hibou57 (Yannick Duchêne) wrote:
>>> Well, as it seems to be a hard coded reference (I looked at strings
>>> contained in the exe, there seems to be a lot like this), I may try
>>> to add
>>> a script, which, at startup, will iterate on autoload definitions, check
>>> for each if the corresponding file exist, and if the file if not there,
>>> then remove the definition (if possible). Or perhaps, as an other
>>> alternative, recompile an Emacs without the unneeded hard coded
>>> definitions.
>>
>> Why?  What problem do they cause?
> Although removed, they are still shown by the auto-completion,

AFAIK Emacs has no auto-completion in standard mode.
Are severals out there, as predictive-mode, but not coming with Emacs.

Could you describe the precise command your are using?

BTW `complete-symbol' for example checks the tags table.
Have a look if `tags-table-list' delivers it.

Andres


 that's
> the trouble.
> 
> 





^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
       [not found]         ` <mailman.1694.1266919287.14305.help-gnu-emacs@gnu.org>
@ 2010-02-23 13:47           ` Hibou57 (Yannick Duchêne)
  2010-02-23 15:18             ` Andreas Röhler
       [not found]             ` <mailman.1706.1266938167.14305.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 19+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2010-02-23 13:47 UTC (permalink / raw)
  To: help-gnu-emacs

Le Tue, 23 Feb 2010 11:03:25 +0100, Andreas Röhler  
<andreas.roehler@easy-emacs.de> a écrit:
> AFAIK Emacs has no auto-completion in standard mode.
> Are severals out there, as predictive-mode, but not coming with Emacs.
>
> Could you describe the precise command your are using?
>
> BTW `complete-symbol' for example checks the tags table.
> Have a look if `tags-table-list' delivers it.
>
> Andres
May be I did not choose the good words. I was not talking about CTags, I  
was talking about what you get when you do "M-x [TAB]". I call it  
"completion", but may be this is not the good word.

-- 
No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just  
not lucky


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23 13:47           ` Hibou57 (Yannick Duchêne)
@ 2010-02-23 15:18             ` Andreas Röhler
  2010-02-24  3:44               ` Kevin Rodgers
       [not found]               ` <mailman.1758.1266983111.14305.help-gnu-emacs@gnu.org>
       [not found]             ` <mailman.1706.1266938167.14305.help-gnu-emacs@gnu.org>
  1 sibling, 2 replies; 19+ messages in thread
From: Andreas Röhler @ 2010-02-23 15:18 UTC (permalink / raw)
  To: help-gnu-emacs

Hibou57 (Yannick Duchêne) wrote:
> Le Tue, 23 Feb 2010 11:03:25 +0100, Andreas Röhler
> <andreas.roehler@easy-emacs.de> a écrit:
>> AFAIK Emacs has no auto-completion in standard mode.
>> Are severals out there, as predictive-mode, but not coming with Emacs.
>>
>> Could you describe the precise command your are using?
>>
>> BTW `complete-symbol' for example checks the tags table.
>> Have a look if `tags-table-list' delivers it.
>>
>> Andres
> May be I did not choose the good words. 

Just took occasion making you aware of the auto-complete modes.. :-)

I was not talking about CTags, I
> was talking about what you get when you do "M-x [TAB]". I call it
> "completion", but may be this is not the good word.
> 

Than it's pretty probable it consults the tags-table. You have delete it from there.

Andreas




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
       [not found]             ` <mailman.1706.1266938167.14305.help-gnu-emacs@gnu.org>
@ 2010-02-23 17:17               ` Hibou57 (Yannick Duchêne)
  2010-02-23 19:32                 ` Andreas Röhler
       [not found]                 ` <mailman.1728.1266953431.14305.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 19+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2010-02-23 17:17 UTC (permalink / raw)
  To: help-gnu-emacs

Le Tue, 23 Feb 2010 16:18:05 +0100, Andreas Röhler  
<andreas.roehler@easy-emacs.de> a écrit:
> Than it's pretty probable it consults the tags-table. You have delete it  
> from there.
Yes, I have no tags file (you've mint I've deleted it), then so, which  
list does Emacs use in such circumstance ? An internal list shipped inside  
of Emacs, isn't it ? (I suppose)

-- 
No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just  
not lucky


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23 17:17               ` Hibou57 (Yannick Duchêne)
@ 2010-02-23 19:32                 ` Andreas Röhler
       [not found]                 ` <mailman.1728.1266953431.14305.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 19+ messages in thread
From: Andreas Röhler @ 2010-02-23 19:32 UTC (permalink / raw)
  To: help-gnu-emacs

Hibou57 (Yannick Duchêne) wrote:
> Le Tue, 23 Feb 2010 16:18:05 +0100, Andreas Röhler
> <andreas.roehler@easy-emacs.de> a écrit:
>> Than it's pretty probable it consults the tags-table. You have delete
>> it from there.
> Yes, I have no tags file (you've mint I've deleted it), then so, which
> list does Emacs use in such circumstance ? An internal list shipped
> inside of Emacs, isn't it ? (I suppose)
> 

Rather not.

Hhm, you said you've done search already. If not, I'd recommend a
M-y grep-find
find . -type f -name "*.el" -print0 | xargs -0 -e grep -nH -e "allout"

But you said, it's done.

Did you restart Emacs after deletions?

Start emacs -Q

Then it should be gone.
Afterwards load your .emacs step by step and see, if its loaded again.

HTH

Andreas




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
       [not found]                 ` <mailman.1728.1266953431.14305.help-gnu-emacs@gnu.org>
@ 2010-02-23 21:24                   ` Tim X
  2010-02-24  4:08                     ` Kevin Rodgers
  0 siblings, 1 reply; 19+ messages in thread
From: Tim X @ 2010-02-23 21:24 UTC (permalink / raw)
  To: help-gnu-emacs

Andreas Röhler <andreas.roehler@easy-emacs.de> writes:

> Hibou57 (Yannick Duchêne) wrote:
>> Le Tue, 23 Feb 2010 16:18:05 +0100, Andreas Röhler
>> <andreas.roehler@easy-emacs.de> a écrit:
>>> Than it's pretty probable it consults the tags-table. You have delete
>>> it from there.
>> Yes, I have no tags file (you've mint I've deleted it), then so, which
>> list does Emacs use in such circumstance ? An internal list shipped
>> inside of Emacs, isn't it ? (I suppose)
>> 
>
> Rather not.
>
> Hhm, you said you've done search already. If not, I'd recommend a
> M-y grep-find
> find . -type f -name "*.el" -print0 | xargs -0 -e grep -nH -e "allout"
>
> But you said, it's done.
>
> Did you restart Emacs after deletions?
>
> Start emacs -Q
>
> Then it should be gone.
> Afterwards load your .emacs step by step and see, if its loaded again.
>
> HTH
>

If the OP is talking about M-x <tab> without having entered any text at
all, the completions buffer will be large because essentially, it will
list *all* possible commands that emacs knows about which can be entered
interactively i.e via M-x

The problem here is that this is a poor use of completion . You need to
give it a chance and enter at least a letter to narrow down the search
for possible completions. 

Trying to remove all definitions of interactive functions that are
thought to be unnecessary will fail and is a pointless exercise. It will
never result in a small/convenient number of commands being shown with
just M-x <tab>. I'd suspect that even just the C built-in commands alone
would likely be too numerous and you cannot remove them. This approach
is essentially futile. 

Tim

>
>

-- 
tcross (at) rapttech dot com dot au


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23 15:18             ` Andreas Röhler
@ 2010-02-24  3:44               ` Kevin Rodgers
  2010-02-26 13:12                 ` Andreas Röhler
       [not found]               ` <mailman.1758.1266983111.14305.help-gnu-emacs@gnu.org>
  1 sibling, 1 reply; 19+ messages in thread
From: Kevin Rodgers @ 2010-02-24  3:44 UTC (permalink / raw)
  To: help-gnu-emacs

Andreas Röhler wrote:
> Hibou57 (Yannick Duchêne) wrote:
 > > May be I did not choose the good words. I was not talking about CTags, I 
was > > talking about what you get when you do "M-x [TAB]". I call it 
"completion", > > but may be this is not the good word.

Completion is the correct term.

> Than it's pretty probable it consults the tags-table. You have delete it from there.

No.  Compare the Completion node of the Emacs manual with the Tags node:

| Some arguments allow "completion" to enter their value.  This means
| that after you type part of the argument, Emacs can fill in the rest,
| or some of it, based on what you have typed so far.
| ...
|    For example, `M-x' uses the minibuffer to read the name of a
| command, so it provides a list of all Emacs command names for
| completion candidates.


| A "tags table" is a description of how a multi-file program is broken
| up into files.  It lists the names of the component files and the names
| and positions of the functions (or other named subunits) in each file.

-- 
Kevin Rodgers
Denver, Colorado, USA





^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23 21:24                   ` Tim X
@ 2010-02-24  4:08                     ` Kevin Rodgers
  0 siblings, 0 replies; 19+ messages in thread
From: Kevin Rodgers @ 2010-02-24  4:08 UTC (permalink / raw)
  To: help-gnu-emacs

Tim X wrote:
> Trying to remove all definitions of interactive functions that are
> thought to be unnecessary will fail and is a pointless exercise. It will
> never result in a small/convenient number of commands being shown with
> just M-x <tab>. I'd suspect that even just the C built-in commands alone
> would likely be too numerous and you cannot remove them. This approach
> is essentially futile. 

I don't think that's what the OP is asking for.  Rather, why not remove
the function binding from symbols that would autoload an unavailable lisp
library (such as the ones the OP has already removed):

(mapatoms (lambda (symbol)
	    (let (function)
	      (when (and (fboundp symbol)
			 (setq function (symbol-function symbol))
			 (consp function)
			 ;; (car function)
			 (eq (car function) 'autoload)
			 ;; (cadr function)
			 (stringp (cadr function))
			 (not (locate-library (cadr function))))
		;; (message "invalid autoload: %s: %s" symbol (cadr function))
		(fmakunbound symbol)))))

-- 
Kevin Rodgers
Denver, Colorado, USA





^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23  7:06   ` Hibou57 (Yannick Duchêne)
  2010-02-23  8:36     ` Barry Margolin
@ 2010-02-24  4:10     ` Kevin Rodgers
  1 sibling, 0 replies; 19+ messages in thread
From: Kevin Rodgers @ 2010-02-24  4:10 UTC (permalink / raw)
  To: help-gnu-emacs

Hibou57 (Yannick Duchêne) wrote:
> Le Mon, 22 Feb 2010 23:06:45 +0100, Colin S. Miller 
>> An emacs autoload is where a function can be registered with emacs, but
>> not actually loaded.
>> When the function is first used in this instance of emacs, the defining
>> library is automatically loaded, and then the function is called as 
>> per usual.
>> This allows emacs to provide a lot of functionality without the memory 
>> and start-up
>> over head of actually loading the function at start up.
> Yes, I've seen about section 15.1 and 15.5 in the Emacs Lisp reference.
> Something else also takes part here : a file named loaddefs.el, which 
> contains a list of autoload definitions (which seems to confirm Emacs is 
> not scanning modules at start up). I've also tried to remove this file, 
> this does not change anything.

See also E.1 (Building Emacs), specifically the parts about dumping.

-- 
Kevin Rodgers
Denver, Colorado, USA





^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-23  9:25       ` Hibou57 (Yannick Duchêne)
  2010-02-23 10:03         ` Andreas Röhler
       [not found]         ` <mailman.1694.1266919287.14305.help-gnu-emacs@gnu.org>
@ 2010-02-24 20:10         ` Stefan Monnier
  2 siblings, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2010-02-24 20:10 UTC (permalink / raw)
  To: help-gnu-emacs

> Although removed, they are still shown by the auto-completion, that's
> the trouble.

It would indeed make sense to get rid of those autoloaded functions that
refer to files that don't exist.  The better way to do that is probably
to re-build a new Emacs executable where you remove the unwanted
packages beforehand.

But you can also do it after the fact.  Using `mapatoms' you can iterate
through all known identifiers and then check if they're autoloaded and
if they are, check if their file can be found in `load-path':

(mapatoms (lambda (sym)
	    (if (and (fboundp sym)
		     (eq 'autoload (car-safe (symbol-function sym)))
		     (null (locate-library (cadr (symbol-function sym)))))
		(message "(fmakunbound %s)" sym))))


-- Stefan


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
       [not found]               ` <mailman.1758.1266983111.14305.help-gnu-emacs@gnu.org>
@ 2010-02-26 11:58                 ` Hibou57 (Yannick Duchêne)
  0 siblings, 0 replies; 19+ messages in thread
From: Hibou57 (Yannick Duchêne) @ 2010-02-26 11:58 UTC (permalink / raw)
  To: help-gnu-emacs

Le Wed, 24 Feb 2010 04:44:54 +0100, Kevin Rodgers  
<kevin.d.rodgers@gmail.com> a écrit:
> No.  Compare the Completion node of the Emacs manual with the Tags node:
>
> | Some arguments allow "completion" to enter their value.  This means
> | that after you type part of the argument, Emacs can fill in the rest,
> | or some of it, based on what you have typed so far.
> | ...
> |    For example, `M-x' uses the minibuffer to read the name of a
> | command, so it provides a list of all Emacs command names for
> | completion candidates.
>
>
> | A "tags table" is a description of how a multi-file program is broken
> | up into files.  It lists the names of the component files and the names
> | and positions of the functions (or other named subunits) in each file.
>

Thanks for the point Kevin. I was starting to feel lost and wondering if I  
did really understand the manual. So you confirm these are really  
different things. I feel better now.

-- 
No-no, this isn't an oops ...or I hope (TM) - Don't blame me... I'm just  
not lucky


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How does M-x completion works
  2010-02-24  3:44               ` Kevin Rodgers
@ 2010-02-26 13:12                 ` Andreas Röhler
  0 siblings, 0 replies; 19+ messages in thread
From: Andreas Röhler @ 2010-02-26 13:12 UTC (permalink / raw)
  To: help-gnu-emacs

Kevin Rodgers wrote:
> Andreas Röhler wrote:
>> Hibou57 (Yannick Duchêne) wrote:
>> > May be I did not choose the good words. I was not talking about
> CTags, I was > > talking about what you get when you do "M-x [TAB]". I
> call it "completion", > > but may be this is not the good word.
> 
> Completion is the correct term.
> 
>> Than it's pretty probable it consults the tags-table. You have delete
>> it from there.
> 
> No.  Compare the Completion node of the Emacs manual with the Tags node:
> 
> | Some arguments allow "completion" to enter their value.  This means
> | that after you type part of the argument, Emacs can fill in the rest,
> | or some of it, based on what you have typed so far.
> | ...
> |    For example, `M-x' uses the minibuffer to read the name of a
> | command, so it provides a list of all Emacs command names for
> | completion candidates.
> 
> 
> | A "tags table" is a description of how a multi-file program is broken
> | up into files.  It lists the names of the component files and the names
> | and positions of the functions (or other named subunits) in each file.
> 

Hi Kevin,

think completion may visit tags-table for possible completions.

Here is for example how complete-symbol is defined:

(defun complete-symbol (arg)
  "Perform tags completion on the text around point.
If a tags table is loaded, call `complete-tag'.
Otherwise, if Semantic is active, call `semantic-ia-complete-symbol'.

With a prefix argument, this command does completion within
the collection of symbols listed in the index of the manual for the
language you are using."
  (interactive "P")
  (cond (arg
	 (info-complete-symbol))
	((or tags-table-list tags-file-name)
	 (complete-tag))
	((and (fboundp 'semantic-ia-complete-symbol)
	      (fboundp 'semantic-active-p)
	      (semantic-active-p))
	 (semantic-ia-complete-symbol))
	(t
	 (error "%s"
		(substitute-command-keys
		 "No completions available; use \\[visit-tags-table] \
or \\[semantic-mode]")))))

;;;;;

AFAIU several hooks/variables may be in use, depending from the context, so completion may be performed in several ways.
Seems a complex matter.

Andreas

--
https://code.launchpad.net/~a-roehler/python-mode
https://code.launchpad.net/s-x-emacs-werkstatt/






^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2010-02-26 13:12 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-22 12:35 How does M-x completion works Hibou57 (Yannick Duchêne)
2010-02-22 16:34 ` Lennart Borgman
     [not found] ` <4B82A7A4.6050005@easy-emacs.de>
     [not found]   ` <op.u8jfv6nuesn74s@garhos>
2010-02-22 17:42     ` Andreas Röhler
2010-02-22 22:06 ` Colin S. Miller
2010-02-23  7:06   ` Hibou57 (Yannick Duchêne)
2010-02-23  8:36     ` Barry Margolin
2010-02-23  9:25       ` Hibou57 (Yannick Duchêne)
2010-02-23 10:03         ` Andreas Röhler
     [not found]         ` <mailman.1694.1266919287.14305.help-gnu-emacs@gnu.org>
2010-02-23 13:47           ` Hibou57 (Yannick Duchêne)
2010-02-23 15:18             ` Andreas Röhler
2010-02-24  3:44               ` Kevin Rodgers
2010-02-26 13:12                 ` Andreas Röhler
     [not found]               ` <mailman.1758.1266983111.14305.help-gnu-emacs@gnu.org>
2010-02-26 11:58                 ` Hibou57 (Yannick Duchêne)
     [not found]             ` <mailman.1706.1266938167.14305.help-gnu-emacs@gnu.org>
2010-02-23 17:17               ` Hibou57 (Yannick Duchêne)
2010-02-23 19:32                 ` Andreas Röhler
     [not found]                 ` <mailman.1728.1266953431.14305.help-gnu-emacs@gnu.org>
2010-02-23 21:24                   ` Tim X
2010-02-24  4:08                     ` Kevin Rodgers
2010-02-24 20:10         ` Stefan Monnier
2010-02-24  4:10     ` Kevin Rodgers

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.