<a name="transcript"></a>
# Transcript
[[!template text="Hello, my name is John Wiegley." start="00:00:00.320" video="mainVideo" id=subtitle]]
[[!template text="I'm a past co-maintainer of Emacs." start="00:00:02.200" video="mainVideo" id=subtitle]]
[[!template text="Nowadays, all of the work" start="00:00:05.040" video="mainVideo" id=subtitle]]
[[!template text="and mailing list traffic" start="00:00:06.799" video="mainVideo" id=subtitle]]
[[!template text="is handled by Eli Zaretskii" start="00:00:08.160" video="mainVideo" id=subtitle]]
[[!template text="and Lars Ingebrigtsen." start="00:00:09.599" video="mainVideo" id=subtitle]]
[[!template text="I just wanted to give you an update" start="00:00:12.559" video="mainVideo" id=subtitle]]
[[!template text="of what has been happening" start="00:00:14.320" video="mainVideo" id=subtitle]]
[[!template text="and what is soon to come" start="00:00:15.360" video="mainVideo" id=subtitle]]
[[!template text="in Emacs development." start="00:00:16.560" video="mainVideo" id=subtitle]]
[[!template new="1" text="So I spoke to Eli" start="00:00:18.560" video="mainVideo" id=subtitle]]
[[!template text="and he gave me the lowdown" start="00:00:19.760" video="mainVideo" id=subtitle]]
[[!template text="on Emacs 28, which is the next" start="00:00:20.880" video="mainVideo" id=subtitle]]
[[!template text="big release to come up yet." start="00:00:23.359" video="mainVideo" id=subtitle]]
[[!template text="He says that we hope to" start="00:00:25.840" video="mainVideo" id=subtitle]]
[[!template text="release this soon." start="00:00:27.039" video="mainVideo" id=subtitle]]
[[!template text="Pre-testing has not yet started," start="00:00:28.160" video="mainVideo" id=subtitle]]
[[!template text="but maybe looking at" start="00:00:30.080" video="mainVideo" id=subtitle]]
[[!template text="the first quarter of next year." start="00:00:31.519" video="mainVideo" id=subtitle]]
[[!template new="1" text="The biggest feature coming in Emacs 28" start="00:00:33.600" video="mainVideo" id=subtitle]]
[[!template text="is going to be native compilation," start="00:00:35.840" video="mainVideo" id=subtitle]]
[[!template text="and this will make some Emacs code" start="00:00:39.040" video="mainVideo" id=subtitle]]
[[!template text="two to four times as fast," start="00:00:41.280" video="mainVideo" id=subtitle]]
[[!template text="depending on what kind of Lisp" start="00:00:43.120" video="mainVideo" id=subtitle]]
[[!template text="you're running" start="00:00:44.640" video="mainVideo" id=subtitle]]
[[!template text="and how much of your Lisp code" start="00:00:45.360" video="mainVideo" id=subtitle]]
[[!template text="is just Lisp," start="00:00:47.840" video="mainVideo" id=subtitle]]
[[!template text="or makes calls to primitive functions." start="00:00:48.800" video="mainVideo" id=subtitle]]
[[!template text="There were previous JIT attempts." start="00:00:50.879" video="mainVideo" id=subtitle]]
[[!template text="Some of them still live on" start="00:00:53.680" video="mainVideo" id=subtitle]]
[[!template text="in development branches," start="00:00:54.879" video="mainVideo" id=subtitle]]
[[!template text="but they were found" start="00:00:56.559" video="mainVideo" id=subtitle]]
[[!template text="to not speed things up too much." start="00:00:57.280" video="mainVideo" id=subtitle]]
[[!template text="The version coming in Emacs 28" start="00:01:00.960" video="mainVideo" id=subtitle]]
[[!template text="has much better results" start="00:01:03.280" video="mainVideo" id=subtitle]]
[[!template text="than these past attempts," start="00:01:04.479" video="mainVideo" id=subtitle]]
[[!template text="but it should be noted" start="00:01:05.760" video="mainVideo" id=subtitle]]
[[!template text="that it has some side effects." start="00:01:06.960" video="mainVideo" id=subtitle]]
[[!template text="One is that natively-compiled files" start="00:01:09.439" video="mainVideo" id=subtitle]]
[[!template text="are going to be system-dependent," start="00:01:11.439" video="mainVideo" id=subtitle]]
[[!template text="so they can't be included" start="00:01:13.680" video="mainVideo" id=subtitle]]
[[!template text="in any distributions" start="00:01:14.960" video="mainVideo" id=subtitle]]
[[!template text="the way we do now with .elc files," start="00:01:16.000" video="mainVideo" id=subtitle]]
[[!template text="since those run on any platform." start="00:01:18.080" video="mainVideo" id=subtitle]]
[[!template text="This means that you will need to" start="00:01:20.479" video="mainVideo" id=subtitle]]
[[!template text="compile those files" start="00:01:22.240" video="mainVideo" id=subtitle]]
[[!template text="for your own machine, sometimes," start="00:01:23.600" video="mainVideo" id=subtitle]]
[[!template text="depending on how" start="00:01:26.479" video="mainVideo" id=subtitle]]
[[!template text="the compilation process goes." start="00:01:27.360" video="mainVideo" id=subtitle]]
[[!template text="It could vary by processor." start="00:01:28.799" video="mainVideo" id=subtitle]]
[[!template text="And it requires you also" start="00:01:31.520" video="mainVideo" id=subtitle]]
[[!template text="to have the right" start="00:01:32.720" video="mainVideo" id=subtitle]]
[[!template text="compilation environment." start="00:01:33.520" video="mainVideo" id=subtitle]]
[[!template text="This means that you may need tools" start="00:01:35.600" video="mainVideo" id=subtitle]]
[[!template text="from the gcc tool chain" start="00:01:37.200" video="mainVideo" id=subtitle]]
[[!template text="that aren't installed" start="00:01:38.560" video="mainVideo" id=subtitle]]
[[!template text="as part of the default," start="00:01:39.520" video="mainVideo" id=subtitle]]
[[!template text="so you will maybe have to do some work" start="00:01:40.799" video="mainVideo" id=subtitle]]
[[!template text="to set up the right" start="00:01:42.640" video="mainVideo" id=subtitle]]
[[!template text="compilation environment" start="00:01:43.680" video="mainVideo" id=subtitle]]
[[!template text="for your platform." start="00:01:44.720" video="mainVideo" id=subtitle]]
[[!template text="Natively-compiled files" start="00:01:46.560" video="mainVideo" id=subtitle]]
[[!template text="are also kept in a separate directory." start="00:01:47.680" video="mainVideo" id=subtitle]]
[[!template text="There are some issues" start="00:01:50.799" video="mainVideo" id=subtitle]]
[[!template text="having to do with recompilation too," start="00:01:52.079" video="mainVideo" id=subtitle]]
[[!template text="so there are certain changes which," start="00:01:54.159" video="mainVideo" id=subtitle]]
[[!template text="if made to the Emacs source code" start="00:01:55.920" video="mainVideo" id=subtitle]]
[[!template text="between releases," start="00:01:57.360" video="mainVideo" id=subtitle]]
[[!template text="may require you to recompile" start="00:01:58.560" video="mainVideo" id=subtitle]]
[[!template text="all of the natively-compiled files" start="00:02:00.159" video="mainVideo" id=subtitle]]
[[!template text="that you had compiled previously." start="00:02:02.000" video="mainVideo" id=subtitle]]
[[!template text="Also, the file names of compiled files" start="00:02:04.479" video="mainVideo" id=subtitle]]
[[!template text="that get installed" start="00:02:06.880" video="mainVideo" id=subtitle]]
[[!template text="have hashes on them" start="00:02:07.680" video="mainVideo" id=subtitle]]
[[!template text="depending on the Emacs" start="00:02:08.800" video="mainVideo" id=subtitle]]
[[!template text="that they were built against," start="00:02:10.319" video="mainVideo" id=subtitle]]
[[!template text="so Emacs should be able to detect" start="00:02:11.920" video="mainVideo" id=subtitle]]
[[!template text="when recompilation is necessary," start="00:02:14.000" video="mainVideo" id=subtitle]]
[[!template text="but it may be difficult" start="00:02:16.239" video="mainVideo" id=subtitle]]
[[!template text="for distributions who want to know" start="00:02:17.840" video="mainVideo" id=subtitle]]
[[!template text="what all of the build files" start="00:02:19.599" video="mainVideo" id=subtitle]]
[[!template text="are going to be in advance" start="00:02:20.800" video="mainVideo" id=subtitle]]
[[!template text="in order to prepare" start="00:02:22.160" video="mainVideo" id=subtitle]]
[[!template text="a binary distribution" start="00:02:23.840" video="mainVideo" id=subtitle]]
[[!template text="for that for that platform." start="00:02:25.360" video="mainVideo" id=subtitle]]
[[!template text="So these are all little wrinkles" start="00:02:27.280" video="mainVideo" id=subtitle]]
[[!template text="that we're going to discover" start="00:02:28.800" video="mainVideo" id=subtitle]]
[[!template text="and have to work out" start="00:02:29.840" video="mainVideo" id=subtitle]]
[[!template text="as this functionality comes out" start="00:02:30.800" video="mainVideo" id=subtitle]]
[[!template text="and starts getting used" start="00:02:32.560" video="mainVideo" id=subtitle]]
[[!template text="in lots of different distributions." start="00:02:33.599" video="mainVideo" id=subtitle]]
[[!template new="1" text="Another feature is that Cairo is" start="00:02:36.400" video="mainVideo" id=subtitle]]
[[!template text="now being built with by default," start="00:02:38.560" video="mainVideo" id=subtitle]]
[[!template text="and this is one step further toward" start="00:02:40.319" video="mainVideo" id=subtitle]]
[[!template text="better support for emojis." start="00:02:42.560" video="mainVideo" id=subtitle]]
[[!template text="If you build with Cairo," start="00:02:44.319" video="mainVideo" id=subtitle]]
[[!template text="you will get all of the emoji sequences" start="00:02:45.519" video="mainVideo" id=subtitle]]
[[!template text="defined by the latest Unicode," start="00:02:47.599" video="mainVideo" id=subtitle]]
[[!template text="and in full color," start="00:02:49.360" video="mainVideo" id=subtitle]]
[[!template text="the exact same as on your smartphone ," start="00:02:50.400" video="mainVideo" id=subtitle]]
[[!template text="and it works on macOS as well." start="00:02:52.560" video="mainVideo" id=subtitle]]
[[!template new="1" text="There's a new mode," start="00:02:55.760" video="mainVideo" id=subtitle]]
[[!template text="but it is off by default," start="00:02:56.640" video="mainVideo" id=subtitle]]
[[!template text="called context-menus mode," start="00:02:58.400" video="mainVideo" id=subtitle]]
[[!template text="and this gives menus that appear" start="00:03:00.480" video="mainVideo" id=subtitle]]
[[!template text="when you right-click" start="00:03:02.800" video="mainVideo" id=subtitle]]
[[!template text="somewhere in a buffer," start="00:03:03.599" video="mainVideo" id=subtitle]]
[[!template text="but now will make it easier" start="00:03:04.959" video="mainVideo" id=subtitle]]
[[!template text="for other modes to define" start="00:03:06.480" video="mainVideo" id=subtitle]]
[[!template text="what those context menus" start="00:03:08.080" video="mainVideo" id=subtitle]]
[[!template text="should look like," start="00:03:09.440" video="mainVideo" id=subtitle]]
[[!template text="so that's sort of making that support..." start="00:03:10.080" video="mainVideo" id=subtitle]]
[[!template text="having it less custom" start="00:03:13.840" video="mainVideo" id=subtitle]]
[[!template text="in each module that implements" start="00:03:16.080" video="mainVideo" id=subtitle]]
[[!template text="that type of behavior." start="00:03:17.920" video="mainVideo" id=subtitle]]
[[!template text="They can now do it through this context" start="00:03:19.360" video="mainVideo" id=subtitle]]
[[!template text="and then use the facility." start="00:03:20.879" video="mainVideo" id=subtitle]]
[[!template new="1" text="Tab-bar and tab-line have received" start="00:03:22.959" video="mainVideo" id=subtitle]]
[[!template text="many enhancements." start="00:03:25.120" video="mainVideo" id=subtitle]]
[[!template text="So there's new commands, new variables," start="00:03:26.799" video="mainVideo" id=subtitle]]
[[!template text="there's quite a large number of changes," start="00:03:28.560" video="mainVideo" id=subtitle]]
[[!template text="so if you like those modes," start="00:03:30.080" video="mainVideo" id=subtitle]]
[[!template text="if you use them," start="00:03:31.440" video="mainVideo" id=subtitle]]
[[!template text="then you should be happy" start="00:03:32.560" video="mainVideo" id=subtitle]]
[[!template text="with what's coming." start="00:03:33.440" video="mainVideo" id=subtitle]]
[[!template text="There is a command..." start="00:03:35.040" video="mainVideo" id=subtitle]]
[[!template new="1" text="Now, a command can be marked" start="00:03:37.840" video="mainVideo" id=subtitle]]
[[!template text="as being specific to a mode," start="00:03:40.720" video="mainVideo" id=subtitle]]
[[!template text="so that if you're not in that mode," start="00:03:42.799" video="mainVideo" id=subtitle]]
[[!template text="then, when you press M-x," start="00:03:44.560" video="mainVideo" id=subtitle]]
[[!template text="it won't appear" start="00:03:46.000" video="mainVideo" id=subtitle]]
[[!template text="in the tab completion list." start="00:03:46.959" video="mainVideo" id=subtitle]]
[[!template text="Right now, M-x is a full population" start="00:03:48.319" video="mainVideo" id=subtitle]]
[[!template text="of every interactive command" start="00:03:50.799" video="mainVideo" id=subtitle]]
[[!template text="known to Emacs," start="00:03:52.560" video="mainVideo" id=subtitle]]
[[!template text="but in many cases," start="00:03:53.920" video="mainVideo" id=subtitle]]
[[!template text="unless you're in a text-mode buffer" start="00:03:55.120" video="mainVideo" id=subtitle]]
[[!template text="or a latex-mode buffer," start="00:03:57.360" video="mainVideo" id=subtitle]]
[[!template text="or some programming language mode buffer," start="00:03:58.560" video="mainVideo" id=subtitle]]
[[!template text="a lot of the commands" start="00:04:00.799" video="mainVideo" id=subtitle]]
[[!template text="that might be presented to you today" start="00:04:01.840" video="mainVideo" id=subtitle]]
[[!template text="are irrelevant to that buffer" start="00:04:04.480" video="mainVideo" id=subtitle]]
[[!template text="that you're in. So commands can now" start="00:04:06.239" video="mainVideo" id=subtitle]]
[[!template text="specify in their interactive declaration" start="00:04:08.400" video="mainVideo" id=subtitle]]
[[!template text="which mode they're specific to," start="00:04:11.120" video="mainVideo" id=subtitle]]
[[!template text="and in that case, they will only appear" start="00:04:12.640" video="mainVideo" id=subtitle]]
[[!template text="in the completion list for that mode." start="00:04:14.319" video="mainVideo" id=subtitle]]
[[!template text="In fact, only be available" start="00:04:16.079" video="mainVideo" id=subtitle]]
[[!template text="in that mode to execute." start="00:04:17.840" video="mainVideo" id=subtitle]]
[[!template new="1" text="There are going to be" start="00:04:20.320" video="mainVideo" id=subtitle]]
[[!template text="transient input methods," start="00:04:21.680" video="mainVideo" id=subtitle]]
[[!template text="and what this means is that right now," start="00:04:23.759" video="mainVideo" id=subtitle]]
[[!template text="with Emacs, you can hit a key sequence" start="00:04:25.440" video="mainVideo" id=subtitle]]
[[!template text="to change your input method" start="00:04:27.520" video="mainVideo" id=subtitle]]
[[!template text="to, say, latin1 or to Arabic or Hebrew" start="00:04:29.520" video="mainVideo" id=subtitle]]
[[!template text="or some other language," start="00:04:32.240" video="mainVideo" id=subtitle]]
[[!template text="so that you can start entering text" start="00:04:33.040" video="mainVideo" id=subtitle]]
[[!template text="using that input mode," start="00:04:35.199" video="mainVideo" id=subtitle]]
[[!template text="but transient input methods" start="00:04:38.080" video="mainVideo" id=subtitle]]
[[!template text="will allow you" start="00:04:39.759" video="mainVideo" id=subtitle]]
[[!template text="to switch to an input mode temporarily." start="00:04:40.400" video="mainVideo" id=subtitle]]
[[!template text="So if you're mostly writing" start="00:04:42.960" video="mainVideo" id=subtitle]]
[[!template text="in English text, but you want to insert" start="00:04:44.720" video="mainVideo" id=subtitle]]
[[!template text="one Greek letter, you don't have to" start="00:04:46.720" video="mainVideo" id=subtitle]]
[[!template text="switch to an input mode" start="00:04:48.720" video="mainVideo" id=subtitle]]
[[!template text="that has Latin and Greek letters." start="00:04:49.840" video="mainVideo" id=subtitle]]
[[!template text="You can just switch over" start="00:04:52.080" video="mainVideo" id=subtitle]]
[[!template text="to a Greek input mode," start="00:04:53.280" video="mainVideo" id=subtitle]]
[[!template text="momentarily enter in the Greek letter," start="00:04:54.560" video="mainVideo" id=subtitle]]
[[!template text="and then come back" start="00:04:56.639" video="mainVideo" id=subtitle]]
[[!template text="to your default input method." start="00:04:57.600" video="mainVideo" id=subtitle]]
[[!template new="1" text="show-paren-mode will be enabled" start="00:05:00.880" video="mainVideo" id=subtitle]]
[[!template text="by default in Emacs 28," start="00:05:02.880" video="mainVideo" id=subtitle]]
[[!template text="so that's the highlighting of parens" start="00:05:04.880" video="mainVideo" id=subtitle]]
[[!template text="whenever your cursor is on or near" start="00:05:06.720" video="mainVideo" id=subtitle]]
[[!template text="a closing paren or an opening paren," start="00:05:11.039" video="mainVideo" id=subtitle]]
[[!template text="for example." start="00:05:12.800" video="mainVideo" id=subtitle]]
[[!template new="1" text="We're also going to have a NonGNU ELPA," start="00:05:14.560" video="mainVideo" id=subtitle]]
[[!template text="so there will be a ELPA repository" start="00:05:18.080" video="mainVideo" id=subtitle]]
[[!template text="just like the ELPA we have today," start="00:05:20.639" video="mainVideo" id=subtitle]]
[[!template text="except it will have packages in it" start="00:05:22.160" video="mainVideo" id=subtitle]]
[[!template text="that have not gone through" start="00:05:24.400" video="mainVideo" id=subtitle]]
[[!template text="the same level of" start="00:05:25.840" video="mainVideo" id=subtitle]]
[[!template text="copyright assignment requirements" start="00:05:26.880" video="mainVideo" id=subtitle]]
[[!template text="as the GNU ELPA." start="00:05:28.560" video="mainVideo" id=subtitle]]
[[!template text="So NonGNU ELPA will make it easier" start="00:05:29.919" video="mainVideo" id=subtitle]]
[[!template text="for packages to get into a repository" start="00:05:31.919" video="mainVideo" id=subtitle]]
[[!template text="that is managed by the package.el" start="00:05:34.560" video="mainVideo" id=subtitle]]
[[!template text="that ships with Emacs." start="00:05:37.120" video="mainVideo" id=subtitle]]
[[!template new="1" text="There's going to be a repeat-mode" start="00:05:39.520" video="mainVideo" id=subtitle]]
[[!template text="added to Emacs 28, repeat-mode.el." start="00:05:42.160" video="mainVideo" id=subtitle]]
[[!template text="What this does is when you turn it on," start="00:05:45.039" video="mainVideo" id=subtitle]]
[[!template text="when you enable repeat-mode," start="00:05:46.880" video="mainVideo" id=subtitle]]
[[!template text="then certain commands" start="00:05:48.720" video="mainVideo" id=subtitle]]
[[!template text="which are executed by keybindings" start="00:05:50.800" video="mainVideo" id=subtitle]]
[[!template text="like C-x u for undo" start="00:05:53.120" video="mainVideo" id=subtitle]]
[[!template text="will allow you to just" start="00:05:55.120" video="mainVideo" id=subtitle]]
[[!template text="keep hitting that u, that final letter" start="00:05:56.160" video="mainVideo" id=subtitle]]
[[!template text="you used for the command" start="00:05:58.240" video="mainVideo" id=subtitle]]
[[!template text="to keep repeating that function." start="00:05:59.680" video="mainVideo" id=subtitle]]
[[!template text="This works today already" start="00:06:01.600" video="mainVideo" id=subtitle]]
[[!template text="for things like macro repetition, C-x e," start="00:06:03.440" video="mainVideo" id=subtitle]]
[[!template text="where you can just keep hitting e" start="00:06:06.720" video="mainVideo" id=subtitle]]
[[!template text="to repeat the macro" start="00:06:08.080" video="mainVideo" id=subtitle]]
[[!template text="as many times as you like," start="00:06:08.960" video="mainVideo" id=subtitle]]
[[!template text="but that was a custom feature" start="00:06:10.000" video="mainVideo" id=subtitle]]
[[!template text="just for macros." start="00:06:11.360" video="mainVideo" id=subtitle]]
[[!template text="This makes repeat mode accessible to" start="00:06:12.560" video="mainVideo" id=subtitle]]
[[!template text="most commands." start="00:06:16.319" video="mainVideo" id=subtitle]]
[[!template new="1" text="The project.el package" start="00:06:18.400" video="mainVideo" id=subtitle]]
[[!template text="has dozens of new commands," start="00:06:20.080" video="mainVideo" id=subtitle]]
[[!template text="so check the documentation there" start="00:06:22.000" video="mainVideo" id=subtitle]]
[[!template text="to find out what's going to be new" start="00:06:23.759" video="mainVideo" id=subtitle]]
[[!template text="in project.el." start="00:06:25.039" video="mainVideo" id=subtitle]]
[[!template new="1" text="And there will be shorthands" start="00:06:26.720" video="mainVideo" id=subtitle]]
[[!template text="for Lisp symbols" start="00:06:28.560" video="mainVideo" id=subtitle]]
[[!template text="supported in the Lisp symbol reader." start="00:06:30.000" video="mainVideo" id=subtitle]]
[[!template text="This means that for packages" start="00:06:32.400" video="mainVideo" id=subtitle]]
[[!template text="like s and f that have a whole bunch" start="00:06:34.240" video="mainVideo" id=subtitle]]
[[!template text="of really short named functions" start="00:06:36.800" video="mainVideo" id=subtitle]]
[[!template text="that might pollute the namespace," start="00:06:38.479" video="mainVideo" id=subtitle]]
[[!template text="those functions now can be" start="00:06:40.560" video="mainVideo" id=subtitle]]
[[!template text="implemented behind a prefix" start="00:06:43.199" video="mainVideo" id=subtitle]]
[[!template text="where the symbol reader can be taught" start="00:06:45.039" video="mainVideo" id=subtitle]]
[[!template text="that there is a shorthand" start="00:06:47.520" video="mainVideo" id=subtitle]]
[[!template text="for that prefix," start="00:06:48.639" video="mainVideo" id=subtitle]]
[[!template text="and that way, it'll only apply" start="00:06:50.319" video="mainVideo" id=subtitle]]
[[!template text="for the use of that package." start="00:06:51.680" video="mainVideo" id=subtitle]]
[[!template new="1" text="And then finally, work on Emacs 29" start="00:06:54.960" video="mainVideo" id=subtitle]]
[[!template text="has just started." start="00:06:57.840" video="mainVideo" id=subtitle]]
[[!template text="I don't have any details" start="00:06:59.280" video="mainVideo" id=subtitle]]
[[!template text="to report to you there," start="00:07:00.400" video="mainVideo" id=subtitle]]
[[!template text="just to say that now" start="00:07:01.440" video="mainVideo" id=subtitle]]
[[!template text="the ship is moving on" start="00:07:02.880" video="mainVideo" id=subtitle]]
[[!template text="to the next release after," start="00:07:04.000" video="mainVideo" id=subtitle]]
[[!template text="and Emacs 28 has a release branch" start="00:07:05.360" video="mainVideo" id=subtitle]]
[[!template text="and is getting cleaned up" start="00:07:07.599" video="mainVideo" id=subtitle]]
[[!template text="and ready for release." start="00:07:08.720" video="mainVideo" id=subtitle]]
[[!template text="And that is the technical summary" start="00:07:10.400" video="mainVideo" id=subtitle]]
[[!template text="of what's new in Emacs." start="00:07:12.720" video="mainVideo" id=subtitle]]
[[!template text="Thank you." start="00:07:14.000" video="mainVideo" id=subtitle]]