home.social

#emacslisp — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #emacslisp, aggregated by home.social.

fetched live
  1. Emacs Lisp has had bignums for quite a few years now (even though it got them much later than other lisps).

    See also `integer-length' and company.

    #CommonLisp
    #Elisp
    #Emacs
    #EmacsLisp

    @anthk

  2. Right.
    Indeed, as I noted, my memory needed refreshing on this, which I just had an opportunity to do.

    «Since the old `cl.el' does not use a clean namespace, Emacs has a policy that packages distributed with Emacs must not load `cl' at run time.
    (It is ok for them to load `cl' at _compile_ time, with `eval-when-compile', and use the macros it provides.)
    There is no such restriction on the use of `cl-lib'.
    New code should use `cl-lib' rather than `cl'.»

    (Info node `cl', Overview, 1.2 Organization)

    Since Emacs 24.3.

    #Elisp
    #Emacs
    #EmacsLisp

    @kentpitman @weekend_editor @nosrednayduj

  3. "In most languages, metaprogramming lives in a separate layer with its own representation of code like templates, reflection APIs, token streams, quasi-quoted ASTs. Some of those layers are crude and some are genuinely sophisticated, but each is a wall between code and data. In Elisp there was never a wall to tunnel through. Elisp enables metaprogramming, but it's the same language, and the same data structures, all the way down." - Charlie Holland
    #lisp #elisp #emacslisp
    tumblr.com/teledyn/82412727468

  4. Announcing `elisp-agent` - a naive AI agent for #EMacs.

    gitlab.com/kriyative/elisp-age

    Inspired by thebeach.dev/posts/lisp-agent/ this #ELisp implementation uses `eval` as the sole tool available to the agent workflow. Please see the README file for more details and important security considerations.

    #ELispAgent #EmacsLisp #AI

  5. As a first approximation, I suggest thinking of Emacs Lisp as closer to MacLisp than to Common Lisp.

    A precise description of "closer" would be fairly long.
    For example, Emacs Lisp acquired things like bignums and lexical bindings fairly late.

    Again as an approximation, the descendancies are:
    MacLisp → Emacs Lisp
    MacLisp and others → Common Lisp
    (Those others include, in alphabetical order, Interlisp, Scheme, Zeta Lisp, etc., but not Emacs Lisp.)

    And then an important aspect of these approximations is the `cl' package, also a late addition that evolved quite a bit.

    Transferring knowledge about C to Emacs Lisp is rather tricky, even though the implementation of a part of Emacs (including the Emacs Lisp virtual machine) is written in C.

    #CommonLisp
    #Elisp
    #Emacs
    #EmacsLisp

    @me

  6. For newbies feeling hesitant or frustrated about #Emacs and its Lisp flavor. tl;dr #Foss #lifelonglearning victories!

    In 2010 or so I watched an interview with the immortal Carsten Dominik, creator of Org mode. He made an offhand remark to the effect of "I just love coding in Emacs Lisp, it's just how I think, it's just so natural, don't you agree?" And I was very unhappy. Because I could not agree. That discouragement stuck with me.

    My wife always says "the time is going to go by anyway," and this is wisdom. By 2023 I had written "org-teach" for producing classroom materials, shared it at EmacsConf, actually used it in the wild. Others around here have done similar, @randyridenour @ericsfraga @asilata sorry if I'm forgetting you.

    Long story short, the underlying #TeXLaTeX core couldn't do #taggedpdf until 2025. I asked on here for help and @yantar92 went to the mailing list and before I could say meta x @paaguti and @schuemaa had us all sorted out. So grateful!

    codeberg.org/paaguti/pdf-ua2-t

    With these significantly changed dependencies I decided to rewrite the jank that was org-teach from scratch. And it feels like lightning shoots from my fingertips now. I can implement functionality almost as fast as I can think of it. Too messy to share quite yet. But this kind of workflow and software self sufficiency feels like a superpower. Emacs Lisp just feels natural now. After only a decade and a half!

    But seriously, all my progress is thanks to this community.

    #emacslisp

  7. “My goal is to explain why the web browser is its true natural rival, and why Emacs is a Lispboard where you build the way you want to work.”

    @andros I completely agree. For a few years now, I have been referring to Emacs as an “app platform,” I compare it not just to the web, but to Java and .NET as well.

    I wrote my own blog post about it, too.

    #tech #software #Emacs #Lisp #EmacsLisp #FreeSoftware #FLOSS #FOSS

  8. My official AI policy for Schemacs Official AI Policy: “The Software Engineer’s Prime Directive

    I am borrowing the term, “The Prime Directive,” from the popular science fiction series Star Trek to describe my AI policy:

    Every single line of code, every S-expression, every comment, every piece of documentation, every part of this software that serves a function must have that function be well-understood by at least one person (and of course, AI is not a person).

    The term “well understood” is deliberately vague so that we (the Schemacs developer community) can decide on a case-by-case basis whether a person understands a function well enough.

    Vibe coding is banned.

    The definition of “Vibe Coding” is that you don’t bother to understand what the computer code means, if the software appears to behave in the way you expect you declare the code “correct.” By definition, vibe coding violates the Software Engineer’s Prime Directive.

    Some LLM-generated output is OK.

    If you suffer from some form of disability, and use an AI coding assistant to write code faster, this is perfectly acceptable so long you adhere to the Prime Directive — you must be able to defend the code you write by explaining the function of all of it’s component parts.

    The term “disability” is deliberately vague because I don’t believe we as a community should define tests to decide whether someone qualifies as “having a disability.” If your disability is that you don’t like writing text, that is fine. Just obey the Prime Directive.

    Unofficial AI Policy: we don’t need it.

    This is a project for people to have fun. If you don’t like writing computer code, then don’t contribute computer code. There are plenty of other ways to contribute without needing AI coding.

    There is no hurry, there is no deadline. Write code because you enjoy it, or because you want to learn how computers work. It is OK to take your time and enjoy yourself. There is really no reason to use AI for this project.

    #tech #software #AI #LLMs #LLM #Scheme #R7RS #SchemeLang #Lisp #Schemacs #Emacs #EmacsLisp #Slop #VibeCoding #ClaudeCode #ChatGPT #SlopMachine

  9. The GNU Emacs Architecture: Unlocking the Core is a recent dissertation that introduces the internals of Emacs and how it works, with a focus on the latest concurrently features.

    The site is often overloaded and inaccessible, so be sure to save the document once you finally open it.

    diva-portal.org/smash/get/diva

    This site has much better availability:

    gwern.net/doc/cs/lisp/emacs/20

    #emacs #EmacsLisp #lisp

  10. Right.

    And once you get to use Emacs Lisp as a _programming_ language for Emacs,
    yours is the world.

    #Emacs
    #EmacsLisp
    #Lisp

    @Saorsa @nadiyar

  11. @ramin_hal9001 wrote:
    «And the built-in editor and IDE are set up so that you don’t really need to learn the Emacs Lisp programming language to use it.»

    That's certainly true, but moreover you _have the option_ to learn and use Lisp as well _and_ to _gain a lot_ from that _in addition to_ the rest.

    And then access to executing Lisp programs is highly integrated with the rest.
    For example, you can insert an Emacs Lisp fragment into a plain text buffer (a text file opened for editing) and execute it right there with a trivial command.
    It can change the same buffer or it can do a lot of other things.

    And it goes on.

    #Elisp
    #Emacs
    #EmacsLisp

    @hell @tusharhero

  12. Announcement: Our next #Emacs #London meet-up is on Tuesday 14 July at 6 pm, in person at UCL (WC1N 1LE). 🎉

    Emacs users of all levels are welcome! Interested in Emacs but not yet a user? You're more than welcome too!

    Full details and registration:

    meetup.com/london-emacs-hackin

    Also... our website emacs.london is now live!

    #EmacsLisp #FreeSoftware

    cc @xenodium @ericsfraga @fnat

  13. RE: fosstodon.org/@tarsius/1166431

    In 1990 Dr. Peter Lee's 15-212 course at #CarnegieMellon introduced me to Scheme. It's also when I first came to comprehend the power of #Emacs and #EmacsLisp.

    In the first hour, Professor Lee demonstrated elegantly that everything is a list: data are lists and programs are lists. Every list returns a value, and functions are just lists that do calculations! Functions can return lists, of course, and so you can write functions that return functions!

    I ran to the lab to hack Lisp: it wasn't in your pocket, it was in a room worth more than your parents' house. Nothing had ever seemed more natural: write, evaluate, repeat. Hack a nugget, nest lists, add parentheses, hack bigger things. But the magic thing where you write code that returns code remained a mystery: we did lots of cool stuff in that course, but we never got to macros.

    Until 2026.

    The surprise? The surprise is that as each decade passes, I grow to cherish lifelong learning as more and more precious.

    #lisp #scheme #repl #macro #cmu

  14. It's not about the product, it's about learning.

    I just marginally improved one of my trivial little packages (that helps me a lot!).

    I finally (finally) wrapped my head around the concept (and the syntax) of Lisp macros in #EmacsLisp. Finally.

    codeberg.org/jamesendreshowell

    #emacs

  15. `(message "Hello, world!")`... I guess?

    More seriously: we are a local user group dedicated to #Emacs, the powerful customisable text editor, and to #EmacsLisp, its programming language. This Fediverse account is to keep you posted on our initiatives, including our monthly meet-ups.

    More info soon at emacs.london.

    Many thanks to @hachyderm for having us here. 🙏

    #introduction #lisp #london

  16. EDIT 2026-May-21: I just noticed that this function is clearly derived from one in @oantolin's config. Sorry I forgot! Did not mean to take credit.

    @csepp Here's a little thing I made to check for message body, subject line, and attachments. Works in message-mode, tested in #mu4e, should work under Gnus and others...?

    codeberg.org/jamesendreshowell

    #emacslisp #emacs

  17. I know, I know: it's possible.
    It's so everything is already possible.
    I only don't know how, yet.

    Problem: I want to create a(n ?) script to (periodically) scrape my digital garden source files (in Emacs ) to create a "bookmarks" page, still in Org Mode, collecting all the (unique) URLs in my garden, with their URL and their page titles as an alphabetically ordered bullet list.

    I'm sure AI things can mrke it quickly.
    But I want to learn!

  18. I am going to give the PALE (Picture and Animation Library for Emacs) a try. Building it by hand, let’s see if I can get it working as a Linux Mint native build (no Guix or anything).

    #tech #software #Emacs #Linux #Lisp #EmacsLisp #ProceduralGeneration

  19. Feeling gratitude towards this community. Just wrote my first #emacslisp advice ever.

    (advice-add #'package-function-has-no-hook :before #'my-little-hook-function)

    A small thing, but it removes friction from my org-static-blog (recommended!) workflow.

    These little steps forward are what make this hobby so much fun. And—you'll just have to believe me—the confidence to bork around like this comes from being part of this community.

    [EDIT: broken link removed; see thread]

    #emacs #mastodon #fediverse

  20. RE: fosstodon.org/@davep/116341198

    TIL: defconst and defvar do not set a value if the symbol is already bound to a value. Which makes sense, but would confuse an unsuspecting goober who might be REPLing their way around a buffer making changes.

    #emacs #emacslisp