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

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

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


[Advertise on 4chan]


>Lisp is a family of programming languages with a long history and a distinctive parenthesized prefix notation. There are many dialects of Lisp, including Common Lisp, Scheme, Clojure and Elisp.

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

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

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

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

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

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

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

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

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

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

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

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

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

(set! prev-bread (quote >>109598616))
>>
>>109724262
>What's the custom lisp implemented in?
Original compiler was fully written in CL and transpiled to C. Now it's mostly self-hosted with a smallish C runtime and compiles using LLVM.
>>
File: 0xffff_ed_0001.jpg (121 KB, 1440x810)
121 KB JPG
Beautiful.
https://www.youtube.com/watch?v=cIe0nQnjAgQ
https://baku89.com/making-of/ffff
>>
An anon in the last thread (>>109598616) mentioned Cakelisp. It is an interesting project, but it is difficult to find in-depth information about it, and the dev discourages others from using it.

Has anyone tried Cakelisp?
>>
>>109726704
As that anon I tried using it a few months ago but everything needed a password, idk the current state of the project or of it's hosted elsewhere
>>
>>109726720
>I tried using it a few months ago but everything needed a password
I think that's just a protection measure to weed out the scrapers. The login prompt gives you a hint if your browser supports it, and the 401 message is helpful too.
>>
>>109726970
Oh just tried it again, you're right. I just saw the prompt and closed it without trying anything
>>
>>109726642
https://ianyepan.github.io/posts/emacs-in-pop-culture/
>>
In Emacs 31, they swapped the order of site-start.el and early-init.el.
I used to (setq site-run-file nil) in my early init to disable the site start file from lisp, and have the config applied everywhere without having to pass --no-site-file.
As far as I can tell, now the only way to skip the site file is to pass --no-site-file.
Is it really the only option? It kinda pisses me off that I cannot disable it for good in a config file anymore. I'd have to do hacks like aliases that wouldn't necessarily work with desktop files.
Is there really no other way other than --no-site-file?
>>
Clojure Clojure Clojure
REAL functional Lisp with infinite access to a stable runtime (JVM), compilation to JavaScript (Clojurescript), replacement of shell scripts and other utilities (Babashka), access to Python (libpython-clj), and the best damn defaults in any language ever
>>
>>109730066
why do you have a site startup file at all?
>>
>>109730176
A sysadmin could set it, a distro package manager could set it. I know fedora fucked it up once or twice, so sometimes I just wanna disable it without having to mess around with system directories.
>>
File: space2hu.jpg (1.85 MB, 2389x3406)
1.85 MB JPG
>>109600751
>space game
Impressive, very nice.
https://store.steampowered.com/app/3687560/sfsim/
>>
Dead bread
Can someone post progress
>>
File: 1de0959.png (244 KB, 1057x2043)
244 KB PNG
>>
File: screenshot.png (691 KB, 2062x1424)
691 KB PNG
>>109726642
It's the Glisp guy, right.
https://github.com/baku89/glisp
>>
File: glisp.png (40 KB, 1050x814)
40 KB PNG
>>109732847
>Glisp
interesting
https://glisp.app/
>>
>>109730227
Non ironically there is a large and important java project: https://www.orekit.org/
>>
>>109733731
glory to nihon
>>
>>109726557
Emacs 31.1 makes me realize you can interact with Emacs on a terminal with a mouse using M-x xterm-mouse-mode.
Crazy that this feature has existed since Emacs 19 but has only been enabled by default today.
>>
>>109733731
his frontend is beautiful, I wonder how he did it
>>
>>109726557
After using Emacs for some years wothout understanding muh Emacs and elisp, after copying and praying many code and configs on the web, I finally remade and vibecoded my config and AI explained me each line with detail, instead of begging a fatdude lisp wizard for information.

Now I get and it works, AI won.
>>
File: tadance.gif (3.78 MB, 300x424)
3.78 MB GIF
>>109734555
I just ask Autolith to fix my emac config. It just werks.
https://github.com/lambda-symbolics/autolith
>>
>>109735206
I am a boomer that copy paste chatgpt answers, but this looks nice!
>>
>>109734373
>xterm-mouse-mode
nice
>>
File: SLS.jpg (642 KB, 2400x2986)
642 KB JPG
>>109730227
>>109734140
https://github.com/nasa/pvslib
https://github.com/nasa/stol-mode
https://github.com/nasa/Common-Metadata-Repository
>>
File: file.png (158 KB, 1470x502)
158 KB PNG
>>109730066
nope
it loads some shit before that, but it's restricted to the default load-path which contains some directories in the location of your emacs installation
>>
>>109740128
I figured there might be a hack (still have to test it). It's not exactly the same, but at least it would allow to have a single place where I could disable site start bullshit:

- add to your environment variables something like export EMACSLOADPATH="$HOME/ .config/emacs/ pre-start:"
- create file ~/.config/emacs/pre-start/subdirs.el
- add content to that file (setq site-run-file nil)

I really fucking hate the niggers who decided that swapping early init and site start would be a good idea.
>>
File: copr_logo.png (10 KB, 210x124)
10 KB PNG
Lel, I used Fedora Copr to build Nonguix derivations on their server, because apparently substitutes.nonguix.org doesn't provide substitute for linux derivation.
Because compiling on my own machine is a humiliation ritual.
>>
>>109739663
>pvslib
incredible, so much work and I have never heard of it.
>>
>>109726557
I like Scheme and I prefer it to Common Lisp but is there anything you can build with it?
>>
>>109741919
other schemes.
chez schheem is nice but it has no ecosystem, you don't have anything but the language.

Racket has the most, it has a lot of stuff. You can do stuff in racket.

Guile too, but less.
>>
>>109741919
as far as I know scheme is only designed for scripting
>>
>>109741353
>- add to your environment variables something like export EMACSLOADPATH="$HOME/ .config/emacs/ pre-start:"
at this point you might as well define an alias like
alias emacs='emacs --no-site-file '
>>
>>109742775
also if you don't like aliases because of the way they handle parameters and such, you can also make it a function like
function emacs() { command emacs --no-site-file "$@"; }

i personally like functions better than aliases, since you can add more stuff if needed, and they behave pretty much like executables
>>
>>109742801
if you REALLY wanted to, you could also make 'emacs' a shell script
#!/bin/sh

command -p emacs --no-site-file "$@"

and put it in a directory that you add to the very start of PATH (i like to have one to override binaries if needed)
but that's honestly overkill, unless you need 'emacs' to be an actual file for some reason
sorry for 3 separate posts, it just occurred to me to elaborate more each time i've already posted
>>
>>109730066
no reason to disable site files
fedora and debian provide the site files so your emacs can function in their respective distro
>>
>>109742862
Yes aliases or scripts would solve some problems, but not all. For instance, the debian desktop file for emacs hardcodes /use/bin/emacs. I would prefer not to change the desktop file or override it somehow. Hence my hack.
>>
>>109742902
I had site files breaking on fedora, throwing lots of warnings. Nothing breaks by disabling the site file, so I just want it to be a permanent option I can set in a config file.
>>
>>109743479
it doesn't break though
it only gives me warning because emacs 31 is forcing lexical scope now
>>
>>109743802
I think even that is reason enough to want to have the option to be able to disable site stuff globally.
>>
>>109743825
reason enough to ditch emacs 31 and stick with version 30
just imagine how many melpa packages that break thanks to this new emacs update
>>
File: 1315403713717118.jpg (80 KB, 921x303)
80 KB JPG
>>109741774
Still compiling.
Copr cloud is pretty slow.
>>
>>109743879
kids born when deprecation of dynamic scope happened are 4 years away from voting age
if you are stupid enough to still not set lexical-binding explicitly after that then you are probably the kind of retard who still uses cl instead of cl-lib and your code is worthless
orphaned packages that nobody bothered to update in the last 14 years will also not be missed
>>
>>109743879
Except I can just uninstall broken packages. I can't uninstall site start.
>>
>>109743879
>just imagine how many melpa packages that break thanks to this new emacs update
approximately 0 of them lol
>>
>>109743911
very naisu
>>
>>109743961
> orphaned packages that nobody bothered to update in the last 14 years will also not be missed
“Packages” that have been perfected no longer need to be dicked with by next-gen retards.
Did I say “need?” I meant they should be locked down so nobody can fuck with working code.
A lot of lisp written in 1978 still runs fine today.
Stupid fuckers are still fucking around with RCS and breaking it, and adding CoCs and whatnot.
Remember when mcarthy invented the if/then/else construct?
>>
>>109746808
emacs lisp does not have a standard so you are comparing apples to oranges
>>
anyone tried their hand at writing their own lisp?
>>
>>109748454
my schizo mathematician friend wrote one
https://github.com/hydrastro/lizard
>>
>>109748502
yeah I am too low IQ to understand this
>>
>>109748502
I really wish I went full dev+math autism in my early 20s instead of wasting them on vidya and anime
>>
>>109748815
you can just read math and watch anime? I think that is what most mathematicians do anyway when they're in school
>>
>>109748502
>Honest scope
???
Why "honest" scope?
The bold parts of text is suspicious too.
Sorry to ask this but this is not LLM-generated right?
>>
>>109750267
of course it is, why do you think the repo is polluted with a gorillion .md files?
all the writing is clearly slopped up as well
>>
let's settle the debate once and for all
lisp-1 or lisp-2?
>>
>>109750766
python
>>
>>109750966
so lisp-1
>>
File: pyjeet.png (250 KB, 718x588)
250 KB PNG
>>109750966
perfect for gorgeous looks
good morning sir
>>
>>109748502
Give this shit a rest, it sucked the last time you posted “your friend’s” work and it’s still incoherent now.
>>
>>109751016
I'm trying to convince <job> to use python as a dejeeted alternative to spring boot lmao.
>>
>>109751092
It's really funny that you think I wrote this, considering my other friends and I make fun of him for writing C still when Rust exists.
>incoherent
maybe you're just stupid. I know my friend is schizo, but he's not dumb. also, like the README says, its a research lang, so it does not really matter if you understand it or not.
pic related is a language that I wrote a while back. it's a Lisp without variadic arguments, so parens are not necessary for invocations. also, side effects are persisted for later replay, which is what this test demonstrates.
>>
>>109750766
I think lisp-1 is more elegant, because passing functions as values is more straightforward, but being lisp-2 isn't a deal-breaker. I can work with either. In practice, I ended up using lisp-2s like Elisp and CL more than lisp-1s.
>>
File: haskell.png (14 KB, 1000x706)
14 KB PNG
>>109751309
>it's a Lisp without variadic arguments, so parens are not necessary for invocations.
If you add one more assumption, namely that all functions are curried by default, then it begins to look a bit like Haskell.
>>
>>109751797
its more like functions can only take 1 argument, and there's syntax sugar for specifying nested curried functions. true multi-arg functions in haskell are supposed to take a tuple
>>
>>109751797
why don't you use coalton it is clearly superior lisp
>>
File: ffieidd-dod.jpg (8 KB, 480x270)
8 KB JPG
>>109726557
>Xahlee
It's sad to go through his articles and realise that his writing gets way, way worse when he starts using Twitter. The guy goes from sort of articulate earlier on to this seething faggot who's so full of frothing you can tell that, on some level, he's in practice stupider than he used to be.
>>
File: xah-chink.gif (1.29 MB, 368x250)
1.29 MB GIF
>>109752031
faaking faakhead zoomer skum
>>
File: curry.png (163 KB, 2054x1289)
163 KB PNG
>>109751879
That's a more precise way of describing it, sure. But if you add something like the curry function from the Ramda library, and then pass all functions through that, then you're practically there.
>>
- I wrote a little recreational elisp for resizing windows from within eshell.
- I'm not totally happy with the result, but I figured I'd post what I had and see if anyone had any ideas on how to improve this.

(defun eshell/resize (&rest args)
"Resize windows from eshell using `window-resize'."
(eshell-eval-using-options
"resize" args
`((?z "horizontal" nil resize-horizontal "resize a window's width instead of the height")
(?p "pixel" nil pixelwise "resize by pixel instead of charcter")
(?w "window" t window "resize a specific window instead of the current window")
(?i "ignore" nil ignore "ignore window resizing constraint variables")
(?n "negative" nil negative "use a negative delta (to shrink the window)")
(?h "help" nil nil "show help message")
:usage "[OPTION]... <DELTA>"
:post-usage "Resize window.\n\n")
(unless args
(setq args (list "0")))
(let* ((x (if negative -1 1))
(delta (* x (string-to-number (car args)))))
(message "window %s" window)
(window-resize window delta resize-horizontal ignore pixelwise))))


Usage from within eshell:

# Resize current window's height by +10 lines.
resize 10

# Resize current window's height by -10 lines.
# (-n stands for "negative")
resize -n 10

# Resize current window's width by 10 columns.
# (I put horizontal on -z, because I wanted to leave -h for help.)
resize -z 10

# Resize current window's width by -10 columns.
resize -z -n 10


- The -p options works as you would expect.
- The -w option does not work. I was hoping I could pass it a window struct, but it seems to get stringified.
- I really wish I didn't need -n, but eshell-eval-using-options doesn't let me pass negative numbers. It tries to interpret anything with a leading "-" as an option.
>>
Is the nonguix IRC the only place I'd be able to get help with things like Steam? I'm trying to inject a 32bit library (SLSsteam) into it but I just can't make it work and I'm not even sure what I'd need to provide in order to get help.
>>
File: janet-big.png (20 KB, 512x524)
20 KB PNG
Janet is my favorite sexpr language. Sorry clojurebros.
>>
File: 6f19f60.jpg (190 KB, 1920x1080)
190 KB JPG
>>109754121
#!/usr/bin/env janet

(defn print-greeting
[greetee]
(print "Hello, " greetee "!"))

(defn main
[& args]
(pp args) # pretty-prints the args tuple
(print (length args))
(print-greeting (get args 1)))
>>
>>109753739
>- The -w option does not work. I was hoping I could pass it a window struct, but it seems to get stringified.
Why not pass the buffer name instead? That seems more intuitive to me. The last line should then be
(window-resize (get-buffer-window window)
delta resize-horizontal ignore pixelwise)


resize -w '*scratch*' 10

If window is nil, then get-buffer-window returns the current window. It doesn't throw an error if there's no window with that buffer name, though.
>>
>>109756190
>Why not pass the buffer name instead?
That works decently enough. Thanks for the suggestion.
>>
File: fluxion.png (3.14 MB, 1538x2048)
3.14 MB PNG
https://github.com/parenworks/Fluxion
https://glenneth.org/content/posts/2026-04-25-fluxion-reactive-web-ui-common-lisp.html

>** Fluxion's Architecture

At a high level, the design looks like this:

- *CLOS components.* UI components will be ordinary CLOS classes with =render= and =handle-action= methods.
- *Server-side state.* All application logic and state live on the server.
- *HTML over the wire.* The server sends rendered HTML fragments, not JSON.
- *SSE patches.* Server-Sent Events carry patch instructions (morph, append, remove) as JSON payloads.
- *DOM morphing.* The client diffs new HTML against the live DOM and only updates what changed, preserving input focus, cursor position, and scroll state.
- *Parenscript client.* The browser runtime will be written in Parenscript and compiled to a single small JS file. Application developers write zero JavaScript.

The server owns the state. The browser follows instructions.

Demo:
;; Load the system
(ql:quickload :fluxion/examples)

;; Counter with live server-pushed clock
(fluxion.examples.counter:start-counter :port 5222)

;; Todo list (sessions, data-* attributes)
(fluxion.examples.todo:start-todo :port 5222)

;; Temperature converter (bidirectional propagators)
(fluxion.examples.converter:start-converter :port 5222)

;; Colour picker (bidirectional propagators, live sliders)
(fluxion.examples.colour-picker:start-colour-picker :port 5222)
>>
File: 1602783877923.gif (180 KB, 200x200)
180 KB GIF
Necessary additions and settings for newfaggots, GO!
>>
>>109752031
to be fair in his early articles he also seethes, but I wouldn't say it's comparable to twatter niggers
>>
>>109758261
(which-key-mode)
>>
>>109754682
This is coming soon, too
codeberg.org/zzkt/deft
>>
>>109754109
just modify the package recipe
provide the libraries as the inputs
if it's binary then use patchelf
>>
>>109758261
newcomer-presets theme if you are on emacs 31
>>
>>109761193
Thanks for replying but at least to me it's not that easy. The entire steam package looks really complicated, at least to me (not to mention the whole nvidia bullshit, I tried to make a package by modifying steam-nvidia-new-feature but I couldnt make it work), mainly because of the whole sandboxing and FHS emulation. I did write a longer question but I don't think anyone would've looked at it.
One of the issues I found was that the Steam package wipes all envvars except the ones listed in the package, but this doesn't seem to be the only thing going on. For the library loading part:
In the cs.rin forum the guy says that you just have to point to the libraries like:
LD_AUDIT="/full/path/to/library-inject.so:/full/path/to/SLSsteam.so" steam

With that I get the wrong ELF class errors but the library itself doesn't activate.
If you try to "inject" (is inject the correct term) through steam debug
$ DEBUG=1 steam
[env]$ echo "$LD_AUDIT"
# (returns empty)
# If I export the libraries and run steam:
[env]$ export LD_AUDIT="$HOME/.local/share/SLSsteam/library-inject.so:$HOME/.local/share/SLSsteam/SLSsteam.so"
[env]$ fhs-internal
# It'll also return the wrong elf class stuff but still won't work.

You can inspect /run/current-system/profile/bin/steam to see how steam actually gets started.

Either way, my only hint was the var getting wiped, but this doesn't seem to be the culprit.
It's a really shitty issue to have because not only it happens in a nonguix package but I'm also trying to inject something that goes against the ToS, helping me out wouldn't look good on anyone.
I just want the family share unlock thing x-x It worked fine on Fedora.
>>
File: 1786984098179362.gif (1.49 MB, 380x398)
1.49 MB GIF
>>109758261
remap capslock to ctrl
>>
>>109761685
why not go back to fedora
>>
>>109761685
envvars usually got to do with binary wrapper, wrap-program from (guix build utils)
as for the missing SO libraries, use ldd against steam binary and its libraries
>>
how do you test CL? I usually end up writing some autistic "check" "check-eqv" etc macros and bashing asd until it works
>>
>>109764622
use a library
fiveam
>>
File: 1762566733260998.png (41 KB, 842x256)
41 KB PNG
>>109762839
Well like I said, I don't think thats the actual issue, I did fix all the wrong elf class errors by getting the 32 bit version of the libraries but it's still not working.
I just have nothing else to go on, I don't see any messages regarding the injection failing or anything like that. Steam just opens like normal.
>>109762829
I really like declarative systems, I tried to switch to Guix about four or five times now and it feels pretty good to go back to the exact point you left on.
>>
>>109765816
Oh wait it's working now... I'm dumb...
>>
>>109764622
Test?
>>
Can a Scheme fan unironically tell us what's the use of all these R7Rs small large R6Rs R5Rs standards where there is little compatibility between scheme implementations?
>>
>>109769152
a very small common ground. If you implement something that uses only one of those without language specific quirks then it should be compatible.
>>
>>109769678
>that uses only one of those without language specific quirks
Is there common ground between R#Rs specs?
You can get LLMs to translate between variants, this shouldn't be a big deal.
>>
>>109769943
they are really short, you should read them and extract your own conclusions.
>>
>>109760405
>codeberg.org/zzkt/deft
interesting
>>
File: doom,.png (284 KB, 1012x635)
284 KB PNG
>>109758261
doom emac
>>
>>109764622
>how do you test CL? I usually end up writing some autistic "check" "check-eqv" etc macros and bashing asd until it works
we do interactive development. The program is corrected while it's being executed and problems are found. It evolves organically.

This is what enables far faster development than usual.
>>
>>109750766
>let's settle the debate once and for all
>lisp-1 or lisp-2?
I never had a problem with lisp-2.

In fact i like the "#'" syntax whenever i need to refer to a function, it helps me visually see where i'm passing functions around.
>>
>>109730118
>REAL functional Lisp
meaningless drivel
buy an ad

>infinite access to a stable runtime (JVM), compilation to JavaScript (Clojurescript), replacement of shell scripts and other utilities (Babashka), access to Python (libpython-clj),

one can do all that with CL too, and the only really useful feature there is calling JVM libs, which you can do in CL in various ways.
>>
>>109776789
I'm learning CL now, and Clojure is so much comfier.
>>
File: 1788934655198221.png (7 KB, 278x65)
7 KB PNG
>>109776905
Well CL is ancient at this point
what's your usecase and why do you want to learn CL?
Why not racket (or just keep using Clojure)?
>>
Yep, I am thinking about
>spreadsheet calculator
>instead of formulas it lets you write lisp which allows you be as autistic as you want without the retarded formula syntax
>fully extensible, plugins and what not also written in lisp
Not sure where to start. Not a big fan of vibecoding
Really vague idea, will probably start thinking about what exactly I want in the following days
>>
>>109778164
FOMO, I guess. I want the "real" lisp experience.
>>
>>109778219
can't emacs already do this
>>
>>109778224
wouldn't that be one of the earlier pre-CL lisps?
that said most of them are probably now unobtainium

>>109778227
I want it to be a standalone program. Been itching for a long term project involving lisp.
>>
File: 1764390500077802.png (20 KB, 461x443)
20 KB PNG
>>109778249
forgot pic
>>
>>109778219
make it as a website and use Squint-cljs for the formulas
>>
File: boomer.jpg (96 KB, 326x391)
96 KB JPG
>>109778164
>CL is ancient at this point
And that's a good thing
>>
File: 1750792758318931.jpg (108 KB, 1034x303)
108 KB JPG
>>109743911
And build failed.
Because the timeout is 2 days max.
I wonder why Copr's CPU is so slow.
>>
>>109776753
that has nothing to do with automated tests.
As soon as you get out simple programs you need to automate testing.
>>
>>109726557
i wanna learn lisp to try and make my own interpreter how do i start with this shit everyone is giving me a different answer
>>
>>109778227
not well enough to be taken seriously
>>
>>109780897
Everyone is right, and everyone is wrong. Just pick one and get going. I like Clojure, and I shill it all the time, but for your purposes, Racket would probably be the way to go. You don't need to read SICP or HtDP, maybe read Realm of Racket to start.
>>
>>109781159
thoughts on common lisp? i picked it from the links above...is there a significant difference between different lisp languages (dialects?) i thought the appeal was that its so simple and similar you can just write your own
>>
>>109781206
CL is really complicated. The standard has more than a thousand pages. If you want simplicity then go for Scheme/racket.
>>
>>109781239
Cool, thanks anon
>>
>>109778219
(info "(org) The Spreadsheet")
>>
how come java is so disliked yet clojure is so shilled?
>>
>>109781753
The JVM is a marvel of engineering. Java is hot garbage.
>>
>>109781206
>is there a significant difference between different lisp languages
Yes, they can be quite different from on another. However, they also have a lot in common. Once you learn one lisp, it becomes a lot easier to pick up other lisps. However, there are 3 big lineages to be aware of, and learning another lisp in an unfamiliar lineage is a bit more effort than learning within the same lineage.

>Major Lisp Lineages
- MacLisp derivatives (like Common Lisp and Emacs Lisp, LFE (Lisp Flavoured Erlang))
- Scheme derivatives (all the various Scheme implementations, Racket)
- Clojure derivatives (so many....)

Of course, there are lisps that don't fit into any of these categories (like Coalton).
>>
>>109781753
Try making a distinction between the JVM (runtime) and Java (the language).
>>
I don't really want to switch to emacs
good nvim plugins for racket?
>>
>>109781839
see the Racket section of
https://github.com/Olical/conjure
this is my current plugin list, tho I use Clojure, so you may want to adjust it. Parinfer is great, definitely keep it.
    {
'tpope/vim-dispatch'
},
{
'radenling/vim-dispatch-neovim'
},
{
'Olical/conjure'
},
{
'clojure-vim/vim-jack-in'
},
{
'eraserhd/parinfer-rust',
build = 'cargo build --release'
},
>>
>>109781839
https://zhongpu.info/obsidian-public-notes/Racket/Racket-Setup-in-Neovim
>>
>>109781877
oh shit, I was using a parinfer lua plugin
is the rust version the actual parinfer plugin?
>>
https://github.com/ckluis/cauldron
niggas are making entire frameworks and archiving them
>>
>>109781894
Parinfer is just a spec, both plugins implement it. parinfer-rust should be faster obviously, but if you don't have any issues, I don't see a reason to change from the Lua implementation
>>
why didn't anyone invent a /super repl/?
> open your project in lisp
> use your lisps build system e.g. asdf
> compile your build in the repl with your build system
> the /super-repl/ now give you compile time information about your syntax tree when you prompt it in your lisp editor
> e.g. you get type signatures, macro compiled hints of code snippets (what the macro decompiles too in a hover over chat bubble), performance predictions about which code uses memories and time
>>
>>109783448
>entire OS is your IDE
that's just Genera
>>
>>109783194
thats usually how vibeshat projects go
>>
>>109783465
the whole OS is already in the REPL. Why cant I just prompt the REPL in emacs to tell me the info
>>
>>109783558
>17kloc of CL just to archive it
jesus christ
>>
>>109783623
java and c# have had these features from day 1.

Then the lisp senior engineer will just say 'you should be able to just read the lisp function and know all of that information how elegant and precise it describes everything' even though the senior lisp engineer does not believe in commenting code and the lisp code does not indicate the type of and function or variable. Did the 10 line lisp function with 40 variables return a data type? did it return a functor? is it returning a partial function application? did it return nil and just did side effects to the parameters? did it modify global state? is there a return value that is supposed to be evaluated?
>>
>>109783658
an editor using slime lets you keyboard shortcut describe and macroexpand, probably lets you display things on hover too. describe gives you doc and type information. fire the senior lisp engineer who doesn't believe in commenting code and replace them with ai. slime also gives you plenty of cross referencing calls.
I don't know what else you want, a java ide isn't going to magically tell you stuff about a function taking/returning types Object if that's what the programmer typed it as.
>>
>>109783194
Same with his vibe-CRM on top: https://github.com/ckluis/crucible-works
What drives creatures like this?
>>
>>109783746
>>109783194
every project of his screams AIslop
https://github.com/ckluis/senkani
but he does seem to be at the least knowledgeable
>>
>>109783746
>What drives creatures like this?
indianness
>>
>>109783465
>Genera
?
>>
>>109787311
https://en.wikipedia.org/wiki/Genera_(software)
>>
>>109783448
> why didn't anyone reinvent lispm?
>>
>>109787565
very cool
>>
I gave this snippet from Gambit manual to chat gee pee tee and asked it to explain it to me
     
(with-output-to-file
"foo"
(lambda ()
(let ((k (call-with-current-continuation
(lambda (exit)
(with-output-to-file
"bar"
(lambda ()
(dynamic-wind
(lambda ()
(write '(b1))
(force-output))
(lambda ()
(let ((x (call-with-current-continuation
(lambda (cont) (exit cont)))))
(write '(t1))
(force-output)
x))
(lambda ()
(write '(a1))
(force-output)))))))))
(if k
(dynamic-wind
(lambda ()
(write '(b2))
(force-output))
(lambda ()
(with-output-to-file
"baz"
(lambda ()
(write '(t2))
(force-output)
; go back inside (with-output-to-file "bar" ...)
(k #f))))
(lambda ()
(write '(a2))
(force-output)))))))

It switched to plus mode temporarily and gave me the wrong answer for the output.
Are continuations too hard or is my brain too small for this?
>>
>>109790697
This is just what Scheme is like. Come over to Common Lisp.
>>
I hate special forms. If they are special why don't they have syntax?
>>
>>109791135
I already do my everything in CL. I was just intrigued by Gambit's "Lisp with Erlang concurrency" thing.
>>
File: look.png (547 KB, 700x700)
547 KB PNG
Interesting
>Germ is about 2.25KB; he wanted it to be 2KB, but missed that goal by a little. It is a binary that "can run almost-Scheme"; it is just enough Scheme that it can run an assembler written in Scheme. That assembler is used to build the second stage, which is "kind of just like a Scheme interpreter". It has contiguous bytes and vectors, features for I/O and working with the kernel, and it will almost run unmodified Guix build scripts (there are still a few dangling items to fully make that work). It uses MesCC to compile C code and has a Scheme shell that he wrote years ago for handling shell scripts; "eventually it'll run awk scripts and sed scripts".
https://lwn.net/Articles/1088279/
>>
I finished Let Over Lambda and the author says:
>Do not use Emacs as it will distract you from writings real lisp programs. Vi should be enough
>Haskell is a meme and you won't need types really
>Python is not worth learning, learn Perl instead (funny contrast to Norvig saying Python is a good enough lisp)
>>
>>109792700
CL and Clojure sirs could never
>>
small binary for small pp
>>
>>109791163
Just use LFE if you want that.
https://lfe.io/
>>
>>109726557
lispbros we won
>https://en.wikipedia.org/wiki/Lua
>In an article published in Dr. Dobb's Journal, Lua's creators also state that LISP and Scheme with their single, ubiquitous data-structure mechanism (the list) were a major influence on their decision to develop the table as the primary data structure of Lua.[7]
>Lua semantics have been increasingly influenced by Scheme over time,[5] especially with the introduction of anonymous functions and full lexical scoping. Several features were added in new Lua versions.
>>
>>109790697
it wouldn't be too hard to read
start with k, it's the most obvious since it's emerged from let
>>
>>109794215
wow this thing is actually in erlang.org
>>
>>109793242
He’s a dipstick and his own github page shows him not even writing Lisp
>>
>>109790697
mental masturbation
just stick to racket if you want to do scheme
>>
>>109791158
. has special syntax
>>
>>109796298
I'm surprised no one talks about racket here it's not even in the OP
>>
is writing lisp in nvim a fool's errand?
I don't really feel like changing my muscle memory after so many years, also I have heard bad things about evil-mode
>>
thinking about writing a booru viewer in racket since it has native gui inbuilt
>>
>>109796564
yes, nvim wasn't designed to work with lisp
better question is why are you trying lisp if your background wasn't emacs?
also you're not overriding your muscle memory, you're adding a new one
>>
>>109796564
LSPs work better in nvim desu
>>
>>109793242
>perl
>year of our lord 2026
>>
>>109797715
He likes it for regex and syntax magix
>>
>>109797771
it is not worth it unless you are already very good with perl. Python won the glue language war.
>>
>>109797791
It doesn't force indent on me and lambdas can be more than one line
>>
>>109797907
is this multiline enough for you?
from functools import *

print(
reduce(
lambda x, y:
x
+
y,
map(
lambda x:
ord(
chr(
x
)
),
range(
10
))))
>>
>>109798108
you know well I meant one expression
>>
>>109798168
yes, a lambda can only deal with one expression, no statements
>>
>>109796564
not at all, it works just fine. I've written over 1,500LOC of Clojure in the past week, entirely in Neovim
stop being obsessed with the tool and just write code
also use Clojure and Flowstorm
>>
>>109798185
and that is retarded. imagine using a language that considers random shit to not be expressions.
>omg ternary expressions
shut the fuck up you uneducated pleb. even Rust gets this right.
>>
>>109796564
I've written a lot of common lisp code with both vim and neovim, slimv works fine
>>
my job is python and i vibe-translate lisp to python everyday
>>
>>109799088
>even Rust
>even
Expression-oriented languages are few and far between, unfortunately.
>>
>>109799088
>t. doesn't know lambda calculus
>>
>>109796834
>better question is why are you trying lisp if your background wasn't emacs?
and yet they pretend emacs isn't a cult
>>
File: 1676235790890.png (212 KB, 1000x400)
212 KB PNG
(check >>109799999)
>>
>>109796452
then we would also have to add links for chicken, gambit, guile, etc., and the OP is already very close to the 2,000 character limit
>>
>>109794215
Gambit is much faster because of shared memory. At least 3X
>>
>>109799999
(setq 'checked-em t)
>>
>>109799999
t. hallucinating random shit
>>
File: yapc.tokyo.2026.png (328 KB, 1240x1004)
328 KB PNG
>>109797715
https://yapcjapan.org/2026tokyo/
>>
kinda funny both creators of python and perl had a massive hate-boner for lisp syntax
>>
>>109801405
kek.
>parentheses are clunky
>So lets do indentations syntax instead!
I mean, I don't particularly hate python, but damn, it's not great either.
>>
>>109801103
expression is anything that returns a value
lambdas in perl however allows you to insert statements, which is retarded
sub {
my $n = @_; // even fetching an argument is a statement
print("launches a missile\n");
print("fucks your wife\n");
return $n * 10; // finally deals with the value
}
>>
>>109802093
appending comma on every line of your code is piss ugly, perl bro
>>
>>109802221
(lambda (n)
(message "launches a missile\n")
(message "fucks your wife\n")
(* n 10))
>>
>>109802221
Comments in Perl start with "#".
>>
File: 1788614273376378.jpg (46 KB, 468x655)
46 KB JPG
>>109802221
>expression is anything that returns a value
no shit you stupid fucking nigger
I literally write Clojure. I have 3 buffers open right now, one with 648 LOC. you fucking retard nigger saying stupid shit that I knew a decade ago, newfag faggot
>>
File: 1746120245195962.png (5 KB, 582x610)
5 KB PNG
I spent time today getting familiar with project.el and agent-shell. I am really liking the workflow of emacs and will probably switch completely over from Vscode
end blogpost
>>
>>109802230
>>109802093
But why should a language be pretty
Are you a girl?
>>
File: 1672621906251.png (156 KB, 410x410)
156 KB PNG
>wine sbcl.exe
>eval quickload project
>save-lisp-and-die
It just werks
>>
>>109758261
(fido-vertical-mode)
>>
File: emac.png (1.02 MB, 1920x1080)
1.02 MB PNG
>>109804183
gnu/based and emacpilled
>>
File: file.png (629 KB, 960x540)
629 KB PNG
>>109804298
"Why Beauty Matters" by Roger Scruton
https://vimeo.com/549715999
>>
>>109804298
if you were to shut the fuck up and write some Lisp with Parinfer, you too would become VERY annoyed with the need to type commas and other shit. you are a human with a brain optimized for experimentation rather than theorizing, and you continuously shoot yourself in the foot by trying to analyze things without doing things.
>>
>>109807879
Beauty is subjective.
Larry Wall was an actual linguist and thought he's made something beautiful.
Guess what most people think about his work today?
>>
File: 1774969834715875.png (8 KB, 185x222)
8 KB PNG
Make it make sense.
>>
>>109726557
is there a proper way to debug c/c++ inside emacs? i used gdb-mi, it somehow doesn't read my ~/.config/gdb/gdbinit and asks for debuginfod, the many windows mode is ok, but the disassembly shows only the header files disassembled, and apparently it is very slow for bigger projects but i havent experienced that yet. realgud:gdb also seems more limited
>>
From time to time the siren song of sophisticated types draw me to learning Ocaml but I get to think that I can do whatever I want in various lisps anyway
>>
>>109809170
Hard to make an argument for Ocaml when Coalton exists now, unless you're aiming for a job at Jane Street.
>>
>>109809193
I thought Coalton is a blacked meme like Cobson and not an actual language
But it's not 1.0.0 yet
>>
i swear elfeed now regularly forgets the stuff i marked as "read"
>>
>try fido-vertical-mode for the first time
>it just works
why have i even been using vertico?
>>
File: maxresdefault.jpg (109 KB, 1280x720)
109 KB JPG
>>109804183
>>109807330
Okay so I'm 100% confident I can do everything now in Emacs the same or better than Vscode.
The next step is learning org-mode.
I will check out these guides:
>https://orgmode.org/worg/org-tutorials/org4beginners.html
>https://github.com/james-stoup/emacs-org-mode-tutorial
>>
>>109810100
Oh boy you're in on ride
I have old coworkers who use vscode and switch to Emacs just for org alone
>>
>>109809415
Coalton's been in production use for years at this point for quantum computing stuff and real-time control system stuff, other areas too. https://www.youtube.com/watch?v=xuSrsjqJN4M&t=554s
It's a real language, it's just that it exists as a library on top of Common Lisp, rather than a standalone language, which has all sorts of benefits.
It's not advertised as a "1.0" language, but that doesn't make it unsuitable for broad use. Earlier this year they talked about a "version 0.2" whose changes you'll get if you pull from master, there were some breaking changes to syntax, so under some people's idea of versioning, even if there was a "1.0" language, the latest changes would constitute a "2.0" release. It doesn't really matter. Can you expect the language to not change for the next 20 years like you can for Common Lisp? Probably not. Can you depend on it today for important software and expect to suffer no more churn than you'd get from many other popular non-Common Lisp language ecosystems? Yes.
>>
>>109802221
What kind of expressions do you use in perl?
>>
File: 1783528587392644.gif (3.5 MB, 272x450)
3.5 MB GIF
>>109809415
>>
>>109810004
doesnt work well with marginalia no?
>>
File: 1788469802581191.webm (565 KB, 440x370)
565 KB
565 KB WEBM
>>109809415
>I thought Coalton is a blacked meme like Cobson and not an actual language
>>
File: 1762092511298090.png (135 KB, 1580x511)
135 KB PNG
>>109810258
run (setq-local truncate-lines t) in a hook on minibuffer-setup and it looks fine
>>
>>109810174
>Lisp-1 but actually useful
I guess if it's good for glowies it can be good enough for me too
>>
>>109809193
ocaml is niche. Coalton is just schizobabble. get a j*b
>>
>>109754121
it's already quite comfy for scripting. I always wanted to embed it in one of by programs to use it instead of chaining calls to a CLI
>>
>>109808781
are you talking about the order of completions?
>>
I like how you can write chicken with {} instead of ()
>>
Lisp, but hash tables instead of linked lists.
Mapp, if you will.
>>
>>109813586
that's just python
>>
>company has 6-7k emplogoys
>create a #emacs channel in our internal slack equivalent
>2 people join
>both are vim users
I knew we were a minority but wheeew
>>
>>109814412
goypany I'm in has 12 devs and 2 emacs users (they're like 50 years old)
>>
>>109810004
Vertico is completely useless since the introduction of icomplete vertical. It's creator admits it here https://old.reddit.com/r/emacs/comments/11b24xd/what_does_vertico_offer_over_icompletevertical/.

Another meme is marginalia. You should just use:

(setq suggest-key-bindings t)
(setq completions-detailed t)


Yet another meme is projectile. Just use project.el.

Most extensions are memes. You can do 99% of what they do with built-in features.
>>
>>109813586 >>109813768
isn't that lua
>>
building a pseudo-lisp machine with arduino
>>
Did anyone here get invitation for Genera beta?
>>
>>109815357
>Another meme is marginalia. You should just use:
That doesn't do anything?
I just want to hit M-x and see a description next to each command.
>>
>>109816536
Yeah maybe it works only with C-h f. I retract what I said about marginalia, it does a bit more compared to built ins (idk if there's a way to set-up built in to behave like marginalia, but still...).

I stand by what I said about projectile and vertico though. Those are really memes.
*Maybe* vertico has *some* advantages over icomplete vertical, but I doubt they are even useful.
Projectile is a total meme however.
>>
File: 1781698544595169.png (17 KB, 241x230)
17 KB PNG
>>109809415
>>
How do you use emacs for those frequent, tiny edits when configuring linux? Spending most of the time in the terminal and opening a bunch of files just to change a few lines, etc etc
I find that `emacs file` in the terminal gets a bit annoying, as it opens emacs in a new window.
I've read that you can do `-nw`, but there are some limitations to this emacs mode, no?
Another thing I found was running emacs as a daemon, and then using emacsclient to edit files, which sounds interesting.
>>
>>109817404
why are you closing Emacs. your workflow of being in a terminal and opening Emacs for each file is simply an incorrect way to use Emacs. your workflow must change. just keep Emacs open. open the files you need to edit in Emacs, then close them when done (but not Emacs itself).
I use Neovim btw
>>
>>109817404
I keep an emacs instance open the whole time I'm using the computer. When I need to edit a file, I just open it from the single instance I'm using.
If the file requires root permissions to be edited, I just use tramp (e.g. if you need to edit /etc/myconfig, I open /sudo::/etc/myconfig).
You either change workflow to something similar to mine, as this anon said >>109817465, or you use emacsclient (as you suggested). I find emacs daemon mostly unnecessary for my use case, as I always keep the main emacs instance opened and I don't want to add additional complexity.
>>
>let*
>letrec
>let*-values
>letrec-values
filtered by racket award
>>
Been using this: https://github.com/tninja/ai-code-interface.el to vibe code shit with emacs and to help with my ttrpg stuff, but for some reason resizing the chat's buffer makes emacs run extremely slowly.

Is there a better alternative you guys enjoy using?
>>
>>109817404
That's what I do.
I have my .bashrc file launch the daemon when I log in, then I just use the client whenever I need to mess with a file.
A biit more of a pain to set up, but with the daemon I can keep buffers open, keep slime running, etc.
It's petty lightweight so it's not an issue to just keep it going all the time.
>>
nvim anons, parinfer just clicked for me
now, how to disable autopair plugin on lisp/racket files?
>>
>>109809415
based bibisi obsessor
>>
>>109818762
what's the issue? if you understand what `values' does, this is pretty self-explanatory
>>
>>109820564
The logo DOES look suggestive though
>>
>>109820599
yeah, I definitely have a vague idea of the differences
it will just click in eventually while using them
>>
>>109819167
I mostly just use normal coding agents from a terminal emulator like eat, vterm or ghostel directly. I don't find the "emacs integration" too important while using these agents. Most emacs wrappers around ai don't allow you to edit chat history anyway, so might as well use ghostel in line edit mode.

I've used agent-shell in the past and it's not too bad. Once configured to remove the massive useless icons it loads at the beginning, it's kinda usable.
>>
>>109821977
gptel-agent allows editing conversations. Look for "ragmacs" on youtube to get an idea of what can be done with an LLM that is directly connected to emacs. It's handy when I work repls or debuggers in emacs.

I didn't compare gptel to other LLM modes in emacs, because I really liked it out of the box.
>>
>>109822743
I really like gptel for normal clanker interaction, it is well integrated with the rest of emacs, but I didn't like gptel agent.
I don't know, it feels way clunkier than normal coding agents. Maybe it's just my setup, but I connected it to my chatgpt subscription and it would get stuck doing subagents work, to the point where I had to kill the buffer. I dislike the way it handles subagents in general. It pops up an annoying block of text (describing what the subagent is doing) that's unscrollable and you have to press tab in the right spot to make it go away.
Tool calls are way slower too, and somehow the output code is lower quality compared to codex cli. It also takes longer to respond and to edit files (like 5 minutes compared to 30 seconds).

Having said this, I use normal gptel regularly, particularly gptel-rewrite to edit the active region or to do a glorified find and replace.
>>
Can someone check whether this code snippet makes emacs 31.1 segfault? And if so report it to Emacs mainteiners? I can't be arsed

Invoke
emacs -Q
so config doesn't interfere and eval:
(require 'tramp-cache)

(progn
(treesit-parse-string "int x = 1;\n" 'c)
(garbage-collect)
(treesit-parse-string "int x = 1;\n" 'c)
(garbage-collect))

You need the C treesit stuff for this, but it crashes for any language
>>
>guix doesnt have a packaged virtiofsd
guix doesnt have a packaged virtiofsd
>guix doesnt have a packaged virtiofsd
guix doesnt have a packaged virtiofsd
>guix doesnt have a packaged virtiofsd
>>
>>109819167
I find agent-shell to be very good. I have aliases to
>open a new LLM buffer
>send the current file to an LLM buffer
>switch between LLM buffers
Make sure you change the header to text mode as this anon pointed out
>>109821977
>>
>>109824336
>rust program with a 1k line lockfile
unsurprising, unless theres a better way to package these now since i last used guix
>>
File: 1768748032982189.png (2.43 MB, 1600x1600)
2.43 MB PNG
>>109827065
It wasn't fucking rustshit until some redhat tranny (literal) fucked it up.
I tried to use an earlier version but it keeps failing to compile.
>>
>>109827097
I would have him deepthroating me in a green-lit club bathroom as hardbass pounces through the walls.
Clojure destructuring is BASED btw
>>
>>109827207
bazedbazedbazedbazed
>>
>>109827097
>uses troonware
>too stupid to updoot it
Maybe you should go back to NixOS
>>
>>109827097
would
>>
>>109827207
>>109827351
>gets pozzed
>die
>>
>>109817404
There are several implementations of tiny versions of terminal-only emacs. The one I use is called ‘mg’

There is also eshell, where you just use that as your command-line prompt and C-x C-f to open a file in the current directory… never leaving emacs.

From there, you can also, obviously use dired, and pick the file and edit it with ‘f’ or ‘e’

>>109817512
> tramp
One problem with tramp is it doesn’t seem to work well with remote RCS files I find, which is unfortunate.

My suggestion, btw, is to version-control your linux config files with something simple like rcs or sccs.
Once versioned, emacs an usually check in or out with C-x v v which does the appropriate thing (checks in if out, out if in).
>>
File: 1773865061531403.gif (2.23 MB, 281x374)
2.23 MB GIF
>>109827097
i support trans rights
>>
>>109813586
literally lua
>>
>Currently, in SLIME/SLY, there’s no way to C-c-c in any finer-grained way than a whole coalton-toplevel form
:(
>>
>>109819167
For me it's ECA
https://github.com/editor-code-assistant/eca
>>
>>109829545
>coalton
hahahahah lol try with gemton next
>>
>>109829456
he means the AST, Anon. anyway, it is a stupid idea because lists/contiguous collections are the most basic collection that you can have, and everything else requires them to exist. there would be things that you cannot represent without necessitating keys to be arranged in some idiomatic way.
>>
File: demo.gif (2.12 MB, 887x540)
2.12 MB GIF
>>109831467
Interesting
https://github.com/editor-code-assistant/eca-emacs
>>
>>109827600
>There is also eshell, where you just use that as your command-line prompt and C-x C-f to open a file in the current directory… never leaving emacs.
In this situation, I have an eshell alias f for find-file.
alias f "find-file \$@*"

I find that a bit more ergonomic than C-x C-f for opening a file while I'm in eshell. I also have:
alias ffow "find-file-other-window \$@*"

This is nice for when you want to keep the eshell window visible in the same frame while you edit a file.
>>
>>109829545
Out of curiosity, what are you trying to make with Coalton?
>>
>>109834641
excel report generator
>>
>>109834897
Really?
>>
If you want to remove blank lines from a region:
M-x flush-lines RET ^ *$ RET

a

b

c

d

e

would be turned into
a
b
c
d
e



[Advertise on 4chan]

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

[Enable Mobile View / Use Mobile Site]

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