summaryrefslogblamecommitdiffstats
path: root/2024/info/rust-before.md
blob: 87bd4f60f9ec729222fdff09bd81265d8d896027 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                                                                 
                                                                                                                                                                 
                                                 
                       
 



 

      






























                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   


     
















                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

                                            
<!-- 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  





# 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 -->