00:16.280 Q: which-key was a third-party package for a long time. Is there work to bring any other popular packages into core Emacs for Emacs 31+? (magit, counsel, etc)
04:06.467 Q: Any way to get the goodness of Emacs for android with this other stuff?
05:15.754 Q: Does package-vc download a tarball from the specified git repository or clone the repository itself?
06:37.970 How is the new behavior of M-q in prog-mode (prog-fill-reindent-defun or something like that) different from the behavior of C-M-q (indent-pp-sexp) in older Emacs versions?
08:33.144 Q: Any plans for Emacs running in iOS?
09:08.648 Q: I am worried about the situation on non-free systems. There was talk about the Windows and the macOS versions being as good as unmaintained. Where do we go from here?
11:35.280 Q: Is there a best practice on what Org to use when following emacs-latest?
Q: which-key was a third-party package for a long time. Is there work to bring any other popular packages into core Emacs for Emacs 31+? (magit, counsel, etc)
Magit is an ongoing discussion, but I don't know of any
concrete progress. Generally the best way to help is just to
send a message to emacs-devel and keep to it. Feel free to CC
me to help!
Q:When thinking about using Emacs on android I start realising all
the other software I also want with it. For example pdf-tools wants
a small additional emacs specific program to be installed and
notmuch wants notmuch. Any way to get the goodness of Emacs for
android with this other stuff? Using nixos or guix, nix-on-droid to
make an apk with extra stuff?
A:
Q: Does package-vc download a tarball from the specified git repository or clone the repository itself?
A: Clones the repository (that's the -vc in the name)
Compare with vc-clone (which is now exposed as an interactive
command compared to before)
Q: How is the new behavior of M-q in prog-mode (prog-fill-reindent-defun or something like that) different from the behavior of C-M-q (indent-pp-sexp) in older Emacs versions? (My apologies if indent-pp-sexp is not bound to C-M-q by default, I can't tell)
A: The difference is in the behavior when the cursor is inside a
string.
Q:Any plans for Emacs running in IOS?
A: Probably not. Emacs support on Android is completely free. To
my understanding, you need Xcode to build iOS stuff.
Q: I am worried about the situation on non-free systems. There was
talk about the Windows and the macOS versions being as good as
unmaintained. Where do we go from here? I gather that most users of
Emacs are still on non-free platforms and will remain to be there.
A: I don't know about the last point if that's true; there are
no statistics on the matter. I know Corwin is involved in the
Windows port. Someone has to do the work. Eli is on a Windows XP
system. As long as he's doing that, there's going to be
Windows some way or another.
Corwin: accessibility issue (ex: maybe that XP system is
what they can afford, or what they need to use for work)
Concerning when we hear about black holes in the braintrust
for support for these things.
And the same thing applies for macOS.
Q: I'm a bit confused about what version of org I should write
towards, because there's org (in emacs) org (in elpa) org (in org)
etc... Is there a best practice on what-org-to-use when following
emacs-latest?
A: Depends on... my rough heuristic is if you're using the
latest features of Org, use the one on ELPA, maybe. Personally I
just use the one bundled in Emacs.
Notes and feedback
Loving to use all of these changes.
Graphical Emacs in Android is awesome
that seems more usable than i thought it would be
swipe left/right for next buffer?
I was able to load my custom configuration on Android by traversing through the directories with M-x shell.
Oooo, which-key is so helpful for beginners. It fits right in to the core. Great addition!
that would have saved me a lot of time years ago haha
An alternative to both which-key and prefix-help-command (which pkal is demoing right now) is embark-prefix-help-command
thanks, I was not aware of it (I still "M-x embark-..." or preset bindings from completion/vertico candidates) - how does it differ from prefix-help-command?
This is my favourite change, but not all packages are compatible with it...
It offers a completing-read interface to complete the partial command.
completion within completion within completion within.. love it
use-package :vc is much welcome! (as one coming from Clojure's deps, such a breeze)
great talk!
YouTube comment: Really good rundown of the changes. Thank you! Looking forward to start using 30.
YouTube comment: I would like to know when EMACS 30 will be officially released? I looked around Arch repos and EMACs website; I just see EMACS 29.4. Also I did install from the Google Store the EMACs editor on my Samsung S22, it works but one problem is I can't access file directors in the home directory. It is very annoying, yet the EMACs editor works well. There is so much security and permissions on these Android devices, makes it very annoying just to open a text file.
Hello, and welcome to Emacs 30 Highlights at EmacsConf 2024.Before I begin, I'd like to thank the organizersand everyone involved for putting this all together.While this talk is being pre-recorded,my experience from the last few yearsassures me that it will be a great experience for everyone.My name is Philip Kaludercic.I am a core contributor and ELPA co-maintainer.I was honored when Sacha asked meto take over the slot for this year.In the past few iterations,John Wiegley has filled a similar presentationfocusing on more general Emacs development updates.This year, I will specifically focus onhighlight features from the upcoming Emacs 30 release,which might or might not have been releasedby the time you are seeing this.As you can imagine, everything new about Emacscan always be found in the Emacs NEWS file.Or, alternatively,if one doesn't want to read through the 3,000 lines here,one can also take a look at the Emacs FAQand then go to the what's new aboutor what's different about Emacs 30 node.Next to these two official options,I also have a page on Emacs Wikicalled EmacsThirtyHighlights,highlighting some of the interesting featureswith some context and suggestions on how to try them out.This is more of a collaborative effort.So if you see this and think something is missing,feel free to add it.So without further ado,let's begin taking a look at new features in Emacs 30.
The biggest one, and the one I want to mention first,is Android support, native Android support.As you can see here, Emacs has been portedto the Android operating system.What this means is that from Emacs 30 onwards,you can build Android to target Android devices nativelyand using a graphical interface.While it has been possible to run Emacsinside of terminal emulators on Android for a while,this actually means that you can use Emacson an Android device, a phone or a tablet,and have all the usual advantages from GUI Emacs,such as the ability to bind all commandswithout having to worry about--all keys without having to worryabout terminal compatibility issues,displaying images and multiple fontson the same display of different sizes.I should have a recordingof that somewhere here--here we are--which I made earlier on my phone,because I'm recording this on a laptop--where we can see how touch interaction workson an Android phone. I can switch between buffers.Here I've connected an external keyboard,opening the Emacs website.We have images that we can interact with.We could resize them if we wanted towith the image resizing commands.Pinch-to-zoom works, so itdoes realize what touchscreen interactions are.With an external mouse, and for example,enabling context menu mode,I can even pop up little interaction windows,which one you would usually also know from GUI Emacs.TUI Emacs actually also supports them since a while now.And in this case, I'm demonstratinghow even the touchscreen eventscan be inspected using the usual help system,and how context-mode noticeswhere we are and allows me to, for example,evaluate this specific region,which I've highlighted down there,binding a command to touch-screen-scroll. Yeah.One should note that these additions,for example touchscreen interaction,are not specific to Android,but they also are supported in other operating systems,such as Wayland and Xorg, which are not operating systems,and Windows, insofar as they have touchscreen,and devices have touchscreen support.One should mention, or I want to mention,that the main developer behind this feature, Po Lu,should be complimented for the additional effort he putinto making sure that Emacs for Androidcan be built using only a free software toolchain,which is certainly not something one has come to expectfrom working on Android applications,as usually you have to agree to some terms and conditionsfor Google-specific software.Final note is that if you try and look for this online,there are APKs you can find,but some of them might be outdated.To the best of my knowledge, Po Lu has...Emacs 30 Android Sourceforge...He has set up some system where here in Sourceforge,there are regular and updatedAPK files which you can downloadto avoid having to build it yourself,testing out the newest versionin case there are some bugs which you'd like to report.Which-key is a package which has now been movedfrom ELPA to the core.If you haven't heard of which-key before, the idea is,or the general pitch is that which-keyis a additional documentation interface for Emacsfor displaying various keys which you could input,or various keys and key mapsthat have been partially inputted.A better way to demonstrate thisor to explain this is just to show it.If we enable the which-key mode--it's a global minor mode--then I can press, for example, C-x,which is a prefix for the C-x keymap.Then down here in the buffer, in this window down here,we see various commands which we could invokeand the keys to invoke them with.For example, if I wanted to say C-x i for insert-file,then I just have to press i to highlight it once again.It should be down here. Pressing i without having to repeatthe entire key code again,the partial key code again, just works.This is different from the feature which Emacs has already,which is if you have input the partial keychord,you can press C-hand then a help buffer pops up with a listingof all keybindings that start with C-x.The information is the same, the presentation is different,because now if I wanted to do C-x i,I have to repeat the entire keychord again.So it's a matter of personal preference, which you prefer.This is more of a traditional static approachbecause I get a help buffer which I can searchusing usual key commands,while which-key is more of a transient and modern.Some might prefer that approachto solving the same problem.Also, don't forget to check out the customization groupfor which-key which has a number of optionswhich you might or might not be interested in.
Next up, Emacs 30 has built-in EditorConfig support.If you have not heard of EditorConfig before,I believe I've linked to it down here somewhere.Ah, there it is, EditorConfig.This is a file format used to specifycommon formatting rules in an editor-agnostic way.You might compare it to .dir-locals.el files,which is a sort of an s-expressionfor setting file-local variables in Emacs.Of course, this is restricted to the common subsetof what all editors should understand.For example, indentation styles,whether you prefer tabs or spaces,tab width, file encoding, and so on.So it's nothing too advanced, but it's something...It is a file format which one sees popping up moreand more often in lots of projectswhich want to enforce a consistent indentation styleor formatting rules for all editors in a project.Having this built in is certainly useful in Emacs.Though one should note that it's not enabled by default.You still have to enable the global minor mode,which is simply turning on this one option.Shouldn't be more than that,and then Emacs will respect the rules.If it finds a .editorconfig file in the project directory,then it will respect those ruleswithout having to do anything else.
Next up, use-package integration with package-vc.For those not familiar with either of the two,or at least one of the two,use-package is a popular configuration macro.What it does is it allowsusers to declaratively specify packagesthey would like to have installed and configuredin their configuration file,so that, for example, if you copy your init.elfrom one system to another,it could bootstrap the entire configuration,downloading all the packages you wantwithout having to manually do thison every system you'd like to use.This allows configurationsto be self-encapsulated and portable.package-vc is an extension of package.el,which allows installing packages from an alternative.Instead of using the standard way to install packages,which is just download tarball and unpack it,byte compile, and so on,it will fetch the files for a packagedirectly from the source code repositoryand initialize it in such a waythat package.el can work with it.So it's just a front-end for installing packages.Even though these two were added to Emacs 29,we didn't have the time to work on theuse-package integration of package-vc into use-package,which has been changed now.What we have with Emacs 30 is thatthere is a :vc keyword for use-packagewith which we can instruct use-packageto not download a package using tarball,but instead to fetch the source codefrom a source code repository.This is useful if you, for example,have packages which you yourself work onand know that you always want to havethe development version of the packagewhere you can directly commit changes you've madeto the repository and push them upstream.Or, if you know that you want to contribute to a package,you can use package-vc to download the source code,have all the version control information,prepare a patch and send it upstream.In these examples here,the first example Lisp instructs package-vcto download the source code from a URL.So this is a git URL where it will downloadthe source code from, and in this case,choose the newest checkout of the source code,not the latest release. Down here, we have another example.I prefer to consider the following example here.If we just had written this,then package-vc would use the metadatawhich an ELPA server providesto fetch the URL from the official repository of,in this case, BBDB, without having to...It would be more or less the same like this up here,with the simple difference that package-vc integrationinto use-package doesn't check out the latest commit,but the latest release,just to keep configurations more deterministic by default.Of course, if you prefer to use latest commit,you can use a package-vc install commandor just update the package manually yourself,which you can use using package-vc-upgrade.Next, I'd like to focus on a few featureswhich one might not necessarily realize directly,but will hopefully improve your experience with Emacs.
First up in this list is a new JSON parser.Let's maybe show the source code for that one:not json.el, json.c. The history of JSON parsing in Emacsstarted with Emacs 23 with the addition of json.el.This was the file which we had just opened a moment ago.This is a JSON parser in Emacs Lisp.It's fine, it does the job, but it can get slowif we have a situation like whereEglot uses a LSP server to communicate withand the LSP server can get a bit chatty,sending a lot of JSON data,which all has to be parsed and garbage collected,which can slow down Emacs a bit.The situation was improved upon in Emacs 29when JSON parsing was added to the core.This was the json.c file, which we see on this side,the old version of the json.c file,which employed the Jansson library (it's the C library)for parsing and accelerating JSON parsing in Emacs.This was good enough,or it certainly improved the situationfor a lot of LSP clients.But in Emacs 30, the situation has been improved once morewith the addition of a JSON parser directly in Emacs.So instead of using an external library,there's a custom JSON parser written in C in the Emacs core,which directly generates Elisp objects.The advantage to this approachcompared to the Jansson approachis that there's no intermediate formatwhich has to be allocatedand memory managed and freed again,which of course incurs an additional performance overhead.Next to this, there's also a custom serializerfor JSON contents translating a JSON object into a string.... The consequence of this is thatthere is absolutely no dependency on Jansson anymore.This in turn means that now all Emacs usersfrom Emacs 30 onwardscan take advantage of this new JSON parserand don't have to worry about whetheror not they have Jansson, this JSON parsing library,installed on their system or not when they wantto take advantage of this accelerated JSON parsing.
Next up, another behind-the-scenes featureis that if you build Emacs on your own from source,you might know that if you wantedto use native compilation,so the translation of Elisp bytecodesto whatever the native assemblyor native instruction set is on your system,you have to specify with native compilation.when invoking the configure script,otherwise it would not have been enabled at all.With Emacs 30, this step is not necessary anymore.The configure script will automatically checkif you have the libgccjit library installed on your system,and if that is so,then native compilation will be enabled by default.In other words, if you have an issue with native compilationor prefer not to use it for whatever reason,you now have to type --without-native-compilationwhen compiling Emacs to prevent this from happening.But native compilation was added in Emacs 28and has proven to be a very stableand useful feature for most people,so there's probably no reason to do thisand you can just invoke the configure scriptwith one argument less. Right, and I'd like to finish upwith a few smaller features, a few smaller highlights.Maybe we can go back to the listing here. Here we have it.
There are a few new major modesbased on the tree-sitter library.tree-sitter is this parser librarywhich has been integrated into Emacs 29.It allows the integrationof external, specialized, and quick parsers into Emacs,which improve stuff like syntax highlighting, indentation,structural navigation, imenu support,by simply having a better understanding of, for example,a HTML file, or a Lua file, a PHP file,than what people usually implementusing regular expressions in traditional major modes.So, a few new major modes which you can try out here.
Another interesting feature is the completion-preview-mode.We can maybe try it out here in the scratch buffer.If I enable completion-preview-mode...This is a non-global minor mode,which will display completion options inline using overlays.For example, if I start typing a longer symbol like define,now we have a derived mode. It suggests me to...I can just press TAB and then it completes the option here,but it didn't actually...It's not actually modifying the buffer, it's not pressing,these are just overlays,so if I move around, it gets deleted.It wouldn't get saved if I were to save the buffer.The same also should work in a shell buffer.If I enable completion preview mode here and start...In this case, I'm using the bash completion package,which provides additional completion information.This is not only limited to programming systems,but anywhere where you have completion at point in Emacs.I can start typing here, ignore, and put ignore-backups,and it hints to the options which I haveand allows me to complete them quickly.
Another small feature is the package-isolate command.What this does is it will startor it will prompt me for packagesI have installed in my systemand will start an isolatedor like "emacs -Q"-ish instance of emacswith only these packages installed.So for example, if I said I want slime and I want diff-hl,then this is a new Emacs window.It's unrelated to the one around.It uses the same executable, of course,but will not load your configuration fileor any other further customizations on your system.All it does, it will ensurethat these packages, which are listed here,so in our case SLIME and dependencies of SLIME and diff-hl,in the systemso that I could, for example, as you can see here,diff-hl-mode works.Okay, this is not a version-controlled file.Maybe if we take a look at, have I enabled diff-hl-mode?It's enabled in this case. What diff-hl-mode doesis it displays these version control changesin the fringe of a buffer.And even though this is a uncustomized version of Emacs,or an uncustomized instance of Emacs,it was easy for me to load this one package,or these two packages and all the dependencies necessary.As you can imagine, the main purpose for thisis to make debugging issues easier.If you want to report about an issueyou have with a package. And if I close this, it's closedand everything's thrown away.
Last up, a nice feature I thinka lot of people will appreciate is,if you are familiar with... Let's open a text buffer.The M-q key is traditionally bound to fill-paragraph.What this means is that...Let's, for example, copy this text from hereand squash it all into one line. If I press M-q here,then the lines will be brokenaccording to the fill column indicator up here.This is the traditional usage of M-q,and it still works in text-mode buffers,but in prog-mode buffers--so any major mode inheriting prog-mode--M-q will now by default be boundto prog-fill-reindent-defun. To summarize the point,if you are editing a string or a comment,then the comment will be filled.But if you are outside of a comment or outside of a string,then the defun or the top-level constructin the programming language will be re-indented.Let's try that out with maybe some file I have open here.If I'm in this... Let's choose some function,let's take this for example.If we followed all of this again,and I press M-q in on this paragraph,then the paragraph gets re-indented.But if I'm down here and I choose to break the indentationand then press M-q,then as you see, it practically selected the defunand re-indented everythingwithout having me to move the point around in the buffer.So I think that's a really nice feature,which a lot of people can appreciate.It's one of those niceties which comes from time to time.
Right, so that was my overviewof what's going to be new in Emacs 30.I hope that most people could take awaysomething from this presentationand have something to look forwardto try out after upgrading.As mentioned initially, as of recording,this release has not been completed yet.If this is still not the casewhen you're seeing this video,please consider downloading and building Emacs 30 yourself.If you have any issues, which is always the case,please report them to using report-emacs-bug.That will pop up a mail buffer,and then you can describe your issue and send them out.All bug reports are valuable,even if they are false positives or duplicates--it doesn't matter--because when you take the time to submit a bug report,which describes something that's specific to your setup,which the developers might not have noticed or known about,then you are certainly helping out a lot of other peoplewhich might run into the same issue in the future.Especially with upgrades,it would be nice to figure out small problemswhich make upgrading difficult for some people.The ideal is, of course, to have no issueswhen upgrading from one version to another.Having said that, I thank you for your attention,and I'm saying goodbye.
Captioner: anush
Q&A transcript (unedited)
You sound great. And on the stream, my eyeball says it looksgreat with Leo doing the streaming. So I say let's dive rightin. You got a long, huge line. And in order to be a little moredialectical, I'll be reading the questions. So first
[00:00:16.280]Q: which-key was a third-party package for a long time. Is there work to bring any other popular packages into core Emacs for Emacs 31+? (magit, counsel, etc)
question, which key was a third party package for a longtime? Is there work to bring any other popular packages intothe core of Emacs for Emacs 31 plus, like Magit or Counsel?Uh, right. I already answered that one on the, as you can see,uh, right. Yeah. Do you want to quickly read the answer sothat everyone, I just can read it out again. Um, as far as Iremember, the one package that was being discussed justaround the time that the Emacs 30 branch was cut was macrostep. That's the package that was like, does an overlay, uh,replaces a macro with the macro expansion using overlays.So you don't have to pop up another buffer, modified,modified current buffer. But we didn't manage to addressall the concerns in time for the Emacs 30 cuts and I believeit's sort of stagnated around that but it might be picked upanytime someone mentions it on Emacs Devil again. Anotherpackage question mentioned was Magit. That's a constantdiscussion regarding Magit. And actually, from the top ofmy head, I can't recall if Magit is on NonGNU ELPA or GNU ELPAright now. It's still on NonGNU ELPA.For those who don't know, only packages which are in ELPA areconsidered for addition, considered to be added to theEmacs core, to be bundled along with Emacs. And then there'sanother totally parallel discussion about having a sort offat Emacs distribution, I call it fat Emacs distribution,where Emacs comes with a lot of ELPA packages or thepre-installed by default. Part of Emacs itself. Yeah.Maybe I could jump in with an active listening style,you know, kind of follow up question almost. You know, Iunderstand the kind of different repositories. We havethings that aren't maintained by GNU at all, you know, mostnotably MELPA. And then we have kind of NonGNU ELPA, whichis sort of an entryway project where it's not necessarilycurated, but there'll be some advice given, which you cantake or leave. And that's the repository where anythingthat was the newer repository that represents, you know,help, you know, help, help supplied from GNU. And thenthere's the, actually the GNU, the GNU ELPA, what most of usare used to calling just ELPA. And that's what you'retalking about there when you say,I mean, all packages on ELPA are officially considered to bepart of Emacs, they're licensed under the same conditionsas Emacs itself, same license, same everything. Andthey're more likely to be, to drop, to kind of be droppingpatched. Oh yeah, it's time for this to move to core. Is thatright? They have the legal conditions for that to be done.Everything's necessary from a paperwork standpoint. Imean, but other than that, there's not really a bigdifference between GNU ELPA and NonGNU ELPA. It'sreally just the main thing is this copyrights notice. So ifyou want to add a package to ELPA, to GNU ELPA, then allsignificance contributors have to have signed the FSFcopyright assignment and the package script, actually theELPA build script, checks if the copyright lines are allattributed to the Free Software Foundation.But that's not going to attach, right? So because that's notin place, it'd be a lot more work to merge it to core. I didn'thear the beginning. Nevermind. I think I understood. Youmade your point well. Okay. All right, moving on to thesecond question.
[00:04:06.467]Q: Any way to get the goodness of Emacs for android with this other stuff?
When thinking about using Emacs onAndroid, I started realizing all the other software I alsowant on it. For example, PDF Tools wants a small additionalEmacs-specific program to be installed on, and notmuchobviously wants notmuch. Any way to get the goodness ofEmacs for Android with this other stuff, using either Nix OSor Guix or nix-on-droid to make an APK with extra stuff? Are youfamiliar with this topic? Absolutely not. The extent towhich I have used Emacs on Android was entirelydemonstrated in this video, I think. In my previous video. Imean, I know it does a few scrolling stuff, but I have no ideahow external stuff, because I mean, Android is, it's a Unixor it's a Linux based system, but it's really heavilymodified to the preferences of Google, which includes notbeing able to have your own software on it. Yeah,definitely. All right, moving on to the next question. Doespackage-vc... Oh, no, that's fine. I mean, you can't answerall the questions. I mean, it wouldn't be fun for meotherwise.
[00:05:15.754]Q: Does package-vc download a tarball from the specified git repository or clone the repository itself?
Does package-vc download a tarball from thespecified Git repository or clone the repository itself?It clones the repository. That's the VC part in the name.package-vc uses VC, the C-x v stuff. In Emacs 29, there's anew command called vc-clone, which in Emacs 31, it wasactually exposed as an interactive command. And when youclone the repository, or when you, you can give it any URL of aGit repository or a CVS repository or subversionrepository. Interestingly enough, most people only useGit, but anything that's, that implements this clonecommand for VC, and it could download it. So there's notarballs involved. Which is also, one should emphasize,part of the difficulty of VC packages because when you haveversion control and you want to upgrade it, it might be thatthe upstream did a force push. For that, you make localchanges and then you have to merge them upstream with theupstream changes when fetching stuff. It's one of the bigdownsides of version-controlled stuff, and I'm sayingthis as the guy who actually wrote package-vc. There'stimes to use it, there's advantages to it, but that'ssomething you should keep in mind, why tarballs areinteresting to have, in my opinion. Okay.
[00:06:37.970]How is the new behavior of M-q in prog-mode (prog-fill-reindent-defun or something like that) different from the behavior of C-M-q (indent-pp-sexp) in older Emacs versions?
How is the newbehavior of M-q in prog mode, prog-fill-reindent-defunor something like that, different from the behaviorof C-M-q, i.e. indent-pp-sexp in older Emacsversion? My apologies if indent-pp-sexp, it's really tough toread M-x commands out loud. It's not bound toC-M-q by default, I can't tell. Let me try that commandout because I've never tried it, never used it before.You know, that isn't bound by default. I bind that up myselfand I have that binding. I think that's, that's not right. Itsays so. I mean, I'm currently executing it here in Emacs andit says you can also run the commands indent-pp-sexp withM-q, C-M-q. Apparently it is. I mean, Ididn't set it myself. I don't know what's up with that. to tryand move it. And then each line started with points or prettyprinted. I mean, the difference, the main differencebetween that and the command highlighted, what's the nameagain? I forget it all the time. The prog-mode command.prog-fill-reindent-defun is thatit checks if it's in a string or not. If it's in a string or ifit's in a comma, then it will refill. Otherwise, it's goingto re-indent.That's, I think, as far as I see, that's going to be the maindifference. If we have some long comments somewhere. Let'stry that out. Yeah, that's the difference. I just, you can'tsee it, but I did try it. Okay, good. Thank you. You did awonderful job describing visually what you're doing. Allright, moving on to the next question, and we have about, wehave just enough time to cover the last three questions,especially because the next one, I can pretty much surmisethe answer.
Any plans for Emacs running on iOS? Probably notbecause it's not, I mean, as I emphasized in the video, theEmacs port in Android is completely free. And to myknowledge, that's not something that's currentlypossible with iOS. You need Xcode or something like that tobuild iOS stuff. So that's a big no-no. I mean, maybe Apple'sgoing to change their mind on that one. Well, I won't be theone liaising with Apple to make sure that they do, but PRwelcomes, I guess, or motivated folks welcome. Second tolast question.
[00:09:08.648]Q: I am worried about the situation on non-free systems. There was talk about the Windows and the macOS versions being as good as unmaintained. Where do we go from here?
I am worried about the situation on non-freesystems. There was talk about the Windows and the macOSversions being as good as unmaintained. Where do we go fromhere? I gather that most users of Emacs are still on non-freeplatforms and will remain to be there. I don't know about thelast point, if that's true, because there's no statisticson that matter. But the main, I mean, someone has to, I knowthat Corwin is involved with the Mac, with the Windowsstuff. Modestly. Sure, I'd love to jump in, but I'm far moreinterested in your thoughts than mine. Please, pleasecontinue. Someone has to do the work. Eli uses, as far as Iknow, Eli's on the Windows XP system. So as long as he's doingthat, there's going to be Windows support for one form oranother, or at least DOS. All right. And now you put a quarterin me, so I'll jump right back in. That's perfect for where Iguess I would take the question. To me, it's anaccessibility issue. Think about it this way. Maybe thatWindows XP system is what someone can afford. Likewise,from a freedom versus I have to do my job and I have to usecertain technology to do my job. Maybe Emacs is whatsomebody can afford right? It might be the only free toolthat they use and they don't have a lot of choice about theoperating system that they're in most of the day. In fact,somebody could be in the situation where their computingdevice at work is really their internet access, right? Allof those situations are possible. Therefore, I tend toassume they all exist and when I ask, you know, how much Itdefinitely is concerning when we hear about kind of blackholes in the brain trust of something like support for theWindows port. I feel like I've heard a lot of peopleanswering that call, but the importance of that is that itdoesn't stop echoing, right? Free software goes as long asthere are people that are irritated enough about somethingto sort of come hack on it. Yeah. And the same applies to MacOS. But I don't know any concrete details about who'scurrently working on it. I can't recollect any details onwho's currently working on what.Okay. And that leaves us with the last question of the day.
[00:11:35.280]Q: Is there a best practice on what Org to use when following emacs-latest?
I'm a bit confused about what version of Org that I shouldwrite towards because there's Org in Emacs, the one thatships built-in. There's the one in ELPA. There's the one inOrg, probably the Org ELPA, I assume. Is there a bestpractice on what Org to use when following Emacs latest?when following us latest. It depends on, I think, my roughheuristic is if you do use Org a lot and if you follow thenewest features, then use the version on Elpa, because theElpa version should be the most up-to-date one. The Org Elpawas deprecated, to my knowledge. If that seems true, pleasesomeone interrupt me before I make a fool of myself.No one's done that yet.I think a couple of years ago there were chats and then wedeprecated the all contrib ELPA, but I think all the ELPA isstill alive. I didn't know that about that. Okay, in thatcase, that relativizes how absolute my answer is.Personally, I just use the version in Emacs, which isbundled with Emacs, which is regularly updated on masterwhenever there's a release. But that might take maybe, itmight be a short time behind the ELPA version, or the otherELPA, the Org ELPA, which we mentioned. But I'm a very lightOrg mode user, so please don't take my word for that one. No,and I'm happy to come to you. Yeah. Ifeel like we lost Leo again. OK. Well, that's all right. Iwanted a bite at that, Apple. I'm a little bit. Yeah, I alsodescribe myself as a light org user, but somehow yourcomment made me think, well, maybe I do use it just a littlebit more than you, Philip.From my standpoint, I'm using it as a technical basis fordungeon mode in order to keep the game notes for the gamesthat are made using this game engine I'm making that I talkedabout a few years ago. As soon as you said technical grounds,you definitely use it more. Right, right. So I've studiedits internals a bit, and I have my own thoughts about this orthat. But of course, I'm rolling with the punches becauseI'm just grateful that the bear dances. What an amazingthing is Org Mode. But Leo knows far more than me,conveniently having his stage right here, so he can'tdefend himself from this. But I've had thoughts around thisspace. Are you back, Leo? Yeah, sorry, I'm back. You save usall. Maybe closing remarks. I was trying to clear my throatto be very inconspicuous about me coming back, butapparently I was ousted. Yeah, I was trying to answer thequestion and I was trying to desperately save you fromanswering, Philip, because yes, the thing about Org Mode isthat if you are the kind of people who tend to check out masteron Org Mode, generally it's roughly pretty stable. Likewhen we were working with Org Element and stuff like this,Perhaps there were some elements of stability whichweren't there quite yet, but usually now it's prettystable. So I think that if you are really excited aboutcontributing to Org Mode and stuff like this, I think thereisn't all that many risks to just checking out Org ModeMaster, so cloning the repository and just keeping up todate. Otherwise, ELPA is a fairly safe bet if you want to havethe latest stable version. And we've got a question about[??] as with Emacs itself. You can follow whatever ispublished in your package archives or in your systemdistribution package manager. You can build it yourself ifyou want to contribute and fix bugs, add features, and so on.Yeah, and I don't think perhaps a little more with Emacs,because the features that tends to get introduced in Emacsare slightly more wild. Not wild in the sense that they areless stable, but wild in the sense that they tend to change alot more stuff. The core of Org, at least during Bastien'smaintenance ship, was very stable when you think about it.So things might change with Ihor right now in terms of how hewants to change some of the core behaviors, but it's usuallypretty stable. And whether you use the latest majorversion, the latest minor version, things are probablygoing to be pretty stable. It's like you heard me while youwere offline. And I do agree with that, in case you might haveheard both our remarks and think we're talking differentangles. Actually, I think we would tend to agree on this, Leoand I. For the record, when I'm saying, oh, I have to go keep upwith org, that's because org grows behaviors that I've gotmy own. I had to figure out at some point my own way to do it, andnow I'm learning how it's done, right? So I'm like, in myabstraction, blah, right? And those conversationsusually end at, and somebody else took the time to figure outhow to actually make Emacs do that. Go be quiet. And I do, and Ido consider that under Bastien's tenure, it has been quitestable. We might notice the occasional like, oh, thishighlights now and that didn't, right? But very often, veryinfrequently is it breaking my workflow as a user, any of it.It's interesting to me that this mirrors my experience withEmacs itself, where I think, in my perception, Emacs masteris very stable and I might notice the slight changes betweengit pulls. But otherwise, in my experience, Org modesuddenly changes something, I don't know what changed orwhat's going on or what caused it, and it seemed... Iperceive it as being a sudden uncontrolled change orsomething. I think that's apt. Right. That getsright at it. If we're following, if we're pulling for morepretty regularly, cronjob every night or pulling a fewtimes a day or something like that, we're going to theinternals yeah, we'll have a different experience than,you know, if we only remember to update Org once every fourmonths. It really pays to stick with everything. Andsuddenly lots of things might change. Whatever broke in myown config, right? And so a lot of, like a lot of things withinEmacs, but also within the free software tool chain, it'show much you're going to invent in the config, invest in theconfig, might limit you know, and maintaining your configmay limit the depth of how far it makes sense for you to go withthe tool at any given point in time. Actually just looked upmy org config and it's four, I said four options, useroptions. So that's, if that's the measurements of orgexpertise, that's my level, it's four.That's all good then. Four of four, I'm assuming that is,right? Four of what? What was the metric there, four of like athousand? Four out of the number of user options that Wordprovides. Oh, okay, I see. Four, yeah, more like 10,000. I'mthere. Yeah. All right. On that note, I suggest we move towhat's close because it's fairly late for me and I need tosleep. And Philip, I think it's pretty late for you as well,isn't it? I'm in Germany, so it's about... So it is prettylate. It's the same time zone as me. It's 11 p.m. for you.Truly, yeah. Yeah, so I suggest we both take the chance to goto bed as soon as we can. But Philip, thank you so much forboth the presentation and also the answers that youprovided to us and the nice little chat we had at the end. Welook forward to seeing you again next year, perhaps forEmacs 31. I'm not sure. I was chatting with wasamasatrying to make prognostics about when Emacs 30 is going to bereleased. There's a pre-release coming soon. I should havementioned that earlier. Well, there you go. Gone.All right. Well, thank you so much, Philip. We'll be movingtowards close. Give us about two minutes to get set up in theother room. And Philip, we'll see you next time. Goodbye.Bye-bye. Thank you.