veganism.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Veganism Social is a welcoming space on the internet for vegans to connect and engage with the broader decentralized social media community.

Administered by:

Server stats:

291
active users

#emacslisp

1 post1 participant0 posts today

Hi, I have a question about denote. I’m writing a function so that, before saving the journal note, it adds the entry tags to the note—merged with the existing ones—but I’m not sure which hook would be best to run it in. Since the denote-rename-file function is the one that will do the work, I’m a bit unsure. The idea is for it to do this automatically when saving the buffer, if needed. Any ideas?

Happy Wednesday!
#emacs #denote #orgmode #emacslisp

#Emacs question: How does one load (or include or import or however the proper terminology is) a elisp file relative to the current elisp file? I can only find load and load-file, but these seem to always load stuff relative to the load path or the CWD of Emacs itself, not the file.

Edit: It's solved: (load (expand-file-name "myfoo.el" (file-name-directory (macroexp-file-name))))

Replied in thread

What brought you to #Emacs?

@myTerminal I was using Tmux, Vim, Bash, AWK, and FZF, and I kept trying to write scripts for all of these programs that would allow me more coordination between them. For example, I once wanted to launch a process from Vim in a second terminal in a Tmux split-screen, capture it’s output into a temporary file, then when the process exited, use AWK to select symbols from the file that I could later feed into FZF. Or I would write a little wrapper Bash script that would run a build process and send a notification and trigger Tmux to automatically switch to the shell when the process completed.

I was always thinking to myself how I wished all of these separate tools, which were all doing one just thing and doing it well (the Unix philosophy), could be connected together without needing to use pipes or complicated message passing through temporary files or through DBus. And I also wished they were all written in the same programming language, instead of having a different language for Bash, AWK, VimScript, and the config languages for Tmux, or using long chains of CLI options stored into partial script files.

Then it hit me one day that this thing that I was wishing for, which coordinated between the terminal multiplexer, command shell, editor, and auto-completion framework and was all scripted with just one programming language, this thing already existed and it was called Emacs.

Then I finally understood what all the fuss was about, and switched to Emacs forever.

#tech#software#lisp
Progress on my clone of the Emacs Lisp interpreter

This took me three months (a month longer than I had hoped), but I finally have merged it into the main branch!

This patch rewrites the Emacs Lisp lexer and parser in Scheme using Scheme code that is 100% compliant with the #R7RS standard, so it should now work across all compliant Scheme implementations. Previously the old parser relied on #Guile -specific regular expressions.

This patch also implements a new feature where a stack trace is printed when an error occurs. This of course makes debugging much, much easier. Previously the old parser did not keep track of where code evaluation was happening, it simply produced lists without source location information. The new parser constructs an abstract syntax tree (AST) and source locations are attached to the branches of the tree which can be used in error reporting and stack traces.

Next I will make whatever minor tweaks might be necessary to get my Emacs Lisp interpreter run on other Scheme implementations, in particular MIT Scheme, Gambit, Stklos, and Gauche. I would also like to try to get it running on Chicken and Chez, although these are going to be a bit more tricky.

Then I will continue with the task of implementing a new declarative GUI library.

Codeberg.orgDefine new monadic lexer library (gypsum lexer)closes #8 There are two reason to rewrite the reader: 1. The current reader does not track source locations, so error messages do not point you to where they occur 2. The current reader relies on the Guile-specific regular expression library, and this is not portable. This patch defines a ne...
#tech#software#FOSS
Replied in thread

@me I guess you could fairly easily write a macro that automatically created a lexical scope and added some prefixes to variable used within its body - Doug Hoyte's "Let over lambda" book has #CommonLisp examples of this kind of approach as way to cut down the syntactic overhead of using gensym in macros. Without much thought, I'd assume something similar could be done in #EmacsLisp

I’m an amateur lisper, mostly #Guile and #EmacsLisp, but if someone wants to team up for this #GameJam, I’d be interested!

I also do some basic art, game design, sound, and music. I wouldn’t want to be the sole programmer for this jam but could definitely contribute there and would love to learn more #Lisp.

https://toot.cat/@dthompson/114166799349052427

Toot.Catdave (@dthompson@toot.cat)The Spring Lisp Game Jam is happening once again! Join us for 10 days of consing up little games starting on May 9th! https://itch.io/jam/spring-lisp-game-jam-2025 #lisp #gamejam #lispgamejam

I am once again faced with the bleak irony of people who like to code in the terminal with Vim or Nano, but also install onto their computer some 5 or 10 apps via FlatPak or Docker, including VSCode, each installed with their own entire copies of Node.js and Electron.js (differing only in their minor revision number), while also complaining about Emacs being “bloated” because it ships with a miniature web browser and fully-featured e-mail client.

#tech#software#Emacs

I guess I should have an #introduction on here as well:

I'm a programmer and #FreeSoftware enthusiast. I've been using #Linux as my main desktop and #Emacs as my... everything... since 2008. I started off with a lot of distro hopping, my journey took me through #Ubuntu, #Fedora, #Zenwalk, #Gentoo, and #Exherbo before settling on #ArchLinux, now with #Guix on top.

I love writing software in #Lisp (either #CommonLisp or #Scheme or any other), but I don't get enough of a chance to. Except #EmacsLisp, basically all my personal projects end up being written in that. Other than that I've enjoyed writing things in #CSharp, #PHP, #Python, #JavaScript, #Ruby, #Groovy, and several other languages.

My main account is @ryuslash, this is my account for experimenting with self-hosting.