Commit graph

706 commits

Author SHA1 Message Date
Henrik Lissner
ee154a3eb7
Add Emacs version check to noninteractive session
Changing Emacs versions can cause incompatibilities. Doom now warns the
user about these.
2018-06-04 21:17:49 +02:00
Henrik Lissner
8762129e8d
Don't prompt when byte-compiling plugins
The warning only applies to full byte-compilation of your config.
2018-06-04 21:17:49 +02:00
Henrik Lissner
7acfcf907a
Add warning prompt to byte-compile
Byte-compiling should be a considered an advanced workflow. Warn users
of the dangers. The prompt can be suppressed with the -y option. e.g.

  bin/doom -y compile

You won't get the prompt for byte-compiling :core or :plugins however.
2018-06-03 22:00:40 +02:00
Henrik Lissner
b2dfc4b8e8
Delete plugin *.elc before recompiling plugins 2018-06-03 01:38:35 +02:00
Henrik Lissner
1a1d74afa3
Refactor package management API
To make backtraces a little less cluttered, in case of the notorious
arrayp error, which I am yet unable to reproduce or understand.
2018-06-02 21:31:14 +02:00
Henrik Lissner
428f1e1d07
Refactor def-setting!/set! implementation
The `doom-settings` variable has been removed. Setting checks are done
with fboundp now, which is simpler.
2018-06-02 16:26:59 +02:00
Henrik Lissner
6480a45f84
Fix reload-package-autoloads outdated detection
The package autoloads generator wouldn't take module packages.el files
into consideration when detecting whether the autoloads file should be
regenerated. Now it does.
2018-06-01 17:06:03 +02:00
Henrik Lissner
6bad6d12f3
Remove doom-psuedo-modules-dir
Not needed with now that doom-private-dir has first class support.
2018-06-01 17:01:39 +02:00
Henrik Lissner
b1ab80ec3f
Fix doom//byte-compile when recompiling plugins
This would cause odd void-variable/function errors because
doom//byte-compile would erroneously try to compile *everything* after
recompiling plugins.
2018-05-31 01:31:33 +02:00
Henrik Lissner
d2ca6f65b3
doom/cleanup-session: don't kill modified buffers 2018-05-30 23:06:13 +02:00
Henrik Lissner
bb9f00e275
Fix unused return value warnings
When byte-compiling or reloading autoloads files.
2018-05-30 16:05:24 +02:00
Henrik Lissner
debe3e0dd3 Remove unnused letvar doom--inhibit-reload 2018-05-29 19:39:22 +02:00
Henrik Lissner
592d83a968
Fix doom//byte-compile not initializing module list in some contexts 2018-05-29 15:32:36 +02:00
Henrik Lissner
1a452b6842
💥 Change first arg of load! macro
load!'s first argument is no longer a symbol (that will cause
void-variable errors now) to save on unnecessary interning and simplify
compile-time logic. It accepts any valid form that evaluates to a string
now.

If you use load!, you need to change its argument to a string!

e.g. (load! +my-module) => (load! "+my-module")
2018-05-27 12:52:28 +02:00
Henrik Lissner
06bd3dfccc
Improve how reload-doom-autoloads detects your modules have changed 2018-05-25 19:22:44 +02:00
Henrik Lissner
debdb63100
Handle wrong-num-of-args error correctly 2018-05-25 19:22:44 +02:00
Henrik Lissner
e3daf2b818
Improve how reload-package-autoloads detects your packages have changed 2018-05-25 19:22:44 +02:00
Henrik Lissner
74c8df3618
Fix reload-*-autoloads commands not remotely loading byte-compiled autoloads file 2018-05-25 19:22:44 +02:00
Henrik Lissner
068979591a
doom//byte-compile: cl-pushnew => push (redundant w/ cl-delete-duplicates) 2018-05-25 19:22:44 +02:00
Henrik Lissner
73045f9950
Fix doom//quickstart & improve feedback (make quickstart) 2018-05-25 12:49:39 +02:00
Henrik Lissner
7f31f4a1bd
Adjust package state initialization strategies 2018-05-25 02:53:48 +02:00
Henrik Lissner
0368e8f84b
Ensure package state is initialized before package management 2018-05-25 02:41:23 +02:00
Henrik Lissner
0aa7bf2d4a
Insert package state before package autoloads in autoloads file
Prevents issues where autoloads will try to load packages but
`load-path` isn't initialized yet, causing "Cannot open load file"
errors.
2018-05-25 02:18:55 +02:00
Henrik Lissner
d9894f0b74
Fix package install not retrying after a 'bad request' error 2018-05-25 02:16:19 +02:00
Henrik Lissner
887e3e11af
Remove unused printerr! macro 2018-05-25 00:49:03 +02:00
Henrik Lissner
7c611df6a6
Have doom//reload return t on success 2018-05-24 22:01:26 +02:00
Henrik Lissner
ea86b1075f
Fix doom-template-exists-p 2018-05-24 21:20:02 +02:00
Henrik Lissner
b70ed84a33
Fix doom//run-tests 2018-05-24 21:20:02 +02:00
Henrik Lissner
18a6df5e6f
Fix doom/info 2018-05-24 21:20:02 +02:00
Henrik Lissner
87e9365a41
Fix package autoremove/install/update batch commands 2018-05-24 21:20:02 +02:00
Henrik Lissner
b629f4f507
Fix doom//clean-byte-compiled-files 2018-05-24 21:20:02 +02:00
Henrik Lissner
6ea5430c4d
Fix doom//byte-compile 2018-05-24 21:20:02 +02:00
Henrik Lissner
8746c12fae
Redesign Doom bootstrap, caching & autoload generation logic
The autoloads file has been split into doom-autoload-file and
doom-package-autoload-file. The former is for Doom's modules and
standard library; the latter is for compiling all package autoloads like
load-path and auto-mode-alist (among other things).

This reduced my startup speed from ~1s to ~0.5s
2018-05-24 21:20:02 +02:00
Henrik Lissner
47ccbb5d41
print!: use terpri instead of princ for newline
Will produce the appropriate newline for the current OS.
2018-05-24 18:30:37 +02:00
Henrik Lissner
b25e215d59
Increase last-pkg-refresh ttl from 900 -> 1200s 2018-05-24 16:41:14 +02:00
Henrik Lissner
592e16d76d
Conform debug commands to naming convention 2018-05-24 16:40:37 +02:00
Henrik Lissner
fbf8a7be56
Remove vestigial references to doom//reload-load-path 2018-05-21 01:38:17 +02:00
Henrik Lissner
454a962d6b
Rewrite doom//reload (merge reload-load-path into it) 2018-05-21 01:38:17 +02:00
Henrik Lissner
f2c02e32c8
General minor refactor & comment updates 2018-05-21 01:38:17 +02:00
Henrik Lissner
f3f8172579
Fix {copy,move}-this-file commands when file doesn't exist yet 2018-05-21 01:38:17 +02:00
Henrik Lissner
f058505306
New bin/doom (eventual replacement for make)
This commit adds bin/doom, which acts as the middle man that make once
was (and will stay for a while, though the documentation will shift away
from using it). It does everything the previous make interface did, but
is faster and more flexible. bin/doom should eventually replace the
makefile.

bin/doom also makes it easier to run Doom outside of ~/.emacs.d and
~/.doom.d with, for example:

  bin/doom run -p ~/.other.doom.d/ -e ~/.other.emacs.d

bin/doom.cmd is included for Windows users, but I don't recommend using
it yet. It hasn't been tested nor have I ever written a batch script
before.

Also update init.example.el with new defaults.
2018-05-21 01:38:17 +02:00
Henrik Lissner
5c101f1909
Update modules library: message! => print! 2018-05-20 12:18:16 +02:00
Henrik Lissner
b82ef2cee6
Add open-manual command (docs don't exist yet though!) 2018-05-20 12:18:16 +02:00
Henrik Lissner
f80be3682b
New open-bug-report & open-vanilla-sandbox commands 2018-05-20 12:18:16 +02:00
Henrik Lissner
7b8917ed42
Split core/autoload/util.el into {help,debug}.el 2018-05-20 12:13:05 +02:00
Henrik Lissner
af7fb1c628
Change doom/retab to reformat w/ opposite style if ARG 2018-05-20 12:10:10 +02:00
Henrik Lissner
b7b1445712
Update doom-get-outdated-packages to match new init process 2018-05-20 12:07:31 +02:00
Henrik Lissner
c826f0f6a8
Shrink dependency chains in core libraries 2018-05-20 12:06:50 +02:00
Henrik Lissner
0634289a01
Autoload doom-*-package functions 2018-05-20 12:05:17 +02:00
Henrik Lissner
61ca98fd3f
Refactor package managent batch commands
+ Replace message! with print!
+ doom//packages-* commands now only return t if package list changed
2018-05-20 12:03:50 +02:00