diff options
Diffstat (limited to '2024/info/rust-before.md')
-rw-r--r-- | 2024/info/rust-before.md | 65 |
1 files changed, 57 insertions, 8 deletions
diff --git a/2024/info/rust-before.md b/2024/info/rust-before.md index 17852443..87bd4f60 100644 --- a/2024/info/rust-before.md +++ b/2024/info/rust-before.md @@ -1,18 +1,67 @@ <!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 21-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Etherpad: <https://pad.emacsconf.org/2024-rust> +Status: TO_CAPTION_QA -The following image shows where the talk is in the schedule for Sat 2024-12-07. 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="rust"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/maxima" title="Emacs, eev, and Maxima - now!" data-slug="maxima"><title>11:30-11:50 Emacs, eev, and Maxima - now!</title><rect x="205" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(230,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">maxima</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: quick install, peer graph, transclusion!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: quick install, peer graph, transclusion!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect stroke-width="3" x="137" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</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(82,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(164,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(247,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(329,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(411,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(494,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(576,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(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">5 PM</text></g></svg> -</div> -[[!toc ]] -Format: 21-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-rust.html> -Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf) -Status: Quality check -<div>Times in different time zones:</div><div class="times" start="2024-12-07T15:40:00Z" end="2024-12-07T16:00:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~10:40 AM - 11:00 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~9:40 AM - 10:00 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~8:40 AM - 9:00 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~7:40 AM - 8:00 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~3:40 PM - 4:00 PM UTC <br />Saturday, Dec 7 2024, ~4:40 PM - 5:00 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~5:40 PM - 6:00 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~9:10 PM - 9:30 PM IST (Asia/Kolkata)<br />Saturday, Dec 7 2024, ~11:40 PM - 12:00 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~12:40 AM - 1:00 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div> +# Talk + +<div class="vid"><video controls preload="none" id="rust-mainVideo"><source src="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="rust-mainVideo" data=""" +00:00.000 Rune +00:17.082 The Emacs core +00:57.168 Why create this? +01:55.865 How does this compare to other projects? +03:01.315 Multi-threading +03:32.441 Multi-threading elisp +03:47.648 No-GIL method +04:32.638 Actors +04:51.252 Multi-threading elisp (functions) +05:34.680 Caveats +05:57.090 Multi-threading elisp (data) +06:38.249 Copy values to other threads on demands +06:57.884 Multi-threading elisp (buffers) +08:11.903 Would this actually be useful? +08:46.919 Precise garbage collection +09:16.537 How Emacs used to deal with roots +10:38.713 Conservative stack scanning +11:00.157 Movable objects +12:38.829 How Rust makes precise GC easy +14:13.227 Other Rust niceties: proc macro +15:14.560 sum types +16:01.041 Regex +16:16.052 Parsers +16:27.210 Other changes: GUI first, terminal second +16:58.919 Off-screen cursor +17:16.305 Image flow +17:24.440 Testing +18:36.345 Status +19:07.247 Next directions +19:22.739 How to get involved + +"""]]<div></div>Duration: 20:06 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-rust">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.webm">Download --main.webm (46MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--slides.org">Download --slides.org</a></li><li><a href="https://toobnix.org/w/wYBo5m5jsiu1JUfcHzdhhu">View on Toobnix</a></li></ul></div></div> + +# Q&A +<div class="vid"><video controls preload="none" id="rust-qanda"><source src="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="rust-qanda" data=""" +00:08.500 Q: Have you considered using CRDTs to share buffers between threads and merge any concurrent edits automatically? +01:05.874 Q: Why hosted on GitHub? GitHub is nonfree. Is it possible to report bugs/send patches without using GitHub? +01:22.960 Q: Do you think it's possible to achieve 100% compatibility with current Emacs code? +02:11.913 Q: so you're re-implementing elisp in rust? have you considered using a more modern lisp, such as scheme? [11:03] +04:01.400 Q: Do you have specific features from the Rust compiler that are missing (or are nightly-only) that you would take advantage of? +05:26.880 Q: Can remacs be reused? +07:23.600 Q: What are you thoughts on the GUI layer. Any plans on how to reimplement it? +08:21.240 Q: If money could fix the problem, how much would it cost to ship this with feature parity before 2026? +09:28.350 GObject implementation +09:56.600 Q: elisp is implemented in c, so if you're not implementing elisp in rust, are you using/keeping the c implementation of elisp? +10:42.680 Clarifying rewriting Elisp in Rust +12:57.908 Q: Will your Rust implementation also be able to run Emacs bytecode? Or are you implementing it at the Lisp level? +14:20.100 Q: Is it possible to bootstrap with just the bytecode interpreter? +17:03.960 What would it take to bootstrap Guile in Rune? +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="rust-qanda-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.opus"></audio></div><div></div>Duration: 19:15 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-rust">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.opus">Download --answers.opus (9.8MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.webm">Download --answers.webm (42MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file |