diff options
Diffstat (limited to '2021/captions')
2 files changed, 767 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-dev-update--emacs-development-updates--john-wiegley--chapters.vtt b/2021/captions/emacsconf-2021-dev-update--emacs-development-updates--john-wiegley--chapters.vtt new file mode 100644 index 00000000..194156b0 --- /dev/null +++ b/2021/captions/emacsconf-2021-dev-update--emacs-development-updates--john-wiegley--chapters.vtt @@ -0,0 +1,43 @@ +WEBVTT + +00:00:00.320 --> 00:00:18.559 +Introduction + +00:00:18.560 --> 00:00:33.599 +Emacs 28 + +00:00:33.600 --> 00:02:36.399 +Native compilation + +00:02:36.400 --> 00:02:55.759 +Build with Cairo by default + +00:02:55.760 --> 00:03:22.958 +New mode, but off by default: context-menus + +00:03:22.959 --> 00:03:37.839 +Tab-bar and tab-line received many enhancements + +00:03:37.840 --> 00:04:20.319 +A command can marked as specific to a mode + +00:04:20.320 --> 00:05:00.879 +Transient input methods + +00:05:00.880 --> 00:05:14.559 +show-paren-mode is enabled by default + +00:05:14.560 --> 00:05:39.519 +We now have a Non-GNU ELPA + +00:05:39.520 --> 00:06:18.399 +repeat-mode + +00:06:18.400 --> 00:06:26.719 +project.el has dozens of new commands + +00:06:26.720 --> 00:06:54.959 +Shorthands for Lisp symbols + +00:06:54.960 --> 00:06:55.960 +Emacs 29 is just beginning 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. |