我们看emacs源码的时候,从gun.org官网下载压缩包解压后,第一件事情要做的就是看源码根目录下的README文件,以emacs-24.5版本为例:
emacs的整体架构已经被很多人熟知,底层C实现基本的原语,上层使用elisp扩展功能。 所以emacs的代码也是2大部分组成底层C代码(对应src目录), 上层emacs lisp代码(对应lisp目录)。elisp 是lisp语言的方言,既然emacs支持运行elisp, 就需要底层实现一个elisp的解释器,也即是Emacs Lisp interpreter。
分析emacs源码,主要的任务分为2块
1) 底层C语言实现的elisp解释器和相应的原语的实现
2) 上层用elisp写的扩展功能
要完完整了解以上两块的细节,24.5版本的C代码大概30多万行,elisp代码大概160万行,需要花费非常多的时间和精力。
我们分析的目的是:学习其架构,了解细节,并可以应用到自己的项目中。