我知道所有标有“;;;###Autoload”行的函数都将是一个自动加载的函数,但问题是执行这个“自动加载的函数”的基础机制是什么?还有为什么当从 elpa 安装软件包时,会出现一个名为 XXX-autoload.elc 的编译文件?
当您安装 Elpa 包时,Emacs 会扫描包中的所有 .el 文件以查找自动加载令牌,并将这些函数/变量的存根添加到 [package]-autoloads.el 文件中。存根只是将信息附加到函数/变量符号,告诉 Emacs 在哪里可以找到实际定义,以及文档字符串所说的内容。然后它将所有 .el 文件编译为 .elc 文件,包括自动加载文件。
然后(每次启动 Emacs 时)它会加载并评估 [package]-autoloads.elc 文件,而不是主要的 .elc 文件。这样加载包的速度要快得多,因为主 .elc 文件只会在调用自动加载的符号之一时加载。在此之前,Emacs 不知道主 .el 文件中的其他函数/变量。
归档时间: |
|
查看次数: |
446 次 |
最近记录: |