[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / 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

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


[Advertise on 4chan]


File: 1750063454396824.jpg (1011 KB, 1920x1080)
1011 KB
1011 KB JPG
Wide edition.
>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 >>108089143))
>>
>>108158127
julia> using LispSyntax

julia> LispSyntax.init_repl()
Warning: REPL key ')' overwritten.
@ ReplMaker ~/.julia/packages/ReplMaker/ViCwA/src/ReplMaker.jl:96
REPL mode Lisp Mode initialized. Press ) to enter and backspace to exit.
"Prompt(\"jλ> \",...)"

jλ> (def td (today))
2026-02-15

jλ> (def tm (+ td (Day 1)))
2026-02-16
>>
>>108152681
That's a good stack. I also use cl-webdriver-client to scrape excessively dynamic sites that need a full browser to load and parse.
>>
>>108159045
You might have to add this also:
using Dates

I have my Julia REPL setup to load that and a few other things automatically.

Reference for date and time math in Julia:
https://docs.julialang.org/en/v1/stdlib/Dates/#TimeType-Period-Arithmetic
It's kind of handy that durations like Day and Hour are distinct types in Julia. You'll notice that Julia makes use of multimethods way more than Common Lisp ever did. (For example, there are specializations of the + function that know how to deal with combinations of Date, DateTime, and subtypes of Dates.Duration (which include Hour and Day)).

----
>>108158127
For Common Lisp, I'd probably use local-time.
https://github.com/dlowe-net/local-time

CL-USER> (defparameter today (today))
TODAY
CL-USER> (defparameter tomorrow (timestamp+ today 1 :day))
TOMORROW
CL-USER> today
@2026-02-15T16:00:00.000000-08:00
CL-USER> tomorrow
@2026-02-16T16:00:00.000000-08:00
>>
>>108159184
>cl-web-driver
https://github.com/copyleft/cl-webdriver-client
>scrape excessively dynamic sites that need a full browser to load and parse.
Thankfully, I haven't needed to do that yet, but this is good to know in case I ever do.
>>
>>108159211
>Dates.Duration
correction: Dates.Period
julia> typetree(Dates.Period)
Any (other children are hidden)
─ Dates.AbstractTime
─ Dates.Calendar (1 children)
─ Dates.CompoundPeriod
─ Dates.Instant (1 children)
─ Period
─ DatePeriod
─ Day
─ Month
─ Quarter
─ Week
─ Year
─ TimePeriod
─ Hour
─ Microsecond
─ Millisecond
─ Minute
─ Nanosecond
─ Second
─ TimeType (3 children)
>>
File: KV-2.jpg (685 KB, 3000x4000)
685 KB
685 KB JPG
Interesting
https://artanis.dev/blog/technical-report-2026-Jan-28.html
>>
File: test-shell.mp4 (786 KB, 1040x660)
786 KB
786 KB MP4
Moar progress. Cleaned up the lisp shell implementation (lish fork), added support for piping.
Shell output goes into *input* if you want to process it in CL. Can't lie, don't think I'll use this much, but just felt like it should work in some form.
>>
>Install GNU/Linux
>GNU: GNU is Not Unix
>open emacs
>(uiop:detect-os)
>:OS-UNIX
>>
>>108159408
Wholy ESL
>>
I'd use Lem but I have developed an allergy to seeing this MIT license shit everywhere. If something wants to be a spiritual successor to Emacs, it should at least have the decency to stick with the GPL.
>>
>>108159024

https://www.youtube.com/watch?v=15NuPtKyu9g
>>
>>108160453
>Wholy
If you're going to criticize someone's English...
>>
File: 1762423327673752.png (1.7 MB, 1920x1080)
1.7 MB
1.7 MB PNG
>>108159024
Only posting here because of Hidamari
>>
File: emacs-canvas-patch.png (33 KB, 956x757)
33 KB
33 KB PNG
I wonder if this will make it into Emacs some day.
https://github.com/minad/emacs-canvas-patch
>>
>>108159771
Tangent: Does your editor have the concept of major modes (and minor modes) like Emacs?
>>
what causes lsp-mode to contact the github api every time you activate lsp-mode after a fresh start?
i'm already setting lsp-enable-suggest-server-download to nil, it's still doing it
this shit causes my emacs to lock up whenever there's connection issues
>>
>>108161579
Why do you care if an editor is GPL or MIT? who's gonna steal a lisp IDE? KEK
>>
>>108162322
Because I think copyleft is a good thing, obviously. And I think it’s in bad taste to take one of the most well known GNU projects and replace it with this MIT license like what’s happening with a lot of free software projects nowadays.
>>
TIL there's a pastebin for Racket that can evaluate the code you paste.
http://pasterack.org/
>>
>>108162344
What if you unironically just don't care what anyone does with your project
>>
>>108162471
>gets used to create a backdoor in nearly every cpu on the planet in your path
cuck licenses, not even once
>>
>>108162579
With an Emacs clone?
>>
File: miya.png (591 KB, 1229x720)
591 KB
591 KB PNG
>>108161796
Only posting here because (You) posted my edit.
>>
>>108159771
>Shell output goes into *input* if you want to process it in CL. Can't lie, don't think I'll use this much, but just felt like it should work in some form.
I use shell->string most days so it's appreciated
>>
>>108161833
Kind of? I don't actually have major/minor modes, mostly because I don't have "everything is a buffer". Instead everything is a view, which is a bit lower level (but more powerful), and keymaps pick what views to operate in. For language features, we have a `buffer-view`, and that uses stackable buffer-modes (e.g. Lisp/Markdown/LSP). That covers similar use cases to a major mode, but it’s more composable. The only thing that's exclusive right now is buffer-view's editing state (normal/insert/select).
I'm still working on the semantics and I haven't fully made up my mind on it but that's the general idea right now.
>>108163648
Ah neat! Do you think *input* makes sense? Was between *input* and something like *stdin* or just *in*.
>>
>>108162579
GPL projects generally get infiltrated and subverted by corporations and other undesirables. MIT ones generally do not. The relationship between Redhat and Linux is far more egregious cuckolding than that of Sony and FreeBSD.
>>
>>108165023
>GPL projects generally get infiltrated and subverted by corporations and other undesirables. MIT ones generally do not.
there's nothing to infiltrate and subvert with mit because they can already do whatever they want with it so that goes without saying
>>
File: GPL_vs_(((BSD))).jpg (380 KB, 1069x1081)
380 KB
380 KB JPG
>>108165023
Cuck Cope
>Unlike the GPL, which requires you to share derivative works, the BSD license doesn’t. You can take FreeBSD code, build on it, and never give anything back. This makes it a great foundation for products — but it also means there’s little reason for companies to return their contributions.
https://freebsdfoundation.org/blog/the-report-of-my-death-was-an-exaggeration/
>>
>>108164740
Sounds good, CL uses *standard-input* as you know
>>
File: file.png (67 KB, 640x454)
67 KB
67 KB PNG
>>108156261
>>108156135
I got it! It only took months!

Unfortunately I was already getting used to moving away from Emacs, started using Obsidian and all...
>>
lol check out this guys 5k line init.el
https://github.com/nicolaisingh/dotemacs/blob/master/init.el
>>
>>108162471
Apparently you do care what people think of the license though
>>
>>108162471
Just to be clear, by "don't care" you obviously mean in the sense of allowing the software to be as free as possible, not that you "don't care" about licenses (otherwise you could just choose no license at all, which would default to standard copyright).

But there is an inherent flaw in the view of MIT license as being the "most free". Because you are living in a world that prioritizes non-free ideals.
So being permissive in a fundamentally _non-permissive_ system, doesn't create an environment of true permissiveness.

In a truly permissive system if someone takes my code and uses it in their project, even if they don't re-contribute their changes to me, but they release a binary using those changes, then I should be free to reverse engineer whatever they've done.
But the MIT license would actually allow them to take your code and sue you if you try to reverse engineer anything they do with it.

This is why I'm a fan of the GPL. The GPL basically tries to "fight fire with fire" by using copyright laws against themselves. Although it appears to create restrictions, what it's actually doing is attempting to nullify the non-free side effects that already exist because of other licenses.
So ironically the GPL is actually the "most free" license available.

Even Linus Torvalds who is against the GPLv3 still agrees that Linux would not have succeeded if it weren't for the GPLv2.
>>
>>108165878
what was it?
>>
>>108166345
>singh
not interested
>>
>>108167408
No idea honestly. I just tried (multiple times) to
lsp-workspace-remove-all-folders, then I opened a file and pressed 'i' at the prompt to add the current file's project root to workspace, then opened raylib.odin by using gd (goto definition) and then there pressed 'i' again when asked whether to add the folder to the lsp workspace.
I think what confused me (and still does) is how Emacs or LSP-mode thinks of workspaces.
If I understood correctly, my odin program's project directory was added to the workspace, and then I added not the raylib directory, not the vendor directory, but the "main" Odin directory to the workspace. And yeah, it worked.
And well, this time I also did lsp-workspace-restart
>>
>>108162374
Nice
https://github.com/stchang/pasterack
>>
>>108159771
Cool, bro. Your editor looks nice. I use lish as my main shell. btw, you can just pipe lisp funcs without parens, like:
pwd | string-upcase | reverse

lish has a bunch of hidden tools and i wrote my own lisp commands instead of crap /bin/sh.
Too bad lish author removed the reops and i'm too dumb to fix the problems. But I can't find the repo for your editor either?
Sad if smart lisp chads silenced by theiving clankers.
>>
>>108169719
>Too bad lish author removed the reops
Is the lish you're talking about different from this?
https://github.com/lfkeitel/lish
>>
Anyone uses emacs for PIC assembly code? Microchip has an IDE, its good, but I'd like to use emacs.
>>
Feature creeping my shit.
I've successfully added package agnostic formatting (user can define their own formatter with emacs-reformatter or their own formatting functions), and binding extraction utilities, so it's not a slog to abstract sections of the query to their own reference bindings, or remove existing bindings.
Most of it is still in a sepparate branch (autocompletion branch).


>>108170609
Was looking into it last year but never went through with really trying it out. I remember looking up packages for it and finding these two:

>https://github.com/jhallen/pic-macros
>https://github.com/rswarbrick/picasm
>>
>>108170687
I need to find an excuse to use duckdb.
>>
>>108170687
are you the org-transclusion-blocks anon?
https://github.com/gggion/org-transclusion-blocks/
>>
>>108165082
That's the point. The retard below you doesn't get it though.
>>
>>108170203
Yes. It was in written Common Lisp and at https://github.com/nibbula/yew and then https://codeberg/nibbula/yew and updated for like 10 years until last month or so.
>>
File: file.png (510 KB, 2056x2538)
510 KB
510 KB PNG
>>108170698
Yeah I'm mainly using it for job related things but found out that it's convenient for fetching RSS feeds into an org-table or list like this:

#+begin_src elisp
(duckdb-query
"LOAD webbed;
SELECT
strftime(updated::TIMESTAMPTZ, '%Y-%m-%d %H:%M') AS published,
'[[' || link || '][' || title || ']]' AS headline
FROM (
SELECT
xml_extract_text(e, '//*[local-name()=\"updated\"]')[1] AS updated,
xml_extract_text(e, '//*[local-name()=\"link\"]/@href')[1] AS link,
xml_extract_text(e, '//*[local-name()=\"title\"]')[1] AS title
FROM (
SELECT unnest(xml_extract_elements(
content, '//*[local-name()=\"entry\"]')) AS e
FROM read_text(@val:url)))
ORDER BY updated::TIMESTAMPTZ DESC
LIMIT @val:n"
:val '((url . "https://planet.emacslife.com/atom.xml")
(n . 5))
:readonly nil
:format :org-table)
#+end_src


You can change :format to :list or one of the other format options.

>>108170905
Yep
>>
>>108171042
>Yep
I opened this feature request: https://github.com/gggion/org-transclusion-blocks/issues/7

Can you take a quick look and let me know if it sounds feasible?
>>
>>108169719
Oh yeah you're right. I forked lish a long time ago, and after the author disappeared I stripped away a ton of stuff to just keep the library-relevant bits and get rid of dependencies, I must've accidentally stripped that out as well. I never used lish much as a standalone shell, glad to know someone's out there daily driving it.
>But I can't find the repo for your editor either?
It's just not public yet. I get heartburn thinking of other people using it still. I have a default config and I haven't tested a lot of ways to break stuff, I can only guarantee the default experience is good right now. I'm thinking of telling a clanker to generate 5 messed up user configs and use those as ephemeral integration tests kek

>>108170203
The author suddenly disappeared and took down his monorepo with him. Shame, no idea why.
>>
>>108171055
Ah nice, yeah no prob it's feasible, it's probably due to not updating the package for the latest org-transclusion version, I remember id links where added in the transient branch and merged a couple months back. I'll add it, thanks for the heads up I hadn't used id links.

Just to check, the ::quote-block search string is an org element right? like the name of your quote block?
>>
File: file.png (325 KB, 1748x1700)
325 KB
325 KB PNG
>>108171178
Thanks, managed to get it working but there are some text properties fucking things up and locking the destination buffer which I'll have to fix in a more broad scope, I needed to update the package for the new version of ot anyways.
>>
>>108171258
thanks a lot
>>
calc is sweet
>bmi with imperial units
>' 161 lb / (5ft + 9in)^2
>uc si (convert to SI units)
>23.775 kg/m^2

>download calc-currency
>setq var-Units to vector of EUR and USD
>put 100 on calc stack
>typing "u 1" makes it 100 EUR
>typing "u 2" converts it to USD
looking back depending on a search engine for currency/unit conversion was really weird
>>
>>108170687
Ugh just found out microshit disabled pickit 3 in the new MPLAB. No way I'm using my third worlder salary for a pic kit 5.

Downgrading here we go...
>>
>>108171070
>I get heartburn thinking of other people using it still.
Yea, I get it. Same with me. You need to feel good about it. Most of the OG classics like emacs, linux, etc dogfooded it for years. Anyway nothing can change that you made something that's impressive. Happy Hacking arcus anon!
>>
Switching over from vim to vanilla Emacs. This is a lot.
>>
File: HAtIHDSacAAkdRX.jpg (1002 KB, 3189x2140)
1002 KB
1002 KB JPG
>>108171902
Here's a bare minimum evil config in case you want to leverage your vim muscle memory. This assumes you have Emacs 29 or newer so that use-package can be assumed to be present.
;;;; Setup MELPA

(require 'package)
(package-initialize)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))

;;;; Packages

(use-package evil
:ensure t
:init
(setq evil-want-integration t)
(setq evil-want-keybinding nil)
:config
(evil-mode 1))

(use-package evil-collection
:after evil
:ensure t
:config
(evil-collection-init))


https://github.com/emacs-evil/evil-collection
>>
>>108171956
Some of the default keybinds are atrocious (like C-M-E and anything-DEL).
I don't want to switch to evil mode just yet. Feel I should give the default keybindings a few weeks to settle in to my muscle memory.
Also, what is the proper way of deleting words?
static void foo(int a) { }

If I wanted to delete static, C-a M-d C-d? And if I wanted to delete static void: C-a C-u 2 M-d C-d? Compare that to d2w...
>>
>>108172010
>Also, what is the proper way of deleting words?
C-<backspace> works for me.
>>
>>108172010
One way you can discover functionality is to hit M-x and then try to guess function names. For example, I hit M-x and typed "kill word" and the completions that were displayed looked like the attached pic.

Another big help for command discovery is which-key-mode. I would highly recommend enabling it if you haven't already.

Also, instead of:
C-u 2 M-d
if you know it's going to be 2, just:
M-d M-d
>>
File: fortranoids.png (43 KB, 720x146)
43 KB
43 KB PNG
Paging through the ancient Maclisp 'Moonual' and had to kek at this. Behead Fortranoids.
>>
>>108171902
If you haven't already enabled whick-key-mode, I highly recommend doing so. When inputting key combos, it'll show you what your next options are.
>>
>>108174134
which-key-mode
>>
Should I give in to the stumpwm temptation?
>>
File: sbcl-slop.png (148 KB, 580x856)
148 KB
148 KB PNG
https://gamerplus.org/@wm_annis@mastodon.art/116088222549742138
>>
>>108175618
its ovar
>>
Some threads ago, months ago, someone mentioned that paredit takes over M-s and binds it to paredit-splice-sexp. This is an unpleasant surprise for people who use M-s for searching. To take M-s back from paredit, you can try this.
(eval-after-load "paredit"
'(define-key paredit-mode-map (kbd "M-s") nil))


In practice, I find that I rarely use paredit-splice-sexp. The splicing operation I use the most is paredit-splice-sexp-killing-backward which is bound to M-<up>. This lifts something out of an enclosing block.
>>
>>108172010
I don't know if it's too early in your Emacs journey to write Elisp, but you could write an interactive Elisp function to do this and bind it to a key.

(defun kill-2-leading-words ()
"Delete the 2 leading words on the current line."
(interactive)
(save-excursion ; Remember cursor position.
(move-beginning-of-line nil) ; C-a
(kill-word 2) ; C-u 2 M-d
(delete-char 1))) ; C-d

;; I used free-keys to find a binding that wasn't being used.
;; https://github.com/Fuco1/free-keys
(keymap-global-set "M-[" #'kill-2-leading-words)


The key to finding out which function is invoked by a key combination is frequent use of `C-h k`.
>>
>>108175618
GNU Guile would never desu
>>
>>108172010
>Compare that to d2w...
wouldn't the equivalent be ^d2w ?
my hands have to move less when inputting C-a M-d M-d. depending on where the cursor is, M-a M-d M-d would've worked too
>>
>>108175618
eh it's only 100 lines fixing a very specific bug. Hardly open ended vibecoding
>>
File: 1767643831113591.png (74 KB, 960x806)
74 KB
74 KB PNG
>>108176701
>>
>>108176715
where am i
>>
>>108165878
Now I for the life of me can't decide whether to stick to Emacs and Org-Roam or just use Neovim and Obsidian.
I think for mobile purposes, Obsidian has an incredible edge
>>
>>108176777
Emacs has an Android port. It's full fat Emacs. IMO worth it just for a functional spell-checker (although you need to use the Termux integration patch to install ispell.)
At work I like to slack off and pointlessly tinker with Emacs while hiding from my boss in the bathroom.
>>
>>108176910
Over the last two decades I’ve come to believe emacs, programming and tinkering in general is a trauma response and a method to self soothe
>>
>>108176950
Well yes, that's why I'm hiding on the shitter. The Man can't take my Emacs from me.
>>
>>108175618
>I'm not a programmer
>I have no substantial technical comment on the actual code (90 lines of C)
>but I have really strong opinions about compiler wars
>>
>>108176950
to me it seems emacs is simply the expression of mr Richard Stallman's desire to return to his mother's womb, and to create a world wholly free of any kind of outside influence or disturbance. It is essentially a fantasy land for the autistic, where they may make things 10x more difficult for themselves, but at least it is the burden they subject themselves to and not the one society tries to force upon them.
This mindset is very common amongst people who use the computer excessively, but it will only harm you and make you unhappy so I recommend you turn away from it.
>>
>>108176961
Put down the emac and feel your feelings anon
>>
>>108176995
So true, also absolute control of a perfectly predictable and deterministic environment, a world of my own design
>>
>>108176995
No, what makes me unhappy is the outside world.
>>
>>108176715
Funny how if you read those in reverse order they could be "phases of using 4chan"
>>
>>108172010
C-a C-2 M-d C-d or I find this one easier C-a M-2 M-d C-d
Counting words sucks though. Making repetition so easy might have been great 50 years ago on a slow ass remote session but these days its just easier and faster to repeat as needed.
C-a M-d M-d C-d
Or if its a bit further along the line these will scale
C-a C-s f C-b C-w
C-a C-' f C-w
with avy-goto-char bound to C-'
>>
>countless videos on JewTube about some ebin Linux hack to do [completely trivial thing] but IN THE TERMINAL
I do not understand the point of these things. If you just spent even a small amount of time on Emacs, they could have all of these stupid CLI tools without leaving Emacs, except they could also do much more on top of that, and they could do it while writing code which is pleasant to read and write instead of ugly shell scripts. That one line in the Luke Smith meme about this is completely factual except it applies to nearly every idiot posting their Linux CLI tools online.
>>
File: OHNNOOONOOOOOOOO.png (39 KB, 926x88)
39 KB
39 KB PNG
OH NOO how do we respond lisp bros?
>>
>>108159024
I don't know either, but why is Lisp used so frequently but a similar language like Forth is not?
>>
File: 1770163647319091.gif (820 KB, 290x320)
820 KB
820 KB GIF
>>108178955
>"Most amazing, interesting and brilliant people that I know"
>Literal turbo midwit in the Bannon interview

What's the real reason they kept stroking his ego? Is it because they wanted clout with him? Because he's a fellow member of the tribe? Because they know he's RothschiId connected? All three?
>>
>>108179005
Money, nigger. Obviously.
>>
>>108179005
Because of the videos, and he was their meat jerky supplier.
>>
>>108178955
Jews are gonna jew. I'm not surprised.
>>
>>108179005
He’s definitely interesting, for better or worse.
>>
>>108170609
Ok the autism bug has me. I will try to make a simple scheme subset -> PIC assembly compiler.

I have zero knowledge on compilers. Lets see how far this goes.
>>
m-x Compile and other emacs instructions do not seem to find programs in my .bashrc file, nor some installed by pip. What gives?
>>
>>108179353
Depending on how you start emacs, it may have different environment variables than you think. Clicking an icon to start emacs versus starting it from within a shell session can yield different behaviors due to differences in environment.
https://emacs.stackexchange.com/questions/73664/how-to-give-emacs-started-by-icon-click-the-same-environment-as-emacs-started-fr/73665#73665

Open up `M-x ielm` and do:
(getenv "PATH")
;; The next variable may also be of interest.
exec-path
>>
>>108179768
Yeah, things I've added to my path are not there. I start it from GNOME.
>>
Suppose I have a CL web application written with hunchentoot. How should I go about implementing region blocks such that requests from certain countries are blocked?
>>
>>108180234
Nothing to do with CL/Hunchentoot. You do this via e.g. nginx or cloudflare.
>>
>>108174134
>>108172298
Yeah, I've got which-key-mode enabled. Are there any other modes(?) you recommend enabling?

>>108176563
I'd do 0d2w but yeah

>>108176371
Could I also record a macro?

>>108177864
>C-a C-s f C-b C-w
Whoa, that's powerful.
>>
>>108180234
https://github.com/subtlepath/cl-geoip
>>
>>108171705
calc-currency is great. I have a minor fork of it that can be installed via use-package. Here's the diff.
https://github.com/johnhamelink/calc-currency/compare/master...g-gundam:calc-currency:master

Installation:
(use-package calc-currency
:vc (:url "https://github.com/g-gundam/calc-currency" :branch "master" :rev "newest")
:config
(add-hook 'calc-start-hook #'calc-currency-load))
>>
>>108180234
check the IP against some database, it can even be on sqlite idk. But sometimes the public data you can find is outdated/wrong.
>>
Day 2. Adding on to >>108180288. Some thoughts:
- Switching between windows is a pain. ace-window looks to be good alternative?
- C-x l and C-x m feel like wasted real estate. Moreover, I wish commands were hierarchically organized: something like C-x b -> all buffer commands.
- I need to learn (e)Lisp
>>
>>108176701
Yeah, I think this particular case is fine.
>>
>>108180288
>Are there any other modes(?) you recommend enabling?

column-number-mode
This puts the column number of the cursor in your mode line.

winner-mode
If you ever run something that totally messes up your window layout and you want to go back to the way it was just before, hit `C-c <left>`. You can also go forward with `C-c <right>`.

electric-pair-mode
When you type characters like (, [, or { it'll automatically type the closing pair }, ], or ). Most of the time it works fine. However, every once in a while, there's a mode where this doesn't work well in often because it's trying to do the same thing on its own. In that situation, you can run `M-x electric-pair-local-mode` to toggle it locally for just the buffer you're in at the moment.
>>
>>108180946
>- Switching between windows is a pain. ace-window looks to be good alternative?
I use windmove. with C-S-[ARROWS] to move. This conflicts with ubuntu and orgmode so I had to configure some stuff.
>>108180946
>c-x i
Just c-f the file.

>c-x m
here that does nothing.

>need to learn elisp
same
>>
File: 1770851981702761.gif (3.69 MB, 374x354)
3.69 MB
3.69 MB GIF
>>108179339
>Ok the autism bug has me. I will try to make a simple scheme subset -> PIC assembly compiler.
You might be interested in this from a previous bread (scheme subset -> arm)
(define (compile term table reg)
(match term
[(? number? n)
(let ([a (reg)])
(format #t "mov r~a, #~a~%" a n)
a)]
[(? symbol? s)
(let ([a (reg)])
(format #t "mov r~a, r~a~%" a (cdr (assoc s table)))
a)]
[('+ left right)
(let ([a (compile left table reg)]
[b (compile right table reg)])
(format #t "add r~a, r~a, r~a~%" b b a)
b)]
[('let binds scope)
(let* ([syms (map car binds)]
[vals (map cdr binds)]
[n (length binds)]
[regs (iota n)])
(format #t "~:{mov r~a, #~a~%~}" (map cons regs vals))
(set! reg (counter (- n 1)))
(compile scope (append (map cons syms regs) table) reg))]))

(define-syntax test
(syntax-rules ()
[(test program)
(compile 'program '() (counter 0))]))

(test
(+ 2 (+ 3 5)))

mov r1, #5
mov r2, #3
add r1, r1, r2
mov r3, #2
add r1, r1, r3

(test
(let ([a 2]
[b 3])
(+ a (+ b 5))))

mov r0, #2
mov r1, #3
mov r2, #5
mov r3, r1
add r2, r2, r3
mov r4, r0
add r2, r2, r4
>>
>>108180946
>I wish commands were hierarchically organized: something like C-x b -> all buffer commands
that's a good use case for keymaps
(defvar-keymap my-buffer-map
"s" #'switch-to-buffer
"o" #'mode-line-other-buffer
"b" #'bury-buffer
"k" #'kill-current-buffer)

(keymap-global-set "C-c b" my-buffer-map)
>>
>>108180288
>Are there any other modes(?) you recommend enabling?
;; Remember where you were in the file the next time you open it.
(save-place-mode 1)

;; If something outside of emacs changes a file you're editing,
;; update the emacs buffer.
(global-auto-revert-mode 1)
>>
>>108180288
>Could I also record a macro?
You could record a macro. It's probably something I should do more often.
<f3> C-a M-d M-d C-d <f4>

And then you can execute it again with `C-x e`. I think there's a way to give names to macros too. `C-x e` just executes the last macro you defined.
>>
>>108185094
>And then you can execute it again with `C-x e`.
F4
>I think there's a way to give names to macros too.
C-x C-k n and C-x C-k b
If you want to save it between sessions you'll have to name it and then paste the definition into your init.el with
M-x insert-kbd-macro RET
>>
>>108174467
for me it's
https://github.com/ebeem/guile-swayer
>>
>>108186613
But then you're not able to change things defined in the source code by writing lisp right?
>>
File: saw.jpg (892 KB, 1668x2085)
892 KB
892 KB JPG
>>108174467
>>108187142
saw sawfish
http://sawfish.tuxfamily.org
>>
>>108180946
>ace-window looks to be good alternative
I'm a fan of ace-window. I have it bound to M-o as its README recommends.
https://github.com/abo-abo/ace-window
>>
>>108188975
Sawfish is great but not fully lisp.
>>
>>108190104
>not fully lisp
Like Emacs (C + Elisp)?
>>
>>108190192
Yes it works but is not ideal.
>>
Bump
>>
>>108180449
>ancientware
based
>>
http://l1sp.org/ - a redirect service for Common Lisp documentation
>>
I've been using emacs so far only in evil-mode, and it's been great, but it got
me thinking about the potential viability of the the vanilla keybinds. What would be
the benefits of trying to learn them, and how popular are they anyway?
>>
Novel use of Clojure for spreadsheet-like functionality
https://x.com/PetrusTheron/status/2024249483739992246
>>
File: 1771601367540.jpg (217 KB, 1069x1265)
217 KB
217 KB JPG
Anyone use this? Anything interesting on there or is it just a meme?
>>
What's up with lainchan downtime lately?
>>
do a guix pull and either restart guix or reboot (if on guixsd)
https://codeberg.org/guix/guix/pulls/6575
>>
>>108196255
>What would be
>the benefits of trying to learn them, and how popular are they anyway?
if you use bash as your shell then you already know some of them
>>
>>108196993
The CP spammer came back perhaps?
>>
Does EXWM work with Motif or Lucid Emacs?
>>
Does anyone know how feasible would be to modify hexl mode to show disassembled byte-code, according to a value table I provide, instead of ASCII?
>>
>>108199435
yes i'm using it with lucid right now. it probably even works when you build emacs without an X toolkit, i think it's irrelevant to exwm
>>
>>108199435
>EXWM
Usecase?
>>
>>108201323
why would you use anything else?
>>
Bending Emacs Episode 11: winpulse
https://www.youtube.com/watch?v=qaqpcjJ1u6I
>>
Trying to implement a forth vm/interpreter in lisp. Seems rather easy so far.
>>
>>108203531
Why?
>>
>>108179005
>What's the real reason they kept stroking his ego?
If you've had any experiences with psychopaths, they really crave this.
>>
>>108179005
A bunch of academics sucked up to Epstein in order to get funds for their shit, and Epstein purposely sorrounded himself with both rich and smart people so he could keep the rape machine going. There might be people that only saw the money side of things without much of the eating human flesh side, but then again who knows.
>>
A newcomers-presets theme has been added to Emacs.
>*** New theme 'newcomers-presets'
>This new theme configures user options and minor modes that might interest new users, but would otherwise be too invasive to enable by default. Recall that an Emacs theme is a generic collection of settings, that doesn't have to affect the appearance. See the Info node "(emacs) Newcomers Theme" for more information.

https://cgit.git.savannah.gnu.org/cgit/emacs.git/commit/?id=ed030e7
>>
>>108206131
>"newcomers-theme"
>not enabled by default
sigh
>>
>>108206161
you can enable it by checking a box on the splash screen
>>
>>108171705
I DO understand how powerful calc is but using it feels so fucking slow and unintuitive. any tips?
>>
babashka now has a better repl with auto-complete built-in
>>
How different is eLisp to Common Lisp (SBCL)? If I write some basic Common Lisp programs will they translate one-to-one
>>
>>108206733
>How different is eLisp to Common Lisp (SBCL)?
They're superficially similar, but they feel different.
- CL has namespaces while Elisp does not.
- I find function and variable discovery a lot easier in Elisp than in CL due to how much Emacs can help me with Elisp.
- The documentation on the CL side is not as thorough as Elisp. If you're expecting almost every function and global variable to have a docstring like in Elisp, you will be disappointed.
- The CL REPL via Sly/SLIME is really nice though especially when working with multithreaded code.

>If I write some basic Common Lisp programs will they translate one-to-one
This will only hold true for really simple things.
>>
>>108206733
different enough that elisp had to copy CL with the CL-<function> stuff
>>
File: 2026-fire-horse.png (1.37 MB, 862x862)
1.37 MB
1.37 MB PNG
>>108206733
>If I write some basic Common Lisp programs will they translate one-to-one
Here's something that'll work in both Common Lisp and Emacs Lisp.
(defvar cz-animals
'(rat
ox
tiger
rabbit
dragon
snake
horse
goat
monkey
rooster
dog
pig)
"These are the 12 animals of the Chinese Zodiac.")

(defun cz-animal (year)
"Return Chinese Zodiac animal for YEAR."
(let* ((offset (mod (- year 4) 12)))
(nth offset cz-animals)))

(defvar cz-elements
'(wood
fire
earth
metal
water)
"These are the 5 elements of the Chinese Zodiac.")

(defun cz-element (year)
"Return Chinese Zodiac element for YEAR."
(let* ((offset (floor (mod (- year 4) 10) 2)))
(nth offset cz-elements)))

(defun cz-sign (year)
"Return the Chinse Zodiac element and animal sign for the given YEAR."
(list (cz-element year) (cz-animal year)))

Example Usage:
(cz-sign 2026)
;; (FIRE HORSE)
>>
>>108195841
>http://l1sp.org/ - a redirect service for Common Lisp documentation
Has anyone created any interactive Elisp functions for querying l1sp.org from Emacs?
>>
the absolute state of clojure
https://clojure.org/news/2026/02/18/state-of-clojure-2025
>>
File: past.png (40 KB, 855x335)
40 KB
40 KB PNG
>>108210213
Respect for keeping track of this for so long.
>>
TIL how to setup a repeating timer using SBCL.
(ql:quickload :local-timer)

(defparameter timestamper
(sb-ext:make-timer
(lambda () (format t "~a~%" (local-time:now)))
:thread t))

(sb-ext:schedule-timer timestamper 2 :repeat-interval 5)

(sb-ext:unschedule-timer timestamper)
>>
>>108210213
Sublimebros...
>>
>>108210455
There's also https://github.com/ciel-lang/cl-cron which just uses bordeaux-threads under the hood
>>
https://protesilaos.com/codelog/2026-02-16-emacs-talk-oxford/
I hope there will be a live stream for this.
>>
File: genius-of-lisp.front+back.jpg (310 KB, 1000x2858)
310 KB
310 KB JPG
A new lisp book was released a few days ago.
https://berksoft.ca/gol/
>>
https://www.ebay.com/itm/336438086174
>>
File: s-l1600.jpg (408 KB, 1159x1600)
408 KB
408 KB JPG
>>108214463
That's pretty cool, but is there an adapter that makes this usable on contemporary hardware?
>>
File: s-l960.jpg (153 KB, 960x562)
153 KB
153 KB JPG
>>108214463
It looks really clean.
>>
How to survive a Clojure job?
>>
>>108215275
pray your colleagues use specs and document their garbage
>>
How do I get a Clojure job?
>>
File: batman.jpg (45 KB, 470x379)
45 KB
45 KB JPG
>>108159024
how is a program in lisp intended to be deployed? am i supposed to enter repl if i ever want to use something i write?
>>
>>108215438
save-lisp-and-die
>>
>>108214478
Seller addressed this:
>Symbolics keyboards can be converted to be USB compatible using a Teensy (there's Github for this). To that end, you'll be replacing the cable. But I would like to point out that the original cable (as visible in the photos) has a securing tab on the male end. This is easily snapped off. But this one is mint and intact, as you can see, A little thing, but useful if you are one of the elite who actually has a Symbolics computer.
>>
>>108169719
Not pure. Should be something like:
(reverse (string-upcase (reverse *stdin)))

You’ll see that when you start *thinking in lisp*
>>
>>108215438
https://www.gnu.org/software/guile/manual/html_node/Scripting-Examples.html
>>
>>108215741
>Not pure
Why not? I don't see any mutation in the previous version.
>>
Is there a single person using this shit language for AI
>>
>>108214648
why did old lispers need a key to rub one out?
>>
>>108216484
homoiconicity
>>
>>108216484
It was a simpler time
>>
>>108215885
Me
>>
>>108214435
>an avid <cursed>
wtf
>>
>>108214435
not in annas archive. I'm a third worlder... Can't buy stuff.
>>
>>108215885
Abominable Intelligence
https://www.youtube.com/watch?v=BrJRW4B_qF8
>>
>>108218333
torrent it?
>>
File: an-avid-what.jpg (15 KB, 1024x76)
15 KB
15 KB JPG
>>108214435
I wonder what it's supposed to say. I'm guessing something like:
An avid E____ the late 1980s
>>
>>108220764
An avid Emacs users since the late 1980s?
>>
File: genius-review.png (230 KB, 1105x1245)
230 KB
230 KB PNG
>>108214435
https://toobnix.org/w/iAwuN4MGuaiHTDDCibhb21
>>
Should I learn how to use GNU parallel or should I write a CL wrapper around lparallel that does something similar but is easier for me to understand. I want to run a lot of very similar shell commands in parallel with a user-defined level of concurrency. In my case, I don't even need to collect the results. The side effects of the shell commands are good enough.
>>
My god this language is hideous. How doe something with 4 keywords manage to look this bad.
>>
>>108224880
Do you remember your first sip of beer? To a lot of kids, it's disgustingly bitter. However, as you get older, you get used to the bitterness and even start to appreciate it. Lisp is kind of like that.
>>
>>108225329
Not him, but I still hate beer despite loving Lisp. My drink of choice is chilled vodka.
>>
>cant install VSCode on Guix
what the FUCK
>>
>>108225329
No. It's fucking ass. It's the same identical macaroni noodles embedded in every sequence of text you could possibly imagine. Sometimes it's "cdr" and sometimes it's "unwind-backwards-protect-without-precursor-default".

It looks like a 4 dimensional shit that a DMT alien took.
>>
Why do lispers not care much for multi-threading?
>>
>>108226254
I've been writing quite a bit of simple multi-threaded CL code the last few days. The lparallel library has been working very well for me.
https://github.com/sharplispers/lparallel/
https://sharplispers.github.io/lparallel/

I was the one who posted:
>>108223931
I ended up writing custom code to run in the REPL to solve my immediate problems, but I kept getting this nagging feeling that there may be a generally useful tool I could derive from the code that I wrote. I had 200k+ HEAD and GET requests I had to make, and with lparallel I was able to do them in parallel which sped things up considerably.
>>
>>108226303
> simple multi-threaded CL
I used to love threads, when Solaris came out with lwps, and on OS/2. I was all over that shit.
After a few decades, I hardly ever touch them and there is nothing I need them for that can’t be done in multiple, minimally communicating processes.
At worst, in C, just use openmp.
>>
>>108225329
No it isn’t. I loved Lisp as soon as I started it. It’s obviously gorgeous and some people who don’t see this are just dumb.
>>
>>108226689
That's nice. I remember my first love... Java... I was in for a rude awakening when she started getting wordy. Not as nice.
>>
Why do Linux and now FreeBSD integrate Rust into the kernel why not have a lisp (probably) CL subsystem instead?
>>
>>108227843
> rust in freebsd
They don’t. They’re adding support for it though. The main reason lisp isn’t supported is because processors are not evolved Knight machines from the original implementations.
NetBSD is in a better position to add lisp support because they already have Lua support in the kernel. Some other hard-core systems have been implemented in lisp for years, except people are unaware, such as the checkpoint firewall-1 rulebase since the ‘90’s. Even Windows NT has Prolog in the kernel network initialization.
If you want to write kernel modules in a lisp just use chicken which emits C code. This is all that needs to be done in rust, too (rust2c transliterator), but the rust goals are antitechnical in nature.
>>
I am now a week into my Emacs journey. The things you can do with S-expressions and rings...
I also want to build my own keymap using Space as a leader key. I recognize Spacemacs and Doom have this built-in by default, but I'll gain a lot more experience doing it this way. Doom's module system / spacemacs' layers appear alluring though. Maybe I'll attempt to implement such a system myself as an exercise. It's all in eLisp, after all.
>>
>>108228523
Look into general.el if you want to build your own space menu.
>>
>>108159024
why is ghc in guix so ancient?
>>
>>108225763
it's a feature, not a bug
>>
>>108225763
>expecting proprietary on free software distro
okay retard
>>
>>108230171
how am i supposed to work on this distro then? spend 5 months being an emacs tinker tranny? i have work to do, and that work REQUIRES VSCode
>>108230308
yes i do expect to be able to easily install the most popular open source code editor on my workstation
>>
>>108226254
Racket added parallel threads last year.
https://blog.racket-lang.org/2025/11/parallel-threads.html
>>
>>108230870
vscode licensing is definitely not free software, not to mention its components
so no
>>
>>108231415
so it's a toy distro, got it
>>
>>108230870
> most popular
incest is a popular activity in the southeastern united states I hear. you better get on that.
>>
>>108230870
>>108231628
return to windiandows asap vsircode saar
>>
>>108225763
You need nonguix
>>
>>108231674
are you pretending to be retarded? or do you unironically think i should use obscure tools when i have work to do?
>>108231742
i was just trying it out, i will return to my comfy Fedora Workstation install where i can add the VSCode repo and dnf install it, thanks
>>108231874
i tried(needed it to get the fucking wifi working on my T480 lmao) and nonguix doesnt have vscode, only vscodium and afaik that means i dont have access to remote tools and the extension marketplace.
>>
>>108231989
1. download vscode prebuilt binary
2. patchelf it
3. ???
4. profit
>>
>>108231989
> use obscure tools when i have work to do
The only time I ”needed” to use vs code was to deploy some obscure azure shit. Which is an absolute shit platform.
Eventually i figured out what it was doing and deployed it as part of a standard pro-grade production roll procedure like everything else.
vs code is a toy for individual know-nothings living in their parent’s basement… these are the only ones getting replaced by AI. Good riddance.
>>
File: soyciety.jpg (186 KB, 462x480)
186 KB
186 KB JPG
>>108231989
>that means i dont have access to remote tools and the extension marketplace
So now you know why VSCode isn't FOSS. Fell For The Microꜱoyft™ Propaganda Award.
Anyway, looks like VSCode is packaged in this guix channel:
https://toys.whereis.social/?search=vscode
https://codeberg.org/gofranz/panther
>>
File: file.png (275 KB, 1920x1017)
275 KB
275 KB PNG
sorry, long ass post
tl;wr: what do i need to learn to make or edit themes, i know some very basic lisp concepts and a bit about REPL but realistically i'm a super beginner beyond any basic nesting and such

okay so i still need to check out the resources in the OP post, but what would i need to learn about emacs/emacs lisp to go about parsing and changing what's what in this theme file? i know it's mostly colors but i'm a little lost trying to determine what color corresponds to what when looking through it, as well as why the ansi-color-names-vector variable seems to only show up once (unless it's a variable known by emacs)
https://github.com/snackon/Witchmacs/blob/master/Witchmacs-theme.el
it should be noted that the linked theme file doesn't work with later emacs versions (in my experience, 30.1), and at some point last year i made the necessary edits to have it work as-is but didn't go further. it works with 30.1 and 30.2, if anyone wants it i can pastebin it

some backstory though, a long time ago i saw someone make a derivative macs theme and post a screenshot in a thread, then other people linked to the witchmacs repo
i've been planning to better learn emacs since i want to try using auctex among other tools (since i just kinda like emacs and the ability to use/practice vim modes with evil seems useful for when i'm working on a linux machine that doesn't have emacs for work-related stuff), but i'm absolutely more of a cirno guy and generally want to customize my editor experience to look the way i like

sorry if this post is mildly incoherent, hella brainfog today, yell at me if anything i said sounds retarded and i'll clarify
>>
>>108232069
so every update i will need to download the binary and patch it? instead of just having it in a channel? lol
>>108232074
wow so contrarian!
https://survey.stackoverflow.co/2025/technology#most-popular-technologies-dev-envs-prof
>>108232217
why isnt vscodium on the guix channel then?
id rather not rely on some random guy's channel, but that's a good starting point. thanks for the actually useful response.
>>
>>108232305
>what would i need to learn about emacs/emacs lisp to go about parsing and changing what's what in this theme file?
you don't need to know any elisp really, all you need is to be familiar with the semantics of face attributes:
https://www.gnu.org/software/emacs/manual/html_node/elisp/Defining-Faces.html
https://www.gnu.org/software/emacs/manual/html_node/elisp/Face-Attributes.html
if you only use graphical emacs or emacs inside a terminal that supports a lot of colors, you can make that theme file a lot more readable by deleting all the specs for low-color displays. so
'(font-lock-comment-delimiter-face ((((class color) (min-colors 257)) (:foreground "#75715E")) (((class color) (min-colors 89)) (:foreground "#8B8878"))))

would become
'(font-lock-comment-delimiter-face ((t (:foreground "#75715E"))))
>>
>>108232640
thank you very much for the links, i appreciate it
>>
https://sachachua.com/blog/2026/02/2026-02-23-emacs-news/
>>
File: XahTV_in_metaverse.png (592 KB, 998x998)
592 KB
592 KB PNG
>>108233297
fantastic emacsacha news
>>
File: nice-of-her.png (70 KB, 858x381)
70 KB
70 KB PNG
>>108234676
She does regularly include Xah.
>>
>>108232383
yes, to install a package you have to download it first
>>
What are some alternatives to gnu emacs?
>>
>>108235998
NEdit
https://en.wikipedia.org/wiki/NEdit
>>
>>108196255
Meh, keybindings are keybindings. At the end of the day, any approach can take you from point a to point b. I personally switched because a lot of emacs documentation assumes the default scheme, and it makes it possible to find your way on a vanilla emacs session in a foreign environment (although the built-in viper mode would probably get you through just as easily). It's helpful to know both anyway, since many programs support a subset of one or the other.
>>
>>108159024
Jokes aside, would you honestly recommend Lisp to a total beginner? I just think it's fascinating because of the cool syntax, the legacy and the linux/unix connection with emacs.
>>
>>108238509
if their brains haven't been brainwashed by C-like syntax, why not
>>
>>108235998
So it's basically Emacs with C-like as the language extension?
>>
>>108238656
Just checked. Its interpreted language is very limited. It's better to compare it to Vimscript than Lisp.
>https://www.filibeto.org/unix/tru64/lib/ossc/doc/nedit-HTML-Doc-5.1.1/documentation/5.1/Macro_Language.htm
>NEdit's macro language is a simple interpreter with integer arithmetic, dynamic strings, and C-style looping constructs
>The NEdit macro language recognizes only two data types, dynamic character strings, and integer values
And the original homepage http://nedit.org/ is also dead.
>>
>>108238858
Back in the days of Big Unix, NEdit was popular with people who came to Unix from other operating systems who wanted something that worked a bit more conventionally.
>>
>>108238882
It seems to me NEdit is a small project done by one person, it's not as big as Emacs or Vi.
I've never even heard of it.
>>
File: nedit-origin-story.png (77 KB, 613x312)
77 KB
77 KB PNG
>>108239007
https://web.archive.org/web/20060926213825/http://nedit.gmxhome.de/history.html
>>
>>108238509
yes, it's high level and easy to grok the essentials
>>
>>108230167
Because.
>https://old.reddit.com/r/GUIX/comments/yp0gdi/latest_ghc_release_for_guile_is_from_two_years_ago/
>Ghc changed it's built system, and we have been unable to built latest versions from source on guix. There is a wip-haskell branch you can check out. If you can built it from source successfully, please contribute.
I personally find it weird, since Nix can compile latest GHC version from source, why can't Guix?
>>
>>108226254
I made a multi-threaded emacs extension and it sucks, the poor threading implementation keeps crashing in unpredictable ways.

Clojure has fantastic multi-threading support, though.
>>
>>108239617
>Clojure has fantastic multi-threading support
is that feature just directly copy pasted from java libraries?
>>
>>108238509
Lisp was my first lang and although I'm still a beginner I think it did help me think more "programmatically". Other languages have too much syntactic sugar that you need to focus on as a beginner.
>>
>>108228523
You can bind keymaps to keys, its really quite trivial.
The Doom/Spacemacs implementation is horribly bloated, as are all the packages that try to tackle this "problem" for users that don't understand Emacs/ELisp.
>>
So what is the general practice for dealing with C enums in Common Lisp when working with C libs?

Just defconstant globals or use the cffi:defcenum thing? I tried the latter but getting the values out in general is not very pleasant especially if said enums are bitmasks.
>>
https://gitlab.common-lisp.net/fset/fset/-/wikis/FSet/Intro
>The ultimate goal of FSet is an ambitious one: to be the default choice for collection types in
Common Lisp. By "default", I mean the one you can be in the habit of using most of the time, except
when you know you need something more specialized.
>>
>>108239412
It’s hard to believe that ghc can’t simply use make on unix or nmake on windows.
Rust port probably in the works.
>>
>>108239031
That article says some strange things, we had lesstif, for example.
It’s also probably pretty rare to need floating point/mp numbers in an editor extension languages
Of course, vs code works on linux if that’s what you were looking for.
>>
>>108214463
Last call on this auction. Im strongly considering bidding, someone stop me with a high bid
>>
TIL of the existence of the delq function (via prot)
https://github.com/protesilaos/fontaine/issues/22#issuecomment-3961292211
(thread-last (x-family-fonts)
(mapcar
(lambda (font)
(when-let* ((family (format "%s" (aref font 0))))
family)))
(delq nil)
(delete-dups))
>>
>>108247126
thread-last always confuses me
>>
https://www.youtube.com/watch?v=ymMlftdGx4I
>>
>>108239031
interesting
>>
>>108247577
inferior version of https://srfi.schemers.org/srfi-197/srfi-197.html. this is 10x more useful than clojures threading macros
>>
>>108247126
The actual way to do that is not to use delq and get rid of empty cons-cells, but us mapcan and only construct the cons-cells you need.
>>108225763
I am curious why you are interested in Guix (as opposed to Nix), but have no interest in Emacs.
>>108215438
If you have a Lisp interpreter on the system, you can usually load a Lisp file from the command line, just like with other languages like Python or Perl. As >>108215505 said, compiler implementations like SBCL allow for the loaded image to be dumped into an executable.
>>108206161
That's exactly the point. The newcomer-preset theme is supposed to be easy to discover+enable and provide a way to collect a set of options that new users could find useful, without disturbing existing users.
>>
clos allows me to define :reader :writer and :accessor names, it'll automagically create methods for accessing and setfing the slot.

Is it possible to define my own setters using it? Like python's @property.
>>
>>108250901
>without disturbing existing users.
Brother, existing users have 10,000 line configurations, they wouldn't even be able to tell the difference. Nothing wrong with changing defaults once every decade.
>>
>>108251965
Yes, they're just generic functions, you can write your own instead of having the defclass form make one. You can also add your own :before/:after/:around methods on the defclass-made methods.
>>
>>108250901
>I am curious why you are interested in Guix (as opposed to Nix), but have no interest in Emacs
I love Lisp(specifically Clojure and SBCL). I want to properly learn them and embrace them. And I definitely have an interest in Emacs, but there's the whole learning curve thing which I'm slowly working on, however the big issue is that the bulk of my work depends on some niche domain-specific tools that have an amazing integration to VSCode via extensions. I'd rather not learn Emacs AND simultaneously build/maintain wrappers around the CLI tooling I need.
>>
>>108253298
>they wouldn't even be able to tell the difference
did you actually read the .el file? it activates a lot things
>>
This makes the old perl programmer in me happy.
https://quickdocs.org/perlre
https://quickdocs.org/cl-interpol
>>
File: HCJxs-1aIAAqOU0.jpg (2.21 MB, 2730x4096)
2.21 MB
2.21 MB JPG
What do you think of long time Emacs users who haven't learned Elisp?

(unrelated pic from: https://nitter.net/Nitto_Photo/status/2027307811710144741/photo/1
>>
>>108256711
i think they're masochists
>>
File: kitty-graphics.jpg (203 KB, 1159x704)
203 KB
203 KB JPG
terminal emacs gets graphics via the kitty protocol
https://github.com/cashmeredev/kitty-graphics.el
https://cashmere.rs/blog/kitty-graphics-el-images-in-terminal-emacs/

It's a little buggy, but it mostly works. I tried it out with wezterm.
>>
>>108258463
>useless feature
>ai slop
boring
>>
File: is_an_horse_a_athlete.jpg (339 KB, 866x833)
339 KB
339 KB JPG
Is A Elixir an Lisp?
>>
File: how-to-lisp.png (276 KB, 676x360)
276 KB
276 KB PNG
>>108256711
But lisp is easy
>>
>>108258463
We’ve always has sixel, they should have asked someone before wasting everyone’s time. Next step: rust rewrite, then obscurity
>>
File: 1770230467061095.jpg (47 KB, 600x900)
47 KB
47 KB JPG
Lisp is the original hacker's language and the whole "The Right Thing™" stuff was always post-hoc copium to rationalize the downfall of Lisp Machines.

The author of the original essay wrote at least two follow-ups where he basically admitted this.

What made Lisp machines was the software, not the hardware.

A modern x86-based processor can run Lisp code orders of magnitude faster than dedicated hardware ever could.

There has never been more availability of FOSS Lisp implementations, software and libraries in history than what we have now.

Until Lispers realize these facts, stop whining and start actually writing code, Lisp is doomed to obscurity.
>>
>>108256711
No different than the hundreds of millions of people who drive a car every day, but have no idea how car engines work.
>>
Why is torbrowser stuck on the build phase? Shouldn't it have a substitute? It's not even going forward for me. Same with mullvad. Tried Flatpak which complains about some certificates.
>>
File: ponko_SICP.png (1.54 MB, 1920x1080)
1.54 MB
1.54 MB PNG
>>108261289
Lisp Is So Powerful
>>
>>108261575
λ guix weather torbrowser
computing 1 package derivations for x86_64-linux...
looking for 1 store items on https://bordeaux-us-east-mirror.cbaines.net...
https://bordeaux-us-east-mirror.cbaines.net
100.0% substitutes available (1 out of 1)
101.4 MiB of nars (compressed)
388.7 MiB on disk (uncompressed)
0.245 seconds per request (0.2 seconds in total)
4.1 requests per second
(continuous integration information unavailable)
looking for 1 store items on https://bordeaux.guix.gnu.org...
https://bordeaux.guix.gnu.org
100.0% substitutes available (1 out of 1)
101.4 MiB of nars (compressed)
388.7 MiB on disk (uncompressed)
0.445 seconds per request (0.4 seconds in total)
2.2 requests per second
(continuous integration information unavailable)
looking for 1 store items on https://ci.guix.gnu.org...
https://ci.guix.gnu.org
100.0% substitutes available (1 out of 1)
at least 212.7 MiB of nars (compressed)
388.7 MiB on disk (uncompressed)
0.682 seconds per request (0.7 seconds in total)
1.5 requests per second
...

it seems like it's available now. was it updated recently?
>>
>>108261289
what if I waste my time creating yet another lisp implementation
>>
>>108265599
We will kill you.
>>
>>108260856
Sixel sucks though.
The terminal paradigm in general sucks even more though so it makes sense for VT100fags to like sixel
>>
>>108261289
>What made Lisp machines was the software, not the hardware.
>therefore the right thing was a larp
?? The point of the hardware was to run lisp fast (for the time). The point of the lisp machine was to run the software.
>>
What does lisp have over rust?
>>
>>108267933
if you're asking this you're NGMI
>>
>>108267944
im on my second year of uni i dont know much yet
>>
>>108267963
In that case, why are you comparing Rust with Lisp? What makes you want to use Rust? I actually switched from Rust to Lisp but that's not very common. Lisp is closer to languages like C#, D, Go, etc. whereas Rust is more comparable to C++.
In any case Lisp has a ton of stuff over Rust, so maybe easier is to say what Rust has over Lisp. Primarily, no garbage collector/better naive performance, static typing, and a decent package manager and package ecosystem. Lisp wins pretty much everywhere else. Incomparably better macro system, actual tooling (i.e. amazing profiler tools, my larger programs I've ported over from Rust actually run better on CL due to the profiling/disassembly feedback loop), best OOP model (CLOS >>> traits), no annoying borrow checker, runtime compilation and interactive programming, homoiconicity, live introspection of running program state, faster compiler, etc. I'd say as a solo dev I work twice as fast in CL than I did back in Rust.



[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.