Causes a regression where output was written into /tmp/doom.sh,
producing errors like:
/tmp//doom.sh: string 4: $'\E[32m✓': command not found
I'll revert this until I have a better solution.
Half-reverts 628f0a9, which forced straight to byte-compile packages in
another Emacs session, which produced failures for packages that didn't
properly load their compile-time dependencies (e.g. macro calls).
But now, I realize that _not_ failing in those cases is worse and
produces odd byte-code issues like #1657 or invalid-function ((date
date)) errors. This doesn't guarantee a fix, but at least takes the ball
out of Doom's court, and gracefully fails to uncompiled packages, rather
than incorrect bytecode.
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
With a commit of e2a11d24fd, when it comes to
`doom compile`, modules aren't loaded anymore, which corrupts the compiling process.
What I did is just adding the necessity parts for the doom's byte compiler.
(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.
custom-theme-set-faces! depends on doom-theme's previous-theme property
being non-nil to determine if the theme has been set (and if so, apply
its changes immediately), but at startup custom-enabled-themes is empty,
so it was never non-nil.
Fixes#5009Fixes#5000
Trying to get 'doom to behave like 'user is too much trouble and causes
too many problems. The magic around 'user is too deeply woven into
custom.el. The whole custom.el fiasco needs to be dealt with another
way.
Fixes#5000Fixes#5009
This reverts commit cab8f03a51.
Urg, they did have to be macros, otherwise arguments are evaluated
immediately. Note to self, stop committing things after midnight.
Fixes#5015Closes#5016
'doom is a pseudo theme used to store internal faces and variables, and
must have the highest precedence (like the 'user theme, but without the
risk of being written to custom-file).
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.
doom-unicode-font, doom-variable-pitch-font, and the fontset settings
were loaded in the wrong order (before the theme, but should be after).
This means the psuedo 'doom' theme that stores these settings are being
loaded too early.
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.
Also:
+ Refactors recentf config in general, revises/expands its code
comments, and uses :custom to set file variable (a new convention I'm
trying out).
+ recentf-auto-cleanup = 300 in daemon sessions, since the old strategy
of "cleanup on kill-emacs-hook" isn't so great for daemon users.
Emacs generates long file names for auto-save and backup files.
undo-fu-session and tramp are two more big offenders. This fix SHA1s
their file names so they never exceed 40 characters.
Will also affect any package that uses make-backup-file-name-1
directly (like undo-tree).
By deleting straight, the latest pinned version will be reinstalled on
the second part of the 'doom upgrade' process.
This is a clumsy fix for a catch 22 where using straight to update
straight would break due to backwards incompatibilities (see #4950).
This will do while we wait for the CLI rewrite.