0:00:00.080,0:00:04.960
hello emacs conf 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