blob: 7c0d9ed54a84b803b1fa0a04a4472ae3e7fb01b1 (
plain) (
tree)
|
|
WEBVTT
00:00:00.080 --> 00:00:03.040
hello EmacsConf this is john wigley 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
00:00:06.319 --> 00:00:09.280
and lars ingebrigston and I wanted to
00:00:09.280 --> 00:00:09.840
give you
00:00:09.840 --> 00:00:12.639
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:18.400 --> 00:00:20.640
specifically uh 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
00:00:24.480 --> 00:00:25.840
directing most of the
00:00:25.840 --> 00:00:28.000
technical contributions on the mailing
00:00:28.000 --> 00:00:30.160
list and monitoring all the patches
00:00:30.160 --> 00:00:33.200
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
00:00:35.840 --> 00:00:37.120
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
00:00:40.320 --> 00:00:42.480
and cairo plus half buzz is going to be
00:00:42.480 --> 00:00:44.800
the preferred rendering combination
00:00:44.800 --> 00:00:46.879
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
00:00:51.440 --> 00:00:52.960
so most of those bugs have been fixed
00:00:52.960 --> 00:00:54.960
recently and now it becomes the default
00:00:54.960 --> 00:00:56.320
and 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
00:01:00.320 --> 00:01:01.680
forward to those
00:01:01.680 --> 00:01:04.720
xft as a result is deprecated there are
00:01:04.720 --> 00:01:06.560
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
00:01:08.720 --> 00:01:10.960
it was the most advanced font mac end
00:01:10.960 --> 00:01:13.760
and emax before cairo became dependable
00:01:13.760 --> 00:01:15.920
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
00:01:19.360 --> 00:01:23.200
go from xft to that native compilation
00:01:23.200 --> 00:01:23.840
in lisp
00:01:23.840 --> 00:01:26.400
will also be landing soon it's currently
00:01:26.400 --> 00:01:28.080
on a branch but there are several people
00:01:28.080 --> 00:01:28.799
using it
00:01:28.799 --> 00:01:31.040
they say they're very impressed it does
00:01:31.040 --> 00:01:32.479
require live gcc
00:01:32.479 --> 00:01:35.600
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
00:01:37.439 --> 00:01:38.960
installed
00:01:38.960 --> 00:01:41.040
execution of Emacs lisp with native
00:01:41.040 --> 00:01:42.240
compilation on
00:01:42.240 --> 00:01:45.280
is about 2.5 times faster than the
00:01:45.280 --> 00:01:46.159
bytecode
00:01:46.159 --> 00:01:48.399
interpreter we don't yet have any
00:01:48.399 --> 00:01:49.439
measurements on
00:01:49.439 --> 00:01:51.600
memory or how it affects resources
00:01:51.600 --> 00:01:52.960
besides cpu so
00:01:52.960 --> 00:01:54.720
we do look forward to having more
00:01:54.720 --> 00:01:56.399
numbers and analysis to see what the
00:01:56.399 --> 00:01:58.320
real impact of that is going to be
00:01:58.320 --> 00:02:01.360
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
00:02:04.320 --> 00:02:06.240
a downside to the native compilation at
00:02:06.240 --> 00:02:08.080
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
00:02:12.720 --> 00:02:14.959
it can still take 15 minutes to compile
00:02:14.959 --> 00:02:15.760
Emacs
00:02:15.760 --> 00:02:17.840
and all of its in all of its lisp code
00:02:17.840 --> 00:02:19.520
with this enabled
00:02:19.520 --> 00:02:21.840
also this is going to have to happen on
00:02:21.840 --> 00:02:23.120
every user's machine
00:02:23.120 --> 00:02:25.360
because we cannot distribute the native
00:02:25.360 --> 00:02:27.520
compilation products they are specific
00:02:27.520 --> 00:02:28.319
to the compo
00:02:28.319 --> 00:02:29.760
to the processor that you might be
00:02:29.760 --> 00:02:31.440
running on so
00:02:31.440 --> 00:02:33.920
the emax distribution will remain much
00:02:33.920 --> 00:02:35.680
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
00:02:39.599 --> 00:02:41.519
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
00:02:45.840 --> 00:02:48.959
the gtk only build is being prepared
00:02:48.959 --> 00:02:52.160
for merging so what this does is it
00:02:52.160 --> 00:02:52.959
throws away
00:02:52.959 --> 00:02:55.120
most of the other tool kits that Emacs
00:02:55.120 --> 00:02:56.000
was using
00:02:56.000 --> 00:02:59.280
and relies only on gtk making Emacs
00:02:59.280 --> 00:03:01.760
much more of a gtk application than it
00:03:01.760 --> 00:03:03.920
has been
00:03:03.920 --> 00:03:06.480
the main issue here is that we were
00:03:06.480 --> 00:03:08.480
abusing gtk in some ways that weren't
00:03:08.480 --> 00:03:09.360
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
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:17.440 --> 00:03:19.280
be using it in the ways that the gtk
00:03:19.280 --> 00:03:21.200
developers intended
00:03:21.200 --> 00:03:23.360
there is going to be much more support
00:03:23.360 --> 00:03:24.640
for xt mouse
00:03:24.640 --> 00:03:27.280
so xt mouse allows you to use your mouse
00:03:27.280 --> 00:03:29.120
inside of a terminal window
00:03:29.120 --> 00:03:30.799
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
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:39.840 --> 00:03:42.879
mouse you get full support this is going
00:03:42.879 --> 00:03:44.959
to allow
00:03:44.959 --> 00:03:46.720
changes in the way that things can be
00:03:46.720 --> 00:03:48.159
bound the ways that
00:03:48.159 --> 00:03:51.200
uh 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
00:03:56.879 --> 00:03:58.480
this support is being extended even
00:03:58.480 --> 00:03:59.040
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
00:04:04.080 --> 00:04:06.239
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
00:04:09.840 --> 00:04:12.720
which has not been true until now Emacs
00:04:12.720 --> 00:04:14.680
27 will be soon releasing
00:04:14.680 --> 00:04:17.519
27.2 and the pretest for that should
00:04:17.519 --> 00:04:19.919
begin sometime soon after Emacs comp is
00:04:19.919 --> 00:04:20.880
done
00:04:20.880 --> 00:04:23.360
and finally Emacs 28 is going to get
00:04:23.360 --> 00:04:24.800
better emoji support
00:04:24.800 --> 00:04:26.479
right now emojis are registered
00:04:26.479 --> 00:04:29.120
internally within Emacs as symbols
00:04:29.120 --> 00:04:31.759
which works in some ways but does not
00:04:31.759 --> 00:04:33.759
support some of the special features
00:04:33.759 --> 00:04:37.360
of 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
00:04:41.120 --> 00:04:43.280
in Emacs 28 emojis are going to have
00:04:43.280 --> 00:04:45.199
their own support within the sequel
00:04:45.199 --> 00:04:47.199
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:52.720 --> 00:04:54.639
everything for Emacs
00:04:54.639 --> 00:04:56.720
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
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
00:05:02.720 --> 00:05:04.479
so have fun with the rest of you max
00:05:04.479 --> 00:05:06.479
conf and I hope to see you there
00:05:06.479 --> 00:05:09.199
bye
|