Elisp: provide, require, features

By Xah Lee. Date: . Last updated: .

The purpose of emacs “features” is for emacs to know if a package is already loaded.

features

A global variable. Its value is a list of Symbols, each symbol represent a emacs “feature” that's been loaded.

provide

(provide symbol)

Add symbol to the features list.

require

(require symbol &optional FILENAME NOERROR)

  • Checks if symbol is in variable features.
  • If not, call load to load it.
  • File name is guessed from symbol, or specified in the optional argument.

This function are used in elisp libraries or scripts, similar to other language's “import”.

featurep

(featurep FEATURE &optional SUBFEATURE)

Return t if FEATURE is loaded.

;; check if a feature has been loaded
(featurep 'dired)

Sample Value of Features

here's sample value of features.

emacs features 2020-12-07 gXj4f
emacs features 2020-12-07

Elisp, Package System

Elisp, writing a major mode. Essentials

Elisp, Get Version, OS Type, System Info, etc