>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 Resourceshttps://gnu.org/s/emacs
https://github.com/emacs-tw/awesome-emacs
https://github.com/systemcrafters/crafted-emacs
>Learning EmacsC-h t (Interactive Tutorial)
https://emacs.amodernist.com
https://systemcrafters.net/emacs-from-scratch
http://xahlee.info/emacs
https://emacs.tv
>Emacs Distroshttps://spacemacs.org
https://doomemacs.org
>ElispDocs: 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 Lisphttps://lispcookbook.github.io/cl-cookbook
https://cs.cmu.edu/~dst/LispBook
https://gigamonkeys.com/book
https://lem-project.github.io
https://stumpwm.github.io
https://nyxt-browser.com
https://awesome-cl.com
>Schemehttps://scheme.org
https://try.scheme.org
https://get.scheme.org
https://books.scheme.org
https://standards.scheme.org
https://go.scheme.org/awesome
https://research.scheme.org/lambda-papers
>Clojurehttps://clojure.org
https://tryclojure.org
https://clojure-doc.org
https://www.clojure-toolbox.com
https://mooc.fi/courses/2014/clojure
https://clojure.org/community/resources
>Otherhttps://github.com/dundalek/awesome-lisp-languages
>Guixhttps://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/HtDPhttps://web.mit.edu/6.001/6.037/sicp.pdf
https://htdp.org
>More Lisp Resourceshttps://rentry.org/lispresources
(setf *prev-bread*
>>105527756)
World Wired Weeb
https://x.com/yamaki_nyx/status/1933417175651659869/
>>105581727https://archive.org/details/09-sel-protocol/
>>105581727How should I answer the last question if I torrented it?
calm
md5: 91cf8d7afd4a980a95ab1f1fc3f0d0f4
๐
(defparameter *color-list* '((0.83 0.82 0.84) (0.89 0.12 0.17) (0.94 0.87 0.47) (0 0.35 0.59)))
(defun draw ()
(c:set-operator :darken)
(dotimes (i 7)
(c:arc (+ 72 (* (- (/ *calm-window-width* 5) 44) i)) 73 50 0 (* 2 pi))
(apply #'c:set-source-rgb (nth (if (>= i 4) (- i 4) i) *color-list*))
(c:fill-path)))
https://vitovan.com/calm/
casio
md5: 40504039a778b71eddab30621bd24b93
๐
Found the sauce code
https://github.com/forestfoxx/Serial-Experiments-Lain
https://cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/fun/life.cl
?
md5: fa7b5cecce85367d5b6aeeb98d009263
๐
>>105581801Also what is this supposed to mean?
>>105568983>Hackable and easy to deploy imageboard software written in Guile/Scheme.https://github.com/ECHibiki/Kotatsu-V
>>105581689 (OP)Is cursor-level vibe coding possible with Emacs?
is python just a dogshit lisp clone?
aider
md5: 1b802feaad1a4e996cd53fe4106d1385
๐
>>105582703https://github.com/tninja/aider.el
https://github.com/MatthewZMD/aidermacs
>>105582869>backhanded insulthe can't even get that term right and even if he did that still wouldn't be a backhanded compliment
>>105582869slice your throat with a thousand knives and get the fuck back to your discord server of a board and dont shit up /g/ you disgusting fucking freak
>>105582732no, python is full of statements and closure/lambdas were not a common practice unlike ruby which is based on blocks (like smalltalk)
https://www.randomhacks.net/2005/12/03/why-ruby-is-an-acceptable-lisp/
>>105581689 (OP)tried adding the same jump to definition from the webm
(defun lainfind ()
(interactive)
(let ((symbol (thing-at-point 'symbol))
(file (thing-at-point 'filename)))
(cond ((file-exists-p file)
(find-file file))
(symbol
(find-function (intern symbol))))))
(define-key lisp-interaction-mode-map (kbd "<mouse-1>") #'lainfind)
>>105536648>>105541208>https://www.youtube.com/watch?v=sV7C6Ezl35AVery interesting.
http://xahlee.info/kbd/lmi_lambda_keyboard.html
>>105583484Thank you for the video.
wagmi
md5: 0875930c66b8d3f892ef07532fc5d219
๐
>tfw finished first major project where I got to actually use Lisp seriously
I recently got corrected on some other board when I suggested "scheme" was smaller than lisp with the comment "scheme *is* lisp"
Was I wrong about that? I was more thinking about "common lisp" though as that's generally what I've used in the past (a la Guy L. Steel)
The schemes I've used definitely seem like they were all stripped-down versions of lisps and more fundamentalist (toward lambda calculus) but I admit, after all these years, I really don't know the difference between the terms.
lispsisters, i finally awakened and sort of understand macros (not really) but they are cool
this is mine after 6months or more part time on my project
#lang racket/base
(require "defaults.rkt"
racket/contract)
(define-syntax define-and-provide-parameters-with-contracts
(syntax-rules ()
[(_ ([name val guard converter ...] ...))
(begin
(define name
(make-parameter val
(if (null? '(converter ...))
#f
(car `(,converter ...))))) ...
(provide (contract-out [name (->* () (guard) (or/c guard void?))] ...)))]))
(define (string->boolean arg)
(cond
[(member arg '("0" "#f" "f" "false" "off" "disable")) #f]
[(member arg '("1" "#t" "t" "true" "on" "enable")) #t]
[else (printf "Argument is not thruthful enough: ~a\n" arg)]))
(define-and-provide-parameters-with-contracts
([backend "yt-dlp" string?] ;; FIXME: correct guard for executable
[browser #t string?]
[custom-directory video-directory path? string->path]
[custom-directory? #f boolean? string->boolean]
[ignore-case? #f boolean?]
[log-level 'info symbol?]
[max-results 20 exact-nonnegative-integer?]
[quality 144 exact-nonnegative-integer?]
[queue null (listof (cons/c exact-nonnegative-integer? hash?))]
[exit-repl? #f boolean?]
[urls '() (listof string?)]
[verbose-mode? #f boolean?]
[audio-only? #t boolean?]))
(custom-directory?) #f
(custom-directory? "enable")
(custom-directory?) #t
freaking make-parameter guard is not really guard, but a converter!
i implemented real guards with contracts and added optional converter
any racketchad could tell me if its good or not? thanks in advance
>>105582732Python is well-known to be a derivative of BASIC, and they've just thrown (or tried to throw) every paradigm they could into it over they years, especially when they went to v3.
>>105584186Lisp is the language family, scheme is a lisp as is common lisp, there is no single language that is just 'lisp'. But yes, scheme is certainly smaller than common lisp.
Also whoever corrected you was just being a pedantic faggot.
>frontend in clojurescript
>backend in common lisp
I am unstoppable.
>>105585359Scheme is distinct from Lisp in purpose, philosophy and reality. Common lisp came after and tried to bring more Scheme into lisp.
I got banned from #emacs on libera for saying most people are too stupid to write code and we shouldn't encourage them to try. Apparently I am "elitist" because I said that and also happened to be in the #openbsd channel at the time. The janny had a meltdown and tried to dox me. When I pointed out emacs is kind of shit because it's single threaded that was the last straw and I got the ban hammer. Then he cried to ircop who issued k-line.
Jokes on them I don't care about that VPS instance anyway. Got a new IP and continued shitposting. I was only testing our erc which I'm not surprised is pretty shit. Sticking with weechat for now I guess.
In other news I wrote a manga viewer for emacs and it's working really well. Takes forever for anyone to approve and add it to melpa though. Been waiting for 4 weeks at this point.
I've also been playing with Guix but the default configurations for stuff like display/log-in manager are _really_ retarded. Plus the GNU servers are shit and are offline half of the time. Will probably stick to OpenBSD and try it again later. It's Gentoo without the USE flags and even more autism. It'd actually get pretty popular if it wasn't suffering from GNUfag bullshit like most of their other projects that aren't emacs.
>>105585525>>I got banned from #emacs on libera for saying most people are too stupid to write code and we shouldn't encourage them to try.Funny because even RMS says this too
>How to learn programming>First, read a textbook about programming in some language, then manuals for several programming languages including Lisp. If they make natural intuitive sense to you, that indicates your mind is well-adapted towards programming.>If they don't make intuitive sense to you, I suggest you do something other than programming. You might be able to do programming to some degree with a struggle, but if you find it a struggle you won't be very good at it and you won't enjoy it. What's the point of programming if it is a struggle instead of a fascination? It's your choice -- if your brain is better suited to some other activity, you could choose that instead.https://www.stallman.org/stallman-computing.html
>>105585707Sad, I'm fascinated by all the stuff I'm not good at understanding. I'm probably best at something retarded.
>>105585748Keep searching. You'll find that retarded thing and you'll love it.
>>105585707Indeed. I wasn't even being a fag about it or mean. I was pretty much saying what Stallman says in that article (note: I am not a huge fan of Stallman but he's right about some things).
Trying to train these people to be coders is a waste of everyone's time. People that naturally gravitate towards programming become programmers. There are many other roles in the tech sector for people that can't do it. Like being sysadmins. There is no point in attempting to teach someone that doesn't grasp basic math concepts things like calculus. It will never work.
Today people have far more access to resources than I did when I learned how to write scripts originally. Back in those days I had to travel 50+ miles to a campus just to get a copy of Linux I could install at home. Then I had to work out how to make it work on my computer without access to the internet (winmodem problems). I had to spend many hours reading books and man pages. Beg my parents to buy expensive books for me. Wait months until Christmas before I could read them. Break stuff and fix it myself. There wasn't even google back then. You were on your own. You didn't learn or produce anything without a lot of effort.
Now they'll let anyone waltz into places that used to be nerds only and bend over backwards to help them write basic HTML. If they don't "get it" it's never their fault. No one will tell them flat out that they're wasting everyone's time. Making all these things open to everyone has ruined the actual discussions taking place within. They're now flooded with children and dumb people that do nothing but re-post things they themselves don't understand and shit up discussion. It's just noise. Even on the IRC channels that are supposed to be for developing software. All of them just want to send PRs to modify comments and other useless stuff like that so they can put it on their resume and con their way into a tech job. They don't even care about the project. They just want the clout.
>>105585525>even irc isn't safe from tranny janniesgrim
>>105582732ruby or javascript could come closer to being dog shit lisp clones, but more accurate would be to say they were influenced by and adopted features of
>>105585822From what I can tell librea chat is overrun with them. Which makes sense I guess because they threw such a fit when freenode was taken over. You'd think places like the Gentoo channels would have smart people in them. But all they do is rant about how great systemd is all day and attack anyone that wants to run anything that isn't their default config/profiles. I was having a nice conversation with another user about s6 and we were helping each other with a minor problem with the current ebuild. The OPs in the channel flew into a fit of rage because we'd even consider using something that wasn't systemd or OpenRC. They started ranting with the same bait you see posted on /g/ daily.
When I pointed out to them that my configuration was just for fun and I needed s6 because I was helping develop skabus they got very angry and accused me to disliking dbus. I never brought up dbus but I made the mistake of telling them that yes it's dog shit and I won't allow it on my systems. Which earned me a kick+ban from all Gentoo channels I was idling in. Which is stupid because I'm the guy that's maintained some pretty important ebuilds within the default profiles for over a decade now. But I didn't use my real name/known username when I connected so I got treated like shit and called a troll.
I will say the #openbsd channel is very nice and the people within that one are very helpful. They don't put up with people posting obvious bait and politely ask you take it to the social channel if things veer too off topic. They're also always willing and quickly help newbies that come in there asking for support. But anything mainstream is filled with fags that obviously don't know anything and I'm not sure why they're tolerated. But when you cross reference the usernames of OPs in those channels you always see the same thing: They're Red Hat employees, social media whores, and people working on things like gnome/systemd/wayland/related cancer.
>>105585879How can I get s6 for gentoo? It seems to be getting worse. I wish I had time for writing my own distro, I'd love if portage weren't in python.
>>105586142I know your pain. Python was a retarded choice for the package manager. Pretty much everything bad about Gentoo can be tied back to that decision.
There is an s6 overlay in GURU that's pretty well maintained I think. I've been doing everything manually including writing my own ebuild for it. I'm not sure how well services are maintained for s6 in the Gentoo overlay but I imagine it has support for most common packages since there seems to be a lot of activity. Note that just switching to s6 isn't going to remove most of the junk from your system if you're running one of the default profiles. You need to do a lot of other stuff like getting rid of logind and maybe udev if you're willing to live without it. Static /dev isn't really a big deal because most people aren't constantly adding and removing hardware from their system. It just takes a bit of upfront set up then it'll work great forever. Similarly, you'll need to either go back to setuid for Xorg or try building Xenocara if you're running X (you should be). The fear mongering about setuid Xorg is pretty stupid. It isn't a big deal and I certainly trust that more than allowing logind on my systems.
Good place to start is here: https://wiki.gentoo.org/wiki/Old_Fashioned_Gentoo_Install
I would link you to some threads on the forums or the OTW 2.0 forums where a lot of good info used to be posted. But they deleted all those threads, banned everyone and *someone* decided to ddos OTW 2.0 for months at a time until the admin gave up. There was also a lot of good info in the Funtoo forums/mailing list once upon a time. But most of it seems to be gone now.
Your best bet is probably seeing who maintains the old OpenRC and s6 overlays and asking them for help. Those are the grey beards that got banned by the Gentoo jannies who refuse to run modern Gentoo. Also whomever is still maintaining the split /usr profile/overlay.
>>105586234Oh you also need to tweak some USE flags to add -polkit, -dbus, -wayland, -systemd, -<etc>. Just adding -systemd won't purged it all together since many systemd projects don't respect that USE flag.
If you look around for people maintaining "old school" Gentoo overlays/repos off site you should find the grey beards. They're still around they just aren't allowed to use the forums anymore. I'm not sure if everyone migrated to a new location when OTW 2.0 went down. Since by that point I was maintaining my own local overlay and didn't need to bother anyone with questions anymore.
A LOT of guys went to the *BSDs. I ended up on OpenBSD. A lot of people ended up on FreeBSD as well but it takes a lot of messing around to get it in a usable state without all the modern stuff infecting linux. Just look around for places people over the age of about 40 hang out and you'll find some good advice. FreeBSD has CoC but they don't seem to enforce it much on their forums since I see people shitting on things like systemd and modern linux all of the time. Just don't call anyone nigger/fag and you should be okay.
If you're into emacs and LISP both are pretty much fully supported on the *BSDs. OpenBSD has 5 versions of it packaged for various flavors of gtk and athena. They still maintain gtk2 build. If you like Portage you should feel right at home using Ports on any BSD OS. Since that's where the Gentoo guys got the idea in the first place. The main difference is there aren't global USE flags. You have to set flags for each package (so same thing every other source based Linux distro requires). Sourcemage Linux is also neat and a better version of Gentoo imo. But it doesn't have as many users (man pages are good though).
Most packages do not really require all this modern shit like systemd and polkit/dbus as hard dependency by the way. At most they'll just spam some non-fatal errors to your log files. OpenBSD packages firefox with faked dbus to keep it from crying.
>>105586234>>105586281Oh one more thing. Do not use the default or distro kernels in Gentoo now. The guy that maintains them is a dumb ass and they come with some horrible patches. You want to run vanilla kernel or maybe one of the realtime kernels depending on what you're doing (I use realtime on my system because I work with audio production).
The best middle ground right now is FreeBSD in my opinion. It has support for Linux binaries through an emulator and wine works just fine. The only issue with it is some missing drivers if you have very new hardware or hardware that doesn't have great support in linux itself. If that is the case and a Linux driver exists you can use it through the compatibility layer just like linux bins.
If you can live without bluetooth and wine then OpenBSD is by far the best OS right now to use for a laptop/desktop. Hardware support is really good and the man pages are the best I've ever read. The community is also nice and believe in choice like Gentoo used to. They'll even write drivers and stuff for you as long as you're willing to donate the hardware.
Speaking of OpenBSD: You should check out mg if you aren't already using it.
https://man.openbsd.org/mg
I've switched over to mg everywhere that I don't want full blown emacs. It's great. Basically vi but with emacs bindings. I use it all of the time now. It has been ported to most every OS I use and it comes in the base system of OpenBSD. OpenBSD releases a new stable version every 6 months. But I've been running -current on my systems for the last two years and never had any trouble with it. It's very stable and sysupgrade works so well that I don't worry about running it at all anymore. It's nothing like using Linux. They actually test their shit and use it themselves. A new snapshot of -current is built everyday I think. I usually run "doas sysupgrade -s" once or twice a week. Their version of Xorg is also very nice. I love pledge and unveil and every port uses it.
>using new language
>want to do x
>look up if language supports x
>"Uhmmm we don't do x in this language...we prefer to do y..."
>get annoyed because x is the obvious and simple answer for what I want to do
>want to go back to lisp
why is every language so faggy except lisp?
are there any alternative systems for polymorphism for guile besides goops? I like how rust does it with traits better than oop
>>105586463https://doc.cat-v.org/programming/worse_is_better
>>105586463I think it boils down to the fact that anyone that writes a new scripting language is an opinionated asshole. There is really no reason for anything beyond C and lisp to exist. Okay maybe perl too. But most of this other stuff that's come and gone since I learned perl way back in the day is pretty useless. php was a disaster that didn't know what it wanted to be. Ruby was always slow and doing retarded things. Python is annoying with the white space. Don't even get me started on bash scripting.
When OOP was becoming a hot trend in the 90s every language had to bolt it on around 99-2002 era. People said if your language didn't support OOP it was worthless and the old way of doing things was too hard to use and too hard to extend. But as we've seen OOP has been a disaster and only resulted in code bases being even harder for one person to wrap their head around.
What bothers me now is the fact that we've got all this hardware that's so fast. We could easily have something like a lisp machine on our desks now without any issue. We'd just need a small C core for the micro-kernel and drivers. The rest of the stack all the way up could be in lisp or a lisp-like language. Where the entire system could be modified in real time without rebooting and you could easily hook into any part of the OS and interact with hardware directly from a scripting language. But they just keep piling on more shit on to these ancient UNIX-like kernels and making the systems slower and slower while requiring more and more resources. lisp machines didn't make it because they were "too slow". But now we've got desktops that are even slower when compared cycle to cycle.
I get the fact that some people dislike lisp's syntax. But it seems like a non-issue considering you could easily make a C-like syntax on top of it for people that can't into (((()))).
fucking around with racket lexer
it's amazing, i have never been more excited to work on string parsing tasks
(define the-lexer
(lexer [(eof) eof]
["do()" 'do]
["don't()" 'dont]
[(concatenation "mul(" (repetition 1 3 numeric) "," (repetition 1 3 numeric) ")")
(let* ([content (substring lexeme 4 (- (string-length lexeme) 1))]
[parts (string-split content ",")])
(list (string->number (first parts)) (string->number (second parts))))]
; Skip everything else
[any-char (the-lexer input-port)]))
>>105586234> Python was a retarded choice for the package managerI just discovered Guix by accident.
Anyway, for those that donโt know, Guix is a scheme based pacakge manager that uses the guile implementation of scheme.
I was trying to compile guile, having problems with dependencies, and installing Guix fixed everything.
Like yoda bringing the xwing fighter out on the mud.
>>105586539> no reason for anything beyond C and lisp to exist.Lol, you can embed guile in random C programs. Itโs fascinating.
Like when you want to do something algorithmic. Or complicated. Or high-level. Or correct.
>>105586579I've been messing with Guix and the Guix distro for the last few years. It's very nice but if you want something that isn't the default config you're on your own. The documentation is really lacking in a lot of places. The main resource you have to figuring things out and lurking other people's configurations on places like github. The GNU channel is also really really slow and it seems to be hosted on a toaster behind an old crappy DSL connection. It's offline all of the time and when it is online it always feels like it's being ddos'd.
The biggest issue with using Guix distro is the fact that the project is hosted by GNU. So they'll give you no help at all when you ask questions if there is even a hint of non-free firmware on your system. Which would be fine if that wasn't 85+% of people attempting to use the software. Also if you go searching for configurations that aren't the default you'll mostly find the same hyprland+wayland config just slightly modified for personal taste. Hardly anyone is running anything but that and sharing it.
The upside is Shepard is a really cool and good init system. Which is also written in Scheme.
When it does work out it's amazing though. Since you can have multiple versions of packages installed at the same time and switch them out on the fly. The only issue is all this makes managing your ~ really retarded and you're now forced to ensure it's in sync properly. Even when it is it throws convoluted and hard to understand error messages half the time. Since most stuff isn't designed to function like this.
I will say it's much better than NixOS. Since it came after and learned from the mistakes they made. I imagine it would be good as additional package manager with a default. But I haven't tried using it like that beyond testing it one time. So I don't know how well it works in the long run. /gnu/store doesn't seem to take up much HDD space as I thought it would. So no harm in trying.
>>105582732Is a dogshit language regardless of what it is, i only use it because is the only thing whose ecosystem just works on Termux without needing a bloated proot. And maybe Node.js and Elisp. Python is the only thing Termux maintainers truly test, the rest is community volunteer effort.
>>105586234Python and its clinging to ancient academy bikeshedding C extensiones are so ass it took 20 years for someone to be able to write a comprensive package management solution that was usable, and is gloware writen in Rust (uses static Python builds coming from some dude trust me startup). Python has some really nice libraries, literally anyone can learn it in a week at most and has acceptable tooling, that's as much as you can squeeze from that shit show.
>>105586641I've become frustrated with nixos's "all or nothing" style of package integration. Basically if you want to do ANYTHING, run any program, compile anything, etc... it HAS TO be packaged into nix or it won't work.
I think I'm just going to go back to arch at this point just to not have to deal with it anymore. Declarative system management is a neat idea and has a lot of benefits, but giving up the ability to just mutate your system as you choose manually i too far. I've had to start compiling things inside fucking vms! What's the point of a package manager if I have to spend all my time inside containers?
Guix is the same as nixos, with a nicer language but even more sever limitations. I don't think that can ever really change. Even if every program in existence was packaged the programs I CREATE wouldn't be and I don't want to have to package everything I do just to get it to run.
>>105588011My main issue with NixOS is the hard dependency on systemd. They say it's not really so and you can do whatever you want. But they leave out the fact that you'll have to re-package everything yourself.
My main issue with both is how big of a pain it is to make simple changes to shit in /etc
>>105587625The Rust people are the worst. I'm not trusting random binaries from the internet at compile time ever. I'm also never using a compiler that takes 16+GB of RAM to compile Hello Word
>>105585525>emacs is kind of shit because it's single threadedEmacsisters will Emacs ever be multithreaded? The codebase is big and adding multithreading *after* is rather convoluted.
>>105586539OOP itself hasnโt been a disaster though
I find CLOS really pleasant to use
>>105589132>OOP itself hasnโt been a disaster thoughFuck off, stop doing this. Just accept defeat you OOP-shitheads always move the goalpost. "Oh yeah THAT oop was bad but REAL oop isn't bad".
Over and over and over again.
>I find CLOS really pleasant to useThat's because you're in denial.
>>105586381>OpenBSDI don't care for clang, isn't that corporate bullshit?
>>105586539Oop hasn't failed but allowed us to raise the manageable complexity of software by tenfold.
>>105589166CLOS works fine, and try posting in a way where I donโt hear a screeching tone when I read your posts please
>>105589166Explain exactly what you dislike about CLOS and why unless youโre just jumping on a โdude classes bad because fpโ meme
>>105582732there's a real Lisp with Python-like surface syntax
https://rhombus-lang.org/
>>105589166Alan Kay's OOP is a good idea, you are mistaking it with Enterprise POOP.
In some domains keeping data with functions is a better default (GUI creation for one). You just need to stay away from the dumb parts of OOP (inheritance chains, state mutation outside of object, over-engineered object compositions).
>>105589166what about smalltalk THOUGH
>>105589400When it comes to "OOP bad" people, there are the people that go "Classes and exceptions are bad because of the mutation and lack of type safety - use pure functions and use monadic error handling," and there are the people that go "They're bad because they're complex - we must retvrn to using structs and procedures and manual error code checking like in C."
>>105590864But even with the former people, many things in Common Lisp do use CLOS under the hood anyway, and you can always minimise this my e.g. defining classes which can only be read but not modified after being constructed, so this is quite well handled in Lisp.
I'm a newbie to CL, but something wild I just did with CLOS was to use multiple inheritance to make hunchentoot (an HTTP server) and hunchensocket (a WebSocket server) work on the same port. Somehow, it magically worked.
(defclass super-acceptor (hunchensocket:websocket-acceptor easy-routes:easy-routes-acceptor)
()
(:documentation "Combine websocket-acceptor and easy-routes-acceptor."))
;; It's a shame this isn't properly documented.
;; https://github.com/joaotavora/hunchensocket/issues/14
Something else I like about CLOS is defgeneric and defmethod. Having programmed in Julia before playing with CL more seriously, I already had a feel for how to use this feature, because in Julia, every function is defgeneric by default.
https://lispcookbook.github.io/cl-cookbook/clos.html#generic-functions-defgeneric-defmethod
https://lispcookbook.github.io/cl-cookbook/clos.html#multimethods
>>105591233CLOS is definitely multiple inheritance and polymorphism done well (as opposed to some other languages)
It always amazes me when I remember we had great ideas all the way back in the 70s and 80s and somehow we wound up with pure slop being mainstream instead. It feels like we've gone backwards.
>>105590864oop bad people are plt illiterates.
>>105591438There are times when OO can get awkward, but having tools like multimethods available lets you work around the awkwardness. and get back to something simpler.
>>105584224>lispsisters, i finally awakened and sort of understand macros (not really) but they are cool>any racketchad could tell me if its good or not? thanks in advancei don't have racket installed but the if/null part could be rewritten like:
(define-syntax define-and-provide-parameters-with-contracts
(syntax-rules ()
[(_ ([name val guard] ...))
(begin
(define name (make-parameter val #f)) ...
(provide (contract-out [name (->* () (guard) (or/c guard void?))] ...)))]
[(_ ([name val guard . (converter . rest))] ...))
(begin
(define name (make-parameter val converter)) ...
(provide (contract-out [name (->* () (guard) (or/c guard void?))] ...)))]))
in this case (converter . rest) doesn't do anything ([name val guard converter] would do the same thing) but maybe you want to process rest later. if you're curious you can car/cdr recurse on lists in macros just like functions:
(define-syntax m
(syntax-rules ()
[(_ ())
0]
[(_ (a . b))
(+ a (m b))]))
made a "person generator" for a govt api in guile scheme.
It generates a JSON in the format the government API uses. People and geographic names are generated using markov chain grammars.
(define grammar-name
;; Rules for name formation
'((name name 0.1)
(name surname 0.85)
(name article 0.05)
(surname surname 0.45)
(surname article 0.05)
(article surname 1.0)
(surname end 0.50)
(end end 1.0)))
(define (select-weighted choices)
;; CHOICES is a list of the form ((value . probability) ...)
(let* ((sum (apply + 0.0 (map cadr choices)))
(r (random sum)))
(let loop ((choices choices)
(r r))
(let ((prob (cadar choices))
(val (caar choices)))
(if (<= r prob)
val
(loop (cdr choices) (- r prob)))))))
(define (next-state from grammar)
;; Selects the next state from the list GRAMMAR starting from FROM.
;; Grammar is a list of lists of the form ((FROM TO PROB) ...)
(let* ((possible-transitions (possible-states from grammar))
(choices (map cdr possible-transitions)))
(select-weighted choices)
))
(define (generate-name max-len init pick-word grammar)
;; Generates generic names based on GRAMMAR and the initial state INIT.
;; pick-word accepts one argument, usually the current state.
(define (end? st words)
;; Auxiliary function to determine the end condition.
(or (equal? 'end st)
(= (length words) max-len)))
;; Accumulates words based on the rules and the termination function.
(let loop ((state init)
(words '()))
(if (end? state words)
words
(let ((word (pick-word state))
(next-state (next-state state grammar)))
(loop next-state (cons word words))))))
FIle has ~1k lines but it is meant to be a single script so it has a bunch of hard coded data and names in several large lists.
>>105590995>many thingsincluding the entire language.
>>105592011https://bcadastros.serpro.gov.br/documentacao/cadastro_pf/#dominio-sexo-pessoa-fisica
Meant to generate this bunch of shit. Scheme's composability and macros really help with this.
>>105592031>>105592011Pic is some of the tabulated results of 10k runs of female names with max-len 4.
I wish there was a dataset for full names of my locale so I could train the actual name frequency to represent the population, but there are only lists with popular names or the official data with just firstname by number.
As it stands names are sampled uniformly from a sexp but the word class (first name, surname, article ...) have certain probabilities I made up.
>>105592107Actual fucking pick jesus christ.
do you guys use parinfer? i really like it but it gets annoying a lot
>>105592582i find it gets in the way more than it helps when i'm cutting+pasting chunks of code
it's cool otherwise
>>105592582Paredit gang here. Just disable it for m-: and the minibar
For some reason I keep forgetting about define-modify-macro. I only remember it after I've typed out a bunch of tedious modifications that the macro makes much less tedious.
are there any alternative systems for polymorphism for guile besides goops? I like how rust does it with traits better than oop
>>105593463This is filed inside my mind as "weird semi-schizo probably-unusable stuff" and I'm not sure how it is compares with typeclasses/traits or Guile's goops, so beware:
https://www.tohoyn.fi/theme-d/
>>105592135I don't understand why people like relative line numbers.
>>105594856extremely useful if you use vim bindings
>>105595362Why would I use vim bindings?
I just ragequit Guix, I'm too much of a dumbfuck to use it. Couldn't manage to make a config where the default linux kernel and nvidia drivers didn't cause a blackscreen.
The worst part is having to wait shit to compile just to see another black screen.
>>105594856It's for people who can't subtract 6521 from 6535, or people who simply refuse to type :6521,6535s despite having to type :-14,.s anyway. It's all very complicated you see.
>>105595432>despite having to type :-14,.s anywayWow, vim is worse than I thought.
>>105595460Indide it is
Oops, :%s/\<Indide\>/Indeed/g
>Indeed it is
>>105581689 (OP)Are there any statically typed Lisps with generics and interfaces/traits? I want to see what the syntax looks like.
>>105595378I like vim bindings in my web browser. Using hjkl to navigate pages is pretty comfy since they're right next to my track point.
>>105595531Some links on this page may be useful:
https://wiki.haskell.org/Haskell_Lisp
>>105586539>There is really no reason for anything beyond C and lisp to existThere's no reason for C to exist either. All it would take is a proper statically typed Scheme without a GC. Preferably one that is actually designed as a system programming language, and not just "Scheme but less features" like pre-scheme or "Scheme but C syntax" like cakelisp. Naughty Dog's GOAL/GOOL was a good example, it compiled into PS2 machine code, it's a shame that it's proprietary.
If only some of you freaks would accept that sometimes dynamic typing and GC doesn't make sense, then maybe we might have a chance at an actually good system Lisp. I've seen CL people arguing that there's nothing wrong with a GC in an embedded system...
>>105595628Well until that materializes C will continue to be used.
>>105589132>>105589296Some of the core concepts of OOP aren't bad. It's all the other stuff around it that makes me want to vomit. Inheritance is a good example, it's very often the wrong abstraction.
>>105595628>ll it would take is a proper statically typed Scheme without a GC.so C?
>>105595679Unfortunately.
>>105595362C-u <num> C-n or C-p
>>105595953>Implying that C is a statically typed Scheme
>>105594856Relative line numbers gives you targeting for modal editing, because a lot of commands can take a numeric prefix. evil and meow users can benefit from this.
>>105595411This gonna be me tomorrow kek.
>>105595739Inheritance is fixed by having multiple inheritance.
I will not elaborate.
>>105595739>>105596061https://harmful.cat-v.org/software/OO_programming/
>>105596061>by having multiple inheritanceEver heard of the diamond problem with multiple inheritance? The entire concept is literally broken, it doesn't fix anything.
c3
md5: 8af1a879546571ef5ac8b705786efec6
๐
>>105596215Solutions have been found.
https://metacpan.org/pod/Algorithm::C3
>>105596215CL doesn't have that problem because of method combination.
>imagine having methods inside classes lmaoGuile's insane shebang
#!/pee/guile
!#
breaks emacs file local variables, is it possible still to use them without putting them at the bottom? Maybe tell emacs to look in the 3rd line instead of the 2nd.
>>105587583Why would you even use Termux???
Is this the best org-mode parser avaialble for CL? I'm hoping for something newer and more maintained.
https://github.com/deepfire/cl-org-mode
>>105595531>Lisp with genericsYou can literally implement parametric polymorphism with macros.
A generic type is nothing more than a function that takes types as arguments and returns a concrete implementation. In Lisp syntax that would look like (hashmap A B), where A and B are types.
Make (hashmap A B) into a macro that first checks if the environment already has a "hashmap:A+B" symbol. If it's there then return the symbol. If not then expand a new concrete implementation of (hashmap A B), add the new symbol to the environment, and then return the symbol.
Very simplistic explanation. You might want to add a few checks here and there, but that's basically how generic types work with monomorphization.
Like always there's nothing that Lisp macros can't do. The surprising thing is the fact that other languages need complicated compiler magic for this.
>>105595411Some anon posted this config for Nvidia here:
https://desuarchive.org/g/thread/105082951/#105216737
>>105596391There's an older library with the exact same name.
https://gitlab.common-lisp.net/cl-org-mode/cl-org-mode
It was written by a different person, and the two code bases look to have been developed independently of each other.
https://github.com/deepfire/cl-org-mode/issues/6
The (relatively) new one seems technically superior.
Unfortunately, the old one is the one in quicklisp and linked to by https://orgmode.org/tools.html .
>>105595628>There's no reason for C to exist eitherAh but there is. C has stuck around so long because coding in assembly was pretty awful. C is a useful virus since it's so easy to port to new hardware. It's the only useful thing to come out of "worse is better". Instead of writing a new systems language to replace it we're better off to just continue using it and having something better on top of it for most everything that isn't interacting directly with the hardware. A modern lisp machine would be pretty easy to create with a small C core to deal with the hardware. Basically, what emacs already is but for the entire OS.
If we lived in a sane world we would have already had something like this a long time ago. A small micro-kernel in C where drivers were able to be dynamically loaded and unloaded at run time and wouldn't cause issues in the core of the kernel. Then on top of that we'd have an OS written in a scripting language like Scheme or Common lisp where you could modify anything in real time. There were several attempts at making something like that but they were all killed off over the years in favor of UNIX and Microsoft's various OSs.
Now of course we could replace C with something new and "better". But we have so much legacy shit now that we're going to have to deal with C in the future anyway. The real mistakes were things like C++ and later shit like Rust. Which have brought zero real improvements but have only served to make compiling and running software a huge pain in the ass. C++ is horrible for well known reasons and Rust requires having what amounts to a server farm to push updates. Never mind the fact that it pulls random untrusted code from all over the internet at compile time. The only reason I use it is to compile Firefox and that's always a pain. There is NO excuse for why I need to allocate 16+GB of RAM and wait nearly an hour to compile the Rust portion of the browser engine. It's so horrible and obsoleted many systems for no reason
>>105596427I will... try again tomorrow...
Hopefully someone who uses Guix will be online at the time to read my depressionposting after the inevitable black screen.
>>105596616I haven't tried installing it on a system that uses Nvidia drivers. I got tired to maintaining the last system that uses an Nvidia GPU a few years ago so I retired it. It now runs an old version of Windows and lives in an arcade cabinet.
You've stumbled upon why I dislike using Guix as the entire OS. It's a huge pain when it doesn't work and the community will refuse to help you at all. You'll just have to continue fucking around with your config until it magically boots. Perhaps try with the communities cloned/free drivers first before attempting to get the good ones working. On my system with an AMD card this wasn't really an issue and it worked right away. But figuring out how to get the system to stop pulling in stuff like Rust for the log-in manager was a huge pain. I didn't want display manager at all. But everyone in the community is gung-ho on having that and stuff like wayland. Which is fine for them but it really sucks when you're attempting to do things they aren't.
I also never figured out how to get it to properly set-up FDE without prompting for password twice at boot.
>>105595628>Naughty Dog's GOAL/GOOL was a good example, it compiled into PS2 machine code, it's a shame that it's proprietary.Git gud
https://opengoal.dev
https://github.com/open-goal/jak-project
>>105596608>C is a useful virus since it's so easy to port to new hardwareBoth Lisp and Forth are much easier to port to new hardware. Anyone can write a Forth in assembly in less than a day and bring all their Forth code with it. Good luck writing a new C compiler or adding a new LLVM backend in that same amount of time.
It has always been a myth that C is the easiest language to port, and that myth continues being propagated by uneducated C programmers with no proper knowledge of either Lisp or Forth.
>>105595411if you set up the channel for nonguix you won't have to compile the kernel yourself
>>105596864Yeah yeah yeah Forth and Lisp are great. That's why no one has written a kernel in them. Look anon, I don't really care what you think the best language is. No matter what you write you OS in you'll need a C compiler on it if you want to run applications written since the 1960s. I don't like C either. But it's certainly better than nothing. There are reasons why things like emacs have a C core instead of being written 100% in lisp directly.
>>105596743>https://opengoal.devAs the website mentions, it's only an attempt at mimicking the original language, there's no actual GOAL code in there.
We don't know if openGOAL even looks like the original GOAL. It was compiled to machine code so there's no Lisp source code in the games, it's just PS2 instructions.
The actual original GOAL is still proprietary.
>>105596608> compile the Rust portion of the browser engineRust is a scam.
Yes, rust could, in theory, emit OS-implementation capable code, but it would all have to be unsafe since the OS deals with DMA, volatile stuff, TLBs, and gives structure to arbirary regions of memory.
A good solution was guile, where you can write C code and just embed high-level guile code in the middle of it for functions that donโt need to mess around on the hardware.
>>105596864Back in the early days of unix, cc was free and quite approachable, code wise.
C++ emitted C code (cfront) if you wanted that bullshit.
Linux was going to switch the kernel and use pcc, which got pretty far, but got killed for political reasons in the 9th hour. That was just replacing one C compiler with anotherโฆ
Replacing C with rust should have triggered an immediate drop kick to the face based on the standards that were previously set.
>>105581689 (OP)as an hpcfag is there any reason for me to learn lisp or is it really just a lain meme? i mainly work with fortran, python, and c, but i've been seeing more and more functional programming crop up in comp chem algorithms
>>105596911>That's why no one has written a kernel in themOnly if you ignore those few times where both were used on space missions, running the software on the spacecraft.
You might have missed all the kernels written in Forth and Lisp, because they're more commonly found on embedded systems, like those found on spacecraft, rather than consumer desktops.
We have better things to do than trying to replace Linux with yet another Unix-like but now written in Lisp.
There's also a few consumer operating systems written in Lisp by the way, including Mezzano written in Common Lisp.
>There are reasons why things like emacs have a C coreBecause emacs was meant to run on top of Unix, an operating system written in C. That's pretty much the whole reason why it's written in C.
If Unix was written in Fortran then emacs would have been written in Fortran too.
There's nothing special about C as a language here. It's just for compatibility with the OS.
>>105589066There is an emacs implementation that uses guile.
That said, as a young fella, I used to be fascinated with threads, and now I just donโt do it anymore.
Iโll run multiple processes and let them communicate only when absolutely necessary (if that :-)
I also havenโt used malloc in ages, except sometimes to allocate one or two big static buffers.
I like the stack, and it helps you become less wasteful of touched memory.
>>105597015>Only if you ignore those few times where both were used on space missions, running the software on the spacecraft.You know what else went into space? MS-DOS.
>>105589132I also think OOP is nonsense after doing it in C++ for 30 years. Again, itโs one of those things that I thought was cool, but now IDGAF.
Iโve worked on multimillion line C++ code bases where you canโt find the code that does anything.
>>105596978>Back in the early days of unix, cc was free and quite approachable, code wise.Nowadays a C compiler is a monstrous abomination. If you often compile C or C++ code with Clang, just know that the LLVM backend is a few million lines of C++. Porting this to run on a new architecture would be a nightmare, adding a new backend isn't easy either with their always outdated documentation that breaks every 6 months.
>Replacing C with rust should have triggered an immediate drop kick to the faceAgreed. Unfortunately we're now living in a world where corporate management is making engineering decisions instead of actual engineers.
MLCC
md5: 928a4bf31a8ee6d0bd09c7bde632337f
๐
>>105596997HPC? GNU Guix.
https://hpc.guix.info
>>105597065I used xscheme from david betz on msdos for practical applications. One was cheating in video games like tradewars.
>>105596997>hpc>i've been seeing more and more functional programming crop up in comp chem algorithmsI don't think Lisp has anything special for HPC, and you don't have to use Lisp to learn functional programming (you could use OCaml, for instance).
>>105597065>MS-DOSWritten in assembly. I don't get what your point was, even pure assembly is better than C for writing the firmware of a spacecraft.
Lisp and Forth are just small enough that it's possible to fit the whole interpreter into a spacecraft, then the code can be dynamically updated from Earth without having to send someone to space just to fix a stupid segfault. Those dynamic updates have happened already by the way, it's not just a hypothetical.
>>105597157>I don't get what your point wasMy point was I was talking about writing a general purpose OS that could run legacy applications on the desktop with a GUI that could be modified in real time like emacs and you started ranting about embedded systems and Forth for some reason.
By the way space isn't real so I don't really care what they claim to have sent out into it when it's impossible to go through the dome and they never send back anything but obvious CGI
>>105597176>By the way space isn't real>it's impossible to go through the dome>obvious CGIAh, so your opinion can be immediately discarded because you're an actual imbecile. Thank you for informing us that you're cognitively challenged.
I expected better from a fellow Lisp user.
>no C is better!
>no LISP is better!
Holy autism. Meanwhile chads John McCarthy and Dennis Ritchie:
>John McCarthy: Learn some programming languages โ at least C, Lisp and Prolog.
https://www-formal.stanford.edu/jmc/whatisai.pdf
>Dennis Ritchie: I have to admire languages like Lisp.
http://www.gotw.ca/publications/c_family_interview.htm
Can anyone make heads or tails of this paper: https://people.dm.unipi.it/berardu/Art/1992Self-interpreter/efficient.pdf
It claims to create a lambda calculus self interpreter E = 1 <K,S,C>
Where 1 is church encoded and <...> is a church tuple.
But I can't get it to work and feel I'm missing something major here. It ALMOST makes sense, but I'm not understanding how this thing is supposed to recurse.
>>105597268Humans are a very tribal animal.
>>105597268The cnile in the thread doesn't believe space is real. Clearly C has already done some serious brain damage, can't recommend.
>>105597390I code in Common Lisp, and I don't think space is real either. At the very least, NASA is telling a fuckton of lies.
https://archive.4plebs.org/pol/thread/346281170/
>>105597763We know it's real because it looks so fake anon
>>105597279I figured it out, I wasn't encoding the arguments right.
>>105597268I needs those glasses
my contact with lisp has just been with emacs lisp and then guile scheme because of guix and sicp. Is common lisp going to be mindblowing different?
#1 on hn right now: https://www.dreamsongs.com/ArtOfLisp.html
Smalltalk is my favorite lisp.
>>105599030thanks for the link, didn't know that one
that ending was a downer though
I think the reason I like Lisp so much is also in large part the community (despite the fact some people in this thread are clearly braindead). I don't know whether it's because Lisp is a relatively unemployable language these days, or whether it's because it requires a degree of appreciation of intellectual and artistic value for its own sake, but I find that the Lisp community is a rarity nowadays in that it is one of the only programming circles which is free of talk about jobs and money and corporate buzzwords and 'best practices' and so on, and caters almost entirely to people who program in Lisp because they enjoy it, and for no other reason than that. It leaves you with a certain sense of optimism, like taking a deep breath of fresh air.
>>105597763>Common Lisp>/pol/ linkCommon Lisp is the Lisp-family's C++, reading the 1000+ page spec is guaranteed to give you schizophrenia. So that checks out, just like the cnile you have serious brain damage too.
>>105598828>Is common lisp going to be mindblowing different?Scheme is the C of the Lisp languages, while Common Lisp is the C++. It's going to be different, but only in the sense that it's enormously bloated compared to most other Lisp implementations.
>>105597096thanks, anon. will look into this. anything else i should know?
>>105600815>it's enormously bloated compared to most other Lisp implementationsThat hasn't been true in decades.
>>105601041>Implying that a 1000 page specification isn't bloatedC++ is commonly considered a bloated language, and it too has a 1000 page specification. In comparison, Scheme is less than 100 pages.
>>105601135>specificationYeah sure, core scheme is small.
But look at your average scheme IMPLEMENTATION, it's gonna have a fuckton of libraries/modules to make it usable.
>>105600097I wish LISP had a smalltalk-esque IDE.
>>105600713>cnileThe ranting guy that argues for no reason also name calls and repeats forced memes. Not surprised honestly.
Why do these people come here then try so hard to desperately fit-in on an anonymous basket weaving forum?
>tfw just sent the guix time-machine command for my nvidia system
Wish me luck, /g/uixers.
>>105602882>no code or module for module (nongnu packages game-development) fug
Okay I finally think I understand self evaluators and how the BLC self interpreter works.
The secret is that it consists of TWO PARTS, one is the interpreter itself, and the other is a COMPILER from lambda calculus into the internal language of the interpreter! Effectively it's not interpreting lambda calculus at all! It's interpreting a language encoded into lambda calculus and translating it into lambda calculus!
So a BLC interpreter is actually a machine code interpreter(the base executable written in C/CL/etc...) that's interpreting lambda calculus(the BLC self-interreter) that's interpreting the encoded lambda terms.
And now that that's clear the actual operation is dead simple, all it's doing is UNDOING the initial compilation of the lambda terms into the internal representation. So for example \x.x compiles into 0010(actually FFTF in combinators) and then the interpreter just has to take in values and undo the operation.
So all an interpreter is is a list of operations and a selector that picks the right one and applies it to the next incoming term. And since BLC uses logic combinators it's just a (cons (cons a b) (cons c d)) list where it takes in two bits of input, aplies them to the list to select an option, and then recurses and repeats with the next two bits!
Are there useful Lisp VM models in between "LispKit style SECD VM" and "basically just a bytecoded VM for some fantasy CPU"?
It seems like any time I try to aim for a point between those extremes the design always ends up in one of the two directions, with the dividing line being whether GC is implemented by the VM or by the code running in the VM.
>>105595628>If only some of you freaks would accept that sometimes dynamic typing and GC doesn't make senseI do accept that. But what can I, a single anon, do about it?
>>105603021The unforseen consequences of time travel
>>105603573Was I too impatient trying to do everything during install? Will it work if I just go through the install like normal first, and then do all the big changes?
Just finished writing openSUSE Tumbleweed to the USB...
>>105603614What really matters is the commit you're using. Normally you do a "guix pull" first and then it should be fine. But if you're running off the installation medium, I'm not sure it does a pull before applying the config.
In the past whenever I've installed guix or nix I usually just go with a simple/default config for the initial build. Then once the system is up and running I do a pull and reconfigure my system properly.
Not sure how guix time machine factors into this though.
>>105603497You could try out interaction combinators, you compute it basically using a stack and it handles GC by itself, but it's entirely parallel and order agnotic so you can get some of the speedup you'd get from hardwiring instructions into the VM itself.
Also if you look up HVM you can see a version that hardwires a few more instructions like arithmatic and environments. So you can pretty easily start out completely vanilla and then arbitrarily keep adding more and more hardwired shortcuts without really changing the structure of the VM.
>>105603573if you time traveled wouldn't they be foreseen thoughbeit
>>105604069Why are there 3 HVMs?
>>105603937Tried again, and it seems I was a bit impatient. I'm using the latest SystemCrafter's Guix image from GitHub which is a little old now. Currently doing the first git pull. Will try Nvidia shit after first (explicit) system reconfigure.
>>105596714look for extra-initrd in the manual
Have any of you encountered a lisp programmer who didn't indent their code?
>>105605177This is only acceptable if they also type in all caps and hard break their code into 16x64 screens like a Forth programmer.
>>105605215It was written by a philosophy major zoomer who didn't know any better. It's kinda crazy, because he's an Emacs lover, and Emacs practically indents lisp code for you, but a lot of his code is flush to the left.
>>105605177I've only seen questionable indents in old programs and books from the 70s/early 80s desu
>>105605516It's kinda wild that those lambda expressions are perfectly valid in elisp today.
>>105604509The system reconfigure command is running with nvidia shit in the config bois! Although I'm doing this in a tty because gdm won't load after I updated the system. Uh, what are all these ATA bus errors? IO errors and corruption?
This is gonna be borked lmao. I'll try again tomorrow.
file
md5: 721effe42c43db18345e449bb976c239
๐
>>105591166Test out my websocket server.
Anonymous posting is allowed.
http://beastie.sdf.org:4200/
>>105592135Is your theme ef-dream?
>>105605516Or even the 60s lol
>>105605912Both htmx and hunchensocket hide the websocket message handling loop from you, but it ended up working out well. In the past, when I'm responsible for the loops on both the client-side and server-side, there's policy I have to come up with on both ends on what the messages look like, but this is the first time those policy decisions have been made for me, and both ends have reasonable defaults.
One thing I've actually never done before now is send raw HTML through a websocket. In the past, I'd usually send JSON, but htmx wants HTML, and it has this smart feature called out-of-band swaps where it'll look at the id of the top-level elements you send it, and it'll replace those elements in the DOM. It works surprisingly well.
https://htmx.org/attributes/hx-swap-oob/
If anyone is doing web development with lisp, I recommend looking into htmx.
>>105608263https://htmx.org/extensions/ws/
I had to hack it a tiny bit to make it work with hunchensocket. However, a pull request that fixes this just got merged, so the next release will work with hunchensocket just fine.
fixes
md5: dc88fdfba720460c4b7a926ac3dc7558
๐
>>105609197ef-dream is one of my favorite themes from prot. When I'm in the mood for a light theme, I also use ef-reverie which is kinda like the light version of ef-dream in my mind.
>>105609237My config is this:
;;; THEME
;; Selects a random theme
(defun random-choice (choices)
"Randomly return one element from the list CHOICES."
(nth (random (length choices)) choices))
(setq custom-safe-themes t)
(load-theme (random-choice (list 'ef-elea-dark 'tangotango
'ef-tritanopia-dark 'ef-dream
'ef-owl 'ef-arbutus
'ef-maris-dark 'ef-trio-dark)))
>>105609248You can use seq-random-elt from seq.el
>>105609396Not that anon, but I didn't know that existed either. Thanks for the tip.
>>105609396thanks my bro, emacs seens to have everything. I just wish I it had (nuke-israel).
>>105609598https://big-lies.org/nuke-lies/www.nukelies.com/forum/index.html
>>105605396This guy is so junior.......
Is there a package for emacs that highlights 4chan post syntax (greentext, post numbers, spoilers)?
>>105611012I do greentext with just a function.
(defun greentext ()
"Highlight >greentext in current buffer."
(interactive)
(highlight-lines-matching-regexp "^\s*>" 'hi-green-b))
I use this greentext function in two places.
- org
- eww
Just run this function while viewing any buffer where you want greentext.
>>105592582tried this after you said, it keeps fucking up the for and if statement somehow converting the bracket to the wrong one
>>105592582>>105612407Parinfer is broken and not being maintained. Doesn't serve much purpose imo. I just use electric pair, auto-indent, and lispy.
Once you memorize the movements you really don't need/want something like parinfer doing things by itself. Even auto indent occasionally fucks with me but at least it only alters whitespace so it's purely a cosmetic thing. I can't imagine how frustrating it would be if it was actually fucking with my code against my will.
>>105600097My favorite Lisp is a Smalltalk.
>>105605912not only anon but invisible too?
>switch from gnome desktop to xfce for my Guix install due to issues with gdm
>errors out on building webkitgtk or something
>after several attempts just guix gc, pull, and start over
>try lxqt randomly
>is spending hours building every version of ghc known to man
>swear I saw this for my other tries too
Don't even know what the fuck is going on anymore.
>>105614764>spending hours buildinghttps://guix.gnu.org/manual/devel/en/html_node/Channels-with-Substitutes.html
What are the performance characteristics of Lisp?
https://www.amazon.com/Introducing-Blockchain-Lisp-Implement-Blockchains/dp/1484269683
Nice book. Very direct.
>>105611012Emacs 4chan client if you're retarded
https://github.com/ve-nt/q4
>>105614861I'm using substitutes, or should be, but even then I have a 5900X, so it doesn't make sense why it should take this long. Even did the explicit system reconfigure thing (for nonguix) before all this and rebooting. I guess changing desktop is really intensive? Gdm was the thing that didn't start after updating last time, but none of the other alternative login managers had their "module" recognized from the ones I tried listed in the manual...
My head is just full of fuck. Hey, this shit isn't single-threaded only is it? Like Emacs? Oh, it just finished the ghc building bullshit. Hopefully progress.
>>105615174>Hey, this shit isn't single-threaded only is it? Like Emacs?You should be OK. (...but I don't know if guix takes advantage of this).
https://www.gnu.org/software/guile/manual/html_node/Threads.html
>Guile supports POSIX threads, unless it was configured with --without-threads or the host lacks POSIX thread support. When thread support is available, the threads feature is provided (see provided?).
>>105615199>>105615174I've had a similar issue, for me it was just the single threaded downloading, IE it downloads one file at a time, often with a surprising amount of latency, off of really slow servers, and this is interleaved with all the compilation and everything so it seems like it takes forever. In actuality if you downloaded everything first and then compiled everything after that you'd see like 99% of the time is the downloads.
And yeah a parallel downloader would be much faster in theory, but then again the servers are so crippling slow already that's probably a bad idea.
Really all this is caused by them hashing on inputs instead of results. If they'd done it the other way around they could have used peer to peer networks to massively accelerate everything.
The reason they did it is stupid too, like it'd take slightly more effort or some shit or be a little slower, meanwhile their method is crippling the entire ecosystem and costing them shitloads of hosting fees.
>>105615240>really slow servershttps://libreplanet.org/wiki/Group:Guix/Mirrors
There's also this new substitute server. I use it and it's very good.
https://cuirass.genenetwork.org
https://git.rekahsoft.ca/rekahsoft/guix-north-america/
>peer to peer networks>>Decentralized substitute distribution with ERIShttps://issues.guix.gnu.org/52555
>>105615240I mean guix pull doesn't take too long for me. It's the system reconfigure which is taking ages. Maybe it's because I installed from an old image, but I already did an initial guix pull and system reconfigure (explicit) once everything was installed. That gave me kernel 6.14 I think? And once I booted into that gdm didn't load, tty pull configure gc etc, and now changing desktop from gnome to lxqt because why not, and there's so much building lmao.
I'd make an install image from another system running guix, but the last time I tried 'guix system image' it ended up in my store and couldn't be deleted I think. Don't want to shit up a working system.
Anyway, at least it's still making progress as we speak. Don't know what to expect now though kek.
>>105615460Excuse my retardation, yeah no the download part of reconfigure goes fast for me. Just a lot of building after. Think around 1.5 GB was downloaded. Anyway, the process errored out in the same place for the nth time. Some webkitgtk package, some oom happened, gdm failed to build... I dunno man.
>>105615988>gdm failed to buildGDM sucks anyway.
Try another display manager.
https://guix.gnu.org/manual/devel/en/html_node/X-Window.html
does anyone here unironically use stumpwm? is it usable?
>>105609237Is that the famous โorg modeโ?
>>105615988gdm requires Rust. That's why it's slow as fuck to build.
>>105615240The long term plan is p2p packages.
After installing guile and playing around with it, I noticed that it supports infinite digit precision math.
A lot of lisps seem to have done this, anyone know why?
Raku (perl6) was the only other language I rran across (besides dc / bc) that does this.
>>105592582I manage my parens manually.
Only use elec-pair and this function.
(defun fly-high--match-paren (arg)
"Go to the matching paren if on a paren.
https://www.gnu.org/software/emacs/manual/html_node/efaq/Matching-parentheses.html
Alternative for `xah-goto-matching-bracket'"
(interactive "p")
(cond ((looking-at "\\s(") (forward-list 1))
((save-excursion
(backward-char)
(looking-at "\\s)"))
(backward-list 1))
((looking-at "\\s)")
(backward-list 1))
(t (ignore arg))))
>>105616094I used it for a while years ago. It's pretty cool but at the end of the day it's just another tiling WM, albeit an above-average one.
I'd love a more traditional Lispy desktop but it seems like a futile effort these days, X is moribund and Wayland's security theater would severely limit what you can do.
>>105616035Anything other than gdm is just an unbounded variable. Is '(service sddm-service-type)' not what you put under services? Even have '(delete gdm-service-type)' under modify-services.
>>105616266>I manage my parens manually.I'm kinda like you, but I will use paredit's functions without using paredit-mode sometimes. It's nice to do a tactical paredit-forward-slurp-sexp sometimes. Most of the time, I want paredit off, because ...it's a skill issue, but I get into weird states where I can't do what I want and the program structure is getting fucked up. Thank God for undo.
>>105616213>>105615389Notice how overcomplicated, slow, and difficult this is to implement because of the retarded input hashing. If they used output hashes it would be done in a week tops, not partially implemented 5 years in.
>>105616226Lists lend themselves naturally to infinite precision. Also all lisps were written to heavily academic standards(even CL was mainly made to do academic scientific calculation) which appreciates/requires infinite precision bignums.
>>105616396Strange. Here's a plasma + sddm config example, check if there's anything missing in your config
https://codeberg.org/guix/guix/src/branch/master/gnu/system/examples/plasma.tmpl#L56
>>105585525>most people are too stupid to write codeMidwit take
It suggests low iq on your side to even think of that. Its like saying most poeple are to stupid to use a spoon. It sugests using a spoon is something you find difficult and great achievement.
Code is not high level math midwit. And code is esentially simple especially with a simple language like lisp. Midwits like you thats why gravitate to cpp rust or web dev with 10 frameworks.
>>105618211>Its like saying most poeple are to stupid to use a spoonThe Japanese are correct when they praise grown gaijin for being able to use chopsticks and say basic words in their native language. They know the average person is fucking retarded.
>It sugests using a spoon is something you find difficult and great achievement.No I find math and coding pretty easy. I'm just experienced enough to know that the average person is too stupid to figure out how to operate something like Windows 98. It's why they go
>Ohhh anon you're so good with computers!when you run a script to automatically delete the spyware they've installed for the 100th time so they can get 2 cent coupons for shit they don't need from some scam plug-in in their web browser.
Of course. I haven't made my devotion to Stallman and lisp my entire identity. So I don't have any issue with pointing out how stupid most people are (you included). Just like I don't really care if I need to write something in C or any other language to get the job done without adding yet another dependency to an existing code base.
>You use frameworksWhen I started frameworks didn't exist and shit like python was considered bloat. Speaking of dependencies I bet you're the type of person with over 9,000 packages loading at start-up in init.el aren't you?
No one is impressed that you learned emacs key bindings and wrote something that takes 9,000 seconds to evaluate in whatever lisp dialect. I like lisp. But I don't like most of the people that adore it. Since they're always smug retards about it.
If you think the average person should be anywhere near a keyboard you obviously haven't spent a lot of time around the average person. We ruined in the internet because we produced nigger technology like cell phones. Then allowed nigger technology access to the internet. Nigger technology doesn't do anything useful. It just allows dumb niggers to talk to other dumb niggers about dumb nigger shit.
>>105616162>Is that the famous โorg modeโ?It is, but it won't look like that out of the box. The attached pic is how it looks in a plain vanilla unconfigured Emacs.
>>105618710My first few years of really trying Emacs, vim was still my main editor which I used for coding, and I was using Emacs Live as my starter config.
https://github.com/overtone/emacs-live
I didn't know any Elisp back then beyond setq, and I didn't even use that very much. I only used Emacs to maintain a diary and a few other documents in org-mode. I wasn't fond of most of Emacs' classic bindings, but org-mode's core bindings on M-RET and M-up,down,left,right felt very ergonomic, and I really liked how it felt to write in a hierarchical outline style.
>>105618593>the average person is too stupid to figure out how to operate something like Windows 98. It's why they go>>Ohhh anon you're so good with computers!>when you run a script to automatically delete the spyware they've installed for the 100th time so they can get 2 cent coupons for shit they don't need from some scam plug-in in their web browser.I think in 30-50 years you (and I) will be like them as well. Maybe not with computers, but with things that will matter in future.
>>105584148Please post. My lisp project has turned into nightmare.
>retarded edge lord gets banned from #irc for antisocial behaviour
>comes seething and coping to the place where he will find a smelly, warm hug from his other neckbeards
pathetic really. Not a lisp problem, but a social one. I suggest you seek help.
#emacs is generally helpful, and I rather have strict moderation than dealing with schizos and poltards.
>>105620000>schizos and poltardsI was with you until the slander came.
#emacs is a helpful place though. Treat the place well. A lot of knowledgable emacs users are there, and they're generally good people.
>>105620167Absolutely, this general is good. I was referring to the people like the banned poster.
Probably a lot of user overlap with #emacs
Exercise 1-29 of SICP nearly broke me. As an imperativebabby, dealing with first-class functions and formalized closures was facile in a vacuum but when having to layer on logic and structure... mind-bendingly difficult for me. I spent -- no shit -- at least twelve hours, maybe even fifteen, over the space of a couple days trying to pound my dumb, foggy brain into submission around the shape of a completely novel paradigm in action. I finally understood that this was a case-in-point moment where the solution required stepping outside my former box and really using functions as building blocks in an abstract, structural context I never had before.
This shit is addictive. Even if it takes me the rest of my life, I WILL become a wizard.
>>105616567Perfect, I wanted plasma anyway so I'm trying a reconfigure after adapting that template, and it's running for now. Hopefully no oom or errors this time.
>>105614867>Interpreted: Slower than Python>AOT Compiled: As slow as NodeJSWhat causes that are all the dynamic features. Common Lisp has to embed the entire runtime including the compiler into every binary, just to support arbitrary code execution at runtime.
That's completely retarded, but CL addicts accept it for some reason.
>>105620922which one is that?
I don't have the book on hand
(defun f (x c0)
(defun g (y c1)
(funcall c1 (+ x y)))
(g 3 c0))
(f 2 (lambda (x) x))
Is this a correct cps transformation for (defun f (x) (defun g (y) (+ x y)) (g 3)) or does g also need x as a parameter?
>>105622710It's the one where you take a sum process, two of whose parameters are processes, and implement Simpson's rule for finding integrals. My major stopping block beyond just the algorithmic complexity was how closures work in Scheme. I got to do a bit of digging into how they're stored on the heap and how they interact with stack frames. It was also just flat out hard to reason rigorously about passing functions as arguments because it was completely foreign. I learned a ton.
>>105622710More accurately... given the following process:
(define (sum-integers a b)
(if (> a b)
0
(+ a (sum-integers (+ a 1) b))))
The problem is in picrel.
>>105622982Wait, wrong one kek. It's this one:
(define (sum term a next b)
(if (> a b)
0
(+ (term a)
(sum term (next a) next b))))
My bad
>>105618593>I'm just experienced enough to know that the average person is too stupid to figure out how to operate something like Windows 98Im sure your life experiences involve talking with your mom and grandma.
You are low iq and no amount of narcisism is gonna make up for it.
At least half of population has office jobs but I bet no one knows how to use the computer because midwit said so.
>hur dur they dont know l the exact command in terminal for shortcut creation so they dont know anythingJust stop you are embarassing yourself.
>>105581776>https://archive.org/details/09-sel-protocol/Thanks for sharing the link!
I can't tell you how hard its been to find the series.
>>105597763Space isn't real. Check out Vibes of Cosmos on Youtube. Probably the most credible source out there, if you ask me.
>>105623018Have you never worked in an office before? Office jobs are adult daycare, they don't know fuck about anything. Trained monkeys could perform most office jobs better than the average employee.
I don't quite agree with either of you though, my experience is the reality is much more frustrating. Most people are fully capable of understanding programming, but they simply REFUSE TO! They actively resist learning and mental effort like a dog resists a trip to the vet, you've got to force and trick them into it. Even when they explicitly ask you to teach them they refuse to learn and are really just out to pretend that they're making an effort. The amount of time and care put into the most retarded shit imaginable proves they're not really retarded, they're just anti-intellectual fools who think learning is torture and supposed to kill you.
>>105623212Offices run on wasting time and looking busy. Still average worker knows basic operations on pc.
Economy is fake and nessesitates that kind of behavior.
>>105618593>grown gaijinYou will never be Japanese.
You will never have an asian waifu.
You are a creepy weeb that real asian people would soon laugh at.
I learned lisp using Dr. Racket and SICP
then I tried to use emacs and got super overwhelmed.
>>105623444>Everyone I don't like is a redditor.
>>105623018>At least half of population has office jobs but I bet no one knows how to use the computer because midwit said so.The midwit wouldn't really be wrong doebeit. It's not so much due to IQ differences as it is due to the fact that most normies are either afraid of computers or extremely bored by them.
>>105620922this seems like a really retarded way to word the problem. is the whole book written like this?
>>105623450>I tried to use emacs and got super overwhelmed.It seems like an editor that has an operating system built in as a feature. I know basic things like starting the repl. I often have to look up commands on how to do certain things. Its not at all intuitive and I'm used to Vim. In hindsight, I wish I would've started with Emacs so that it'd be second nature to me by now.
I use Emacs in GUI mode instead of in the terminal. I'm nowhere near the point of needing to customize Emacs with things like Org mode. Although I imagine if I can use Emacs to replace my IDE and I can get good with LaTeX (or however the fuck you write it) so as to not always need office programs, then I can see Emacs becoming my daily driver.
>>105623639>>105623450The secret to learning emacs is to just take it one step at a time and don't bother learning things until you need them.
Start out just using it like notepad, then learn the common shortcut keys, then learn the movement keys, then after that whenever you have do do something just google "emacs <problem I have>". 99% of the time it's already a built in function.
Oh protip for new users: don't disable the menu bar, and check that shit out there's all sorts of interesting things in there.
>>105623622What's wrong with it?
bruh
md5: 7baf0ee8da0cf47d251365fae8e6916f
๐
>>105621573Bruh.
ghc did build the last few times, so maybe this was just random?
>>105623968guix weather ghc
You should use substitutes to avoid building. Also try this substitute server
https://git.rekahsoft.ca/rekahsoft/guix-north-america/
>>105623746Thanks for the advice.
I've seen people with all kinds of nice things in Emacs like calendars, to-do lists, etc. etc.
I try to take notes with Obsidian but it just doesn't do it for me. I suspect that Emacs plus a package might be way better than Obsidian.
>>105623622I did it!!!
and with only 2 hours of sleep.
>>105624389The point of the exercise was to get used to passing functions as first class citizens. Implementing the algorithm by itself is trivial. At that point in sicp, you don't even have let! in your toolkit yet. It's in implementing it in an idiomatic way that you can really learn something from sicp. There's probably no point in working through it otherwise.
>>105624442>Complete assignment as written>NOOO THAT DOESN'T COUNT
>>105624694He's trying to help you, and you're being like this?
>>105624694>Complete assignment as writtenIf we want to be pedantic, the function signature was very specific: f, a, b, and n. SICP is one of the most exactingly intentional texts ever written. Everything has a purpose.
>>105623639>customize Emacs with things like Org mode- You don't have to do anything.
- It's already built in.
- Just open a file with a .org extension and, you're in org-mode.
- Hit M-RET to create a heading.
- Hit M-Right to indent a heading.
- Hit M-Left to dedent a heading.
- Hit M-Up to move a heading up.
- Hit M-Down to move a heading down.
It might help to think of it as a format that's similar to Markdown. People use it to write documents with headings.
>>105623639>I often have to look up commandshttps://github.com/justbur/emacs-which-key
If you have Emacs 30+, it's already built-in -- you just have to enable it. If you have an earlier version, you have to install it first before enabling. It will aid you tremendously in the looking up process.
>>105624106lmao, should have made sure earlier, but only the nonguix channel was authorized. Not something I would expect, but maybe I was too quick with replacing guix in the channels file with a simple %default-channels?
This time for sure...
>>105625443Yup. Easy. Doesn't look like Wayland works (X11 does), but this is very nice. Now to bork the system by trying to get proprietary nvidia drivers working.
lgs
md5: fef9b7b35346bf4ea89756cda1be952f
๐
The Lispy Gopher Show starts in less than 5 minutes.
https://anonradio.net/
>>105626030https://anonradio.net:8443/anonradio
>>105625538Holy shit, I think I did it. Steam is running and I should have proprietary drivers now. Plasma's Settings and Info Center windows are blank though, but I wasn't really expecting anything to work. Very cool! Also, when I first logged in the background image wasn't drawn before I dragged some windows over it.
Trying and failing to use guile FFI to link to gnutls.
I'm to stupid for C shit.
>>105626226I think the correct way is to first write a C wrapper that converts stuff to/from scheme and integrate with it right? Instead of directly calling dynamic linked stuff with (load-foreign-library )
Do you think this thing is going anywhere? It sounds comfy
https://github.com/jank-lang/jank
It looks more meme than Janet though, but at least that has a real project behind it.
>>105596270Automate downloading and sorting coomshit through aria2 and yt-dlp. Also is kinda comfy to be honest, can use ghostcript and magick's bindings (or just shell out) to replace like half of the shitty Google Playstore's apps. Also all text editors for Android are basic as shit, you can run something better through ths.
>>105597176This board becomes more braindead every week. I don't even care about Lisp too much, everything else just sucks ass,
>>105627084There's a peculiar kind of brainrot among modern "technological" people who think only in terms of what's being done right now, and quickly, and not in terms of merit of the ideas. They'll complain Lisp is "outdated" but somehow see no contradiction complaining about OOP ideas in C++ and Java when CLOS has been working well for a long time, they think Python is modern despite it moving closer and closer to any Lisp idea it can with only half the effectiveness, but all that matters is whatever can immediately grab their brainrotted attention span, not what makes an idea good or bad on a deeper level.
>>105627186calm down. I was just bumping the thread after listening to old lisp programmers tell stories about lisp in the 80s and 90s on anonradio. i didn't mean boomer in a mean way.
Is the whole point of vlists in guile for when you need fast random access or are there other reasons to use them?
Huh, why do I have to authorize the default substitution channels for Guix on every reboot?
file
md5: 485745a340205c6772274ddab3f8fd9a
๐
>>105627625Well, you can implement other datastructures via vlists (see Bagwell's original paper). Not sure if guile's implementation provides them OOTB.
>>105585440Use parenscript for the frontend so that you can be all CL all the time.
>>105628520you need to put them in your system configuration file, it's in the manual
>>105629164My other Guix systems don't appear to have any issues like this. Also, the locales "hint" is annoying.
Thanks to anons guiding me to this mostly working plasma with proprietary nvidia drivers:
(use-modules (gnu)
(gnu system nss)
(srfi srfi-1)
(nongnu packages linux)
(nongnu system linux-initrd)
(nongnu services nvidia)
(nongnu packages nvidia)
(nongnu packages game-development)
(gnu packages games)
(gnu packages emacs)
(gnu packages admin)
(gnu packages rust-apps))
(use-service-modules desktop sddm networking ssh xorg)
(use-package-modules gnome ssh admin fonts)
(use-package-modules qt xorg tmux linux)
(operating-system
(kernel linux)
(kernel-arguments (cons "modprobe.blacklist=nouveau"
%default-kernel-arguments))
(initrd microcode-initrd)
(firmware (list linux-firmware))
(packages (map replace-mesa (cons* emacs
libsteam
steam-devices-udev-rules
(specification->package "steam-nvidia")
%base-packages)))
(services (cons*
(service plasma-desktop-service-type)
(service sddm-service-type
(sddm-configuration
(theme "breeze")
(xorg-configuration (xorg-configuration
(keyboard-layout keyboard-layout)
(modules (cons nvda %default-xorg-modules))
(drivers '("nvidia"))))))
(service nvidia-service-type) (service openssh-service-type)
(modify-services %desktop-services
(delete gdm-service-type)
(guix-service-type config => (guix-configuration
...))))
(name-service-switch %mdns-host-lookup-nss))
As mentioned, not perfect (which means you can't change settings kek):
>>105626161Would be nice to have Wayland too.
fuck me some of Paul Graham's macros in On Lisp are very hard to come up with
the final result looks fantastic, but the definitions of the macros themselves (especially when they're defined in terms of other macros) are very hard to think of
(defun eww-edit-url (&optional url)
"Edit the current URL and go to it with eww."
(interactive
(let* ((current-url (or (if eww-data
(plist-get eww-data :url))
(thing-at-point 'url))))
(list (read-string "URL: " current-url nil current-url))))
(eww url current-prefix-arg))
[/url]
This is for when you're viewing a page in eww, and want to edit the URL to visit another page.
(defun eww-edit-url (&optional url)
"Edit the current URL and go to it with eww."
(interactive
(let* ((current-url (or (if eww-data
(plist-get eww-data :url))
(thing-at-point 'url)))) ;'
(list (read-string "URL: " current-url nil current-url))))
(eww url current-prefix-arg))
This is for when you're viewing a page in eww, and want to edit the URL to visit another nearby page.
>>105614955>https://github.com/ve-nt/q4Interesting
shoving distro janny nerds into lockers until they start putting babashka in the official repos
>>105585440Is there any tutorial for clojurescript or any other lisp to javascript that doesnt require you to learn javascript first?
Heh, guess you can't simply add os-prober into your Guix system.scm, reconfigure, run os-prober, and reconfigure again, then reboot, and simply expect it to work, huh.
>>105635148Probably you need to set up this menu-entry
https://guix.gnu.org/manual/devel/en/html_node/Bootloader-Configuration.html
Do you know of any good guides or codebases for guile FFI? I need to use a dynamic linked library and I have no idea of how to start. Manual seems directed to people that are good with C and this shit.
>>105635258Thanks, anon. Fairly simple. No os-prober necessary.
(bootloader-configuration
...
(menu-entries
(list
(menu-entry
(label "Windowns")
(device (uuid "stuff" 'fat16))
(chain-loader "/EFI/Microsoft/Boot/bootmgfw.efi"))))))
>>105635733It never ceases to amaze me how much more readable and aesthetic properly indented sexp-based configs are compared to just about any other config convention.
And we are stuck with shit like json and yaml.
le snek dialect
https://clojure.org/news/2025/06/16/deref
>basilisp 0.4.0 - A Clojure-compatible(-ish) Lisp dialect targeting Python 3.9+ (https://github.com/basilisp-lang/basilisp)
is clojure usable with 0 javasir knowledge? can i make practical shit and not get bogged down by random jvm stack trace explosions that i can't interpret because some underlying poo-poo is not of class java.durgasoft.pee-pee.zaza? should i just do common lisp for my amateur gamedev project instead?
>>105638153You can dive into the language with zero Java knowledge and just learn what you need to know as you go. The developer experience is extremely un-Java-like.
Subjectively though I'm not sure if it's a good choice for game dev. CL is much better for this.
>>105620922Going through this matters even in Jabba corporations. It's obvious when people try to use higher order functions whether or not they've been exposed to SICP beforehand.
>>105635071CLOG has the same problem. It's the curse of being on top of a platform, you really are forced to learn the details of the platform too. Not so bad if you are already familiar, but if you don't know either, learning two things at once is going to be harder than one.
Even knowing JS better than it deserves, I get more joy pushing HTMX as far as it can go these days.
>>105639003>HTMXI'm really happy with htmx. I don't mind writing JS, but with htmx, I barely have to.
>>105638967>jabba corporationsthe what
>>105638480>The developer experience is extremely un-Java-like.>same weird deep directory trees in projects>weird project management (either leinigger or the shitty deps.edn)>literally java interop everywhere>need to write code that gets turned into jar slop.sir?
jabba
md5: 13fb6999781ee4788257d8e6fdc20568
๐
>>105641410for what purpose?
Can any IRC chads help me with why this doesn't work?
(setq erc-autojoin-channels-alist '(("irc.libera.chat" "#lisp" "#emacs")))
(setq erc-kill-buffer-on-part t)
(setq erc-auto-query 'bury)
(setq erc-interpret-mirc-color t)
(setq erc-hide-list '("JOIN" "PART" "QUIT"))
(erc :server "irc.libera.chat" :nick "PEEPEE" :password "PASSWORD")
When I open my emacs it does spawn the "Libera Chat" buffer in ERC mode, but it does not autojoin the channels. I need to /join #emacs.
>>105641410I have that enabled on all text files.
>>105638967Honestly, at this point, it seems immaterial to me whether or not anything I'm learning in SICP will be directly useful in any future career. I'm just genuinely intrigued at this point -- or obsessed, even -- with the rainbow itself, not just the pot of gold that may or may not be at the other end of it. There's something about the functional paradigm itself that's really gripped me.
I've started having all of my custom elisp shit outside of my init.el, with that just loading other more contained scripts. It makes everything way easier to read. I also made my custom configs a git repo, so I can just push/pull any changes. init.el stays very spartan and clean, everything else is organized
>>105640110>>same weird deep directory trees in projectsHave you ever actually used Java (or Kotlin)? It's not the same.
>src/main/java/com/hyderabad/sir/morning/good/AbstractSingletonProxyFactoryBean.java
>>105642565Usually people are drawn to it because it tends to describe what to do, rather than how to do it, so it feels more like a bona fide descriptive language of sorts.
>>105641649I think you need.
(erc-autojoin-mode 1)
>>105643861that does not exist
>>105644499You have to add autojoin to your list of erc-modules first. Here's what my list looks like.
(setopt erc-modules
'(autojoin
button
completion
fill
imenu
irccontrols
list
match
menu
move-to-prompt
netsplit
networks
nicks ; +nicks (for color-coded names)
nickbar
notifications ; +notifications
readonly
ring
stamp
track)))
Did you even try to search for it before you posted?
I hate treesitter but it works, just is a pain in the ass to set up
>>105641534>for what purpose?for fun
>>105646168What was hard about it? I literally just changed c-mode to c-ts-mode in my config.
>>105644499(info "(erc) Modules")
https://www.gnu.org/software/emacs/manual/html_node/erc/Modules.html
This might have been helpful to have back when I was learning Calculus.
https://www.youtube.com/watch?v=_zWJP_MK1Dk
>>105596608> C has stuck around so long becauseof unix it has no technical merit over its predecessors or successors C. The idea that languages are chosen and used due to their technical merit is a myth its always politics and nothing else if you've got a room full of c/java/js/python coders you will make your project in that language even if its the most retarded idea ever thats just how this gay planet works.
>>105586463Forth is better than lisp.
> want to do x> extend the language> same shit as lisp but it actually respects the "hardware" nature of computing
>>105586499> ayyy we want programming to be like biology> ayy we want it to be simple as shit> realize real life doesn't work like that> le worse is better> le everybody else is retarded look at my imaginary computer
>>105650671Talk is cheap, show me the code anon. I have nothing against Lisp, it's a neat language. But you guys need to level up your game. Show me actual code that solves a complicated problem, and teach me how lisp made that easier.
>>105650804Emacs written in Forth when?
Too bad there isn't much free software written in it.
>>105651172Linux/Windows/Mac in Lisp when?
Too bad there isn't much free software written in it. You realize how stupid your message is?
>>105651413GNU Guix System + Emacs + Nyxt just werks 4 me. Now post some good useful free software written in Forth.
>>105651494> GNU Guix + Emacs + Nyxt> good useful free softwareEmacs doesn't count buddy. More than half of it was written in C, and is slowly being replaced by elisp in chunks. And it keeps getting slower every release because of it. I can't indent a 1000 line program without lagging the entire thing.
>>105651494> Now post some good useful free software written in ForthPostScript used by billions of people.
>>105651541>More than half of it was written in Cgr8 b8 faakhead
emacs
md5: e0bdfdcfe934e4291d209f85f6ffeec0
๐
>language masturbation and answering schizos instead of programming
zzzz
>>105651788> lisp general
doubt
md5: 766604a25768c860b3798823307379d2
๐
>>105651557>adobeware>free software