WEBVTT 00:00:00.000 --> 00:00:17.081 Rune 00:00:17.082 --> 00:00:57.167 The Emacs core 00:00:57.168 --> 00:01:55.864 Why create this? 00:01:55.865 --> 00:03:01.314 How does this compare to other projects? 00:03:01.315 --> 00:03:32.440 Multi-threading 00:03:32.441 --> 00:03:47.647 Multi-threading elisp 00:03:47.648 --> 00:04:32.637 No-GIL method 00:04:32.638 --> 00:04:51.251 Actors 00:04:51.252 --> 00:05:34.679 Multi-threading elisp (functions) 00:05:34.680 --> 00:05:57.089 Caveats 00:05:57.090 --> 00:06:38.248 Multi-threading elisp (data) 00:06:38.249 --> 00:06:57.883 Copy values to other threads on demands 00:06:57.884 --> 00:08:11.902 Multi-threading elisp (buffers) 00:08:11.903 --> 00:08:46.918 Would this actually be useful? 00:08:46.919 --> 00:09:16.536 Precise garbage collection 00:09:16.537 --> 00:10:38.712 How Emacs used to deal with roots 00:10:38.713 --> 00:11:00.156 Conservative stack scanning 00:11:00.157 --> 00:12:38.828 Movable objects 00:12:38.829 --> 00:14:13.226 How Rust makes precise GC easy 00:14:13.227 --> 00:15:14.559 Other Rust niceties: proc macro 00:15:14.560 --> 00:16:01.040 sum types 00:16:01.041 --> 00:16:16.051 Regex 00:16:16.052 --> 00:16:27.209 Parsers 00:16:27.210 --> 00:16:58.918 Other changes: GUI first, terminal second 00:16:58.919 --> 00:17:16.304 Off-screen cursor 00:17:16.305 --> 00:17:24.439 Image flow 00:17:24.440 --> 00:18:36.344 Testing 00:18:36.345 --> 00:19:07.246 Status 00:19:07.247 --> 00:19:22.738 Next directions 00:19:22.739 --> 00:20:06.000 How to get involved