DEV Community

vindarel
vindarel

Posted on

Debugging Common Lisp: "I feel so much faster and free"

          _____    __   __  __        
         / ___/   / /   \ \/ /               |\      _,,,---,,_
         \__ \   / /     \  /                /,`.-'`'    -.  ;-;;,_
        ___/ /  / /___   / /                |,4-  ) )-,_..;\ (  `'-'
       /____/  /_____/  /_/                '---''(_/--'  `-'\_)
Enter fullscreen mode Exit fullscreen mode

Read on:

Man CL is awesome. I absolutely love being able to debug libraries, live, when there's a problem. Registering stickers, changing the library code, hot reloading... god,

I feel so much faster and free.

[Question] Sly stickers are basically like elisp's edebug stepping through code yea?

Yes, but more pin-point. You can consume the results in two ways:

  1. Run the code to completion and inspect all results of all stickers after-the-fact
  2. Turn on "breaking stickers" and have the debugger come up before and after each sticker, displaying the results.

It's great for visibility. I noticed some weird behaviour in a library this morning, so I jumped-to-def, which took me into my local Qlot copy of the lib, then I set a bunch of stickers, recompiled the function, then ran my own code to inspect the issue.

"When I run my code X, what is happening at library location Y?" <- I can answer this question instantly in CL but not other langs.

This is not me saying this for once, but someone proficient in Rust, Haskell, Clojure and CL (and probably more), also the author of the AURA package manager for Arch Linux.

and… that's it!

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more