This one has a readtable with C-style /* */
comments: https://github.com/y2q-actionman/with-c-syntax (found on awesome-cl)
For those who don’t know it already: https://github.com/Shinmera/for
yeah I agree there’s a pain barrier… I don’t shy away from using libraries that make my life easier:
hash-tables: f* yes, I’m frustrated by their verbosity and that they don’t show their content on print. => use Serapeum’s dict
and toggle-pretty-print-hash-table
. https://github.com/ruricolist/serapeum/blob/master/REFERENCE.md#dict-rest-keys-and-values
(dict :a 1 :b 2) ;; => is printed the same, so you can READ it back in.
I use access
for a generic access to alists, plists, hash-tables, object slots… until I feel it’s too slow, but that’s not often, given I mostly do web. https://lispcookbook.github.io/cl-cookbook/data-structures.html#appendix-a---generic-and-nested-access-of-alists-plists-hash-tables-and-clos-slots
data structure manipulation methods: see above link, hope it helps, and awesome-cl#data-structures for ideas. For instance, what about https://git.sr.ht/~fosskers/cl-transducers (“a “modern” API with map, filter, take, repeat, cycle, fold…”) (below under “Iteration”). I know I always paste those links but damn I wish I had them when starting ;)
doc
for the official one: https://cl-community-spec.github.io/pages/index.html (interactive search, oh my!) and novaspec.org/ (not open-sourced, waiting if possible)
for libraries, I’ll say that today we can afford the luxury to ignore libraries with bad doc, we’ll find another with decent ones. Let’s find examples?
You can keep the same ASDF snippets between projects and be done with it.
Welcome to Discord to rant freely https://discord.gg/hhk46CE
Yes, you can (load “file.lisp”) in the REPL and have a somewhat interactive session (or start everything from scratch everytime…). I just read an ecstatic comment about that yesterday: https://news.ycombinator.com/item?id=38374577
+1 for long talking. My attempt at it: https://www.youtube.com/watch?v=jBBS4FeY7XM 5min, shows how we can restart a running program from any point in the stack trace, without restarting the program from zero.
Some more I recommend: https://www.cliki.net/Lisp Videos
mmh… the features to list dependencies? And building a tar archive (with CL’s tar).
(not the author btw)
Does it have an advantage over the existing logging libraries? https://github.com/CodyReichert/awesome-cl#logging
lots of tools
as tuhdo answered, do you know lots of tools that offer to restart your program from any point in the stack, after a bug occurred, possibly saving you hours of re-computing? demo: https://www.youtube.com/watch?v=jBBS4FeY7XM That’s really a CL power IMO.
also in this one/ https://survey.stackoverflow.co/2023/#technology “lisp” is above Clojure OCmal Julia Erlang F# Fortran Ada…
thanks! Updated awesome-cl. You could update/redirect from your previous gist: https://gist.github.com/marcuskammer/366964f7d569317429773b82a4dafbf9
Bind a key in the slime-repl-mode-map
. Try this:
(defun my/slime-switch-to-recent-lisp-buffer ()
(interactive)
(switch-to-buffer (slime-recently-visited-buffer 'lisp-mode)))
(define-key slime-repl-mode-map (kbd "C-c C-z") 'my/slime-switch-to-recent-lisp-buffer)
thanks for the heads up, I’ll def try it. So far I bound C-c C-z to 'other-window… simple.
also for OGG/Theora: https://shirakumo.github.io/cl-theora/
I think -b '()'
is enough (word delimiters are parens) but this is more complete:
--break-chars "(){}[],'#\";|\\"
At that point you might want to try cl-repl?
A summary of options: https://gist.github.com/vindarel/2309154f4e751be389fa99239764c363 Like, use --remember
to tab-complete what was previously defined.
nope these 2 links don’t give the hyperspec, they build a web view of the systems, packages and symbols (classes macros functions etc) in the current image.
similar to the description, but gives a web page: https://github.com/mmontone/cl-livedocs with full-text search, and https://github.com/lokedhs/docbrowser
(also: slime-edit-definition, with a prefix argument, allows to go to the definition of any symbol)
Hi, I did little experiments here: https://github.com/vindarel/ltk-tests and this doc is great: https://peterlane.codeberg.page/ltk-examples/ (in addition to the Cookbook)
Hi, you have to compile them on their respective platform, with possible help of a CI system. Or compile a Windows version on Wine: I read that the Kandria game’s version is built like this.
Example Github actions: https://github.com/melusina-org/make-common-lisp-program
Example software that ships for all three platforms (in addition of an AppImage): https://github.com/VitoVan/calm