I just updated my Guix system, which included the Emacs update from 27.1 to 27.2. After "guix package -m mhw-manifest.scm" finished running (which takes a long time for me, since I don't use substitutes), and before I even noticed that it had finished, my existing Emacs session started misbehaving badly.
It failed to even open a plain text file in fundamental mode (a .drv file) with an inscrutible error about 'arrayp'. I tried to enable the debugger with M-x toggle-debug-on-error, but then I started getting errors about 'debug' not found. (I neglected to record the exact messages). I tried running "emacs -Q", and the same errors happened there too. I tried running "emacs -Q" from my root shell on a Linux text terminal, and the same errors happened there. I resorted to using 'vi' (which thankfully I had, and still remember how to use for basic editing) to revert the emacs update on my private branch and to rebuild my user profiles. Eventually, I realized what the problem was: (1) My existing emacs session started failing because ~/.guix-profile/share/emacs/27.1 had disappeared out from under it. (2) My newly launched emacs sessions were failing because my EMACSLOADPATH variable was still set to its old value, pointing at /home/mhw/.guix-profile/share/emacs/27.1/lisp, which no longer existed. I'm not sure why I've never run into this problem before. I'm also not sure what can be done to make this better, but if anyone has ideas, that would be good. If a 7+ year Guix veteran developer gets bitten badly by this, I doubt that less experienced users will be impressed. Any ideas? Mark