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
|