[[!meta title="Emacs core development: how it works"]] [[!meta copyright="Copyright © 2023 Stefan Kangas"]] [[!inline pages="internal(2023/info/core-nav)" raw="yes"]] # Emacs core development: how it works Stefan Kangas [[!template id="help" summary="main talk does not have captions" tags="help_with_main_captions" volunteer="jchelary 2024-01-10" message="""This talk does not have captions yet. Would you like to help [caption this talk](/captioning)? You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt)."""]] [[!inline pages="internal(2023/info/core-before)" raw="yes"]] - Why it is fun and exciting to contribute to Emacs - We have easy bugs that anyone can fix, in random packages - And extremely hard ones for experts in things like garbage collection, and compilers - We are not scary, in fact working to build a welcoming culture. - The nature of a public list - Don't listen to random people being negative or hostile - No response is not necessarily a bad thing - Cultural aspects of emacs-devel vs GitHub - How to behave (be polite, etc.) - Email vs forge, help wanted. - Why copyright assignment - Plans for Emacs 30 (maybe) - needs coordinating with Eli If I have more time, I'd like to cover more things, for example: - GNU ELPA vs NonGNU ELPA - why and how - Our plans for GNU ELPA going forward (bundle stuff in tarballs) - The future of Emacs: a vision Basically, I want to do everything I can to inspire people to join core development and to lower the barrier to participating. In effect trying to work on "bridging the gap" that we have identified exists between emacs-devel and the community. About the speaker: Stefan Kangas is one of the Emacs core maintainers. # Discussion ## Questions and answers - Q:Can you tell us some about your background with Emacs development and programming in general (your professional work possibly)? - A: studied CompSci at university.  started programming on a Commodore 64, then C, Perl, and so on - Q: Do you think that one day, there will be a "native" graphical web browser in Emacs or is it kind of against its philosophy and architecture? So will we stick just with EWW and EAF or similar workaround tricks? - A: Proper HTML rendering in Emacs is a dream right now - Q: Emacs development and communication still is very much focused on E-Mail mailing lists. I like this. But what do you think about introducing other channels for talking to users? E.g., the Emacs project/ community could set up a Mastodon instance of its own etc. - A: - Q: What are some features or packages you'd like to see developed by the community? - A: Some of the things that Stefan would like to see happen right now - treesitter: improving and working on new modes - refactoring capabilities in Emacs - Q: What is the hardest decision being made within Emacs-dev for last three years? - A: - Q: Any plans to integrate EXWM into core? Emacs is a really good WM. - A: - Q: Do you think it is a good idea to choose Org-mode for writing documentation instead of Texinfo? - A - Q: What do you plan to work on in Emacs core in the future? - A: - Q: What do you use Emacs for in your life, other than working on Emacs itself? - A: Programming, obviously (Stefan works as a programmer).  org-mode (including to prepare this talk), for productivity, rss reader, emails. - Q: What could we do in order to make Emacs more attractive for younger users? - A:  - Q: How are we going to make sure that the cool idea is going to pass it through for the next generation, let's say 20 years later, that generation still have the good knowledge we have today. - A: - Q: If you're willing to discuss it, what do you think about the recent controversy about use of cl-lib in Emacs core code? - A: Stefan's opinion is on emacs-devel. - Q: When we find a bug, in our emacs.... do we need to try to replicate it on the sid version (debian/sid=1:29.1+1-5 at ehe time of writing), then update all the usual lisp package we use... and if we succeed to replicate the bug in this version, only then go to the development version 30 and do the same ? Then only, ask for assistance in reporting the bug we found ("M-x report-emacs-bug"  will be sufficient ) ? - A: (Answering for Stefan, because information about how to report Emacs bugs is widely available, including in Emacs's own documentation: You should try to reproduce it on the latest released version of Emacs, with a clean Emacs configuration (i.e. "emacs -q"), before reporting.  And you should look for existing bug reports on the tracker.  If you have extra time, consider trying to reproduce it on the master branch or the branch for the next release as well.  And if you're sure you've found a bug, be sure to report it using "M-x report-emacs-bug" rather than just emailing emacs-devel about it.) - Q: On branching off sub-threads. I note that they are less visible compared to starting a new thread in practice. I am wondering if it is just my impression or something devs also observe. - A: - Q: What about rewriting emacs in Rust? Use guile instead of elisp? Multi-threaded emacs? Make emacs prettier and shiny? And of course, sane defaults! Just kidding. We are spoiled children because you and Eli, Lars, etc. do an impressive work. I live in Emacs since 2001. Thanks! - A: - Q: The only downside I see with copyright assignment is that one has to disclose their real identity. Would it be a possibility to assign copyright under a nickname? - A: (not the speaker) FSF said they can publish a pseudonym but need the actual identity in their paperwork, which will be presumably protected, but it's not totally anonymous. - (AFAIK from Bastien) The actual FSF assignee list is not public - I know that it is available to maintainers, but must not be shared. - Q:Do you think it is possible to reach an agreement on sane defaults for better out of the box experience? - A: It's more of a social problem than a technical problem (my sane defaults might not be yours). - Q:Will xwidgets have a future? Seeing the new bugs popping up in the latest xwidget dev. - A: - Q: Have you voted for Emacs as the software of the year on the Tuxies by Jupiter Broadcasting? I did, because Emacs 29 is great! Thank you! :-) ## Notes - Cambrian explosion of packages (5000 packages in MELPA) - GNU ELPA <- generally better if someday it might be good to ship it with Emacs - João Távora (Eglot author): haven't seen a problem with copyright assignment - To be fair, it does happen in certain cases. But infrequently. - New package archive NonGNU ELPA is now enabled by default, no copyright assignment needed - Emacs is hackable. I think that's a blessing and a curse. The types of choices you can make when you implement... Different choices between things like Common Lisp and Scheme. I think we have that kind of tensions within Emacs. These are good discussions to have. I think what will never change is that Emacs is hackable. Emacs is customizable. This is what's bringing you that amazing user experience. The flip side is that it's easy to hack around bugs instead of fixing them. Or we accept limitations in Emacs core. I think we could get better at taking those few extra steps to make Emacs better for all users. - Thank you Stefan! That was all really cool! :D - thank you you guys it's fantastic - thank you guys to say you amazing is to not give you enough [[!inline pages="internal(2023/info/core-after)" raw="yes"]] [[!inline pages="internal(2023/info/core-nav)" raw="yes"]]