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