+ Bump Emacs version check to 25.3
+ Fix doctor reporting missing packages that are user-disabled
+ Add Doom core checks for over-sized cache files (a possible cause of
freezes/hangs)
+ Emit a backtrace from module doctor script errors
+ Fix doom doctor not respecting DEBUG envvar
Done to make bin/doom produce better debugger output (and more readily).
A lot of bin/doom errors aren't recurring, so it's better to produce the
full error report ASAP.
The `term.el` package defines an environment variable `EMACS` inside its shell process, containing the Emacs and term.el version, in a string that looks like this: `26.1 (term:0.96)`. This interferes with the `bin/doom` command, which expects that environment variable to be a path to an Emacs binary. Trying to run make inside a doom terminal thus gives you this error:
```
Emacs isn't installed
make: *** [Makefile:5: all] Error 1
```
This simple fix just checks if `$EMACS` looks like a term version string, and ignores it if so.
%* is unaffected by SHIFT, so using it results in Emacs loading a
buffer named "run" on startup.
In order to preserve running all supported commands directly with
the bin/doom script, change the magic string in doom.cmd to one that
is unused ("runemacs")
- Using "start" will allow the batch script to return immediately,
rather than waiting for the command to finish.
- Using "runemacs" (instead of plain "emacs") will hide the console
window that is displayed while Emacs is running
As an alternative to the -e/--emacsd options. Sometimes it is more
consistent to customize bin/doom this way. e.g.
EMACS=/another/bin/emacs DOOMDIR=~/someplace EMACSDIR=~/emacsd bin/doom install
Another refactor, again to improve the locality of doom errors and make
the data that accompanies them more useful in determining the origin and
source of issues. Also, bin/doom is now a little more informative about
how to debug errors.
Removes doom-module-table; which was inflexible (though more stable). It
prevented you from putting your doom! block in anywhere but
~/.doom.d/init.el.
It is replaced (somewhat) by (doom-modules).