I haven't been using Gnus for a while and have been using notmuch instead.
Having my email sending settings be a part of the gnus configuration makes it
impossible to send email without loading gnus.
Right now this doesn't seem to work at all... It works fine when I evaluate this
using ‘eval-defun’ or ‘eval-last-sexp’, but when I try to byte-compile it
doesn't work.
I've added my own custom macro that expands to the same thing that
‘(setf (map-elt ...) ...)’ should. I have forgotten how to write macros properly
so I may have made some mistakes.
This should only be temporary until I figure out why this is happening... it
might just be that I'm using a version of Emacs built from a faulty commit.
This way archives don't keep growing indefinitely and opening the archive
doesn't load every single language I've ever used because there are code blocks
in there.
When everything is interpreted it all works fine because ‘consult’ is loaded
before the ‘with-eval-after-load’ part is run, but when byte compiling the byte
compiler doesn't know that ‘consult-customize’ is a macro unless ‘consult’ is
loaded, which it isn't when Guix compiles it.
When it's byte-compiled as if it's a function ‘consult-buffer’ is assumed to be
a variable that's passed in, so I'm guessing it's trying to dereference it first
before passing it on to a non-existent function? But of course ‘consult-buffer’
is only a function (Emacs Lisp is a Lisp-2 after all), so it fails, but only
when byte compiled (and even only when byte-compiled in a clean environment
where there are no packages loaded that aren't explicity said to be).
Hopefully this fixes my issue with being unable to switch buffers until I
explicitly load ‘consult’.
This reverts commit 961651e575.
It works in an interactive session, but still fails while starting up. Probably
has to do with autoloads not having finished loading yet, perhaps?
This macro seems to work fine when expanded at run-time even when ‘consult’
hasn't been loaded, but it doesn't work after it's been byte-compiled... Perhaps
putting it in the top-level will help. I'm wondering if somehow the byte
compiler closes over a reference to ‘consult-buffer’ during compilation that's
not available when it executes?
In the Groovy used with Jenkins it seems quite common for there to be top-level
functions that aren't explicitly in classes (they still are implicitly).
The ‘get-multifile-module-version’ and ‘get-module-version’ functions open up
the given Emacs Lisp file and search for a “Version” header, parses it out, and
then returns the file name of the module as it should look in the package
archive.
I'm working on moving my build setup to my own laminar[1] instance. To do this I
need to be able to package files up. It appears that I couldn't quite get Cask
to work, and Eldev exists in the Guix[2] package repository.
[1]: https://laminar.ryuslash.org/
[2]: https://guix.gnu.org/
I'm having some issues with my ‘consult-buffer’ setup and I'm hoping that
putting this in its own function will help me debug the issue, or at least show
me if this is part of the issue or not.
The various ‘M-<NUMBER>’ keybindings are all also bound to ‘C-<NUMBER>’, no need
to have both, and using ‘M-0’ is a lot easier than using ‘C-x 0’. This also
replaces the old keybindings with a message that tells me to use the new
keybindings instead to help me learn.
Don't load the user init file while building my Emacs packages, make sure to use
a different ‘package-user-dir’ so that bad packages don't interfere and it
doesn't accidentally work because of existing packages. Specify the
‘package-archive-upload-base’ in the Makefile so that there is only one place to
look and modify if this needs to move. Ensure that the
‘package-archive-upload-base’ exists before uploading to it.
This also happens to include changes to the font for Eshell as an experiment and
setting the page delimiter so page navigation commands work on prompts.
Instead of adding a lot of tags and adding a lot of agendas filtering on them
I'm experimenting with using org-edna to make certain contexts a dependency of a
task to filter them out of my todo list.
Current contexts I'm experimenting with are:
- ‘day-of-week?’ to filter out tasks that I can only do on certain days.
- ‘night-time?’ to filter out anything that I can't do in the evening. Usually
having to do with contacting others.
- ‘business-hours?’ to filter out anything that is outside of a certain
timezone's “business hours”, defined by me as anywhere between 9am and 6pm.
‘paredit-mode’ appears to have added keybindings for ‘C-j’ and ‘RET’ that
weren't there before (or did I enable ‘paredit-mode’ in IELM recently?) and that
interfere with executing code.
This way of removing the keybindings works in a buffer-local only way so that in
other buffers the ‘RET’ and ‘C-j’ keybindings remain untouched.