summaryrefslogtreecommitdiffstats
path: root/2022/info
diff options
context:
space:
mode:
Diffstat (limited to '2022/info')
-rw-r--r--2022/info/devel-after.md125
-rw-r--r--2022/info/devel-before.md27
2 files changed, 150 insertions, 2 deletions
diff --git a/2022/info/devel-after.md b/2022/info/devel-after.md
index 542d805a..5d7eada3 100644
--- a/2022/info/devel-after.md
+++ b/2022/info/devel-after.md
@@ -1,6 +1,131 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
+<a name="devel-mainVideo-transcript"></a>
+# Transcript
+
+[[!template new="1" text="""Hello, it's time for another Emacs development update.""" start="00:00:00.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I want to thank the organizers of EmacsConf""" start="00:00:05.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for putting this together""" start="00:00:07.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and also the maintainers of Emacs""" start="00:00:10.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""with a special thanks to Eli Zaretskii.""" start="00:00:12.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""It's really he who gave me this information""" start="00:00:14.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""so that I could pass it along to you.""" start="00:00:16.520" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""The main thing to discuss this time""" start="00:00:19.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""with regard to what's been going on with Emacs is Emacs 29.""" start="00:00:21.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""The release cycle for Emacs 29 should begin in December""" start="00:00:25.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""when a branch will be cut and the release work will start.""" start="00:00:29.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""We should be seeing Emacs 29 coming out fairly soon.""" start="00:00:32.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Here's just a brief overview""" start="00:00:36.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""of some of the things to look forward to""" start="00:00:38.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""coming up in Emacs 29.""" start="00:00:39.680" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""Overlays have been re-implemented.""" start="00:00:42.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""If you haven't used them before,""" start="00:00:45.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""overlays are a way to apply a set of properties""" start="00:00:47.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""over a range of text so that""" start="00:00:50.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""you can have things like mouse clicks""" start="00:00:53.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""take on different behavior""" start="00:00:55.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""depending on where it happens in the text.""" start="00:00:57.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""This is different than text properties""" start="00:00:59.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""which associate the properties with the text itself.""" start="00:01:01.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Overlays do not alter the text in any way""" start="00:01:04.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and they simply, as the name suggests,""" start="00:01:07.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""overlay on the buffer.""" start="00:01:09.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Now previously, overlays were implemented as linear lists""" start="00:01:10.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""which got very slow when there were""" start="00:01:14.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""a lot of overlays in a buffer.""" start="00:01:15.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Now they're being re-implemented as trees,""" start="00:01:17.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""so that searching should be very fast, and""" start="00:01:19.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in fact, comparable to text properties.""" start="00:01:21.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""This is already on the master branch""" start="00:01:24.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and (more or less) is ready for release.""" start="00:01:26.520" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""Eglot has been ported into Emacs.""" start="00:01:29.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Eglot is an LSP [Language Server Protocol] client for Emacs,""" start="00:01:32.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""one of the two that are often used.""" start="00:01:36.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But now it's going to be included in core,""" start="00:01:38.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""so it's considered official""" start="00:01:40.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and will be well integrated with other Emacs features.""" start="00:01:42.760" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""There's going to be a Tree-sitter library.""" start="00:01:46.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Tree-sitter is a way of building fast incremental parsers.""" start="00:01:48.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There's a website on Tree-sitter if you Google for that.""" start="00:01:53.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""This can be used for various features,""" start="00:01:56.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but first and foremost, it'll be used""" start="00:01:57.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for fontification and indentation in Emacs.""" start="00:01:59.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Instead of heuristics and regular expressions,""" start="00:02:02.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""you can now build your fontifications""" start="00:02:05.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""based on a parse tree.""" start="00:02:07.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There's a branch now that supports this""" start="00:02:09.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for several modes already, like Python, TypeScript,""" start="00:02:10.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and JavaScript.""" start="00:02:13.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""We don't have anyone yet working on it for C mode""" start="00:02:15.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but Eli has challenged whether anyone""" start="00:02:18.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in the community is interested.""" start="00:02:20.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""He would love to see Tree-sitter support added for C mode,""" start="00:02:21.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because this has been quite slow""" start="00:02:25.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""when dealing with very, very large files""" start="00:02:27.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and Tree-sitter should help that.""" start="00:02:29.640" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""There have been significant improvements""" start="00:02:32.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in dealing with very long lines.""" start="00:02:34.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""This is something that has been""" start="00:02:36.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""a long time frequent complaint.""" start="00:02:38.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs becomes rather unusable""" start="00:02:40.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""if you open a giant file that's a single long line.""" start="00:02:42.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Anyone who's ever tried to open a 30 megabyte JSON file""" start="00:02:45.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that's all on one line will know this pain.""" start="00:02:49.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Some modes, however, will have to adapt to this change,""" start="00:02:52.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because sometimes access to the whole buffer""" start="00:02:55.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""is now forcefully restricted.""" start="00:02:58.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""If the mode requires access to the entire buffer""" start="00:03:00.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""at all times to work, then the developer of that mode""" start="00:03:04.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""will need to devise some simplifications""" start="00:03:08.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""so that they don't require that complete access.""" start="00:03:10.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""For example, if a mode used to go way back""" start="00:03:13.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""to the beginning of the buffer""" start="00:03:15.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in order to determine if there's an unbalanced parenthesis,""" start="00:03:16.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""this won't work in the new long lines support mode,""" start="00:03:19.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because the entire buffer is not always available.""" start="00:03:23.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs is sort of doing some""" start="00:03:25.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""restricting of the buffer heuristically""" start="00:03:27.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in order to keep the visible range working""" start="00:03:29.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""very, very quickly now.""" start="00:03:32.480" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""Emacs can now build directly with SQLite.""" start="00:03:35.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""This means that SQLite databases""" start="00:03:39.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""can be directly accessible from Emacs.""" start="00:03:42.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Should be nice for anyone whose mode wants to""" start="00:03:44.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""cache or store some queryable data.""" start="00:03:47.360" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""The XInput extension is now up to version 2.""" start="00:03:50.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There are many extensions in this specification.""" start="00:03:54.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""From the user's point of view,""" start="00:03:58.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it enables things like smooth scrolling and touch devices.""" start="00:03:59.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs will now use this by default on all systems""" start="00:04:03.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""where the library is installed.""" start="00:04:06.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""It should be on every modern system that uses X.""" start="00:04:08.560" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""There's also a pure GTK build in Emacs 29.""" start="00:04:11.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""The purpose of this is to allow Emacs""" start="00:04:15.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""on systems without X, such as Wayland or Broadway,""" start="00:04:17.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""to be able to have a graphical build of Emacs.""" start="00:04:21.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There's also lots of improvements to drag and drop""" start="00:04:24.160" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""on X systems, for people who like drag and drop.""" start="00:04:27.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And there's support for double buffering on Microsoft Windows.""" start="00:04:31.360" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""The last of the headline features""" start="00:04:34.280" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""coming for Emacs 29 is emoji input.""" start="00:04:38.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So there will now be a prefix key,""" start="00:04:41.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""C-x 8 e for emoji input,""" start="00:04:43.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""along with several new commands to insert emoji""" start="00:04:47.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""by various forms of shorthand.""" start="00:04:50.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There will even be an input method""" start="00:04:52.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""where you can write the plain English names of emojis""" start="00:04:54.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and have the symbol inserted.""" start="00:04:57.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So that rounds out some of the features""" start="00:04:59.120" video="mainVideo-devel" id="subtitle"]]
+[[!template new="1" text="""coming up for Emacs 29.""" start="00:05:02.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Sounds like an exciting release""" start="00:05:03.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and it should be headed your way soon.""" start="00:05:05.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I hope everybody has fun at the conference""" start="00:05:07.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and enjoy yourselves.""" start="00:05:09.920" video="mainVideo-devel" id="subtitle"]]
+
+
+
+Captioner: sachac
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20devel%3A%20Emacs%20development%20updates)
diff --git a/2022/info/devel-before.md b/2022/info/devel-before.md
index 33499073..31964750 100644
--- a/2022/info/devel-before.md
+++ b/2022/info/devel-before.md
@@ -3,16 +3,39 @@ In this talk, John Wiegley will briefly summarize important developments on the
The following image shows where the talk is in the schedule for Sun 2022-12-04. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="devel">
-<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:05- 9:25 Results of the 2022 Emacs Survey</title> <rect x="7" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:55-10:20 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="86" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(123,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.5" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="525" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(554,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect stroke-width="3" x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(679,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:00- 1:15 Getting detached from Emacs</title> <rect x="376" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(397,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg>
+<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:06- 9:26 Results of the 2022 Emacs Survey</title> <rect x="9" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(38,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:57-10:22 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="89" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(126,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.5" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="525" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(554,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect stroke-width="3" x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(679,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:01- 1:16 Getting detached from Emacs</title> <rect x="378" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(399,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 4:30- 4:35 Short hyperlinks to Python docs</title> <rect x="705" y="75" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(710,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg>
</div>
[[!toc ]]
Format: 6-min talk followed by after the conference Q&A (<a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen">#emacsconf-gen</a>)
Etherpad: <https://pad.emacsconf.org/2022-devel>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Talk captioned
+Status: Now playing on the conference livestream
<div>Times in different timezones:</div><div class="times" start="2022-12-04T21:05:00Z" end="2022-12-04T21:15:00Z"><div class="conf-time">Sunday, Dec 4 2022, ~4:05 PM - 4:15 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 4 2022, ~3:05 PM - 3:15 PM CST (US/Central)<br />Sunday, Dec 4 2022, ~2:05 PM - 2:15 PM MST (US/Mountain)<br />Sunday, Dec 4 2022, ~1:05 PM - 1:15 PM PST (US/Pacific)<br />Sunday, Dec 4 2022, ~9:05 PM - 9:15 PM UTC <br />Sunday, Dec 4 2022, ~10:05 PM - 10:15 PM CET (Europe/Paris)<br />Sunday, Dec 4 2022, ~11:05 PM - 11:15 PM EET (Europe/Athens)<br />Monday, Dec 5 2022, ~2:35 AM - 2:45 AM IST (Asia/Kolkata)<br />Monday, Dec 5 2022, ~5:05 AM - 5:15 AM +08 (Asia/Singapore)<br />Monday, Dec 5 2022, ~6:05 AM - 6:15 AM JST (Asia/Tokyo)</div></div><div><a href="/2022/watch/gen/">Find out how to watch and participate</a></div>
+[[!template id="vid" vidid="devel-mainVideo" src="https://media.emacsconf.org/2022/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.webm" poster="https://media.emacsconf.org/2022/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.png" captions="""<track label="English" kind="captions" srclang="en" src="/2022/captions/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt" default />"""
+size="34M" duration="5:15" other_resources="""[Download --main.webm (33MB)](https://media.emacsconf.org/2022/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.webm)
+[Download --main.vtt](https://media.emacsconf.org/2022/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt)
+[Download --main--chapters.vtt](https://media.emacsconf.org/2022/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main--chapters.vtt)
+[View transcript](https://emacsconf.org/2022/talks/devel#devel-mainVideo-transcript)
+[View on Toobnix](https://toobnix.org/w/o8S5uKpPTCD717zwHPd5cD)
+"""]]
+[[!template id="chapters" vidid="devel-mainVideo" data="""
+00:00:00.000 Introduction
+00:19.320 Emacs 29 release cycle
+00:42.400 Overlays
+01:29.080 Eglot
+01:46.480 Tree-sitter
+02:30.840 Very long lines
+03:35.240 SQLite
+03:50.080 XInput
+04:11.320 Pure GTK build
+04:24.640 Drag and drop
+04:31.400 Double-buffering on Microsoft Windows
+04:35.240 Emoji input
+05:00.080 End
+
+"""]]
# Description