Commit Graph

132 Commits

Author SHA1 Message Date
8c3a83526b Filter directories when purging straight repos
in macOS there is always an annoying ".DS_Store" in straight/repos,
which breaks `doom purge`
2021-07-05 15:06:54 +08:00
f9a1d80936 cli/packages: fix update output on unpinned packages
- don't print output of git command
- count commits and output log
2021-06-04 15:23:25 +03:00
46c89d350e cli/packages: fix commit between pins counting
the commit counting introduced in a3df5bf prints `nil` instead of the
empty string when the repo moves from commit A to commit B where A isn't
reachable from B
2021-06-04 15:23:15 +03:00
a3df5bfa3e cli/packages: count commits between pins 2021-05-29 13:01:52 -04:00
3ba364ae10 Minor refactoring across the board 2021-05-23 22:09:07 -04:00
13f316e645 Fix packages evading native-compilation
(featurep 'nativecomp) will never return t.
2021-05-23 21:49:02 -04:00
4b5cf7d46f bin/doom: polish output
Reduces the amount of "noise" included in bin/doom's output.

Also fixes an issue where warnings during autoloads generation would
sneak into Doom's autoloads file, producing weird void-variable errors,
like

  (void-variable . rainbow-delimiters:)
  (void-variable . diredfl:)
  (void-variable . company:)
2021-05-23 21:49:02 -04:00
b092d79d35 Fix reference to comp-deferred-compilation-deny-list 2021-05-12 00:50:17 -04:00
62d2f27510 Fix references to comp-eln-load-path 2021-05-08 18:56:40 -04:00
27e9c756ea Fix references to comp-async-cu-done-hook
Was renamed upstream to native-comp-async-cu-done-functions at some
point.
2021-05-08 14:57:42 -04:00
4c212b7321 Fixing windows pathway to use latest straight API 2021-04-30 17:08:31 -07:00
f60f576048 Bump :core
Fuco1/smartparens@63695c6 -> Fuco1/smartparens@25f4d6d
bbatsov/projectile@1528ed4 -> bbatsov/projectile@513228f
domtronn/all-the-icons.el@a8c8417 -> domtronn/all-the-icons.el@7a12258
emacs-straight/so-long@a5d445d -> emacs-straight/so-long@1da43ed
jscheid/dtrt-indent@37529fc -> jscheid/dtrt-indent@9714f2c
justbur/emacs-which-key@c632dbf -> justbur/emacs-which-key@5fb3030
raxod502/straight.el@0f9b828 -> raxod502/straight.el@253d7db

Fixes #4947 (needed raxod502/straight.el@0831f6b)

Also includes fixes due to straight changing its logging API.
2021-04-29 17:24:40 -04:00
43623d7c5e Fix #4947: naive native-comp checks
Now, checking for the comp package is no longer sufficient to determine
if native-compilation is enabled.
2021-04-29 13:25:48 -04:00
3a7be7bb4f Fix #4602, part 2! 2021-02-01 02:45:45 -05:00
a61758523d Fix #4602: void-variable straight--build-default-steps 2021-02-01 02:31:22 -05:00
7fcf2c2025 doom {build,purge}: reduce unnecessarily loud output
These lines don't add anything, and shouldn't be highlighted as
"success" messages.
2021-01-31 20:41:17 -05:00
05aa13ea19 doom purge: make repo regrafting opt-out
Was originally opt-in.
2021-01-31 04:30:48 -05:00
07f134b10e doom purge: delete old ELN directories 2021-01-31 04:30:48 -05:00
75549f5743 Fix doom build skipping some packages 2021-01-31 04:30:48 -05:00
2d718cc86f Remove eager native compilation of subr-trampolines
This was fixed upstream.
2021-01-27 03:37:55 -05:00
47f222a61f Fix #4558: void-variable comp-native-version-dir
Occurs for non-gccemacs users due to aggressive negation if (car build)
== :not
2021-01-27 03:00:41 -05:00
181379c006 Fix typo 2021-01-27 01:08:47 -06:00
cfb8a866dc Bump :core
Fuco1/smartparens@7f5825d -> Fuco1/smartparens@63695c6
bbatsov/projectile@d1cfad0 -> bbatsov/projectile@c31bd41
domtronn/all-the-icons.el@6917b08 -> domtronn/all-the-icons.el@9aa16ae
iqbalansari/restart-emacs@e570749 -> iqbalansari/restart-emacs@1607da2
jscheid/dtrt-indent@a7ade6d -> jscheid/dtrt-indent@854b9a1
justbur/emacs-which-key@ca268fd -> justbur/emacs-which-key@428aedf
jwiegley/use-package@caa92f1 -> jwiegley/use-package@365c73d
raxod502/straight.el@3277e1c -> raxod502/straight.el@a32c97c

+ Closes #4513
+ Fixes (wrong-number-of-arguments (3 . 4) 2) error for users on Emacs
  HEAD (see bbatsov/projectile#1635).
+ package! :build semantics have changed due to upstream changes. What
  was :build is now :pre-build. What was :no-build is now :build nil.
+ Now we must be careful not to auto-disable the "use-package" psuedo
  theme. It is used as a place to store :custom assignments without them
  being saved to custom.el.
2021-01-09 02:55:09 -05:00
affd076d53 Minor refactors & reformatting 2020-12-01 13:53:46 -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
196bb04088 Bootstrap trampolines to prevent doom build hang
This is a workaround for 'doom build' hanging on native-comp Emacs when
run with an empty cache.  We're effectively automating the process of
killing 'doom build' and trying again.
2020-11-16 14:07:34 +10:00
a6959b75f3 Minor refactors & reformatting 2020-10-22 16:11:31 -04:00
6778c1239c Include package name in 'checked out...' message 2020-10-18 19:08:07 -04:00
033cb48006 Fix void-variable comp-eln-load-path 2020-10-11 15:53:37 -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
c84127069f Fix #4036: improve 'doom sync -u' output 2020-10-06 14:19:36 -04:00
0769b47cc8 Fix 'doom purge' not purging straight builds 2020-09-19 14:43:53 -04:00
15779e7a16 Filter directories when rebuilding straight repos
Prevents auto-generated files like .DS_Store on macOS from causing an
error.
2020-08-27 23:22:24 +08: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
29489aad34 Remove 'doom update'
This command is commonly mistaken for 'doom upgrade'. No longer!
2020-08-06 22:24:41 -04:00
57c0863854 Fix aggressive native recompilation of packages
On `doom sync`
2020-07-28 01:48:09 -04:00
b9b987e1ab Optimize straight build step
Constant `(require 'comp nil t)` checks are quite slow on systems where the library isn't available, so only do it once.
2020-07-28 01:34:33 -04:00
d8af5c3cad Support native compilation of packages 2020-07-28 15:25:34 +10:00
9ec5428441 Set core.autocrlf = true in repos on Windows #2637
Line encoding issues can plague repos with dirty worktree prompts
updating packages or "Local variables entry is missing the suffix"
errors when installing them.
2020-07-24 01:49:59 -04:00
15a58d5b81 Prevent 'doom sync' rebuilding all packages, each time 2020-05-25 18:17:38 -04:00
0bc3f8ea87 doom/purge: refactor & optimize
Reduce how much work it had to do.
2020-05-25 15:55:29 -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
6241ba2faa Emit fetch output when updating recipe repos 2020-05-17 06:14:37 -04:00
0e851ace9b Backport bits of CLI rewrite
The rewrite for Doom's CLI is taking a while, so I've backported a few
important changes in order to ease the transition and fix a couple bugs
sooner.

Fixes #2802, #2737, #2386

The big highlights are:

- Fix #2802: We now update recipe repos *before* updating/installing any
  new packages. No more "Could not find package X in recipe repositories".

- Fix #2737: An edge case where straight couldn't reach a pinned
  commit (particularly with agda).

- Doom is now smarter about what option it recommends when straight
  prompts you to make a choice.

- Introduces a new init path for Doom. The old way:
  - Launch in "minimal" CLI mode in non-interactive sessions
  - Launch a "full" interactive mode otherwise.
  The new way
  - Launch in "minimal" CLI mode *only* for bin/doom
  - Launch is a simple mode for non-interactive sessions that still need
    access to your interactive config (like async org export/babel).
  - Launch a "full" interactive mode otherwise.

  This should fix compatibility issues with plugins that use the
  async.el library or spawn child Emacs processes to fake
  parallelization (like org's async export and babel functionality).

- Your private init.el is now loaded more reliably when running any
  bin/doom command. This gives you an opportunity to configure its
  settings.

- Added doom-first-{input,buffer,file}-hook hooks, which we use to queue
  deferred activation of a number of packages. Users can remove these
  modes from these hooks; altogether preventing them from loading,
  rather than waiting for them to load to then disable them,
  e.g. (after! smartparens (smartparens-global-mode -1)) -> (remove-hook
  'doom-first-buffer #'smartparens-global-mode)

  Hooks added to doom-first-*-hook variables will be removed once they
  run.

  This should also indirectly fix #2386, by preventing interactive modes
  from running in non-interactive session.

- Added `doom/bump-*` commands to make bumping modules and packages
  easier, and `doom/bumpify-*` commands for converting package!
  statements into user/repo@sha1hash format for bump commits.

- straight.el is now commit-pinned, like all other packages. We also
  more reliably install straight.el by cloning it ourselves, rather than
  relying on its bootstrap.el.

  This should prevent infinite "straight has diverged from master"
  prompts whenever we change branches (though, you might have to put up
  with it one more after this update -- see #2937 for workaround).

All the other minor changes:

- Moved core/autoload/cli.el to core/autoload/process.el
- The package manager will log attempts to check out pinned commits
- If package state is incomplete while rebuilding packages, emit a
  simpler error message instead of an obscure one!
- Added -u switch to 'doom sync' to make it run 'doom update' afterwards
- Added -p switch to 'doom sync' to make it run 'doom purge' afterwards
- Replace doom-modules function with doom-modules-list
- The `with-plist!` macro was removed, since `cl-destructuring-bind`
  already serves that purpose well enough.
- core/autoload/packages.el was moved into core-packages.el
- bin/doom will no longer die if DOOMDIR or DOOMLOCALDIR don't have a
  trailing slash
- Introduces doom-debug-variables; a list of variables to toggle on
  doom/toggle-debug-mode.
- The sandbox has been updated to reflect the above changes, also:
  1. Child instances will no longer inherit the process environment of
     the host instance,
  2. It will no longer produce an auto-save-list directory in ~/.emacs.d
2020-05-15 01:33:52 -04:00
ca74996d1b Complain if repo is invalid on 'doom update' 2020-03-01 13:25:47 -05:00
3ecff5777b Fix overaggressive recloning when updating packages 2020-03-01 13:23:39 -05:00
71e5a5513b Fix #2556 (hopefully): exec format error on Windows 2020-02-19 17:54:50 -05:00
0a463673c9 make doom purge -g more aggressive
Reflog keeps the history of every reset, so expiring it allows us to
remove more older commits. git gc by default only cleans for 2 week old
objects, so I made it more aggressive
2020-02-10 20:23:09 -05:00
0dc173a631 Polish progress output during 'doom update' 2020-02-01 02:07:24 -05:00