diff options
Diffstat (limited to '2024/talks/regex.md')
-rw-r--r-- | 2024/talks/regex.md | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/2024/talks/regex.md b/2024/talks/regex.md index 32ea74f5..59292da3 100644 --- a/2024/talks/regex.md +++ b/2024/talks/regex.md @@ -29,6 +29,94 @@ Work: Composeable build tools, parsing frameworks, and cryptographic messaging. This talk will cover my train of thought over the course of this year on how regex engines in general may be improved, and the discussions with emacs-devel that have helped me along. I hope this talk will convince people of the boundless future directions in text search. My PhD research will be inspired by the expressivity and power of Emacs. +# Discussion + +## Questions and answers + +- Q: A bit off topic, but how did you get the emoji into your slides? + I\'m assuming you exported via Beamer to PDF. Thank you very much + for the swift answer. Great presentation, too🙏🏻 + - A: \\usepackage{twemojis}! + [https://ctan.math.washington.edu/tex-archive/macros/latex/contrib/twemojis/twemojis.pdf](https://ctan.math.washington.edu/tex-archive/macros/latex/contrib/twemojis/twemojis.pdf){rel="noreferrer noopener"} + - and yes beamer to pdf! i used org-beamer too + - had to break out of org a couple times + - For LaTeX packages supporting emojis cf. + [https://www.ctan.org/search?phrase=emoji](https://www.ctan.org/search?phrase=emoji){rel="noreferrer noopener"} + - i tried just pasting unicode but had an error and + couldn\'t figure it out in my mad dash for making this + in time + - In order for this to work you need the same kind of + unicode support over the whole toolchain, from + editor to tex engine to font. + - i\'m a big fan of toolchains so this makes me want + to fix it more :) thanks!! + +## Notes + +- i have a 50-minute version of this talk which i will be posting + somewhere on my page + [https://hypnicjerk.ai](https://hypnicjerk.ai){rel="noreferrer noopener"} + after the conference! + - oh good! I wish the last talk I attended with this many slides could have done that (Florian Weimer's traditional future directions for glibc talk at the GNU Tools Cauldron: every year he gets through a third of it and puts the rest on the schedule for next year!) +- great, the slides are now available at https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--slides.pdf and from the talk page +- i was not able to add subtitles in time for the conference, so + please please ask questions here or on irc during the talk (even + just asking for what i just said) and i will do my best to answer + all of them! +- Something you might be interested in Rak a lesser known grep + alternative dosent seem to have a emacs frontend though + - oooh! + [https://github.com/danlucraft/rak](https://github.com/danlucraft/rak){rel="noreferrer noopener"} + this ? + - helm-rg is based on helm-ag which i previously contributed to + and i think ag and ack have some interesting features which + avoid doing some online work we don't need to do + - no emacs frontend? sounds like a challenge\...! + - [https://github.com/lizmat/App-Rak](https://github.com/lizmat/App-Rak){rel="noreferrer noopener"} + - thanks so much!! + - [https://www.youtube.com/watch?v=YkjGNV4dVio&t=167s](https://www.youtube.com/watch?v=YkjGNV4dVio&t=167s){rel="noreferrer noopener"} +- followup on emacs-devel with NullNix's suggestion to make the cache + buffer-local: + [https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00299.html](https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00299.html){rel="noreferrer noopener"} + +- I think having an LLM do this is just perfect! all the people asking for it want is comforting lies anyway, and LLMs are really good at those! + - LLM's can be run locally. for example using localai + - cosmicexplorer: yes! but the weights come from somewhere! they come from training in cloud services! + - Running locally is not the same as reproduce it localy... I guess... + - It is like having a proprietary binary blob running on the linux kernel. + - cosmicexplorer: that is true. it does get a bit iffy when running open source models trained on remote services when using localai.io + - cosmicexplorer: inflicting a hidden dependency on my users :( :( +- on other things you should never do, that AI adjustment of the speaker image is *really annoying* + - I have literally blanked off that part of my screen with a piece of paper so I don't have to see it, sorry + - excellent talk though!! wish it was twice as long + - cosmicexplorer: yes :( thanks for feedback. next time i won't be so embarrassed with my bed + - cosmicexplorer: i captured this live in obs with the filtering so i don't even have the video stream without it + - I recently told somebody about Nvidia brodcast studio for the good green screen removel which annoyed me becouse it is 1 not open source. 2 I use amd and can't use it nor is it multiplatform 3 I use linux and don't know if you can run if from linux :( anybody know of a better solution? + +- ohhh I never realised the reason the match data isn't reified was so tied up with the implementation. not too surprising in hindsight, thats the emacs way :) +- I would recommend having the regex cache be *in* a buffer-local variable. most of the speedups, works everywhere maybe? + - cosmicexplorer: SMART!!!!!! + - cosmicexplorer: could also then explicitly have a cache busting API +- Q: What about tree-sitter? Is it better? Does it uses regexps? + - cosmicexplorer: basically: yes tree-sitter solves this, but no it does not use regexps + - cosmicexplorer: so it's really much more applicable for well-specified programming language definitions + - cosmicexplorer: but it means we can let tree-sitter solve problems we don't want to ourselves + - cosmicexplorer: they depend on the current syntax table which is buffer-local, and on case-folding from the current buffer + - so only buffer-local, so a buffer-local cache should be the right level then + - just making sure it wasn't anything finer-grained than that :) + - cosmicexplorer: yes! and also they very very rarely change + - hm, you could probably share many buffer-local caches with identical values for syntax tables, case folding etc even :) + - more complex though, and likely marginal gains +- worth making sure regexes can't depend on things like overlays, but I don't see how they could or a match over a buffer might require recompilation *in the middle of a match*, which is overkill even for emacs :P +- using orderless and consult with consult ripgrep means you have the performant part outside of emacs and powerful emacs facilites don't need to be as performant while still being fast + - cosmicexplorer: looking up orderless and consult now :) +- I was meaning with the consult-ripgrep command from the consult package +- wonders about combining this with p-search from yesterday... :) + +- This is brilliant +- Great talk! +- That was great, thank you, your enthusiasm is infectious! +- That was a great talk, thanks! [[!inline pages="internal(2024/info/regex-after)" raw="yes"]] |