summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.sbv
blob: 803bb0c99d77a92c162f2504320e9bb1043820a8 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                       
                                       

                       
                                        




                       
                                     










                                   
                                  




                                        
                













                                        
                                    







































































































                                        
                                   

















































                                        
                      




                                       
     


























































                                        
                                      




                       
                                   




































































































                                        
                                      




                                   
                                       







                                    
                                       




                       
                                    







                               
                                  
















                                     
                                    













                                      
                    

                       
                                     













                                       
                                



                       
0:00:00.080,0:00:04.960
hello EmacsConf this is john wigley I'm

0:00:03.040,0:00:06.319
one of the co-maintainers of Emacs along

0:00:04.960,0:00:09.280
with ellie zoretsky

0:00:06.319,0:00:09.840
and lars ingebrigston and I wanted to

0:00:09.280,0:00:12.639
give you

0:00:09.840,0:00:14.960
a technical update on what has been

0:00:12.639,0:00:18.400
happening

0:00:14.960,0:00:20.640
with the Emacs in the last year so

0:00:18.400,0:00:21.600
specifically uh we have a few notes that

0:00:20.640,0:00:24.480
I've gotten from

0:00:21.600,0:00:25.840
a call with ellie he's been in charge of

0:00:24.480,0:00:28.000
directing most of the

0:00:25.840,0:00:30.160
technical contributions on the mailing

0:00:28.000,0:00:33.200
list and monitoring all the patches

0:00:30.160,0:00:35.840
so I'm more here just as a messenger

0:00:33.200,0:00:37.120
he says that we have good progress and

0:00:35.840,0:00:39.040
support for cairo

0:00:37.120,0:00:40.320
this is going to be enabled by default

0:00:39.040,0:00:42.480
and emax 28

0:00:40.320,0:00:44.800
and cairo plus half buzz is going to be

0:00:42.480,0:00:46.879
the preferred rendering combination

0:00:44.800,0:00:48.719
so cairo support is not new but in the

0:00:46.879,0:00:51.440
past there were a lot of bugs in the

0:00:48.719,0:00:52.960
code and so it was made experimental

0:00:51.440,0:00:54.960
so most of those bugs have been fixed

0:00:52.960,0:00:56.320
recently and now it becomes the default

0:00:54.960,0:00:58.320
and the next major version

0:00:56.320,0:01:00.320
which will enable several good features

0:00:58.320,0:01:01.680
such as color emojis if you're looking

0:01:00.320,0:01:04.720
forward to those

0:01:01.680,0:01:06.560
xft as a result is deprecated there are

0:01:04.720,0:01:07.760
bugs not getting fixed in that code it

0:01:06.560,0:01:08.720
doesn't appear to be very well

0:01:07.760,0:01:10.960
maintained

0:01:08.720,0:01:13.760
it was the most advanced font mac end

0:01:10.960,0:01:15.920
and emax before cairo became dependable

0:01:13.760,0:01:17.840
so now that we have a more a better

0:01:15.920,0:01:19.360
maintained and available solution in

0:01:17.840,0:01:23.200
cairo we're going to go from that

0:01:19.360,0:01:23.840
go from xft to that native compilation

0:01:23.200,0:01:26.400
in lisp

0:01:23.840,0:01:28.080
will also be landing soon it's currently

0:01:26.400,0:01:28.799
on a branch but there are several people

0:01:28.080,0:01:31.040
using it

0:01:28.799,0:01:32.479
they say they're very impressed it does

0:01:31.040,0:01:35.600
require live gcc

0:01:32.479,0:01:37.439
jit to be installed for it to work and

0:01:35.600,0:01:38.960
this means you have to have gcc 10

0:01:37.439,0:01:41.040
installed

0:01:38.960,0:01:42.240
execution of Emacs lisp with native

0:01:41.040,0:01:45.280
compilation on

0:01:42.240,0:01:46.159
is about 2.5 times faster than the

0:01:45.280,0:01:48.399
bytecode

0:01:46.159,0:01:49.439
interpreter we don't yet have any

0:01:48.399,0:01:51.600
measurements on

0:01:49.439,0:01:52.960
memory or how it affects resources

0:01:51.600,0:01:54.720
besides cpu so

0:01:52.960,0:01:56.399
we do look forward to having more

0:01:54.720,0:01:58.320
numbers and analysis to see what the

0:01:56.399,0:02:01.360
real impact of that is going to be

0:01:58.320,0:02:02.799
also it may vary in compute advantage

0:02:01.360,0:02:04.320
based on the type of workload that

0:02:02.799,0:02:06.240
you're performing

0:02:04.320,0:02:08.080
a downside to the native compilation at

0:02:06.240,0:02:10.720
the moment is that it takes a long

0:02:08.080,0:02:12.720
time to compile even when you're doing a

0:02:10.720,0:02:14.959
16 core build of Emacs

0:02:12.720,0:02:15.760
it can still take 15 minutes to compile

0:02:14.959,0:02:17.840
Emacs

0:02:15.760,0:02:19.520
and all of its in all of its lisp code

0:02:17.840,0:02:21.840
with this enabled

0:02:19.520,0:02:23.120
also this is going to have to happen on

0:02:21.840,0:02:25.360
every user's machine

0:02:23.120,0:02:27.520
because we cannot distribute the native

0:02:25.360,0:02:28.319
compilation products they are specific

0:02:27.520,0:02:29.760
to the compo

0:02:28.319,0:02:31.440
to the processor that you might be

0:02:29.760,0:02:33.920
running on so

0:02:31.440,0:02:35.680
the emax distribution will remain much

0:02:33.920,0:02:37.760
as it is now but if you want to have the

0:02:35.680,0:02:39.599
benefits of natively compiled

0:02:37.760,0:02:41.519
core lisp files you're going to have to

0:02:39.599,0:02:42.400
spend that time and have gcc 10

0:02:41.519,0:02:45.840
available

0:02:42.400,0:02:48.959
to get that compilation support um

0:02:45.840,0:02:52.160
the gtk only build is being prepared

0:02:48.959,0:02:52.959
for merging so what this does is it

0:02:52.160,0:02:55.120
throws away

0:02:52.959,0:02:56.000
most of the other tool kits that Emacs

0:02:55.120,0:02:59.280
was using

0:02:56.000,0:03:01.760
and relies only on gtk making Emacs

0:02:59.280,0:03:03.920
much more of a gtk application than it

0:03:01.760,0:03:06.480
has been

0:03:03.920,0:03:08.480
the main issue here is that we were

0:03:06.480,0:03:09.360
abusing gtk in some ways that weren't

0:03:08.480,0:03:10.879
really meant

0:03:09.360,0:03:12.879
and now we're going to be more of a

0:03:10.879,0:03:14.080
first club gtk will be more of a first

0:03:12.879,0:03:17.040
class citizen in the

0:03:14.080,0:03:17.440
approach and the ways that we use it and

0:03:17.040,0:03:19.280
and

0:03:17.440,0:03:21.200
be using it in the ways that the gtk

0:03:19.280,0:03:23.360
developers intended

0:03:21.200,0:03:24.640
there is going to be much more support

0:03:23.360,0:03:27.280
for xt mouse

0:03:24.640,0:03:29.120
so xt mouse allows you to use your mouse

0:03:27.280,0:03:30.799
inside of a terminal window

0:03:29.120,0:03:33.120
which you could do before but there were

0:03:30.799,0:03:36.159
certain aspects such as menus

0:03:33.120,0:03:38.239
that weren't supported so instead of

0:03:36.159,0:03:39.840
having kind of partial support for mouse

0:03:38.239,0:03:42.879
inside of an x term with xt

0:03:39.840,0:03:44.959
mouse you get full support this is going

0:03:42.879,0:03:46.720
to allow

0:03:44.959,0:03:48.159
changes in the way that things can be

0:03:46.720,0:03:51.200
bound the ways that

0:03:48.159,0:03:53.200
uh key bindings can the mouse events can

0:03:51.200,0:03:56.879
be mapped to key bindings while in

0:03:53.200,0:03:58.480
x terms and um yeah little by little

0:03:56.879,0:03:59.040
this support is being extended even

0:03:58.480,0:04:01.599
further

0:03:59.040,0:04:04.080
so we look forward to seeing that

0:04:01.599,0:04:06.239
develop in the near term

0:04:04.080,0:04:08.080
once this is merged by the way also then

0:04:06.239,0:04:09.840
Emacs will have mouse support in every

0:04:08.080,0:04:12.720
one of its available configurations

0:04:09.840,0:04:14.680
which has not been true until now Emacs

0:04:12.720,0:04:17.519
27 will be soon releasing

0:04:14.680,0:04:19.919
27.2 and the pretest for that should

0:04:17.519,0:04:20.880
begin sometime soon after Emacs comp is

0:04:19.919,0:04:23.360
done

0:04:20.880,0:04:24.800
and finally Emacs 28 is going to get

0:04:23.360,0:04:26.479
better emoji support

0:04:24.800,0:04:29.120
right now emojis are registered

0:04:26.479,0:04:31.759
internally within Emacs as symbols

0:04:29.120,0:04:33.759
which works in some ways but does not

0:04:31.759,0:04:37.360
support some of the special features

0:04:33.759,0:04:40.000
of of emojis such as different

0:04:37.360,0:04:41.120
skin tones for the hand emoji or face

0:04:40.000,0:04:43.280
emojis

0:04:41.120,0:04:45.199
in Emacs 28 emojis are going to have

0:04:43.280,0:04:47.199
their own support within the sequel

0:04:45.199,0:04:49.360
c code and then this is going to allow

0:04:47.199,0:04:52.720
those types of variations and other

0:04:49.360,0:04:54.639
emoji specific font setups so that is

0:04:52.720,0:04:56.720
everything for Emacs

0:04:54.639,0:04:59.120
in the future I don't have a timeline

0:04:56.720,0:05:01.520
for you on when 28 will be available

0:04:59.120,0:05:02.720
but 27 is going to keep improving until

0:05:01.520,0:05:04.479
we're ready to get there

0:05:02.720,0:05:06.479
so have fun with the rest of you max

0:05:04.479,0:05:09.199
conf and I hope to see you there

0:05:06.479,0:05:09.199
bye