Commit Graph

614 Commits

Author SHA1 Message Date
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
7a9f8b18ab refactor: resolve doom-{core,modules}-dir properly
Future proofing for changes in doom-emacs-dir.
2022-07-29 12:23:42 +02:00
7d93feb98c nit: minor reformatting, comment revision, & sharpquoting 2022-07-29 12:22:33 +02:00
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
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
e35cc0dfe7 release(modules): 22.07.0-dev
Ref: 2b39e41368
2022-07-04 21:12:13 +02:00
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
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
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
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
60df67de34 release(modules): 22.06.0-dev
Ref: 2b39e41368
2022-06-04 15:02:06 +02:00
0597466261 release(modules): 22.05.0-dev
Ref: 2b39e41368
2022-05-02 01:39:15 +02:00
fd991026ff fix: void-function doom-partial
Fix: #6259
2022-04-06 18:45:06 +02:00
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
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
eddaae40e8 fix: empty HOME on Windows
This was accidentally removed in 68d8364.

Amend: 68d8364aea
2022-01-28 20:57:09 +01:00
c6a6f44481 fix(org): inhibit native-comp for emacs-jupyter.el
Fix: #6018
2022-01-27 18:18:52 +01:00
2c02cea461 feat: add EMACS29+ constant 2022-01-12 01:55:34 +01:00
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
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
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
b36d798f74 fix: restore auth-sources default
This was accidentally removed in 68d8364.

Ref 68d8364aea
Fix #5628
2021-10-18 01:15:09 +02:00
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
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
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
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
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
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
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
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
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
d79cea2e4c Minor refactors, reformatting, & comment revision 2021-07-11 17:52:08 -04:00
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
19edcb9314 Change doom-version to 3.0.0-alpha
The future is now.
2021-07-06 02:32:38 -04:00
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
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
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
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
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
9e5ba5fd6c Don't suppress user-error errors
Refactor doom-run-hooks warning.
2021-05-15 14:09:08 -04:00
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
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
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
87d15700bd Fix #5038: sandbox redefining comp var aliases
Closes #5040
2021-05-11 21:29:54 -04:00
6ad4f0698e Fix #4995: adapt to more renamed comp-* symbols
Two more variables were renamed upstream.
2021-05-11 19:03:18 -04:00
5b50a57b85 Correct comments in doom-run-hook-on 2021-05-09 20:50:23 -04:00
856f8b6aeb Fix #4995: adapt to renamed comp-* symbols
Adapting to native-comp changes on Emacs HEAD.
2021-05-08 14:46:51 -04:00
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
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
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