[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: '(zun-sneed).jpg (269 KB, 512x496)
269 KB JPG
>Lisp is a family of programming languages with a long history and a distinctive parenthesized prefix notation. There are many dialects of Lisp, including Common Lisp, Scheme, Clojure and Elisp.

>Emacs is an extensible, customizable, self-documenting free/libre text editor and computing environment, with a Lisp interpreter at its core.

>Emacs Resources
https://gnu.org/s/emacs
https://github.com/emacs-tw/awesome-emacs
https://github.com/systemcrafters/crafted-emacs

>Learning Emacs
C-h t (Interactive Tutorial)
https://emacs-config-generator.fly.dev
https://systemcrafters.net/emacs-from-scratch
http://xahlee.info/emacs
https://emacs.tv

>Browse imageboards in Emacs Org-Mode
https://github.com/eNotchy/4g

>Emacs Distros
https://github.com/caisah/emacs.dz

>Elisp
Docs: C-h f [function] C-h v [variable] C-h k [keybinding] C-h m [mode] M-x ielm [REPL]
https://gnu.org/s/emacs/manual/eintr.html
https://gnu.org/s/emacs/manual/elisp.html
https://github.com/emacs-tw/awesome-elisp

>Common Lisp
https://lispcookbook.github.io/cl-cookbook
https://cs.cmu.edu/~dst/LispBook
https://gigamonkeys.com/book
https://lisp-docs.github.io
https://awesome-cl.com

>Scheme
https://scheme.org
https://standards.scheme.org
https://go.scheme.org/awesome
https://research.scheme.org/lambda-papers

>Clojure
https://clojure.org
https://tryclojure.org
https://clojure-doc.org
https://clojure.land
https://www.clojure-toolbox.com
https://mooc.fi/courses/2014/clojure
https://jafingerhut.github.io/cheatsheet/clojuredocs/cheatsheet-tiptip-cdocs-summary.html

>Other
https://github.com/dundalek/awesome-lisp-languages

>Guix
https://guix.gnu.org
https://nonguix.org
https://systemcrafters.net/craft-your-system-with-guix
https://futurile.net/resources/guix
https://github.com/franzos/awesome-guix

>SICP/HtDP
https://web.mit.edu/6.001/6.037/sicp.pdf
https://htdp.org

>More Lisp Resources
https://lisp.nexus
https://rentry.org/lispresources

(set! prev-bread (quote >>109125156))
>>
File: bad-apple.gif (850 KB, 33x25)
850 KB GIF
M-x bad-apple

https://github.com/y-usuzumi/emacs-bad-apple
>>
https://www.youtube.com/watch?v=1-UIzYPn38s

Although display-buffer-alist may seem esoteric, learning how to use it can lead to huge quality-of-life improvements for Emacs users. Emacs' default window placement strategy may seem chaotic and weird, but with display-buffer-alist, it can be tamed and controlled to a degree I didn't realize until I learned how to use it. I highly recommend taking the time to understand this feature of Emacs.
(info "(elisp) Displaying Buffers")
>>
File: elisp-patch.png (1012 KB, 1000x1333)
1012 KB PNG
>>109272929
emac2hu
https://www.youtube.com/watch?v=SnzwLe12gko
>>
File: repl-position.png (279 KB, 1916x2024)
279 KB PNG
How do you prefer to position your REPL buffers?
- Wide and short below your source?
- Tall and skinny to the right of your source?
- Something else?
>>
>>109273557
heroic efforts for dirty verti
>>
>>109273557
usually side by side, but i only have the REPL window open when i'm actively using it
>>
>>109273557
repl goes on the right
>>
File: helix_(girls_frontline).png (1.92 MB, 2048x2048)
1.92 MB PNG
Helix!
https://www.youtube.com/watch?v=YDYTYktziyI
https://github.com/npupko/awesome-helix#plugins
>>
>>109275092
why the fuck did they need to use claude on an 'awesome-*' repo lmao
>>
>>109275092
Helix is great.
It's already replaced nvim as my second text editor (terminal/quick-edits).
>>
>>109275151
I was an emacs (evil mode) user long ago and switched back to vim when lsp appeared because it was way to slow on large projects. I heard that emacs now has green threads, has the situation improved?

I really miss emacs lisp, writing vimscript was always a pain. lua is fine and it's fast, but I don't like the syntax. And it's missing the comfy homoiconic parts that make emacs lisp so good in my opinion.
I was kinda hoping for emacs to support guile, but it seems the emacs-guile project is dead now.

Do you recommend me to switch to emacs again?
I tried it again one year ago, but I still had the same issues with lsp being way too slow.

I was really happy when I found out helix had a plugin system you could program in a sceheme dialect. But is it any good?
I have a coworker using helix, but he doesn't write/use plugins.
Anyone has experience with helix's sceheme dialect? It seems helix barely exposes any useful api are there extmarks-like apis for helix, does it have an equivalent to lua's libuv to control processes and make async i/o?
>>
File: 1784051875365638.jpg (23 KB, 447x447)
23 KB JPG
Clojure gang
I pity the niggas thinking in terms of classes and other shit
in the test suite I trust
>>
File: images (35).jpg (19 KB, 335x597)
19 KB JPG
Module: shout

define library shout
use dylan;
use io, import: { format-out };
end library;

define module shout
use dylan;
use format-out;
end module;

define method shout ()
format-out("DYLAN! YOU SON-OF-A-BITCH!\n");
end method;

// Run it
shout();
>>
>>109275149
It was just one commit.
https://github.com/npupko/awesome-helix/commit/5b9186b58601e7851757fa9aa5e390a77aa2e723
>>
Does anyone here use Reka? How is it?
>>
Julia is a lisp. What do you friends think about it
>>
>>109278240
>Reka
?
>>
File: reka.png (1.36 MB, 2880x1799)
1.36 MB PNG
>>109280056
An Emacs-based window manager for River
https://codeberg.org/tazjin/reka
https://codeberg.org/river/river
>>
>>109280199
looks pretty sexy
>>
>>109278648
>Julia is a lisp
How so?
>>
>>109280199
I guess it's OK if you're stuck on Wayland for some reason
>>
>>109278648
>Julia is a lisp.
I often wish this were true, but it's not really. It does have a lot of lisp-inspired features though. These include:
- A macro system
- Multimethod dispatch (similar to CLOS)
- A culture of putting docstrings on everything (similar to Emacs)
- A culture of using long-lived REPLs due to slow startup (also similar to Emacs and maybe Clojure)

It can be made to look like a lisp if you use LispSyntax.jl, but this is a bit of a toy that doesn't really expose the full power of Julia in the lispy syntax.
https://github.com/swadey/LispSyntax.jl
>>
>>109278648
Julia might not be a lisp but the parser is written in scheme, which is fun:
https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm
>>
>>109273557
I usually prefer REPL on the right, but sometimes, I put the REPL on the bottom.
>>
>>109278648
>>109283127
samefagging for a bit of a postscript.
If you want a statistics language to be a lisp in spirit, R might be a stronger contender:
>The design of R has been heavily influenced by two existing languages: Becker, Chambers & Wilks’ S and Sussman’s Scheme. Whereas the resulting language is very similar in appearance to S, the underlying implementation and semantics are derived from Scheme.
https://cran.r-project.org/doc/FAQ/R-FAQ.html#What-is-R_003f
>>
>>109283237
>https://sci-hub.st/https://www.tandfonline.com/doi/abs/10.1080/10618600.1996.10474713
>The resulting language is very
similar in appearance to S, but the underlying implementation and semantics are derived
from Scheme. In fact, we implemented the language by first writing an interpreter for a
Scheme subset and then progressively mutating it to resemble S

Good morning sar!

>https://www.stat.auckland.ac.nz/~ihaka/downloads/Interface98.pdf
>pic

Scheeming allows R to have some magical things that python, the datascience language, sucks at.

You can refer to things by symbol and it'll mostly work.
>df %>% filter(mycolumn = True)

In python you have to use specific methods that accept "mycolumn" string.
>>
>>109283294
>python, the datascience language
Yeaaah, at work work we have scientists who use R and scientists who use python.
R is definitely more suitable for scientific programming (and I really liked its lispy metaprogramming, at least to the extent I got to play around with it). But for some reason R people decided to ruin everything by building a culture around ignoring the stdlib and pulling literally everything from CRAN, creating dependency hells that are out of this world... Even those who've been bitten before still can't bring themselves to just stop worrying and ditch tidyverse/dplyr/etc...
>In python you have to use specific methods that accept "mycolumn" string.
You can actually do some nifty things with decorators and operator overloading. On the flip side I have hated every system that actually made use of that power...
>>
>>109280199
Any of these have decent stacking yet? I remember they mentioned the other Emacs wayland compositor (the one bootstrapped with Claude) over this for stacking and more features. Isn't River modular and was stacking at some point?
>>
>Spielberg, James Cameron, and their visual effects teams at companies like Industrial Light & Magic (ILM) primarily relied on non-Lisp based software,
>specifically Alias PowerAnimator, to create their iconic 90s visual effects.
>While Symbolics had a "superpower" in the form of a highly integrated,
>Lisp-centric environment that was years ahead of its time,
>it was ultimately eclipsed in the mainstream film industry by the SGI workstation ecosystem.

I used to rule the world. Seas would rise when I gave the word. Now in the morning I sleep alone: sweep the streets I used to own.
I used to roll the dice. Feel the fear in my enemies eyes. Listen as the crowd would sing "and then everybody clapped"
>>
>>109284809
we call it N World now
>>
>>109284870
>s world never made open source or leaked
>>
>>109275713
>I was really happy when I found out helix had a plugin system you could program in a scheme dialect. But is it any good?
Yep. Still very barebones, but I'm liking it.
https://www.tomwaddington.dev/steel-helix-first-steps.html
>>
>>109284870
Topkek
>>
File: frazetta.png (553 KB, 600x800)
553 KB PNG
help:help-enable-variable-value-editing
>>
>>109272864
>>Browse imageboards in Emacs Org-Mode
>https://github.com/eNotchy/4g

>>109272968
This is something I'm trying out for 4g.
(add-to-list
'display-buffer-alist
`(,(rx string-start "*eww*" string-end)
(display-buffer-reuse-window
display-buffer-in-direction)
(direction . right))
)

Suppose you're viewing a thread in 4g.
- If you click on an image link and an "*eww*" buffer exists in a currently visible window, reuse the same window to load the image.
- If a window holding an "*eww*" buffer doesn't exist, split a new window to the right and use it to display the "*eww*" buffer.
>>
File: indian car lover.webm (2.36 MB, 694x936)
2.36 MB
2.36 MB WEBM
Clojure sirs rejoice, CIDER 2.0 has landed

https://metaredux.com/posts/2026/07/15/cider-2-0.html
>>
>>109288452
WTF is wrong with them?
India deserves Exterminatus.
https://www.youtube.com/watch?v=piMTBGua4zo
>>
>>109288860
by the car plate you can tell that is in brazil. Good morning sir!
>>
>>109289523
If it's brown, flush it down.
>>
org-roam users: Check out vulpea. It's basically compatible with org-roam, because like org-roam, it considers anything with an org-id to be a note. If you wanted, you could point vulpea-db-sync-directories to wherever your roam files are and start using vulpea instead.

Reasons I like vulpea:
- It's significantly faster than org-roam.
- This is a new feature I'm getting used to, but you can define schemas for your notes so that give you a bit more structure to your data.
- The Elisp API is very programmer-friendly, and you can query your notes based on fields defined in your schemas.
- vulpea-ui-sidebar is a million times better than org-roam-buffer. I never used to use org-roam-buffer, but I use vulpea-ui-sidebar a lot, because it actually tells me interesting things about my notes (as a whole). It finds things that aren't linked but might be good candidates for linking which is huge for note rediscovery.

https://github.com/d12frosted/vulpea
https://github.com/d12frosted/vulpea-ui
https://github.com/d12frosted/vulpea-journal (this is their alternative to org-roam dailies)
>>
Fuck the shilling on the rest of this board really is insufferable, this general might be the only usable part of the whole site. Thank fuck Lisp programmers actually like programming.
>>
File: 1781119718503039.jpg (64 KB, 720x810)
64 KB JPG
>>109289820
>Brazil's Nubank funds Clojure and employs Clojure developers.
>Brazil's Roberto Ierusalimschy made Lua.
>Brazil's José Valim made Elixir, a very Lispy language.
>>
>>109291377
I was just playing. I like Brazil. I wasn't kidding about India though. Something has got to be done about them.
>>
>>109287471
Lem?
>>
Best (any) way to import wikipedia articles as text into org mode?
>>
Thoughts on a lisp that has native bare-memory operations instead of relying on cffi or asm snippets?
>>
>>109293563
No, it's a relatively new (and obscure) variable in Emacs Lisp. The "help:" prefix was to make it a link in 4g. It wasn't meant to be CL package/namespace.
>>
(define (tree-walk tree pred fn )
(let loop ((tree tree))
(cond ((not (list? tree)) (fn tree))
((null? (cdr tree)) (fn tree))
((pred tree) (fn tree))
(else (let* ((args (cdr tree))
(child-idx (random (length args))))
(loop (list-ref args child-idx)))))))

(define (random-tree-walk tree p)
(tree-walk tree (lambda (e) (> p (random 1.0))) identity))

(define (random-tree-walk-set! tree val p)
(tree-walk tree (lambda (e) (> p (random 1.0))) (lambda (tr) (if (pair? tr)
(set-car! tr val)
(set! tr val))))

>(random-tree-walk-set! '(a b (1 2 3)) 'aaaa 0.5)
$53 = (aaaa b (1 2 3))

;; got an atom:
(>random-tree-walk-set! '(a b (1 2 3)) 'aaaa 0.5)
$54 = (a b (1 2 3))

How do I destructively set! atomic nodes?
It works for lists.
>>
>>109291377
>Elixir, a very Lispy language
Like Julia?
>>
File: (LISP).png (316 KB, 900x900)
316 KB PNG
https://scotto.me/blog/2026-07-17-which-lisp/
https://news.ycombinator.com/item?id=48947455
>>
File: sonic-defn-system.png (13 KB, 776x710)
13 KB PNG
>A Sega Master System Emulator written in Clojure
https://github.com/netb258/defn-system
>>
>>109302725
fckin nice
>>
>>109300793
This is a big struggle for me when writing stuff, there’s always a tricky choice to be made between the aesthetics of Scheme vs the practical power of Common Lisp, but then even if I want a Scheme, should I pick Chez or Racket or Guile? I’m spoiled for choice.
>>
>>109293813
>Best (any) way to import wikipedia articles as text into org mode?

Pandoc and give you a decent first pass.
curl "https://en.wikipedia.org/wiki/Common_Lisp?action=raw" | pandoc --from=mediawiki --to=org > cl.org


One way to improve it would be to prepend some front matter.
#+title: Common Lisp
#+startup: indent show3levels
#+filetags: :wiki:
>>
>>109304777
>no mention of Clojure, which many find to be more practical than CL, with Scheme aesthetics, and less boilerplate due to less reliance upon structs/classes, built-in destructuring, more data structures, and more default generic behavior (imagine needing to write `vector-length` when working with vectors and `length` when working with lists in Racket, or similar in CL, or needing to import a lib or whatever to achieve the sensible generic functionality).
>>
>>109305935
Things I like doing are not as nice in Clojure. Not everything can be to everyone’s taste.
>>
>>109305991
what things?
>>
>>109306007
Involves solving problems with small DSLs lately. These are based on languages which already exist and have a simple, non-Lisp syntax because it’s reasonable for people to expect similar syntax to what exists in literature already, it’s hard to simplify it much further, so there is a legitimate case for reader macros to leave that option open for user convenience. As far as I’m aware, this rules Clojure out and makes it a significantly more cumbersome language compared to CL or Racket which are built for this.
>>
>>109306050
I'll admit Racket is quite good at that stuff, but why not just use a lib?
https://github.com/engelberg/instaparse
>>
>>109306108
I suppose not because I have anything against Clojure or anything, but because “use a library” is a slightly hard sell when on the other hand you’ve got CL which lets you do that already, plus the restart system, and especially compared to Racket which is an entire language devoted to the idea of being a language for making languages. It’s not that you’re wrong about anything, it’s just that Racket is quite literally built for it.
I would choose Clojure if I were doing anything web related, but I like scientific computing problems so it’s just not so tailor made for that domain, since if I want to work with C, Guile is made for that, if I want something where I know of a pre-existing DSL I want to absorb into a Lisp program, Racket is made for that, if I’m doing something exploratory and open-ended where I’m still figuring things out, CL’s restarts help me a lot, and to me it just seems as though Clojure’s niche is elsewhere, which is fine, just not something I really do much of.
>>
>>109305365
>
?action=raw

nice, i didn't know of this
>>
>>109273557
depends whether i have 80+ chars of width or not you SUCKER??
>>
>>109307096
id ?action you raw nonny...
>>
File: HNZ07Q7bMAAl6ql.jpg (204 KB, 1657x1141)
204 KB JPG
https://nitter.net/appledog_eringi/status/2077976844276822474

unrelated news:
https://nitter.net/Parodyjeffx/status/2078325292100124746
>>
File: NutsFromBerk.jpg (75 KB, 466x658)
75 KB JPG
Clojure is what I wished Python was
>>
>>109309211
check out Babashka: instant-starting scripts with numerous useful libs built-in
Babashka internally uses the SCI lib, which you can include in your normal Clojure projects for sandboxed evaluation of code (spawn a separate JVM with appropriate flags for memory limiting).
>>
>>109309211
Running in the JVM?
>>
>>109291377
Another brazilian just showed up on lobsters with a new lisp too
>>
File: cat-shoo.gif (2.93 MB, 374x365)
2.93 MB GIF
>>109311099
>jython
>>
File: pyjeet.png (250 KB, 718x588)
250 KB PNG
>>109311528
pyjeeethon sir?
>>
File: ((((lisp)))).webm (458 KB, 654x480)
458 KB
458 KB WEBM
>>
>guile scheme source code
It is highly educative in some parts, usually they reference papers and talks in the comments.
Java code at <<job>> is just springboot hell and sucks ass.

>tree-il module
has some nice graph stuff into it, no idea what they use it for
>brainfuck
there is a breinfuck language in guile lmao
>>
how is AI viewed in emacs communities? just curious. do you use AI to control your emacs?
>>
>>109314509
M-x check-parens
>>
>>109315548
I use Lisp and emacs because I like it and it’s fun. I don’t really want to have an LLM do what I think is fun for me. For some non-recreational uses, that’s a separate matter. Probably the day the AI shilling dominates this general is the day I won’t bother speaking to any programmers anymore.
>>
>>109315548
I like talking to LLM's about my projects, bounce ideas off of it etc., but I usually don't like the code that agentic AI generates. About 30% of my output is LLM-generated, mostly repetitive and boring stuff like HTML, and Emacs defcustom declarations.
>>
>>109315548
Curiously enough, both Emacs and Lisp histories are intertwined with AI. See the work of John McCarthy, Guy L. Steele, Gerald Sussman, Richard Stallman... But that was way before all this LLM hype.
>>
File: file.png (363 KB, 915x513)
363 KB PNG
The Almighty Lisp book received an update a few days ago.

>Changes:
- A brand-new Windows installation guide—Doom Emacs and Common Lisp on native Windows.
- An expanded Introduction to ease you onto the almighty path.
- Redesigned code and result blocks for cleaner, more readable examples.
- New chapter and section headings across every chapter.
- Clearer Quicklisp installation instructions for macOS and beyond.
- An expanded Errors & Conditions chapter.
- A major overhaul of the included accounting and money projects.
- Countless fixes throughout.

https://x.com/almighty_lisp/status/2075515660520870353
https://almightylisp.com/
>>
>>109317307
>https://almightylisp.com
very nice
>>
File: lisp-parens.webm (237 KB, 320x240)
237 KB
237 KB WEBM
>>109314509
>>
>>109318704
He's one of the few people really trying to spread CL to a wider audience. It's a nicer language than people might realize.
>>
>>109298646
- Elixir and Julia have different goals.
- Elixir tried to present the Erlang runtime in a more palatable way to contemporary tastes.
- Julia tried to be both dynamic and high performance at the same time so that scientists wouldn't have to write exploratory code in a dynamic language and then port it to another faster language to do the real work.
- Neither are trying to look like lisps -- quite the opposite actually.
- However, they both took inspiration from lisps when it comes to macros.
- Julia was also influenced by Common Lisp (multimethod dispatch) and Emacs Lisp (REPL design).
- I don't know as much about Elixir and the languages that influenced it.
>>
>>109314608
>there is a breinfuck language in guile lmao
lulwut
>>
I've been playing around with Emacs keyboard macros.
C-x (
C-x )
C-x e

Something I've wanted for a while is the ability to turn the symbol at point into a help link. With evil and evil-surround, I could do something like the following.

(defalias 'org-linkify-symbol-at-point
;; This assumes evil normal state.
(kmacro "y i o y s i o ] i [ [ h e l p : <escape> p a ] <escape> l % a ] <escape>")
"Wrap the symbol at point in an org `help:' link.")


What this does is take the symbol at point and wrap it in a help: link.

>Examples
mapcar 
[[help:mapcar][mapcar]]

display-buffer-alist
[[help:display-buffer-alist][display-buffer-alist]]


>Usage
You can try it out by putting your cursor inside a symbol and doing `M-x org-linkify-symbol-at-point`. If you like it, you can bind it to a key.

https://github.com/emacs-evil/evil-surround
>>
Is there a SRFI that implements faster sets than srfi-1 (lists as sets)?

I'm using bitsets, but it is annoying.
>>
>>109321104
>https://github.com/emacs-evil/evil-surround
neat
>>
>>109323275
Put your cursor inside a symbol and try:
ysio"
ysio)

ysio translates to yank, surround, inner, symbol

For regions, I like to use S so try:
S"
S)
>>
File: frazetta2.png (83 KB, 336x480)
83 KB PNG
>>109287471
(notifications-notify :title "Think!"
:body "What's the best use of your time now?")
>>
File: 1782307037359148.png (23 KB, 424x386)
23 KB PNG
>want to get started in guix
>installed guix as foreign distro package manager on fedora
>guix IDEs look pretty barren
>just gonna keep in fedora accreting ouchies that guix could have managed state in because i legit dont see how to live in guix and just painfully port needlessly to guix to learn guix
>>
>hellen-keller emacs
>purely hand movement driven development of the most autistic key bindings
>>
Company is pushing AI but we do not have individual API keys, it is done through OAuth. Vscode seems to do it easily, anyone has done something like that for Emacs? I don't care about the clanker stuff, I just want to get management off my ass.
>>
File: BertrandParadox.jpg (23 KB, 320x269)
23 KB JPG
conditional probability
https://onecompiler.com/commonlisp
;; Use defparameter to define global variables in the REPL
(defparameter *boxes* '((1 1) (1 0) (0 0)))

(defun run-bertrand-trial ()
(let* ((box (nth (random 3) *boxes*))
(first-coin (nth (random 2) box)))
(list box first-coin)))

(defun run-simulation (num-trials)
(let ((gold-observations 0)
(gold-box-count 0))
(loop repeat num-trials do
(let* ((trial (run-bertrand-trial))
(box (first trial))
(coin (second trial)))
(when (= coin 1)
(incf gold-observations)
(when (equal box '(1 1))
(incf gold-box-count)))))

(format t "Total trials with gold observation: ~d~%" gold-observations)
(format t "Trials where box was Two-Gold: ~d~%" gold-box-count)
(format t "Empirical Probability: ~f~%" (float (/ gold-box-count gold-observations)))))

;; Execute the simulation
(run-simulation 10000)

(there are dummies on /pol/ who need to see this)
>>
Lem gui broke
Portacle again it is
>muh updates
yeah updating SHIT ASS BREAKING
>>
>>109327041
>>
>>109327041
mine
>>
>>109326302
>no indentation
>>
>>109326302
Isn't the probability just 1/2?
>>
>>109328481
(defun kilogram-of-feathers ())
>>
File: rationale.jpg (139 KB, 1522x945)
139 KB JPG
>>109325811
https://eca.dev
https://github.com/editor-code-assistant/eca
>>
>>109328481
No. It’s 2/3 because you’re twice as likely to have chosen a gold ball in the box with only gold balls as you are to have chosen a gold ball in the box with a silver ball.
>>
File: 2026-07-21_06-33-17.png (213 KB, 1916x1007)
213 KB PNG
>>109326302
run under 4g via org-babel
- I changed the language from emacs-lisp to lisp.
- Used `:results output` so that printed strings would be returned in the #+RESULTS section.
- Reformatted the code, because it was bothering me.
>>
How do you guys review potentially very big LLM diffs? I've started making the code more functional with the hope of less mutation making missable footguns harder, but I still struggle with the volume
>>
File: gnosia-emac.jpg (387 KB, 1920x1080)
387 KB JPG
Interesting
https://www.emacswiki.org/emacs/The_state_of_agentic_coding_tools_in_Emacs_(2026)
>>
I wonder if Hako would be interested in this packaging https://github.com/Shiro836/waydroid-nvidia
I don't even know how to contact him, his fedi instance doesn't allow new accounts...
>>
>>109331512
Are you talking about emacs? I don’t know why I’d want an LLM to make massive changes like that to emacs instead of naturally incrementing things over time.
If you’re talking about a Lisp project, I also admit I don’t run into this because the macros naturally emerge out of a need to write things a certain way to express useful ideas that come up over time and making massive changes in one shot kind of kills that
>>
>>109333005
>If you’re talking about a Lisp project
yeah I'm talking about lisp projects in general. Maybe I'll just ask again in the Tech Worker general and see what they have to say
>>
>>109288452
That's Brazil in vidrel.
>>
>>109333258
Honestly large diffs to me in Lisp in particular seems insane.
>>
>>109325483
guix concept is simple
>build a package
>it shows up in /gnu/store/<hash>-package-1.2.3
>symlinks /gnu/store/<hash>-package-1.2.3/bin to /usr/bin
>rinse and repeat
everything in /gnu/store is readonly
every program in /gnu/store will only look inside /gnu/store and never in /etc, this ensures everything is contained
>>
>>109331426
neat!
>>
>>109333355
that makes it even more fitting for Clojure THOUGH
>>
>>109333355
>brazilians
>indians

It's all the same shit
>>
I've been using emacs only with evil mode so far (particularly in doom emacs). Should I give vanilla keybinds a shot?
>>
File: 1784668951059.png (1.64 MB, 1408x768)
1.64 MB PNG
>>109327276
lisp sisters...
>>
>>109335217
>guixchad is a stoic freeman
>nixfag is a FAGMAN wageslave
Nice AI slop albeit
>>
File: PXL_20260721_213350876.MP.jpg (1.11 MB, 4000x3000)
1.11 MB JPG
>>109335336
the vibesloppa is canon
the holy trinity of vibesloppa
>>
>>109334974
America has like 100 times more indians than Brazil tho
>>
>>109333398
Why?
>>
>>109335182
Yeah, I think they're pretty neat once you get used to them
>>
>>109272864
A friend of sneed is a friend indeed
>>
>>109338178
A friend with feed is better
A friend of Chuck’s who fucks and sucks
A friend of city slickers
>>
>>109335677
Is there a way to get rid of them without murder?
>>
>>109338227
no, get ready for bloodshed, one way or another
>>
>>109337295
Because macros are harder to read than normal code and I expect Lisp-idiomatic code to make use of them. I would honestly not even write more than ten lines or so of a macro before thoroughly testing that it expands and works as correctly. Twenty would already be more than long enough without making sure to take proper care to do it well.
Also, because there is a lot of value in making sure that the abstractions you introduce are actually the right abstractions to introduce. This is one thing I don’t believe LLMs are very good at. You can see the Lean code written by Math Inc for an example of how some of this talk about LLMs is showing they are superhuman in some ways but very poor in others, and coming up with abstractions is one such way. They were writing 200k line Lean code to formally prove something but the code was completely unreadable because they have absolutely no idea what abstractions provide value. The same is almost certainly true for large enough codebases, especially in Lisp where the abstraction is often much more important than in other languages, maybe bar Haskell or similar.
>>
From the guy who brought us babashka,
A Clojure-like language that runs on Elisp
https://github.com/borkdude/cljbang.el
(defn stale-buffers []
(->> (el/buffer-list)
(filter (fn [b] (let [f (el/buffer-file-name b)]
(and f (not (el/file-exists-p f))))))
(map el/buffer-name)))

becomes:
(defun stale-buffers ()
(let (result)
(dolist (b (buffer-list) (nreverse result))
(let ((f (buffer-file-name b)))
(when (and f (not (file-exists-p f)))
(push (buffer-name b) result))))))
>>
File: 1782282229285087.gif (1.44 MB, 320x180)
1.44 MB GIF
>>109340337
us Clojure bros will eat the world
>>
>>109340337
clojuremacs when
>>
>>109334974
Fuck benchod bitch
>>
>>109326302
oh wow someone reposted and it got traction
>>
my swank my swank why hast thou hung up on me
>>
>>109272864
please tell me what has actually been made in lisp i know emacs which i do use and i want to learn lisp but like what the fuck is actually made with lisp ? any apps ?? or larger scale projects ?
>>
File: JimClarkNetscape.png (315 KB, 392x609)
315 KB PNG
>>109344894
Several programming languages you may know and love started out as lisp prototypes.

Lisp's curse is it prototypes people to abandon it by production time. Lisp's strengths do not scale to teams but to environments and learning. Lisp's greatest strength is meta programming building languages. It's like the Giving Tree.


Early CGI giants of Symbolics Graphics division were bought by Silicone Graphics SGI which was bought by Nintendo (certain technologies like S world -> NWorld -> Nintendo 64 and Game Cube)
The SGI HQ building is now Google HQ

The work place where you work makes the man and that man Jim Clark is Lisp's most role model student flexing Netscape, SGI, and out of his amazing achievements his amazing growth is not an artifact but his education his academics are what we study years later.
>>
File: fixMyFuckingPhoneNigga.png (301 KB, 680x494)
301 KB PNG
>>109345283
Mirai CGI used in Lord of the Rings was Common Lisp

Stanley and Stella bleeding edge CGI 1987
https://www.youtube.com/watch?v=YVj4MljuyXk

Ratchet and Clank inherited its engine from Jak & Daxter from Naughty Dog in a custom lisp built for the PS2 called GOAL/GOOL

Sojourner (Mars Pathfinder, 1997): While the final flight software for the Sojourner rover was written in C, early autonomous navigation planning software was developed in Lisp by Garret. The decision to switch to C was influenced by political and resource constraints rather than technical superiority.
Deep Space 1 (1999): The Remote Agent project successfully flew a full Common Lisp system on the spacecraft. This allowed engineers to debug and fix a race condition remotely via the Deep Space Network, earning the project "NASA Software of the Year."
Other Missions: Lisp was used for the Gallileo magnetometer patch (1993) and early JPL rovers like Tooth and Robby. However, following the Remote Agent's downgrading due to budget pressures, Lisp was largely abandoned at JPL for flight software.
>>
>>109342243
this could be very based
just have each buffer be its own map
native properties are non-namespaced keys
plugins could add properties using namespaced keywords
use JavaFX for presenting the UI
trivial parallelism
sandboxed plugin support using SCI
I've actually thought quite a bit about making this, but at the same time I have a dozen other projects to work on and Neovim just werks
>>
>>109345406
also Clojure's native immutability would be a great fit for an undo tree to whatever configured depth
https://github.com/lacuna/bifurcan provides a rope DS that can be used for representing the buffer's content
>>
>>109340337
(defun stale-buffers ()
(cl-loop for buf in (buffer-list)
when (buffer-file-name buf) unless (file-exists-p it)
collect (buffer-name buf)))
>>
File: JustFuckMyTokensUp.png (33 KB, 883x151)
33 KB PNG
vibecode bros...checkmate hardcounter no tokens can save us
>>
File: PythonMogsAgainpng.png (1.09 MB, 1024x1024)
1.09 MB PNG
>>
>>109346633
i don't get it
>>
>>109345406
yeah looks interesting
>>
>>109326302
>implying /pol/ can read lisp
>>
>>(((109348710)))
oy vey
>>
File: file.png (567 KB, 1938x1552)
567 KB PNG
forgot to reply to this anon
>>109033339

if you want to use sql and duckdb for elisp data structure manipulation, there's https://github.com/gggion/duckdb-query.el

it allows going from sql -> elisp and back without much of an issue, in terms of speed it starts to chug at 10 million records (or more depending on table structure), so it should accomodate most normal use cases.

You can query excel, csv, json or directly from urls, or even directly from org tables (if they have a name), for example given an org table with name inventory:
 
(duckdb-query
"SELECT product,
stock * price as value
FROM @org:inventory
ORDER BY value DESC"
:format :org-table)


I haven't worked on it for some time but it works without problems, or let me know if you encounter any. I'm currently pursuing my autistic dream of making Factorio mods in fennel, which required making a type system for fennel-lang.
>>
>>109345961
deep in the slop reactor
shh no wizards only prayer faithbuilds with induglence tokens now
https://www.emacswiki.org/emacs/The_state_of_agentic_coding_tools_in_Emacs_(2026)
>>
>>109352097
https://www.emacswiki.org/emacs/EmacsNewbie
>>
File: 1756006910622265.jpg (78 KB, 640x559)
78 KB JPG
New Emacs 31 pretest tarball just dropped. Compile, NOW!!!!

https://lists.gnu.org/archive/html/emacs-devel/2026-07/msg00270.html
https://alpha.gnu.org/gnu/emacs/pretest/emacs-31.0.91.tar.xz
https://alpha.gnu.org/gnu/emacs/pretest/emacs-31.0.91.tar.xz.sig
>>
>>109353582
im already on emacs 32 thoughbeit
>>
https://github.com/lem-project/lem/compare/v2.3.0...main
does anyone know what is new in lem-main instead of lem 2.3 from last year? There are like 550 commits.

Also, why would people re-write emacs. People have spent their lives writing emacs plugins.
>>
>>109351322
>https://github.com/gggion/duckdb-query.el
I use that one, too. I like it very much.
>>
>>109353582
Out of curiosity, I wanted to try running the gpg verify, but I can't seem to get the public key.
gpg --keyserver keyring.debian.org --recv-keys 8DC2487E51ABDD90B5C4753F0F56D0553B6D411B

This is failing for me. Does it work for any of you?
>>
>>109354731
Nevermind. It started working. Maybe it was an upstream server issue.
>>
>>109353582
./autogen.sh
./configure \
--with-x \
--with-x-toolkit=lucid \
--with-tree-sitter \
--with-dbus \
--with-native-compilation=aot \
--with-file-notification=inotify \
--with-mailutils \
--with-xml2 \
--prefix=/opt/emacs-31.0.91 CC=gcc-14

Then
make -j $(nproc) # 8 cores in my case

- It took 24 minutes to compile.
- My main config seemed to be mostly working, but closer inspection revealed some breakage.
- A lot of packages are complaining about the absence of transient--set-layout.
- Some code is complaining about the absence of cl--define-derived-type.
- lua-mode seems to need a modern elisp maintenance update. lots of warnings here

31.0.91 is not ready for daily driving.
>>
>>109355485
>- It took 24 minutes to compile.
wtf what's your cpu? i'm on a 4 core haswell xeon and last time i compiled with --with-native-compilation=aot it took like 15 minutes (and 2.5 minutes with --with-native-compilation=yes). i used these flags
export CFLAGS="-O3 -march=native -mtune=native -fno-omit-frame-pointer -fno-plt -flto=auto"
export LDFLAGS="-Wl,-O3 -Wl,-z,now -Wl,-z,relro -Wl,--sort-common -Wl,--as-needed -Wl,-z,pack-relative-relocs -flto=auto -O3"
>>
>>109355565
I'm working 8 cores of this:
processor       : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-10310U CPU @ 1.70GHz
stepping : 12
microcode : 0x100
cpu MHz : 3000.176
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust sgx bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
vmx flags : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple shadow_vmcs pml ept_violation_ve ept_mode_based_exec
bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs taa itlb_multihit srbds mmio_stale_data retbleed eibrs_pbrsb gds bhi spectre_v2_user its vmscape
bogomips : 4399.99
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

I was also browsing and watching videos while it compiled.
>>
>>109355485
One thing I had to do was manually uninstall vertico and then let use-package install it again. I don't understand why the second time works.
https://github.com/minad/vertico/discussions/670
It seems to have something to do with the compat library.
https://github.com/emacs-compat/compat
>>
>>109355485
>transient--set-layout
I fixed this with `M-x package-upgrade transient`. The built-in one is not enough.
>>
>>109353582
I'm a stableGOD doe
I will only updooot when emac 40 gets released (see you in 2040)
>>
>>109353582
that guy has my dream job I guess
>>
File: 2026-07-24_06-35-41.png (102 KB, 1276x1051)
102 KB PNG
>>109353582
While skimming through C-h C-n, I noticed that some cl functions dropped the cl- prefix in 31.
>>
>>109357791
Yeah, now this is based.
>>
>>109357791
i'm an emacs and elisp consultant too (on (λ) - ᵋLisp General)
>>
>>109360962
I can pay you in virtual headpats if you want
>>
>>109353601
Does it break often?
>>
>>109360962
>>109360537
I wonder if JS has proprietary elisp tools. Are they hiding guileacs or clojuremacs from us?
>>
>>109361023
the only breakage of note ive had in recent memory (using emacs master for 2 years) were some errors being thrown in org mode which i rarely use
>>
>>109361358
>I wonder if JS has proprietary elisp tools
probably. a Jane Street guy mentioned they maintain an emacs branch internally, so it seems likely to me that they also have their own elisp packages

https://lists.gnu.org/archive/html/emacs-devel/2026-06/msg00590.html
>>
>>109361358
https://github.com/janestreet/ecaml
>>
>>109361358
You actually take a quick intro to emacs as an intern
>>
Someone pushed slop into Emacs.

https://cgit.git.savannah.gnu.org/cgit/emacs.git/commit/?id=3735384b19

There was no mention of this patch being LLM-generated in the bug mailing list btw.

https://lists.gnu.org/archive/html/bug-gnu-emacs/2026-07/msg00544.html
>>
>>109365552
it's over
emac has fallen
>>
>>109361358
>I wonder if JS has proprietary elisp tools.
Almost certainly. Corporate code is proprietary by default. If someone writes a bunch of Elisp tools at JS and fails to open source every single one, JS now has proprietary Elisp tools.
>>
>>109365552
>https://lists.gnu.org/archive/html/emacs-devel/2026-07/msg00325.html
i knew this guy was a vibecoding shitter the moment i saw his code, lol
>takes over emacs-jabber
>removed his codeberg account after the policy announcement of banning llm slop, so now the repo is gone
absolute clown
>>
File: 1729680853208.jpg (56 KB, 500x458)
56 KB JPG
>>109367626
>https://lists.gnu.org/archive/html/emacs-devel/2026-07/msg00318.html
>a jeet and a troon seething about the chink vibecoder
It’s a pity both sides can’t lose...
>>
a while back I posted an experimental Lisp without parentheses (no variadic argument support) that was durable in that it persisted side effects for later replay.
I now have a durable SCI (Clojure) lib that does the same thing, but for Clojure. it even supports parking of a program to disk for later loading/resuming. eventually I plan to consult Clojure's async implementation to implement something similar, but involving persistence to disk.
I'm using Postgres btw.
one day I do plan to make my own language, and it will be the most perfect language to ever exist, but Clojure gets me 95% of the way there, and is malleable enough to do the hacks necessary to solve the other 5% of problems (although not as elegantly as they could be solved).
>>
>>109368000
Yeah and then maybe us no job animeposter subhumans will win a battle for once.
>>
>>109367626
He also made a couple of YouTube videos I enjoyed and he seemed based.
It kinda saddens me to see him doing this shit. I think he is a medical student or some shit like that?
>>
>>109367626
https://thanosapollo.org/posts/emacs-jabber-revival/
Still on his website
>>
>>109367626
i don't get people like this who are so intent on slopping up emacs. there are millions of projects on github they can shit up, so why emacs too?
>>
>>109368859
They either don't care about slop and only care about results, or they are true believers about slop.
>>
About to try emacs
>>
File: 1770335924418260.png (1.35 MB, 1700x1100)
1.35 MB PNG
>>109370926
godspeed
>>
File: 1775308759578210.png (1.31 MB, 1200x896)
1.31 MB PNG
>>109370944
black emperor
>>
File: file.png (298 KB, 502x489)
298 KB PNG
I'm nominally a c programmer but I started putting on the mit sicp lectures as background noise.
I ported some math libraries I wrote from c to common lisp but I'm not a fan of the little differences I'm noticing with scheme from the lectures.

I'm a bit overwhelmed with how many implementations there are so I thought I'd ask here if there's any obvious choice like sbcl with common lisp?
>>
>>109371174
Guile is the "official extension language" of the GNU operating system, so I always use that
>>
>>109371192
wait I already have it installed?
well i guess I'll start there thanks, I thought it was an extension of scheme or something desu
>>
>>109371207
>I thought it was an extension of scheme
As far as I know, every implementation adds stuff on top of the standard.

Anyway, check out the manual, it's quite comprehensive (the PDF version is like 800 pages).
https://doc.guix.gnu.org/guile/latest/en/
>>
i only recently learned that make has guile scripting, i don't think i've ever seen a project that uses it
>>
Can someone please explain the value of metaprogramming? When you work with other people, they often complain that it makes the code harder to read, and if you metaprogram enough you devolve into your own poorly documented DSL. When should one even be metaprogramming?
>>
>>109371960
for me it's like by line evaluation super flexible and transparent immediate dense feedback. it's a new level of resolution
>>
>>109371960
You should be removing boilerplate code.
>but higher order functions and decorators CLOS and lazy evaluation remove 99% of boilerplate
Yes.
>>
>>109372458
All code is boilerplate code.
>>
>>109371960
Lisp metaprogramming is powerful enough I can just write down what I want to happen and use macros to give that meaning.
>>
the best dialect of emacs lisp to learn is C. or as I call it eshell C
>>
>>109371207
Scheme is technically not just one thing. Unlike most other languages it doesn’t necessarily build upon previous versions in an additive way. Scheme considers itself free to completely redo something in a previous standard if it’s sufficiently suboptimal, so different Scheme implementations might adhere to e.g R5RS or R6RS, making them all different schemes in some way, and all are extensions of something depending on your perspective.
>>
Is there a way to "peek" in a file in read-only mode then kill the buffer with 'q'?
>>
>>109374695
That's actually built-in. To "peek" at the files, use one of the view-file functions.
M-x view-file
M-x view-file-other-window
M-x view-file-other-frame

That'll let you look at the file with read-only-mode and view-mode simultaneously enabled. The view-mode-map happens to have the "q" binding you want.

If you do `C-h m`, you'll see that view-mode has various ways to quit.
q    quit View mode, restoring this window and buffer to previous state.
q is the normal way to leave view mode.
e exit View mode but stay in current buffer. Use this if you started
viewing a buffer (file) and find out you want to edit it.
This command restores the previous read-only status of the buffer.
E exit View mode, and make the current buffer editable
even if it was not editable before entry to View mode.
Q quit View mode, restoring all windows to previous state.
c quit View mode and maybe switch buffers, but don’t kill this buffer.
C quit View mode, kill current buffer and go back to other buffer.
>>
>>109375332
amazing thanks
>>
>>109371960
Have you ever used the rx macro in Elisp? To me, it was one of the biggest pleasant surprises I encountered while learning Elisp. I have a lot of experience with Perl regular expressions, but I'm not familiar with Elisp's regular expressions. However, with rx, I can take a high-level regular expression idea and express it in a very readable and Elisp-compatible way. It is truly a joy to use.

rx is a good example of the value of metaprogramming.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Rx-Notation.html
https://www.gnu.org/software/emacs/manual/html_node/elisp/Rx-Constructs.html
https://www.gnu.org/software/emacs/manual/html_node/elisp/Rx-Functions.html
https://www.gnu.org/software/emacs/manual/html_node/elisp/Extending-Rx.html
>>
>>109368291
>Most perfect language to ever exist
>No variadic arguments
>>
>>109376838
>a while back
>experimental Lisp
>>
>>109365552
The commit has been removed:
https://lists.gnu.org/archive/html/emacs-devel/2026-07/msg00398.html
>>
>>109371174
>>109371192

Loving scheme/guile, one namespace feels so much nicer to me.
I'm still very rusty with lispisms and I've just discovered quote and realized I could have been using it all along.
>>
>>109371174
>>109377703
>t. Cy D. Fect
>>
>>109377800
>>109377800
just looked that fella up and have no clue clue what they are yapping about but that Ben Bitdiddle guy is a bitch.
>>
>>109377971
The reformed C programmer
>>
C-h 4 s
>>
>>109373208
GNU C?
>>
Scheme is so beautiful but it can be so clunky for ""real'" software because of the lack of polymorphism.

Modelling business rules becomes a chore. Almost makes me miss ocaml.
>>
>>109382580
Its a dynamic language with first class procedures you could model polymorphism fairly closely if you structure your code right.
>>
>>109382797
It goes of rails when I start using records, but if I don't use records I reinvent them with closures somewhere along the way.
>>
>>109382580
>he doesn't use Clojure with multimethods and/or interfaces
>>
>>109371174
>>109377703

I started off porting a dumb polynomial simplifier from c that could do basic math on lists of common terms {double coefficient; int exponent;} by basically just treating a cons as my old c term struct and doing more or less the same code as c.
Now I'v fallen down a rabbit hole where I pass a quoted lisp like expression with unknown variables and spit out a simplified version.
This is sick although i need to learn how to make it less jank and support more then binary operations.
>>
>>109384754
I’ve done this with records and I admit I don’t know what your difficulty might be. As for the “lisp-like expression,” I assume you mean backquoting?
>>
>>109384831
yes something like '(+ (expt x 6) (* (expt x 4) (expt x 2))) would become (expt (* 2 x) 6)
I just have a big cond for each case which gets called recursively but it has alot of repetition like:
((and (number? a) (zero? a))
b)
((and (number? b) (zero? b))
a)
which I feel like I should be able to reduce.
>>
>>109384952
Sounds like this could be broken into smaller functions or named let forms, or even a macro. Although it’s hard to say without seeing the code, but you can clearly see already this is just the same function of a and b (“if one is zero return the other”) being repeated, so there’s a useful definition or a named let right there
>>
Thank god I found out I should remap capslock to ctrl while still learning emacs.
>>
>>109383790
but what about jvm java sir
>>
>>109389310
what about it?
do you have any idea how much shit is already built and assembled into Java libs for you to freely use via Clojure with absolutely minimal effort? for example, see
https://www.orekit.org/
do you have any idea how many dollars have been spent optimizing the JIT compiler?
the JVM is a hog, sure, but it is a hog that will chew endlessly on whatever workload you give it while snorting gently in response
>>
File: GNU.png (185 KB, 860x880)
185 KB PNG
>>109381388
https://www.gnu.org/software/c-intro-and-ref/manual/
>>
>>109386821
>I should remap capslock to ctrl
Why?
>>
>>109393074
It's less awkward for your pinky finger when pressing various Ctrl key chords.
>>
>>109386821
>>109393074
>>109393083
also you should remap rctrl to hyper. it's goated
>>
>>109394565
>rctrl
I forget that key even exists. It is probably the least touched key on my keyboard.
>>
>>109393074
If you use your pinky for Ctrl, the Capslock position is so much more comfortable.
I believe Emacs was designed around Ctrl being in that position, since a lot of older keyboards were like that.
>>
>>109389310
https://github.com/chr15m/awesome-clojure-likes
>>
>>109395586
i'm retarded, i meant lctrl
>>
Did the behavior of meow-next-word change recently?
Before it used to highlight the word and also an extra whitespace, but now it's just highlighting the word only with no whitespace. Is it supposed to be like that?
I'm not sure if this is new behavior or something I changed in my config
>>
>>109371174
>>109377703
>>109384754

So I installed (non)guix os.
>>
(defun toggle-world-clock ()
"Toggle the visibility of the *wclock* buffer."
(interactive)
(let* ((frame (selected-frame))
(windows (window-list frame))
(found? nil))
(dolist (w windows)
(let* ((buffer (window-buffer w))
(name (buffer-name buffer)))
(when (string= name "*wclock*")
(quit-window nil w)
(setf found? t))))
(when (not found?)
(world-clock))))
>>
>>109402271
Was this vibe coded? It has the typical LLM habit of using lots of unnecessary variables in let* bindings
>>
>>109402662
No, I wrote it manually.
>>
does anyone have the emacs logo pictures with to love ru girls?
>>
>>109402662
>typical LLM habit of using lots of unnecessary variables in let* bindings
that's idiomatic in Clojure. Or at least I've seen it a lot there and do it myself.
>>
Will try to introduce clojure to my job (mostly spring boot boomers) as a debugging tool.
>create a nrepl class
>see your springboot crud and play around in it
>>
>>109402662
+1 for the LLMs then. I'd rather they have a habit of doing that than the alternative style. Though in this case I like
(dolist (w (window-list (selected-frame)))
(when (string= (buffer-name (window-buffer w)) "...") ...))

more, the function names are clear enough that the nesting isn't really a problem.
>>
which motivations do you have to read the documentations? I am unmotivated right now, but could really use more GNU/emacs wisdoms.
>>
>>109402271
>>109405837
`frame' and `buffer' are completely unnecessary. both let* forms should simply be regular let forms
>>
been writing Clojure now for over a year (probably a bit longer desu) and it still is an absolute pleasure
in fact it only gets better as my understanding of the language grows deeper
Rich Hickey knocked it out of the fucking park
>>
>>109407080
i want to get into clojure but im just staring blankly at clojars wondering what do? I just took a java class at uni and all we did was fibonacci and eclipse install
>>
File: spash-image.png (715 KB, 500x500)
715 KB PNG
>>109403799
>>
>>109407259
(setq fancy-splash-image "sexmacs.png")
>>
>>109407177
follow https://github.com/babashka/babashka#installation
use a text editor to create a `whatever.bb` file
put in
#!/usr/bin/env bb
(ns
whatever
(:require
[hiccup2.core
:as hiccup]
[org.httpkit.server
:as httpkit]))

(defn
homepage
[_]
{:status 200

:headers
{"Content-Type" "text/html"}

:body
(str
(hiccup/html
(hiccup/raw "<!doctype html>")
[:html
{:lang "en-us"}
[:head
[:meta
{:charset "utf-8"}]
[:title "Hello from Clojure"]]
[:body
[:h1 "Hello from Clojure"]
[:p
"Feel free to put whatever HTML you want here, using "
[:a
{:href "https://weavejester.github.io/hiccup/hiccup2.core.html"}
"Hiccup"]
" as the intermediate data format."]]]))})

(httpkit/run-server
homepage
{:port 8080})

then `chmod +x whatever.bb`
then `./whatever.bb`
finally, open `localhost:8080` in your browser
if you're on Windows, frankly idk how to start it, it's been over a decade since I've used that trash, but the gist should be the same.
>>
>>109407259
thanks anon!
>>
>>109405837
Silly, there’s no need for unnecessary variables in simple expressions when it’s so clear. As >>109406917 says
>>
File: well-i-will-be-danged.png (34 KB, 1510x530)
34 KB PNG
>>109407309
hmm
>>
>>109407967
my repl has now tasted old timey retro webdev of the future wow
>>
>>109408045
wow i hosted a website on serveo
(no i wont link you mfer hackers and crackers and racially ambiguous n***kers into my port 8080)
>>
>>109402271
(defun toggle-world-clock ()
"Toggle the visibility of the *wclock* buffer."
(interactive)
(if-let ((clock-window (get-buffer-window "*wclock*")))
(quit-window nil clock-window)
(world-clock)))
>>
>>109408164
based, now try adding interactivity with a form.
the `homepage` function in >>109407309 takes a HTTP request as its argument (annotated as `_` atm, because it is ignored in the example I posted, just rename it to request). try getting HTTP post request details from a form in the request and writing a calculator or whatever.

should only take around 20 extra LOC
>>
>>109408377
nice but
>This macro is obsolete since 31.1; use ‘if-let*’ instead.
>>
File: ClojureJavaFx.png (122 KB, 1445x856)
122 KB PNG
>>109409909
I ended up going to a rabbithole into JavaFx overthinking what cool stuff I could host
>>
>>109411306
curse me for using x11 instead of wayland that would have been a gif but that software stack in emacs there is as brittle as I've ever touched
>>
>>109411306
it's been done
https://github.com/cljfx/cljfx
>>
I swear Laurie browses /g/, maybe even Lisp threads. She brings up Lisp quite a lot now, almost always positively, and I swear stuff I see on /g/ comes up on her videos even shortly later. I mean it’s private equity crap now but the coincidences are pretty striking.
>>
File: LaiNAVI.webm (1.17 MB, 848x480)
1.17 MB
1.17 MB WEBM
>>109412863
Isn't she larping as le laingirl superhacker and shit?
Lain is a LISPer so that's expected.
>>
>>109412863
who?
>>
>>109413210
a youtube thot who does tech video
>>
>>109413210
my wife
>>
>>109412863
Hey Laurie do a video on exwm
>>
>>109412863
>I swear stuff I see on /g/ comes up on her videos even shortly later.
you're exhibiting symptoms of schizophrenia
https://en.wikipedia.org/wiki/Apophenia
>>
>>109413032
Born to be Lisping
Forced to C++
World is a fuck
>>
>>109412863
https://bsky.app/profile/lauriewired.bsky.social/post/3mpohn73pp22q
>I’m convinced Lisp is the highest IQ programming language
uhhh based???
>>
>>109408045
>CIDER
based
>>
>>109414793
Why not Emacs as a whole?
>>
>>109417882
cider logo
>>
>>109419754
*sip*
>>
Emacs on a Quest VR headset is surprisingly useable in terms of font readability etc., but I got a slight headache after about 30 minutes
>>
>>109423244
>VR
>terminal emacs instead of graphical emacs
it's a funny contrast
>>
>>109423596
it's basically a glorified Android phone strapped to your forehead, and Emacs is much more useful as part of a Termux install than as a standalone app
>>
File: 561951_p0.jpg (186 KB, 960x720)
186 KB JPG
>>109423660
>>109423244
native OpenXR interface for Emacs when
>>
>>109422233
nice digits
also, objectively the best Lisp logo that exists
too fuckin drunk for captchas right now, learn to trust your cookies hiroshimoot
>>
how do i get 200 iq and understand open source projects on github so I can integrate modern techniques into my own github project?
>>
>>109426707
unironically just ask an LLM to explain things to you if you're struggling to understand a piece of code
>>
Protip for meow users:
If you use isearch-forward-regexp instead of just regular isearch-forward then it integrates with meow-search (except that meow-search will only cycle through the matches that are case sensitive while isearch doesn't, which is kind of annoying, but it's better than no integration at all)
>>
>>109426707
clojure solved this for me. Basically every codebase looks the same because the language is so small and only allows for so much deviation from its idiomatic functional style.
>>
>>109426707
>>109426763
On the opposite end from asking an LLM, I find that removing distractions helps my code reading comprehension. I close all tabs and programs I'm not actively using, temporarily disable my internet connection if I'm looking at locally-saved code, and possibly set a timer for something like 25 minutes. I then focus exclusively on the code within that timeframe. If I'm using a timer, I take a 5 minute break and do something off the computer to recharge and let my head work on it in the background, and when I come back, I find I grasp what I'm looking at better than I did before the break.
My ideal would be to read code on something other than a traditional light-emitting screen, as the kinds of eye movements those promote suck for focused reading. Printing it onto paper gets impractical fast, so some kind of e-ink display is likely as close to ideal as I can get.
>>
>>109426707
Seconding >>109428216, unironically “just fucking focus” is the best thing for me too. Sometimes you just have to go hard and make yourself get good. Just try see what the code does and figure it out slowly.
>>
>>109272864
>zun
Can someone explain to me why Zun is in this image with some Touhou characters? Were the games programmed in this or what
>>
File: @korindo.png (136 KB, 750x578)
136 KB PNG
>>109429596
ZUN is a famous emac lisp wizard
https://youtu.be/RPeFQwBFURk?t=1623
>>
File: 1781621554228850.jpg (650 KB, 1806x2560)
650 KB JPG
>>109429596
he's a prolific Emacs user
>>
>>109429596
who?
I thought it was that xah guy all Asians look the same to me.
>>
Am I the only one whose favorite LISP is ELISP? I find Common Lisp too big and, I have to say, abandoned, Scheme too barebone for any kind of real project and Clojure one of these JVM language that eventually becomes obsolete.

Emacs, on the other hand, provides a nice environment and a active community who maintains the packages.
>>
>>109429983
>Clojure one of these JVM language that eventually becomes obsolete.
millions of brazilians in debt slavery would like a word
>>
>>109429983
elisp is really fun to write. as much as i like scheme, i'm glad elisp is its own language
>>
>>109429983
>Am I the only one whose favorite LISP is ELISP?
Yes, probably.

>Clojure one of these JVM language that eventually becomes obsolete.
1. the JVM will not become obsolete for as long as computers in the current form are a thing because trillions of dollars are dependent on it

2. JVM Clojure, at least the core language, will not become obsolete before programming languages as such become obsolete, because it's used by NuBank for all their core infrastructure. You can still find jobs in fucking COBOL because banks will go to incredibly great lengths to avoid the risks associated with rewriting their business logic.

3. Clojure runs on a bunch of different backends, not just JVM
>>
>>109430140
I was not talking about the JVM of course, I was talking about Clojure specifically. I know that it won't never die completely, but from what I know Clojure (among Scala, Groovy, etc.) emerged in a time where Java had a lot of problems and people was looking for alternatives. Or at least this is what a Java developer I know (the typical corporate/bank guy) told me.
>>
>>109429843
>the Witch Hat Atelier = SICP idea is catching on
Based
>>109429983
No, Xah Lee also makes this exact comment. So you might not be in good company, but you’re not alone.
>>
>>109430183
>Clojure (among Scala, Groovy, etc.) emerged in a time where Java had a lot of problems and people was looking for alternatives
that's true, the thing is that Scala, Kotlin etc. are basically just trying to be a better Java, while Clojure has its own niche as a functional language with heavy emphasis on REPL-driven development and Lisp-inspired syntax.
>>
>>109430214
>Witch Hat Atelier
I watched the first season and unless there's a big twist like in Madoka, the show just shits all over the principle of energy conservation.
Being able to conjure up infernal flames and storms by drawing some squiggles on paper does not make for a coherent system of physics.
>>
>>109430267
Yeah it’s crazy how magic lets you do stuff you can’t do without magic
>>
>>109430183
Another aspect during that time was the people holding the most money were saying JVM or bust. They were too scared to let Python/Node/Lisp/Ruby/Haskell/whatever into production, but you could get facsimiles and hey you don't need to reinvent all these enterprise foundations for real money making applications, and hey some were actually decent, it was easier to see when not doing everything with XML.
>>
>>109430183
Clojure has a very unique developmental ideology that you will not find anywhere else. namely, the complete abandon of classes/structs, instead preferring "open" maps where namespaced keywords are used to notate a "thing's" attributes. look at Rich's talks on Spec to get a sense of his ideas regarding data.
>>
>>109370944
im ashamed of this drawing
>>
File: 1784266401768942.jpg (49 KB, 640x598)
49 KB JPG
>>109429983
I recently have come to the same conclusion. I write actual projects in C and Go but like editing in emacs and editing my editing in emacs but I actually hate lisp in all its real load bearing ecosystem production forms.
>>
>>109430752
>Rich's talks on Spec
?
>>
>>109431599
have you drawn any hentai of the lisp girl?
>>
What's the best scheme if I care about portability and bootstrapping? Chibi seems easy to bootstrap, but not as performant as Chicken or Chez.
>>
AI.
>>
>>109429983
>Am I the only one whose favorite LISP is ELISP?
I like Elisp too. It's the Lisp I use the most by far, and it's actually been pleasantly surprising over the years. It has some nice libraries built-in, and the environment is really fun to program in.
>>
how hard is debuggin with slime?

I have some codes and need to trace it. But, I am watching youtube still.
>>
>>109433700
i just want ai gen fancy pictures of the green alien
>>
>>109437838
>fancy
?
>>
You guys good with actual projects being posted here? I don’t want to come across as shilling or anything. Also it’s hard as fuck to post here nowadays. Not even talking about the captchas either, the bans for no reason are crazy.
>>
>>109440180
the only time i will shit on projects being shilled is if it's jeetslop or vibeslop
>>
>>109440180
i get banned for effortposting
>>
>>109440180
>You guys good with actual projects being posted here?
as long as it's in some Lisp dialect and not just random vibe slop, sure
>>
I love LISP and have been following these threads for a while now, but... why didnt anyone tell me that the main guys behind its momentum and development were jewish? Even Stallman is jewish, which Ive read here a couple of times with anons always flatly denying that...
I was told countless times here that LISP and Emacs were the "white man choice", Im confused
>>
>>109440775
I've seen many Jews say that they hate Germans, but not a single one who refuses to drive cars because the car was invented by Germans.
>>
>>109440775
>LISP and Emacs were the "white man choice"
jewish folx are the whitest people out there
>>
>>109441043
https://youtube.com/watch?v=mirL15zZYNc&t=12s
>>
>>109440775
Stallman is chinese
>>
File: maxresdefault (2).jpg (88 KB, 1280x720)
88 KB JPG
>>109440775
Have you tried the GNU/New Testament or as I like it the GNU Testament or even the Jewish Testament plus plus?
Christian Identity emacs users actually say we wuz emacs we wuz Intel we wuz the real Israel and the real anti isreal and not the fake jews synogogue of satan
>>
new bread >>109444547



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.