summaryrefslogtreecommitdiffstats
path: root/2025/talks
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2025/talks/reader.md188
1 files changed, 188 insertions, 0 deletions
diff --git a/2025/talks/reader.md b/2025/talks/reader.md
index 66de948d..5fe12ead 100644
--- a/2025/talks/reader.md
+++ b/2025/talks/reader.md
@@ -25,6 +25,194 @@ About the speaker:
I’m Divyá from India. My background has been as a mathematics teacher and now I'm a programmer. I’ve been hacking on free software as a hobby and, for the past three to four years, living inside Emacs. I loved reading PDFs in Emacs via pdf-tools, but poor hardware and maintenance gaps pushed me to build a faster reader. I learned MuPDF and Emacs Dynamic Modules and wrote The Emacs Reader: a dynamic-module-based, high-performance, resource-friendly document viewer for Emacs that supports PDFs and other formats (EPUB, CBZ) while integrating natively with Emacs.
+## Discussion / notes
+
+- Q: Is there scope for integrating the C library into Emacs itself
+ with muPDF becoming an optional dependency?
+ - A: That will entail having a pdf engine integrated into Emacs
+ source-tree, not sure if that\'s a good idea.
+- Q: The dynamic modules sound great, and it\'s amazing they\'re there
+ since 2017. Why is it so slow to take off, do you think? Is there
+ prior art with them? 
+ - A: Mostly because Elisp is so nice to use for almost everything
+ you need to do in Emacs. It\'s only in very specific cases that
+ you require to care about real-time latency and memory
+ efficiency. And packages like libvterm and others do use it for
+ such purposes.
+- Q: How is pdf-tools difficult to install? I install it using the
+ built in package manager. Looking at the emacs-reader installation
+ instructions, I don\'t see how install it that easily. I don\'t use
+ use-package or straight. Question answered in presentation.
+- A: Just the list of dependencies required to build epdfinfo itself
+ makes it difficult, and when you install pdf-tools it does a huge
+ autotools build as well. Emacs Reader only (and will always) depends
+ on MuPDF (and Emacs too.).
+- Q: What tool(s) did you use to measure the memory usage between the
+ three packages?
+ - A: Valgrind\'s massif + massif-visualizer
+ - I've been using perf and then visualizing with hotspot when debugging FFI in Common Lisp... it's felt successful
+ - (I've never had success with valgrind, but I've not dug deep with it)
+ - I discovered perf only recently when I had a deep need for low-level optimisation (which is not something I often need) - it's a really nice workflow!
+- Q: How is the conversion between ELisp and the foreign language type
+ system done? For example when interfacing with a C++ library that
+ makes heavy use of C++ object system and templates?
+ - A: Basically, dynamic modules make you write Emacs Lisp in your
+ language. Consult the blogpost above for a more elaborate and
+ complete explanation.
+- Q: pdf-tools renders high quality images. Does emacs-reader do that?
+ - A: Yes! We can render high-quality images just fine!
+- Q: Can one look at pdf metadata with emacs-reader? Can annotations
+ be added? Does it understand forms? Can it handle encrypted pdfs?
+ - A: Support for all of this is planned.
+- Q: I installed emacs-reader already. It is as promised :) Great job!
+ How can I associate odt files to open with emacs-reader?
+ - A: It should just work with the **find-file** command**.**
+- Q: If a pdf file is open in emacs-reader and I regenerate the pdf
+ with some changes, does emacs-reader actually refresh the pdf on its
+ own or do I have to reload the pdf?
+ - A: Yes if it\'s a complete file with the same filename, but no
+ if it\'s still being created with LaTeX - we need SyncTeX for
+ that
+- Q: What are the challenges with integrating with SyncTeX and AucTeX?
+ This would be great to see as pdf-tools handles this well.
+ - A: Planned, no major obstacles anticipated. The only reason we
+ haven\'t done it yet is more important highlighting and text
+ selection features planned.
+- Q:  Loved that presentation! Will you be giving another talk on the
+ architecture you went over? A deep-dive there would be awesome.
+ - A: Not at EmacsConf, but check out my streaming sessions at
+ [https://tv.dyne.org/c/phimulambda](https://tv.dyne.org/c/phimulambda){rel="noreferrer noopener"}
+ and I can talk about it there.
+- Q: Is there search functionality? Something like isearch and occur?
+ - A: Not as such yet. But it is HIGH PRIORITY.
+- Q: Does dynamic module prevent customization that Elisp usually
+ provide? (Advices, Hooks, etc).
+ - A: No, you can do everything on the Elisp side that you want. On
+ the dynamic side, it\'s a bit more tricky, not much support
+ there right now.
+- Q: Follow-up on dynamic module: Do you usually create an Elisp shim
+ from the FFI and then use them with Elisp code?
+ - A: Yes, we usually wrap dynamic module functions in Elisp to
+ make sure the foreign function gets called when it\'s needed.
+- Q: Is searching on the roadmap? Or is it already available as a
+ feature? Thanks!
+ - A:  YES! HIGH PRIORITY \<3
+- Q:  Will there be occur like searching?
+ - A:  YES! Basically everything in PDF Tools is planned!
+- Q:  What is your timing expectation for it to appear on ELPA?
+ - A: By next major release, which will be in 1-2 months.
+- Q: is this essentially FFI?
+ - A: Yup
+- Q: interesting.. is that how webkit integration works?
+ - (audience): not really.
+- Q: thank you. Are there other packages that use dynamic modules?
+ - (audience): Yes, vterm also uses a C module
+- Q: Has any work been done to make org-noter work with emacs reader?
+ - (audience): not yet. It is in the plans, though.
+ - (audience): Nice. That would allow me to switch, because I use org-noter quite a bit.
+- Q: Are any of you doing simple editing of PDFs in Emacs? I'm thinking about form-filling, adding signatures, that sort of thing
+ - A: that's something I'd also like to integrate once we have other basic features ready
+ - (audience): not yet. We do want to add annotation support though. Not sure if that's the same thing.
+ - I don't believe it is, but I could be mistaken
+ - A: slightly, but not exactly, mupdf does support forms and signatures so we shouldn't have much issues except making it work with emacs.
+ - I'm not fond of annotations, because it mutates the original PDF.
+- Q: From the example when calling page 56, is there another thread immediately fetching the next 5 pages for cache?
+ - A: yeah indeed I'll talk about it later in the slides, you'll have to build mupdf from scratch in that case.
+ - A: there are multiple threads competing to fill the cache window, depending upon how long it takes to render each slice.
+- Q: here is a question that I am a bit embarassed to ask... is there an easy way to install emacs-reader with package-vc without use-package?
+ - yes!
+ - I am asking just because I've been postponing learning use-package for ages
+ - you can use just package-vc totally. use-package uses package-vc under the hood anyway
+ - I tried this - (package-vc-install "https://codeberg.org/divyaranjan/emacs-reader")
+ - you need to do a build step. you can just go and do it manually
+- Q: how does the dark mode compare to midnight mode in pdf-tools?
+ - it is simply inverting the colors
+ - Q: so it does not support setting the foreground and background colours?
+ - It does not.
+ - pdf-tools has pdf-view-themed-minor-mode that tries to match a PDF with the current theme. It's kinda nice. I'm glad Emacs Reader is aiming to have something similar in the near future.
+ - dark mode intergration with the dark themes would be cool
+- Q: that is a question that I've had for ages - how do we handle that PDFs that (La)TeX generates one page at a time, and that will be broken until the last page is generated...
+ - using synctex
+- Q: I will try to attend one of your streamings... where can I find info about them?
+ - A: https://tv.dyne.org/c/phimulambda
+ - we also have an IRC at #phi-mu-lambda you're also welcomed there edrx
+- Q: Oh, emacs reader can open epubs? I use nov.el for that, and it has trouble sometimes with complex epubs.
+ - yup it can :D
+ - it comes for free with mupdf
+ - I mean if mupdf supports it, emacs reader will to
+ - the only thing we don't support is djvu, but i have plans of making it supported in upstream mupdf
+ - Oh cool, I didn't know about the other formats!
+
+- [https://codeberg.org/divyaranjan/emacs-reader](https://codeberg.org/divyaranjan/emacs-reader){rel="noreferrer noopener"}
+ - [https://mupdf.com/](https://mupdf.com/){rel="noreferrer noopener"}
+ - [https://www.phimulambda.org/blog/emacs-dynamic-module.html](https://www.phimulambda.org/blog/emacs-dynamic-module.html){rel="noreferrer noopener"}
+ \<\-- that\'s a nice blog post.
+- Love this arch diagram step through
+- The linked blog for dynamic modules:
+ [https://www.phimulambda.org/blog/emacs-dynamic-module.html](https://www.phimulambda.org/blog/emacs-dynamic-module.html){rel="noreferrer noopener"}
+- You can set the maximum ram usage in Okular settings. If it is
+ configured to load the entire document scrolling is instant even in
+ large documents \[not the author: this is only relevant to hugely
+ beefy machines, surely? And it sounds like the Reader does it
+ naturally, if you will\]
+
+- 16GB of RAM goes a long way even for huge documents like technical
+ datasheets or photo pdfs. Just be careful not to open too many of
+ them while also having a lot of browser tabs.
+- Looks like Reader simply displays the old page until the new one is
+ ready. While better than showing a white page it\'s not instant like
+ Okular
+- A: Emacs reader doesn\'t require 16GB RAM to do that same, because
+ it doesn\'t need to cache everything at once, unlike Okular. The
+ talk shows a video demonstration of it getting stuck when not
+ configured to use maximum ram (in which it caches the pages.).
+- I didn't realize pdf-tools was using so much RAM.
+ - I definitely noticed, lol
+ - The memory graphs are already a very compelling point for emacs reader. I will definitely give this a try.
+ - If you are dealing with large PDFs you *really* feel the difference
+ - For doc-view yes. For pdf-tools I have noticed it, but very rarely.
+ - But yeah, it is interesting how much memory it's taking
+ - I will definitely try this
+ - pdf tool caches the pages. once you are moving too fast, it is almost as slow as doc view, because it doesn't have it cached anymore
+- This look promising! Dealing with PDFs is an important part of the
+ things I do with Emacs (academic work). Certainly that Pdf-tools was
+ already a much needed improvement to Doc-View - for example, not
+ being able to select text was quite an issue. So when you get text
+ selection and annotations working, I will be certainly looking
+ forward your library.
+- Great talk about emacs-reader. Looking forward to using it.
+- Thank you for making this! :-)
+- Really tasteful typography on your slides divya
+ - A: Thank you it's all in Org :)
+- I like pdf-tools, but I'm open to trying something new.
+- pdf-tools mostly works well, but these points are very much valid
+- also have been fairly satisfied with pdf-tools and avoided installation pain because the package manager of choice makes it easy, intrigued by reader and curious to try regardless though
+- I've been using emacs-reader for some time - I have packaged it for nix, although I haven't submitted it to nixpkgs in the hope that emacs-reader will one day end up in ELPA/MELPA. https://git.sr.ht/~johnhamelink/nix/tree/master/item/home/modules/emacs/src/epkgs/reader.nix
+- Love this arch diagram step through
+- Org-noter integration would be very good
+ - I am also a big org-noter user
+ - A: I used pdf-tools for several years, indeed I love org-noter as well. certainly a priority integration for us.
+- I like the use of diagrams in this talk. It makes it easier to understand.
+ - I just realized the thread pool has a bunch of "threads" in it!
+ - That's what those were! I was thinking, "What does 'S' stand for?"
+- very impressive work, I'll have to try this later
+- Very nice. I'm definitely giving this a try.
+- On my OS: MuPDF version 1.19.0 too old. Require ≥ 1.26.0.
+ - yueah that is a major problem
+- Already looks very promising and the upcoming features are likely to make me switch completely from pdf-tools.
+- Exciting project!
+- very cool!
+- Playing with mupdf standalone, epubs look very nice!
+- very nice talk.
+- great talk divya! great talk indeed!
+- Great talk, thank you!
+- I'm sold on Emacs Reader. (looking forward to org-noter support)
+- fantastic talk! many claps! =)
+- Super cool, emacs-reader on the list to try, we'll see if I can get it installed before the ELPA release
+
+- I'm super excited about this 😊
+- great presentation 👏
+- Great talk about emacs-reader. Looking forward to using it.
[[!inline pages="internal(2025/info/reader-after)" raw="yes"]]