diff options
-rw-r--r-- | 2020/info/38.md | 89 | ||||
-rw-r--r-- | 2020/organizers-notebook.md | 6 | ||||
-rw-r--r-- | 2020/organizers-notebook.org | 6 | ||||
-rw-r--r-- | 2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt (renamed from 2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt) | 244 |
4 files changed, 213 insertions, 132 deletions
diff --git a/2020/info/38.md b/2020/info/38.md index ad987bc0..de667557 100644 --- a/2020/info/38.md +++ b/2020/info/38.md @@ -1,8 +1,9 @@ # Emacs development update John Wiegley -[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--38-emacs-development-update--john-wiegley.webm"]] +[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--38-emacs-development-update--john-wiegley.webm" size="75M" subtitles="/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt" duration="5:07"]] [Download compressed .webm video (8.4M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--38-emacs-development-update--john-wiegley--vp9-q56-video-original-audio.webm) +[View transcript](#transcript) - Actual start and end time (EST): Start 2020-11-29T09.12.40; End: 2020-11-29T09.17.51 @@ -27,4 +28,90 @@ John Wiegley - Emacs 27.2 will be released soon - Emacs 28 will have better emoji support 🎉 (within C code). No timeline for 28 currently. +<!-- transcript: 2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt --> +<a name="transcript"></a> +# Transcript + +Hello EmacsConf! This is John Wiegley, I'm one of the co-maintainers +of Emacs along with Eli Zaretskii and Lars Ingebrigtsen, and I wanted +to give you a technical update on what has been happening with the +Emacs in the last year. So, specifically we have a few notes that +I've gotten from a call with Eli, he's been in charge of directing +most of the technical contributions on the mailing list and monitoring +all the patches. So, I'm more here just as a messenger. + +(00:33) He says that we have good progress and support for Cairo, this +is going to be enabled by default in Emacs 28, and Cairo plus HarfBuzz +is going to be the preferred rendering combination. So, Cairo support +is not new, but in the past there were a lot of bugs in the code, and +so it was made experimental. Most of those bugs have been fixed +recently, and now it becomes the default in the next major version, +which will enable several good features such as color emojis, if +you're looking forward to those. Xft, as a result is deprecated. There +are bugs not getting fixed in that code, it doesn't appear to be very +well maintained. It was the most advanced font backend in Emacs before +Cairo became dependable. So, now that we have a more a better +maintained and available solution in Cairo, we're going to go from +that, go from Xft to that. + +(01:21) Native compilation in Lisp will also be landing soon. It's +currently on a branch, but there are several people using it, they +say, they're very impressed. It does require live GCC JIT to be +installed for it to work, and this means you have to have GCC 10 +installed. Execution of Emacs Lisp with native compilation on is about +2.5 times faster than the bytecode interpreter, we don't yet have any +measurements on memory or how it affects resources besides CPU, so, we +do look forward to having more numbers and analysis to see what the +real impact of that is going to be, also, it may vary in compute +advantage based on the type of workload that you're performing. A +downside to the native compilation at the moment is that, it takes a +long time to compile even when you're doing a 16 core build of Emacs, +it can still take 15 minutes to compile Emacs and all of its Lisp code +with this enabled. Also, this is going to have to happen on every +user's machine because we cannot distribute the native compilation +products, they are specific to the processor that you might be running +on. So, the Emacs distribution will remain much as it is now, but if +you want to have the benefits of natively compiled core Lisp files, +you're going to have to spend that time and have GCC 10 available to +get that compilation support. + +(02:45) The GTK only build is being prepared for merging. What this +does is, it throws away most of the other tool kits that Emacs was +using and relies only on GTK, making Emacs much more of a GTK +application than it has been. The main issue here is that we were +abusing GTK in some ways that weren't really meant, and now we're +going to be more of a first club…, GTK will be more of a first class +citizen in the approach and the ways that we use it, and be using it +in the ways that the GTK developers intended. + +(03:21) There is going to be much more support for xt-mouse. So, +xt-mouse allows you to use your mouse inside of a terminal window, +which you could do before, but there were certain aspects such as +menus that weren't supported. So, instead of having kind of partial +support for mouse inside of an XTerm, with xt-mouse, you get full +support. This is going to allow changes in the way that things can be +bound, the ways that key bindings can…, the mouse events can be mapped +to key bindings while in XTerms, and yeah, little by little this +support is being extended even further, so we look forward to seeing +that develop in the near term. Once this is merged by the way, also +then Emacs will have mouse support in every one of its available +configurations, which has not been true until now. + +(04:12) Emacs 27 will be soon releasing 27.2, and the pretest for that +should begin sometime soon after EmacsConf is done. + +(04:20) And finally Emacs 28 is going to get better emoji support, +right now emojis are registered internally within Emacs as symbols +which works in some ways but does not support some of the special +features of emojis such as different skin tones for the hand emoji or +face emojis. In Emacs 28, emojis are going to have their own support +within the C code, and then this is going to allow those types of +variations and other emoji specific font setups. + +(04:51) So, that is everything for Emacs in the future, I don't have a +timeline for you on when 28 will be available, but 27 is going to keep +improving until we're ready to get there. So, have fun with the rest +of EmacsConf, and I hope to see you there, Bye. + +<!-- /transcript --> diff --git a/2020/organizers-notebook.md b/2020/organizers-notebook.md index 492e3b71..bf6f7c6f 100644 --- a/2020/organizers-notebook.md +++ b/2020/organizers-notebook.md @@ -63,9 +63,9 @@ I modified the `subed` package to work with VTT files. The modified version is a - [ ] <./subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt> - [ ] <./subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt> - [ ] <./subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt> -- [ ] <./subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt> -- [ ] <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt> -- [ ] bhavin192 <./subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt> +- [ ] bhavin192 <./subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt> +- [ ] bhavin192 <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt> +- [X] bhavin192 <./info/38.md> <./subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt> - [X] bhavin192 <./info/39.md> <./subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt> - [X] bhavin192 <./info/39.md> <./subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt> - [ ] <./subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.vtt> diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org index bf730103..5138285c 100644 --- a/2020/organizers-notebook.org +++ b/2020/organizers-notebook.org @@ -63,9 +63,9 @@ I modified the =subed= package to work with VTT files. The modified version is a - [ ] [[./subtitles/emacsconf-2020--31-lakota-language-and-emacs--questions--grant-shangreaux-autogen.vtt]] - [ ] [[./subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt]] - [ ] [[./subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt]] -- [ ] [[./subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt]] -- [ ] [[./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt]] -- [ ] bhavin192 [[./subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt]] +- [ ] bhavin192 [[./subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt]] +- [ ] bhavin192 [[./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt]] +- [X] bhavin192 [[./info/38.md]] [[./subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt]] - [X] bhavin192 [[./info/39.md]] [[./subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt]] - [X] bhavin192 [[./info/39.md]] [[./subtitles/emacsconf-2020--39-nongnu-elpa--richard-stallman.vtt]] - [ ] [[./subtitles/emacsconf-2020--40-closing-remarks-part-1-autogen.vtt]] diff --git a/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt b/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt index 7c0d9ed5..43c39857 100644 --- a/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt +++ b/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt @@ -1,16 +1,16 @@ WEBVTT 00:00:00.080 --> 00:00:03.040 -hello EmacsConf this is john wigley I'm +Hello EmacsConf! This is John Wiegley, I'm 00:00:03.040 --> 00:00:04.960 one of the co-maintainers of Emacs along 00:00:04.960 --> 00:00:06.319 -with ellie zoretsky +with Eli Zaretskii 00:00:06.319 --> 00:00:09.280 -and lars ingebrigston and I wanted to +and Lars Ingebrigtsen, and I wanted to 00:00:09.280 --> 00:00:09.840 give you @@ -21,17 +21,17 @@ a technical update on what has been 00:00:12.639 --> 00:00:14.960 happening -00:00:14.960 --> 00:00:18.400 -with the Emacs in the last year so +00:00:14.960 --> 00:00:17.573 +with the Emacs in the last year. -00:00:18.400 --> 00:00:20.640 -specifically uh we have a few notes that +00:00:17.573 --> 00:00:20.640 +So, specifically we have a few notes that 00:00:20.640 --> 00:00:21.600 I've gotten from 00:00:21.600 --> 00:00:24.480 -a call with ellie he's been in charge of +a call with Eli, he's been in charge of 00:00:24.480 --> 00:00:25.840 directing most of the @@ -40,115 +40,115 @@ directing most of the technical contributions on the mailing 00:00:28.000 --> 00:00:30.160 -list and monitoring all the patches +list and monitoring all the patches. 00:00:30.160 --> 00:00:33.200 -so I'm more here just as a messenger +So, I'm more here just as a messenger. 00:00:33.200 --> 00:00:35.840 -he says that we have good progress and +He says that we have good progress and 00:00:35.840 --> 00:00:37.120 -support for cairo +support for Cairo, 00:00:37.120 --> 00:00:39.040 this is going to be enabled by default 00:00:39.040 --> 00:00:40.320 -and emax 28 +in Emacs 28, 00:00:40.320 --> 00:00:42.480 -and cairo plus half buzz is going to be +and Cairo plus HarfBuzz is going to be 00:00:42.480 --> 00:00:44.800 -the preferred rendering combination +the preferred rendering combination. 00:00:44.800 --> 00:00:46.879 -so cairo support is not new but in the +So, Cairo support is not new, but in the 00:00:46.879 --> 00:00:48.719 past there were a lot of bugs in the 00:00:48.719 --> 00:00:51.440 -code and so it was made experimental +code, and so it was made experimental. 00:00:51.440 --> 00:00:52.960 -so most of those bugs have been fixed +Most of those bugs have been fixed 00:00:52.960 --> 00:00:54.960 -recently and now it becomes the default +recently, and now it becomes the default 00:00:54.960 --> 00:00:56.320 -and the next major version +in the next major version, 00:00:56.320 --> 00:00:58.320 which will enable several good features 00:00:58.320 --> 00:01:00.320 -such as color emojis if you're looking +such as color emojis, if you're looking 00:01:00.320 --> 00:01:01.680 -forward to those +forward to those. 00:01:01.680 --> 00:01:04.720 -xft as a result is deprecated there are +Xft, as a result is deprecated. There are 00:01:04.720 --> 00:01:06.560 -bugs not getting fixed in that code it +bugs not getting fixed in that code, it 00:01:06.560 --> 00:01:07.760 doesn't appear to be very well 00:01:07.760 --> 00:01:08.720 -maintained +maintained. 00:01:08.720 --> 00:01:10.960 -it was the most advanced font mac end +It was the most advanced font backend 00:01:10.960 --> 00:01:13.760 -and emax before cairo became dependable +in Emacs before Cairo became dependable. 00:01:13.760 --> 00:01:15.920 -so now that we have a more a better +So, now that we have a more a better 00:01:15.920 --> 00:01:17.840 maintained and available solution in 00:01:17.840 --> 00:01:19.360 -cairo we're going to go from that +Cairo, we're going to go from that, -00:01:19.360 --> 00:01:23.200 -go from xft to that native compilation +00:01:19.360 --> 00:01:21.839 +go from Xft to that. -00:01:23.200 --> 00:01:23.840 -in lisp +00:01:21.839 --> 00:01:23.840 +Native compilation in Lisp 00:01:23.840 --> 00:01:26.400 -will also be landing soon it's currently +will also be landing soon. It's currently 00:01:26.400 --> 00:01:28.080 -on a branch but there are several people +on a branch, but there are several people 00:01:28.080 --> 00:01:28.799 -using it +using it, 00:01:28.799 --> 00:01:31.040 -they say they're very impressed it does +they say, they're very impressed. It does 00:01:31.040 --> 00:01:32.479 -require live gcc +require live GCC 00:01:32.479 --> 00:01:35.600 -jit to be installed for it to work and +JIT to be installed for it to work, and 00:01:35.600 --> 00:01:37.439 -this means you have to have gcc 10 +this means you have to have GCC 10 00:01:37.439 --> 00:01:38.960 -installed +installed. 00:01:38.960 --> 00:01:41.040 -execution of Emacs lisp with native +Execution of Emacs Lisp with native 00:01:41.040 --> 00:01:42.240 compilation on @@ -160,7 +160,7 @@ is about 2.5 times faster than the bytecode 00:01:46.159 --> 00:01:48.399 -interpreter we don't yet have any +interpreter, we don't yet have any 00:01:48.399 --> 00:01:49.439 measurements on @@ -169,7 +169,7 @@ measurements on memory or how it affects resources 00:01:51.600 --> 00:01:52.960 -besides cpu so +besides CPU, so, 00:01:52.960 --> 00:01:54.720 we do look forward to having more @@ -178,28 +178,28 @@ we do look forward to having more numbers and analysis to see what the 00:01:56.399 --> 00:01:58.320 -real impact of that is going to be +real impact of that is going to be, 00:01:58.320 --> 00:02:01.360 -also it may vary in compute advantage +also, it may vary in compute advantage 00:02:01.360 --> 00:02:02.799 based on the type of workload that 00:02:02.799 --> 00:02:04.320 -you're performing +you're performing. 00:02:04.320 --> 00:02:06.240 -a downside to the native compilation at +A downside to the native compilation at 00:02:06.240 --> 00:02:08.080 -the moment is that it takes a long +the moment is that, it takes a long 00:02:08.080 --> 00:02:10.720 time to compile even when you're doing a 00:02:10.720 --> 00:02:12.720 -16 core build of Emacs +16 core build of Emacs, 00:02:12.720 --> 00:02:14.959 it can still take 15 minutes to compile @@ -208,13 +208,13 @@ it can still take 15 minutes to compile Emacs 00:02:15.760 --> 00:02:17.840 -and all of its in all of its lisp code +and all of its Lisp code 00:02:17.840 --> 00:02:19.520 -with this enabled +with this enabled. 00:02:19.520 --> 00:02:21.840 -also this is going to have to happen on +Also, this is going to have to happen on 00:02:21.840 --> 00:02:23.120 every user's machine @@ -223,43 +223,40 @@ every user's machine because we cannot distribute the native 00:02:25.360 --> 00:02:27.520 -compilation products they are specific +compilation products, they are specific -00:02:27.520 --> 00:02:28.319 -to the compo - -00:02:28.319 --> 00:02:29.760 +00:02:27.520 --> 00:02:29.760 to the processor that you might be -00:02:29.760 --> 00:02:31.440 -running on so +00:02:29.760 --> 00:02:30.806 +running on. -00:02:31.440 --> 00:02:33.920 -the emax distribution will remain much +00:02:30.806 --> 00:02:33.920 +So, the Emacs distribution will remain much 00:02:33.920 --> 00:02:35.680 -as it is now but if you want to have the +as it is now, but if you want to have the 00:02:35.680 --> 00:02:37.760 benefits of natively compiled 00:02:37.760 --> 00:02:39.599 -core lisp files you're going to have to +core Lisp files, you're going to have to 00:02:39.599 --> 00:02:41.519 -spend that time and have gcc 10 +spend that time and have GCC 10 00:02:41.519 --> 00:02:42.400 available 00:02:42.400 --> 00:02:45.840 -to get that compilation support um +to get that compilation support. 00:02:45.840 --> 00:02:48.959 -the gtk only build is being prepared +The GTK only build is being prepared 00:02:48.959 --> 00:02:52.160 -for merging so what this does is it +for merging. What this does is, it 00:02:52.160 --> 00:02:52.959 throws away @@ -271,73 +268,70 @@ most of the other tool kits that Emacs was using 00:02:56.000 --> 00:02:59.280 -and relies only on gtk making Emacs +and relies only on GTK, making Emacs 00:02:59.280 --> 00:03:01.760 -much more of a gtk application than it +much more of a GTK application than it 00:03:01.760 --> 00:03:03.920 -has been +has been. 00:03:03.920 --> 00:03:06.480 -the main issue here is that we were +The main issue here is that we were 00:03:06.480 --> 00:03:08.480 -abusing gtk in some ways that weren't +abusing GTK in some ways that weren't 00:03:08.480 --> 00:03:09.360 -really meant +really meant, 00:03:09.360 --> 00:03:10.879 and now we're going to be more of a 00:03:10.879 --> 00:03:12.879 -first club gtk will be more of a first +first club…, GTK will be more of a first 00:03:12.879 --> 00:03:14.080 class citizen in the -00:03:14.080 --> 00:03:17.040 -approach and the ways that we use it and - -00:03:17.040 --> 00:03:17.440 -and +00:03:14.080 --> 00:03:17.440 +approach and the ways that we use it, and 00:03:17.440 --> 00:03:19.280 -be using it in the ways that the gtk +be using it in the ways that the GTK 00:03:19.280 --> 00:03:21.200 -developers intended +developers intended. 00:03:21.200 --> 00:03:23.360 -there is going to be much more support +There is going to be much more support 00:03:23.360 --> 00:03:24.640 -for xt mouse +for xt-mouse. 00:03:24.640 --> 00:03:27.280 -so xt mouse allows you to use your mouse +So, xt-mouse allows you to use your mouse 00:03:27.280 --> 00:03:29.120 -inside of a terminal window +inside of a terminal window, 00:03:29.120 --> 00:03:30.799 -which you could do before but there were +which you could do before, but there were 00:03:30.799 --> 00:03:33.120 certain aspects such as menus 00:03:33.120 --> 00:03:36.159 -that weren't supported so instead of +that weren't supported. So, instead of 00:03:36.159 --> 00:03:38.239 having kind of partial support for mouse -00:03:38.239 --> 00:03:39.840 -inside of an x term with xt +00:03:38.239 --> 00:03:40.473 +inside of an XTerm, with xt-mouse, -00:03:39.840 --> 00:03:42.879 -mouse you get full support this is going +00:03:40.473 --> 00:03:42.879 +you get full support. This is going 00:03:42.879 --> 00:03:44.959 to allow @@ -346,58 +340,58 @@ to allow changes in the way that things can be 00:03:46.720 --> 00:03:48.159 -bound the ways that +bound, the ways that 00:03:48.159 --> 00:03:51.200 -uh key bindings can the mouse events can +key bindings can…, the mouse events can 00:03:51.200 --> 00:03:53.200 be mapped to key bindings while in 00:03:53.200 --> 00:03:56.879 -x terms and um yeah little by little +XTerms, and yeah, little by little 00:03:56.879 --> 00:03:58.480 this support is being extended even 00:03:58.480 --> 00:03:59.040 -further +further, 00:03:59.040 --> 00:04:01.599 so we look forward to seeing that 00:04:01.599 --> 00:04:04.080 -develop in the near term +develop in the near term. 00:04:04.080 --> 00:04:06.239 -once this is merged by the way also then +Once this is merged by the way, also then 00:04:06.239 --> 00:04:08.080 Emacs will have mouse support in every 00:04:08.080 --> 00:04:09.840 -one of its available configurations +one of its available configurations, -00:04:09.840 --> 00:04:12.720 -which has not been true until now Emacs +00:04:09.840 --> 00:04:12.173 +which has not been true until now. -00:04:12.720 --> 00:04:14.680 -27 will be soon releasing +00:04:12.173 --> 00:04:14.680 +Emacs 27 will be soon releasing 00:04:14.680 --> 00:04:17.519 -27.2 and the pretest for that should +27.2, and the pretest for that should 00:04:17.519 --> 00:04:19.919 -begin sometime soon after Emacs comp is +begin sometime soon after EmacsConf is 00:04:19.919 --> 00:04:20.880 -done +done. 00:04:20.880 --> 00:04:23.360 -and finally Emacs 28 is going to get +And finally Emacs 28 is going to get 00:04:23.360 --> 00:04:24.800 -better emoji support +better emoji support, 00:04:24.800 --> 00:04:26.479 right now emojis are registered @@ -412,49 +406,49 @@ which works in some ways but does not support some of the special features 00:04:33.759 --> 00:04:37.360 -of of emojis such as different +of emojis such as different 00:04:37.360 --> 00:04:40.000 skin tones for the hand emoji or face 00:04:40.000 --> 00:04:41.120 -emojis +emojis. 00:04:41.120 --> 00:04:43.280 -in Emacs 28 emojis are going to have +In Emacs 28, emojis are going to have 00:04:43.280 --> 00:04:45.199 -their own support within the sequel +their own support within the 00:04:45.199 --> 00:04:47.199 -c code and then this is going to allow +C code, and then this is going to allow 00:04:47.199 --> 00:04:49.360 those types of variations and other -00:04:49.360 --> 00:04:52.720 -emoji specific font setups so that is +00:04:49.360 --> 00:04:51.439 +emoji specific font setups. -00:04:52.720 --> 00:04:54.639 -everything for Emacs +00:04:51.439 --> 00:04:54.639 +So, that is everything for Emacs 00:04:54.639 --> 00:04:56.720 -in the future I don't have a timeline +in the future, I don't have a timeline 00:04:56.720 --> 00:04:59.120 -for you on when 28 will be available +for you on when 28 will be available, 00:04:59.120 --> 00:05:01.520 but 27 is going to keep improving until 00:05:01.520 --> 00:05:02.720 -we're ready to get there +we're ready to get there. -00:05:02.720 --> 00:05:04.479 -so have fun with the rest of you max +00:05:02.720 --> 00:05:04.906 +So, have fun with the rest of EmacsConf, -00:05:04.479 --> 00:05:06.479 -conf and I hope to see you there +00:05:04.906 --> 00:05:06.479 +and I hope to see you there, 00:05:06.479 --> 00:05:09.199 -bye +Bye. |