diff options
Diffstat (limited to '')
-rw-r--r-- | 2021/talks/eaf.md | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/2021/talks/eaf.md b/2021/talks/eaf.md index 78a52c78..6fc946a6 100644 --- a/2021/talks/eaf.md +++ b/2021/talks/eaf.md @@ -19,6 +19,50 @@ last year, this talk will briefly go over them. IRC nick: matthewzmd +- Q1: Any plans for supporting other languages? It\'d be great to use + EAF to offload processing to Common Lisp, for example. + - A: You\'re able to use Python & JavaScrpt/Vue to extend on top + of Elisp, it is so far enough (Python for Qt apps and JS for web + apps). Currently I don\'t see a clear advantage of using Common + Lisp as well, but there could definitely be a support in theory. +- Q2: is there an eaf-app that\'s not a bootstrapping nightmare? + (having Vue as a dependency, eg) + - A: I don\'t fully understand what you mean by \"bootstrapping + nightmare\", all these dependencies are system dependencies that + you install like any other system dependency, it doesn\'t slow + the Emacs startup nor the system startup. But if you\'re asking + for an app suggestion with lightweight dependencies without JS + or Vue dependencies, the popular EAF Browser and EAF PDF Viewer + are cool app options. +- Q3: Are there security implications to having a browser in emacs? + - A \[opalvaults\]: With how Emacs deals with things like + GPG/pass/etc. I feel like it\'s probably as secure as you make + it? + - A: \[matthewzmd\] the browser application is independent from + emacs itself, you\'re using a browser in emacs, but the browser + is not actually \*in\* emacs. The browser is QtWebEngine, a + modified Chromium without Google stuff, it is as safe as a + Chromium can be. +- Q4: maybe i misunderstood, but is every eaf app essentially embedded + QT? + - A: yes, it\'s built upon qt-webengine + - A: Yes, it uses PyQt5 and it\'s essentially painting the Qt + frame on top of emacs, simulating a buffer. EPC is used for + Elisp \<-\> Python \<-\> JS communication so that you can extend + Emacs in various langauges + - Q: I guess/hope this is using qtwebengine, not qtwebkit? + - A: right, qtwebengine. If you wanna dig more into the + internals of EAF, I suggest you to read this part of the + Wiki + (<https://github.com/emacs-eaf/emacs-application-framework/wiki/Hacking)> + or my talk from last year + (<https://emacsconf.org/2020/talks/34/)> +- Q5: Can the EAF dependencies be made into dynamically loadable + modules for Emacs, so there will be no need to rebuilt Emacs? + - A: There is no need to rebuilt Emacs, they\'re simply + dependencies that you can install using the system package + managers (pacman, apt, etc), npm install and pip install + - One thing I never tried watching all this is viewing PDF files within emacs. - is there an eaf-app that's not a bootstrapping nightmare? I suppose having Vue as dependency makes that not so for a large number - This is pretty cool, from a security standpoint, I'm not sure I'd want a web browser in emacs all that much. @@ -31,6 +75,28 @@ IRC nick: matthewzmd - I guess/hope this is using qtwebengine, not qtwebkit? ('cos qtwebkit is unmaintained and by now massively insecure) - matthewzmd: if you wanna dig more into the internals of EAF, I suggest you to read this part of the Wiki (<https://github.com/emacs-eaf/emacs-application-framework/wiki/Hacking>) or my talk from last year (<https://emacsconf.org/2020/talks/34/>) +Links and other notes: + +- you might find the this bench-multi-lexical macro useful: + <https://alphapapa.github.io/emacs-package-dev-handbook/#outline-container-Optimization> + or + <https://github.com/alphapapa/emacs-package-dev-handbook#bench-multi-lexical> +- <https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/elp.el> +- <https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/benchmark.el> +- \"Use hash tables kids!\" +- PSA: buffer-local-value is generally much faster than + with-current-buffer if all you need to do is get the value of a + variable in a buffer +- EIEIO\'s object construction is slow because it goes through + \`make-instance\` which is a generic function and it itself calls + various other generic functions, so there\'s a lot of cl-generic + dispatch overhead; and then there\'s the fact that the (keyword) + arguments are laboriously parsed at run-time so it itself is slow as + well. +- There is a pending patch to represent the set of a buffer\'s + overlays as an AAtree or somesuch. +- <https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov.el> + [[!inline pages="internal(2021/captions/eaf)" raw="yes"]] [[!inline pages="internal(2021/info/eaf-nav)" raw="yes"]] |