Commit graph

614 commits

Author SHA1 Message Date
Henrik Lissner
493a049dff
tweak: disable tty optimization in debug mode
If an error occurs before tty-run-terminal-initialization
does (producing a backtrace window), it can leave Emacs in a garbled,
unreadable state.
2022-07-29 12:24:25 +02:00
Henrik Lissner
7a9f8b18ab
refactor: resolve doom-{core,modules}-dir properly
Future proofing for changes in doom-emacs-dir.
2022-07-29 12:23:42 +02:00
Henrik Lissner
7d93feb98c
nit: minor reformatting, comment revision, & sharpquoting 2022-07-29 12:22:33 +02:00
Henrik Lissner
22eace62d0
fix: doom-local-dir for profiles
- Ensure it ends in slash,
- Ensure it includes the @-tag (e.g. default@latest),
- Remove vestigial code path that is unreachable.
2022-07-28 12:40:32 +02:00
Henrik Lissner
5af38fb08e
feat: make bin/doom profile aware
- Fixes Doom's former inability to (trivially) juggle multiple profiles
  based on the same EMACSDIR (see #6593).
- Adds '--profile NAME' switch to bin/doom (also recognized
  $DOOMPROFILE).
- Adds new doom-profile* variables. These will eventually replace
  doom-{local,etc,cache}-dir and doom-{autoloads,env}-file.

This is intentionally messy to ensure backwards compatibility for a
little while longer. This will be fixed over the next couple weeks.

Ref: #6593
2022-07-28 12:01:02 +02:00
Henrik Lissner
e35cc0dfe7
release(modules): 22.07.0-dev
Ref: 2b39e41368
2022-07-04 21:12:13 +02:00
Henrik Lissner
14b2395424
refactor: remove unused core variables
doom-debug-p and doom-interactive-p have always been intentionally
redundant, because changing the variables they replaced had other
side-effects, which made writing tests for them difficult. Since our
new (yet unpublished) tests lean heavily toward integration testing more
than unit testing, this becomes an implementation detail.

And doom-init-p's only use was refactor out at some point in the past,
so it's no longer used.

Also done to reduce Doom's footprint, in general.
2022-06-29 18:14:20 +02:00
Henrik Lissner
1402db5129
refactor: how Doom starts up
Restructures Doom's primary core files and entry points to prepare for
backports (from the new CLI) coming soon.

- Removes $EMACSDIR/init.el.
- Doom configures Emacs to ignore ~/.emacs and ~/_emacs files.
- Doom's bootstrapper for interactive sessions was moved out of core.el
  and doom-initialize into doom-start.el. This change is preparation for
  Doom's new profile system (coming soon™️), where this bootstrapper
  will be dynamically generated.
- core.el and early-init.el have been reorganized, comment headers moved
  around, and comments updated to reflect these changes.
2022-06-18 16:54:45 +02:00
Henrik Lissner
46844b55de
refactor: how doom prevents $EMACSDIR litter
I change `user-emacs-directory' because most (if not all) packages --
even built-in ones -- abuse it exclusively to build paths for
storage/cache files (instead of correctly using
`locate-user-emacs-file'). This ensures your $EMACSDIR isn't littered
with data files *and* saves us the trouble of setting every
directory/file variable under the sun.

Granted, this introduces an edge case for any legitimate uses of the
variable (e.g. where the caller seeks to locate the user's initfiles),
but I've found no such uses in any of the packages I've audited for Doom
or elsewhere.
2022-06-18 08:26:01 +02:00
Henrik Lissner
196adfb28d
tweak: disable gnutls-verify-error in interactive sessions
NSM has better UX when an invalid/expired certificate is encountered: it
prompts the user to decide what to do with it. If gnutls-verify-error is
non-nil, gnutls either kills or hangs the connection. This is (mostly)
acceptable in noninteractive sessions, where I can more tightly control
outgoing connections, but not in interactive sessions where I stand a
higher chance of stepping on the user's toes instead.

Ref: emacs-circe/circe#405
2022-06-17 20:28:07 +02:00
Henrik Lissner
60df67de34
release(modules): 22.06.0-dev
Ref: 2b39e41368
2022-06-04 15:02:06 +02:00
Henrik Lissner
0597466261
release(modules): 22.05.0-dev
Ref: 2b39e41368
2022-05-02 01:39:15 +02:00
Henrik Lissner
fd991026ff
fix: void-function doom-partial
Fix: #6259
2022-04-06 18:45:06 +02:00
Henrik Lissner
2b39e41368
release(modules): 22.04.0-dev
Eventually, our modules will move to their own repos (doomemacs/modules
and doomemacs/contrib-modules). Once done, it will formally adopt the
CalVer versioning scheme (Doom's core will stick to SemVer -- these
decisions will be better explained later). These mini-releases won't
mean much until this happens, hence the -dev suffix.
2022-04-01 19:12:35 +02:00
Henrik Lissner
2aeca577c8
refactor: correct version variables
These two variables have been the wrong way around for a while. In
preparation for splitting Doom into separate repos (its core and module
libraries), I've corrected them. doom-modules-version is a placeholder
and will be removed later.

I've also settled on -dev suffix for inter-release versions of Doom,
rather than alpha.
2022-03-21 03:57:31 +01:00
Henrik Lissner
eddaae40e8 fix: empty HOME on Windows
This was accidentally removed in 68d8364.

Amend: 68d8364aea
2022-01-28 20:57:09 +01:00
Henrik Lissner
c6a6f44481 fix(org): inhibit native-comp for emacs-jupyter.el
Fix: #6018
2022-01-27 18:18:52 +01:00
Henrik Lissner
2c02cea461 feat: add EMACS29+ constant 2022-01-12 01:55:34 +01:00
Henrik Lissner
cc3be7cb44 refactor: simplify native-comp detection
Reduce cases where native-comp procedures were executed in
non-native-comp contexts (somehow).

Also:
- Adds a NATIVECOMP constant for statically detecting the feature.
- Remove native-comp-* -> comp-* aliases (Emacs HEAD has long since
  moved on from these).
- Add 'no-native-compile: t' to autoloads file.
2021-11-22 16:01:02 +01:00
Henrik Lissner
06f1e24eda fix: renamed doom-inhibit-local-var-hooks
This rename was premature; it snuck into 68d8364.

Amend: 68d8364aea
Close: #5755
2021-11-17 23:19:10 +01:00
Henrik Lissner
481646ca18 nit: update doom--write-to-sane-paths-a docstring
To properly reflect what it actually does, not what a long-since-changed
implementation did.
2021-10-28 14:32:36 +02:00
Henrik Lissner
b36d798f74 fix: restore auth-sources default
This was accidentally removed in 68d8364.

Ref 68d8364aea
Fix #5628
2021-10-18 01:15:09 +02:00
Henrik Lissner
a33865569e fix: premature deprecation of *-local-vars-hook
68d8364ae added a deprecation notice to any use of a
MODE-local-vars-hook, instructing users to use after-MODE-hook instead,
however this hasn't been decided yet and shouldn't have made it into
68d8364ae.

Ref 68d8364aea
Fix #5612
2021-10-11 20:25:18 +02:00
Henrik Lissner
0bb4d4dfcb refactor: switch buffer/frame/window hooks
Emacs 27 introduced a bunch of `window-*-change-functions` hooks,
including `window-selection-change-functions` and
`window-buffer-change-functions`, which handles 98% of the use case for
Doom's `doom-switch-{buffer,window,frame}-hook` hooks, so I've rewritten
them to use them under the hood, which amounts to simpler code and fewer
hacks.
2021-10-10 18:36:46 +02:00
Henrik Lissner
6bd9c7c880 perf: run GC a little less aggressively
The delay will not be adjusted on a per-GC basis, depending on its last
run-time. This should average to around 2-3s, which should be a good
compromise between GCing too often and too infrequently.
2021-10-10 18:36:46 +02:00
Henrik Lissner
68d8364aea refactor: adopt CalVer and reorganize core.el
Doom is adopting CalVer (starting at 21.12) and, later, I'll move Doom's
core out to a separate repo, where it'll stay with SemVer (starting at
3.0).
2021-10-10 18:36:46 +02:00
Henrik Lissner
094b4c1023 refactor: move init helpers to core-lib
The functions have more general use-cases and should be considered part
of Doom's stdlib.
2021-10-10 18:36:46 +02:00
Henrik Lissner
731ae806ea perf: pgtk-wait-for-event-timeout = 0.001
Thise should reduce the artificial latency added to window manager
operations (like calls to some of Emacs' frame API, e.g.
make-frame-invisible) on the PGTK build of Emacs. This should mitigate
latency issues with childframes in general and packages that use them,
e.g. lsp-ui and company-box.

There's also a small chance 0.001 is much too low, and may cause
artefacting on especially slow hardware. More testing is needed.
2021-09-29 17:50:30 +02:00
Henrik Lissner
06392a723f refactor: rename orig-fn arg in advice to fn
A minor tweak to our naming conventions for the first argument of an
:around advice.
2021-08-04 01:53:12 -04:00
Henrik Lissner
93f6591faf tweak: gcmh-idle-delay = 5 -> 0.5
Reduce the chance of memory leaks by being a little more aggressive
about idle GC. This *may* be too low; time will tell.
2021-07-28 12:42:46 -04:00
Henrik Lissner
cbb0ce9f85 Don't log hooks
Produces a lot of logging noise, and Doom already injects context into
errors that occur in hooks.
2021-07-11 17:52:08 -04:00
Henrik Lissner
d79cea2e4c Minor refactors, reformatting, & comment revision 2021-07-11 17:52:08 -04:00
Itai Y. Efrat
34fae1c01c Remove remaining Emacs27+ checks
- Remove remaining `EMACS27+` checks, since the whole codebase is
  assumed to run at version 27 or above now
- Remove `EMACS27+` definition since it's no longer needed
2021-07-10 16:03:41 +03:00
Henrik Lissner
19edcb9314 Change doom-version to 3.0.0-alpha
The future is now.
2021-07-06 02:32:38 -04:00
Henrik Lissner
044a1a5f2b Drop Emacs 26.x support
Emacs 27.x has been the stable version of Emacs for nearly a year, and
introduces a litany of bugfixes, performance, and quality-of-life
improvements that significantly reduce Doom's maintenance burden (like
XDG support, early-init.el, image manipulation without imagemagick, a
native JSON library, harfbuzz support, pdumper, and others).

With so many big changes on Doom's horizon, I like having one less (big)
thing to worry about.

Also reverts bb677cf7a (#5232) as it is no longer needed.
2021-07-06 02:31:52 -04:00
Henrik Lissner
c92f486750 Don't reload envvar file on doom/reload
Might address 'Device 1 not a termcap terminal device' errors
2021-06-06 11:52:49 -04:00
Henrik Lissner
72c3a79132 Ensure *-local-vars-hook runs on hack-local-variables-hook
Not sure why I removed this in cd88f65, but it ruins the original
purpose of these hooks -- to run after local variables have been set.
2021-06-02 23:12:38 -04:00
Henrik Lissner
a0174b7638 gcmh-high-cons-threshold = 16mb
Reverts 86fd6c621 which increased gcmh-high-cons-threshold from Doom's
16mb default to its upstream default (of 1gb). This was an experiment.
In theory, the user should idle enough that it would GC enough to stave
off freezes/stuttering/paging, but in practice, either users did not
idle enough or the GC didn't clean up enough when given the opportunity.
The result: terrible stuttering and freezing after long periods of use.

Back to 16mb gang.
2021-05-29 12:50:28 -04:00
Henrik Lissner
2a2969f3e0 org-roam-verbose = t
Its output is helpful. Let's not silence it.

But prevent output during incremental loading from hijacking the
minibuffer (likely the original reason org-roam-verbose was disabled).
2021-05-21 23:13:09 -04:00
Henrik Lissner
9e5ba5fd6c Don't suppress user-error errors
Refactor doom-run-hooks warning.
2021-05-15 14:09:08 -04:00
Henrik Lissner
6d2c6b44fa Refactor comp-effective-async-max-jobs advice
We only need this magic in CLI sessions. It's better to only use half
the CPUs in interactive sessions (if the user has enabled
comp-deferred-compilation for some reason).

Fixes #5042
2021-05-12 14:52:00 -04:00
Henrik Lissner
ce11a98b70 Alias native-comp-* on any Emacs 28+ build
Because boundp checks are too fallible as a guard.
2021-05-12 01:22:07 -04:00
Henrik Lissner
485f097297 Make native-comp-* aliases more robust
(defvaralias A B) throws an error if A is already defined. This breaks
Doom in the event that Doom's config is loaded late (e.g. with 'doom
run'), or these variables are set elsewhere (e.g. the sandbox). I didn't
want to have to do all these checks at startup, but it seems
unavoidable.

Since Doom will only support near-enough the latest commit of Emacs 28
HEAD, I will remove these fixes at the end of May, give or take a week.
2021-05-12 00:18:36 -04:00
Henrik Lissner
87d15700bd Fix #5038: sandbox redefining comp var aliases
Closes #5040
2021-05-11 21:29:54 -04:00
Henrik Lissner
6ad4f0698e Fix #4995: adapt to more renamed comp-* symbols
Two more variables were renamed upstream.
2021-05-11 19:03:18 -04:00
Henrik Lissner
5b50a57b85 Correct comments in doom-run-hook-on 2021-05-09 20:50:23 -04:00
Henrik Lissner
856f8b6aeb Fix #4995: adapt to renamed comp-* symbols
Adapting to native-comp changes on Emacs HEAD.
2021-05-08 14:46:51 -04:00
Henrik Lissner
f989bf60f0 Rewrite how themes are loaded, and fonts reloaded
A follow-up to 578dddd, which wasn't sufficient.

Fixes #5000 (again)
2021-05-08 00:42:06 -04:00
Henrik Lissner
113dcd74cf Refactor UTF-8 config
After studying set-language-environment, it seems to embody all these
lines. And without without it, non-English glyph rendering is very
slow (see https://emacs-china.org/t/org-mode/16918).

This may have other implications, however, so further testing is needed.
2021-05-08 00:41:41 -04:00
Henrik Lissner
9561089ff5 Remove redundant comp-deferred-compilation setting
Already set in early-init.el, and deferred compilation is auto-disabled
in noninteractive sessions, so only matters to clients that load
early-init.el.
2021-05-07 02:32:51 -04:00