Commit Graph

586 Commits

Author SHA1 Message Date
c517be8e69 Advise locate-user-emacs-file to use doom-etc-dir
This is commonly used in Emacs packages to resolve to a location in
`~/.emacs.d`, as storage or a cache. Rather than addressing each
file/directory variable as they are encountered, better to address this
at the source.

Also: this makes some file/directory settings redundant, so they were
removed.

Closes #4347
2020-12-01 13:53:10 -05:00
cd88f6528e Refactor MODE-local-var-hook trigger 2020-11-30 23:35:03 -05:00
77924c8feb Remove tab-prefix-map fix
Since we've bumped project.el in the :tools lsp module, which was the
cause of this error to begin with.
2020-11-29 15:01:44 -05:00
b91a1b3e7b Extract CPU counting to doom-num-cpus function
And improves macOS support as discussed in hlissner/doom-emacs@db6a27c
2020-11-29 14:49:14 -05:00
b49c40bbb3 Minor refactors & comment revision 2020-11-29 14:37:32 -05:00
db6a27c37c native-comp: use all cores instead of half 2020-11-29 14:25:12 -05:00
6dc84f1671 Remove backwards compatibility for native-comp
It's too much hassle to wrestle with. If you're on native comp, you
revert to hlissner/doom-emacs@c83e5e75e until you can update.

Fixes #4317 (again)
2020-11-25 14:55:26 -05:00
90f16eaa76 Fix #4317: wrong-type-arg: number-or-marker-p many
Caused by a func-arity call on an advised function (returns the arity of
the advice, rather than the advised function itself).
2020-11-25 13:49:17 -05:00
d3e08c5d0b Update for the latest native-compile-async API
Renamed `comp-deferred-compilation-black-list` to
`comp-deferred-compilation-deny-list`.

Removed the `late` load flag which is no longer required.

Added a check against the deny list when compiling all Elisp on the
load-path, so we don't inadvertently compile something we shouldn't.

Added compatibility shims to ease transition from older builds of
native-comp.
2020-11-25 14:17:01 +10:00
db16e5c03e Fix error if autoloads file is missing at startup
Should warn the user to run 'doom sync' if the autoloads file is
missing, but was giving a less helpful, generic error instead.
2020-11-20 14:10:29 -05:00
4dab595ad3 Minor refactors & comment revision 2020-11-20 14:10:29 -05:00
a56f58d4ab Prevent native compilation for emacs-jupyter
Something in jupyter-channel.el does not get compiled correctly and
raises void-variable jupyter-channel errors.
2020-11-17 20:48:34 +01:00
e9394c7c06 Add with-editor.el to the compilation black-list 2020-11-16 14:52:41 +10:00
9ce9c6838e Add emacs version to autoloads file path
Prevents stale byte-code across Emacs versions.

Relevant to #4172
2020-10-29 01:42:04 -04:00
9e1ac0c0be Reduce active message-log-max; scale in debug mode
8kb of log isn't really necessary. We'll scale it up when debug mode is
on, instead.
2020-10-26 05:51:12 -04:00
f92f4aab97 Fix file-handlers for daemon sessions 2020-10-21 11:18:47 -04:00
b461f76b0d Fix *-local-vars-hook & doom-first-*-hook not triggering
When starting Emacs with a file path argument these hooks aren't set up
in time for the file to be processed.

Fixes #3891, #4082, #4104
2020-10-16 23:08:56 -04:00
35185b2175 Split doom-reload-hook into before/after hooks 2020-10-16 22:28:08 -04:00
3f24fc3737 regexp-quote comp blacklist entries 2020-10-11 16:41:05 -04:00
2e07a85590 Native-compile everything on load-path
Add an extra pass to `doom build` to queue native compilation of all
packages on `load-path`. This ensures that all core and site Elisp
packages are actually native-compiled, even on "fast boot" builds.

Add `.local/autolads.el` to the blacklist as native-compiling this file
succeeds, but prevents emacs from starting up.

Revise the evil-collection-vterm blacklist entry to use a more efficient
regex.

Fix a bug where an updated .error file wasn't always written, causing
spurious rebuilds.
2020-10-09 09:34:34 +10:00
1d0f1575aa Remove comp-eln-load-path injection hack
This was fixed upstream, so comp-eln-load-path is now passed to async
compilation workers.
2020-10-09 09:34:34 +10:00
29b12de83e Fix #3901: unset comp-deferred-compilation later 2020-10-06 02:08:17 -04:00
8f64a0eb31 Fix #3871: void-function doom-autoload-error
Due to calling an error as if it were a function.
2020-08-31 00:01:34 -04:00
a986621a5f Revert 70148bb
Fixes #3829
Relevant to #3691
2020-08-25 01:57:00 -04:00
e632871a11 core-cli: backport more refactors from rewrite
Still a long way to go, but this introduces a few niceties for
debugging CLI failures:

+ The (extended) output of the last bin/doom command is now logged to
  ~/.emacs.d/.local/doom.log
+ If an error occurs, short backtraces are displayed whether or not you
  have debug mode on. The full backtrace is written to
  ~/.emacs.d/.local/doom.error.log.
+ bin/doom now aborts with a warning if:
  - The script itself or its parent directory is a symlink. It's fine if
    ~/.emacs.d is symlinked though.
  - Running bin/doom as root when your DOOMDIR isn't in /root/.
  - If you're sporting Emacs 26.1 (now handled in the elisp side rather
    than the /bin/sh shebang preamble).
+ If a 'doom sync' was aborted prematurely, you'll be warned that Doom
  was left in an inconsistent state and that you must run `doom sync`
  again.

May address #3746
2020-08-24 23:00:32 -04:00
70148bbfc8 Inhibit local-vars hooks when reverting
Possibly addresses #3691
2020-08-21 00:03:01 -04:00
995b45285c core: revise & clarify comments 2020-08-20 03:35:29 -04:00
c74f8170b6 Remove mac-specific packages from core
Now that they're in :os macos
2020-08-20 03:33:35 -04:00
dddfd9a7b1 Fix #3787: only inhibit some hooks for org-src ops
Inhibiting all MAJOR-MODE-hook functions (to fix #3660) would mean
inhibiting some useful functionality, like indentation or syntax
highlighting modes. We only want to inhibit expensive hooks. Since Doom
adds these to MAJOR-MODE-local-vars-hook by convention, we can
selectively inhibit those instead.
2020-08-20 02:30:06 -04:00
394a18096e Disable comp-deferred-compilation in early-init.el 2020-08-18 20:32:34 -04:00
58af4aef56 Fix #3772 (again): void-variable comp-eln-load-path 2020-08-18 02:51:53 -04:00
3d622101cb Fix #3772: void-variable doom-reloading-p
This wasn't necessary in the first place. doom/reload doesn't re-read
Doom's core.
2020-08-18 02:44:03 -04:00
ed25ab76f9 Respect comp-eln-load-path in comp async process
Thanks to @SwiftLawnGnome in hlissner/doom-emacs@295f806
2020-08-18 00:46:41 -04:00
a2da5d7a6f Fix void-variable comp-eln-load-path error
For users on older versions of gccemacs.
2020-08-17 21:25:34 -04:00
295f8066be Update gccemacs support
To add support for "update 11", see:
http://akrl.sdf.org/gccemacs.html#org4b11ea1

Also:
+ Move eln files to ~/.emacs.d/.local/cache/eln
+ Disable comp-deferred-compilation by default (now that it is
  enabled-by-default upstream).
2020-08-17 21:24:14 -04:00
dc489d24e7 bidi-inhibit-bpa = t
Speeds up redisplay a little, but possible at the expense of folks who
use Emacs for RTL languages.
2020-08-04 14:58:13 -04:00
9f84bc334b Forward file-missing errors from within autoloads
If a load call occurs within the autoloads file and throws a
file-missing error, it would be misleading to say 'doom sync' will fix
it, so forward the real error!
2020-08-04 07:34:16 -04:00
c7513e4135 Fix #3390: only execute local-vars hooks once 2020-08-02 16:29:46 -04:00
092480152e Fix #3650: void-variable tab-prefix-map
Seems like some OSes' package managers are serving up a build of Emacs
where it doesn't define `tab-prefix-map`, but uses it (or another
package uses it--honestly, it difficult to tell. I can't reproduce this,
but I've gotten reports of it on Arch and Ubuntu).

It'll likely go away on its own, so I'll remove this after a year or
something.
2020-07-30 18:57:53 -04:00
e71b7fc705 Revise comments in core.el 2020-07-25 17:52:55 -04:00
9cead32108 core: use custom.el instead of config.el for custom-file 2020-07-22 17:17:05 +08:00
1d709e30be custom-file = ~/.doom.d/config.el
custom-file is now set to your private config.el, because users may want
to be able to see what Customize is storing (and where) front and
center. Storing it away in ~/.emacs.d/.local makes it harder to notice.

Also, have enable-command (and disable-command) save their data to
custom-file instead of ~/.emacs.d (see #3379).

Fixes #3379
2020-06-13 16:21:43 -04:00
c2c81ece35 Revert server-auth-dir to default
This directory is used when server-use-tcp is non-nil (which is the case
on Windows). With this changed from its default, users have to manually
specify its location when using emacsclientw.exe to connect to daemons.

This means a little more noise in `~/.emacs.d`, but Windows users have
worse things to put up with.

Fixes #3324
2020-06-07 14:09:30 -04:00
3253ca8435 Minor refactors & comment/message revision 2020-05-25 22:11:15 -04:00
d1fcbf244b doom/toggle-debug-mode -> doom-debug-mode 2020-05-25 20:18:36 -04:00
e6c88e4384 Refactor autoloads generator & reduce to one generated file
We no longer need two separate autoloads files, so I merged them and
optimized its generation logic.

Other changes
- Doom will refuse to start up (with a helpful error) if it's in an
  incomplete state. This should hopefully reduce the number of bug
  reports from folks that have done something weird, e.g.
  1. You've changed Emacs versions without running 'doom sync -b'.
  2. You've updated Doom outside of `doom upgrade` and didn't run `doom
     sync -u`.
  3. You've forgotten to run 'doom sync' in the first place!
  4. If a previous 'doom ...' command was aborted midway without running
     'doom sync' afterwards.
- 'doom sync' will emit reminders that you need to reload/restart Emacs
- Autoloads API now uses the `doom-autoloads-` prefix, intead of
  'doom-cli-autoloads-', as will be the new convention in the coming
  rewrite.
- Errors from within the package autoloads should be easier to invoke
  the debugger on.
- `doom-modules` is now stored in your autoloads file. Your module list
  will soon be frozen between calls to 'doom sync' to allow for our new,
  atomic CLI I'm working on. This will also means the `doom!` block
  won't cost anything in interactive sessions.
2020-05-25 15:55:29 -04:00
3a38fc633c Change doom-{interactive,debug}-mode suffix to -p
Because these are not really modes.

Also makes `doom-debug-mode` an actual (global) minor mode.
2020-05-25 03:43:40 -04:00
e00bfc7612 Minor refactors & reformatting 2020-05-25 03:43:40 -04:00
3e5cf3de09 Simplify gcmh config
We don't need to manipulate gc-cons-percentage. The GC never procs at
startup either way.
2020-05-25 02:10:07 -04:00
a680885ed9 Fix doom-first-{file,buffer}-hook on first file
Due to typo.
2020-05-18 13:59:40 -04:00