summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley-autogen.vtt
blob: 7c0d9ed54a84b803b1fa0a04a4472ae3e7fb01b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
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