Commit Graph

186 Commits

Author SHA1 Message Date
f8dde296ca Refactor core.el
+ Always reset gc-cons-* vars on doom|finalize
+ display-warning => lwarn
2017-06-28 12:26:50 +02:00
e75bc10baa Unset mode-line-format sooner in startup process 2017-06-24 02:25:15 +02:00
816df321a5 General refactor & cleanup 2017-06-14 21:15:19 +02:00
732dee608a Stability/error-handling refactor (part 1)
This refactor is about improving how Emacs deals with errors.

A large net is now cast at startup to catch possible errors, produce
more helpful error messages, and localize the damage. Significantly
reducing the risk of later modules not loading (and leaving you
stranded in a half-broken Emacs session).

The DOOM core files are an exception. If something messes up in there,
it *should* choke.

+ use-package will now report missing packages or slow-loading/broken
  def-package! configurations.
+ Persp-mode no longer (inadvertantly) hides buffers that pop up at
  startup, like the *Warnings*, *Backtrace* or debugger buffers.
+ `make autoloads` (or doom/reload-autoloads) now produces a slightly
  more informative error message if an error occurs while building the
  autoloads file.
+ Error handling for package management is *slightly* better now; error
  messages now include the type of error; this needs work.
2017-06-14 21:15:19 +02:00
3031212a76 If an init-hook dies in the forest, does it make a sound? 2017-06-12 15:15:39 +02:00
4984a548d1 Refactor DOOM init & add new init hooks
+ Add doom-init-hook and doom-post-init-hook to simplify Emacs init
  hooks into less ambiguous ones.
+ Attach former after-init-hook and emacs-startup-hook hooks to new doom
  init hooks.
+ Vastly improves daemon and tty support: preventing incorrect colors
  from bleeding across face class barriers, and into GUI Emacs and vice
  versa, when spawned with emacsclient.
+ Fix persp-mode breaking Emacs daemon, and ensuring that initialization
  is done properly in terminal Emacs (and emacsclient frames).
2017-06-12 00:37:14 +02:00
d3054f4679 Load core-lib a little sooner 2017-06-11 23:52:56 +02:00
d5652d2779 Change what recentf ignores; add doom-host-dir var 2017-06-11 23:50:50 +02:00
c8e977e50a v2.0.3 bump 2017-06-11 01:16:56 +02:00
2097498f3e General docstring+idempotency refactor 2017-06-11 00:59:02 +02:00
74c5f1111a require => load! (premature optimization) 2017-06-10 22:59:51 +02:00
c7254e7bdc Major optimization refactor, across the board
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
  startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
  cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
  various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
  in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
  window-setup hooks; a customization opportunity for users + ensures
  custom functionality won't interfere with startup.
2017-06-09 00:47:45 +02:00
16c1b5c85e Fix typo (file-name-handler-alist) 2017-06-05 23:16:25 +02:00
33149e3daa Support running from non-standard HOME directory 2017-05-31 15:04:29 -05:00
5b343a32d0 Don't change gc-cons-threshold on reload 2017-05-21 10:34:21 +02:00
e63113a86c Reset gc-cons-threshold a tiny bit sooner 2017-05-20 18:40:13 +02:00
575376687f Delegate version checks to bin/doctor 2017-05-20 18:40:13 +02:00
9dd66381dc Add emacs version check to core/core.el 2017-05-19 22:25:40 +02:00
8422cbd172 Load cl-lib sooner (address #67) 2017-05-19 10:44:12 +02:00
10c28f2659 feature-detect set-charset-priority (fix #66) 2017-05-19 02:55:10 +02:00
1e06d8b186 load custom-file silently 2017-05-15 20:47:14 +02:00
be4be57a1a Load custom-file & move undo-tree config to core-editor 2017-05-15 20:26:32 +02:00
200846ee35 General refactor + cleanup; update TODO.org 2017-05-14 00:26:53 +02:00
260a96cf50 Fix incorrect org version loaded in byte-compiled config 2017-05-14 00:20:49 +02:00
93093853f7 v2.0.2 bump 2017-05-13 13:32:04 +02:00
5ae94b765c PRAISE BE TO THE BYTE COMPILER FOR THY SHARP QUOTES 2017-04-17 02:17:10 -04:00
8f970eb1d8 Rearrange .local file structure (voids previous cache structure) 2017-04-16 20:36:15 -04:00
46fa7af964 Lower gc-cons-{threshold,percentage} (fix gc pauses) 2017-04-16 11:57:17 -04:00
5eba4c8d01 core: set server-auth-dir 2017-04-11 18:47:37 -04:00
8762936bf5 v2.0.1 bump 2017-04-08 01:36:40 -04:00
b6962f1c04 Update naming conventions 2017-04-07 00:21:05 -04:00
617a525885 Slightly more aggressive garbage collection post-initialization 2017-04-06 19:46:01 -04:00
1ec0add2da core: change tramp backup/autosave directories 2017-03-27 13:05:01 -04:00
b37aadec91 General cleanup + refactor 2017-03-23 19:49:58 -04:00
1d31132789 Fix #41, regression caused by 0489ce 2017-03-22 19:55:22 -04:00
0489ce42a3 core: remove noninteractive check
This check was meant to speed up noninteractive initialization of DOOM
Emacs, but the performance penalty is negligible, and there's no telling
what future functionality may need what's in those core modules (like
doom/bootstrap). So, for simplicity, just load everything.
2017-03-20 21:15:18 -04:00
8aac4b2091 doom/clear-* => doom/clean-* (consistent with makefile tasks) 2017-03-19 23:48:43 -04:00
db7cf68775 General tweaks 2017-03-19 22:50:57 -04:00
923d4585fa Extract make clean/clean-cache into elisp; new doom-etc-dir for non-volatile temp files 2017-03-16 23:38:22 -04:00
f1ea0bfd4a Set url-configuration-directory 2017-03-06 18:49:48 -05:00
d6667a433f General cleanup + refactor 2017-03-04 20:54:13 -05:00
33c88d4f82 Revert macros to ...! name convention (elisp doesn't like @...) 2017-02-23 00:06:12 -05:00
8ded4819e2 Adjust gc-cons 2017-02-20 22:10:29 -05:00
8abbbda3d6 Remove duplicate slashes in paths 2017-02-20 22:10:02 -05:00
776bc96977 Refactor doom/autoloads init process 2017-02-20 13:12:24 -05:00
929bf368a2 Remove version check (it's your problem!) 2017-02-20 00:26:08 -05:00
11a5e15e4e Refactor core config 2017-02-20 00:26:08 -05:00
2d5d826177 Remove dash/f dependencies; use cl-lib & subr-x more 2017-02-20 00:26:07 -05:00
704099a7b9 Add core-keybinds.el 2017-02-20 00:26:07 -05:00
72577b823c Add core-os.el 2017-02-20 00:26:07 -05:00