All talks: https://emacsconf.org/2023/talks/
Eat and Eat powered Eshell, fast featureful terminal inside Emacs
https://emacsconf.org/2023/talks/eat - Akib Azmain Turja - Track: General
Watch/participate: https://emacsconf.org/2023/watch/gen/
Q&A room: https://media.emacsconf.org/2023/current/bbb-eat.html
IRC: Speaker nick: akib - https://chat.emacsconf.org/#/connect?join=emacsconf,emacsconf-gen or #emacsconf-gen on libera.chat network
Guidelines for conduct: https://emacsconf.org/conduct
See end of file for license (CC Attribution-ShareAlike 4.0 + GPLv3 or later)
----------------------------------------------------------------
Notes, discussions, links, feedback:
- I found out about EAT a while ago and was excited to find out that it works so well! Thank you for your great work!
----------------------------------------------------------------
Questions and answers go here:
- Q: Have you thought about upstreaming EAT?
- A: Yes, but I haven't yet completed the copyright paperwork.
- S: Look into it, I think it would be great to have a better implementation of a terminal OOTB!
- Q: Very impressive! What lessons did you learn while developing EAT?
- A:I learned how to optimize Elisp code, and also how terminals work actually. And also process handling in Elisp.
- Q: How long did it take you to develop EAT to this point?
- A:It took around 5 months to make it working at bare minimum.
- Q: Did you have any experience with terminal emulation before working on EAT?
- A:Not much really. I mean I knew how terminals worked but I didn't know the escape sequences.
- Q:Impressive work; I look forward to trying it. What did you want that Vterm did not provide? I think I'll try it today.
- A:The keybindings, specially. And also I wanted Eshell terminal emulation.
- Q: Is Elisp native-compilation what allows EAT to peform as well as or better than Vterm, or is EAT even that fast with just byte-compilation?
- A:I use native-compilation. But Eat is still quite a few times faster than Term mode when byte-compiled.
- Q: Should it work on Emacs 28.1?
- Q: What does EAT do differently than other terminal emulators that allows it to perform so well?
- A:I don't really know quite clearly. At the time I implemented the main code, I had plenty of time. I did profiling and tried various implementations to do the same thing.
- Q: what sparked your interest in Emacs, considering its often perceived as outdated, and how do its powerful capabilities remain relevant today?
- A: First of all, it's free software, I have the freedom. And the IDEs I used to use were resource hogs, so needed something lightweight. And, after I started using Emacs, I discovered how powerful it actually is. Emacs is itself a programming platform, so you can make literally anything with it.
- Q: have you thought about making EAT work with shell-mode?
- A: Yes, I have considered integrating with shell-mode/Comint but it doesn't work, they need the terminal text to be mutable and Eat doesn't support that. So I have implemented "line mode," an input mode similar to shell-mode.
----------------------------------------------------------------
Next talks:
Questions/comments related to EmacsConf 2023 as a whole? https://pad.emacsconf.org/2023
----------------------------------------------------------------
This pad will be archived at https://emacsconf.org/2023/talks/eat after the conference.
Except where otherwise noted, the material on the EmacsConf pad are dual-licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International Public License; and the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) an later version. Copies of these two licenses are included in the EmacsConf wiki repository, in the COPYING.GPL and COPYING.CC-BY-SA files (https://emacsconf.org/COPYING/)
By contributing to this pad, you agree to make your contributions available under the above licenses. You are also promising that you are the author of your changes, or that you copied them from a work in the public domain or a work released under a free license that is compatible with the above two licenses. DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION.