1. 70

  2. 13

    This includes some perf fixes that make LSP mode much nicer. For those who use languages like Rust in particular, LSP stuff works very well in Emacs compared to before (Python’s LSP stack is still wanting from my perspective though)

    1. 8

      Emacs 27.1 has a wide variety of new features, including:

      • Portable dumping used instead of unexec

      Wait, really? Wow. I am almost in shock. unexec is one of the most insane things you’ll find in a program. I didn’t think they would ever get rid of it.

      1. 6

        AFAIK the reason for getting rid of it was that glibc wanted to drop the API that made it possible, but I’m not sure about the history on that. But it certainly reflects on the Lisp tradition of Emacs.

        A cool thing about the new dumper is that you can load your configuration is --batch mode, dump it’s state to disk and then quasi instantaneously load it when starting Emacs.

        1. 4

          I never had a problem with the concept. It was the execution that was insane.

        2. 2

          I’m curious if this’ll work on some uh, other platforms I use. I’ve been hesitant to try Emacs because it’s not available on all the systems I work on, and the busted XCOFF64 unexec support was why.

          1. 2

            It was sure never going to work on z/OS! There was an Emacs port for z/OS floating around when I was at IBM but it was old. I think it was Emacs 19 or so. I don’t know what they did about the unexec problem.

            1. 2

              Yeah, Emacs devs tried to keep fixing it, but I don’t think it ever worked for anything but XCOFF32. I tried the portable dumper, and it seems it to work dumping at temacs stage, but not loading. How sad.

              1. 2

                You don’t have to use the dumper stuff in emacs. Emacs runs on a lot of systems that don’t support unexec that aren’t linux.

        3. 8

          xdg directory support is something I’ve been waiting a long time for!

          1. 5

            Support for rotating and resizing images without ImageMagick, nice! Never bothered installing it in WSL, that should make org mode a bit nicer to use.

            1. 5
              • Lexical-binding is used by default

              I know many packages out there enable lexical binding for all their stuff, but I’m curious if packages I use will break with this turned on by default

              time to find out!

              1. 4

                I’ve been using Emacs 27 for about as long as it’s been cut from the master branch and haven’t had any breakage. Using doom so I couldn’t even tell you how many packages I have installed.

                1. 3

                  Maybe this statement should be moderated somewhat. I see in NEWS only that:

                  ** Lexical binding is now used by default when evaluating interactive Elisp.


                  1. 1

                    Yeah that seems like a big change. I thought Emacs Lisp was famous for weird dynamic scoping issues

                    1. 4

                      You can still use dynamic scoping when lexical-binding is activated, you just have to declare a variable as special (using defvar). This just means that

                      (defun foo () bar)
                      (defun baz () (let ((bar 23)) (foo))

                      won’t work, without a preceding

                      (defvar bar)

                      but as this has been a style recommendation for years now, most scripts have been adapted.

                  2. 1

                    I know it’s on the threshold, but perhaps merge this with https://lobste.rs/s/sd1xyt/emacs_27_1_released ? Most of the contents is similar to the discussion in that thread.

                    1. 1

                      I was concious of the thread when that was posted, the difference here is that this article explains the changes to a non-Emacs developer audience and what they mean. I think you’re right that the discussion would mostly be the same, but not every post has to have a discussion.

                      1. 1

                        I thought you might have been, didn’t expect an Emacs thread to make it past you :)

                        I can see where you’re coming from. Personally I like to read through long discussion threads so prefer to encourage them wherever possible.