tyson2 has quit [Remote host closed the connection]
waleee has quit [Ping timeout: 268 seconds]
Lycurgus has joined #commonlisp
Lycurgus has quit [Quit: Exeunt]
srhm has quit [Quit: Konversation terminated!]
enpa has joined #commonlisp
derelict has quit [Ping timeout: 264 seconds]
derelict has joined #commonlisp
akoana has joined #commonlisp
ec has joined #commonlisp
ec has quit [Ping timeout: 252 seconds]
knusbaum has joined #commonlisp
dsk has joined #commonlisp
akoana has quit [Ping timeout: 252 seconds]
akoana has joined #commonlisp
knusbaum has quit [Remote host closed the connection]
derelict has quit [Quit: WeeChat 3.1]
<beach>
Good morning everyone!
<Josh_2>
Mornin' beach
<dieggsy>
allegro says "forking with multiple OS threads is dangerous"
rbtEngrDude has joined #commonlisp
<moon-child>
forking is dangerous. Full stop.
<dieggsy>
huh
<dieggsy>
i just want to spawn a lisp that does some stuff
<dieggsy>
without affecting the calling environment
<dieggsy>
since "does some stuff" compiles a bunch of things
<moon-child>
that's fine. But why not just spawn a separate process?
<moon-child>
forking is only useful if you want to do weird copy-on-write things
<moon-child>
which you probably (?) don't
zacts_ has joined #commonlisp
zacts_ has quit [Client Quit]
<dieggsy>
moon-child: right. errr, what would get the best way to do that?
<dieggsy>
or, is it possible to run a lisp function defined in the current environment in a separate process
Lord_of_Life_ has joined #commonlisp
<dieggsy>
we basically have some legacy build script written in bash and lisp, and i thought "why not just do this in only lisp", but then was like "oh wait because it compiles and loads a bunch of stuff", so I'm trying to... both integrate the code but also separate it from the current environment when it runs ? if that makes any sense at all
Lord_of_Life has quit [Ping timeout: 265 seconds]
Lord_of_Life_ is now known as Lord_of_Life
taiju has quit [Ping timeout: 252 seconds]
taiju has joined #commonlisp
yewscion has quit [Ping timeout: 264 seconds]
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
<dieggsy>
oh, process-run-function, maybe?
karlosz has joined #commonlisp
rbtEngrDude has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
akoana has quit [Quit: leaving]
danieli has quit [Quit: Ping timeout (120 seconds)]
trokotech has quit [Remote host closed the connection]
terpri is now known as robin
trokotech has joined #commonlisp
rbtEngrDude has joined #commonlisp
<dieggsy>
ludston: thanks, though that largely concerns launching external programs as a process, and I want to run some lisp as a process
<dieggsy>
it looks like process-run-function is covering my use case so far
<ludston>
If for whatever reason you need to sandbox some function in another process, you probably just spin up a new lisp instance with --load "(my lisp code here)"
<ludston>
Otherwise you just want to use a new thread?
<dieggsy>
....i believe process-run-function is spawning a new thread, but i don't completely understand allegro's multiprocessing documentation
<ludston>
Use bordeaux-threads. It's the defacto standard library that most of us for multithreading
<dieggsy>
I've used Bordeaux threads in the past, but unfortunately I'm trying to stick with what's built in because of uhhh
<dieggsy>
a pretty rigid old codebase at work i guess
<ludston>
I'm sorry that you feel that way haha
<dieggsy>
though come to think of it i think some parts of the code do use bordeaux threads so maybe i can just sneak that into this bit as well
<dieggsy>
lol, same
<ludston>
I work on a really horrible, old code-base (not lisp) too. In my experience it is better not to get stuck in the "not invented here" mindset and use the library/make the sweeping change that you are afraid to make.
<ludston>
The worst thing that can happen is your experienced code-reviewer says no and then you learn why.
<dieggsy>
ludston: that's.... probably good advice, thanks
<dieggsy>
well, the worst that could happen is "why" is just "that's not how we do it" and well ok you're the boss heh
<ludston>
If that was the culture of my workplace, I would find another job.
<ludston>
That is called "cargo-culting" and is a bad place to be a junior.
<dieggsy>
right. hence "worst" i guess
<fe[nl]ix>
dieggsy: where are you working ?
domovod has joined #commonlisp
<dieggsy>
fe[nl]ix: STScI, only like a month in. (employer if you are reading this i am sincerely having a blast) jajaja
<fe[nl]ix>
how old is the codebase ?
contrapunctus has left #commonlisp [#commonlisp]
<dieggsy>
old
<ludston>
For reference, mine is 20 years
<dieggsy>
~30
akanouras has quit [Remote host closed the connection]
katco has quit [Remote host closed the connection]
loke[m] has quit [Remote host closed the connection]
dieggsy has quit [Write error: Connection reset by peer]
Gnuxie has quit [Read error: Connection reset by peer]
loke[m] has joined #commonlisp
dieggsy has joined #commonlisp
dieggsy has quit [Read error: Connection reset by peer]
<hexology>
what would cause the error `Component :CL-BASE64 not found, required by #<SYSTEM "hunchentoot">` when running `(asdf:load-system "hunchentoot")` under qlot+roswell?
<hexology>
example: qlot exec ros run --eval '(asdf:load-system "hunchentoot")'
<hexology>
i set `ros use sbcl-bin/2.1.4`
<hexology>
and the qlfile has `ql hunchentoot 2021-04-11` and `ql chunga 2021-04-11` (wasn't sure about the right dates to use)
<beach>
It means that there is a system named cl-base64 that you have not installed.
<hexology>
ah, like base 64 encoding... i was thinking "64 bit", like an operating system
<hexology>
silly me, thank you
<beach>
Sure.
shka has joined #commonlisp
<hexology>
am i misusing qlot? it looks like it's not installing dependencies when i run `qlot install`
<hexology>
ah, i need the `-S .` option with roswell
karlosz has joined #commonlisp
raeda__ has quit [Quit: Leaving]
<hexology>
actually, i'm not sure that was it
<hexology>
i must be doing something wrong that's very simple, i have read all the qlot and roswell docs several times
Duuqnd has joined #commonlisp
<hexology>
hm, i guess i had to run `qlot update`, i think i had an old qlfile
White_Flame has quit [Remote host closed the connection]
White_Flame has joined #commonlisp
yitzi has quit [Quit: Leaving]
contrapunctus has left #commonlisp [#commonlisp]
contrapunctus has joined #commonlisp
karlosz has quit [Quit: karlosz]
kevingal has joined #commonlisp
Inline has quit [Quit: Leaving]
Inline has joined #commonlisp
Inline has quit [Remote host closed the connection]
selwyn has joined #commonlisp
Inline has joined #commonlisp
tfb has joined #commonlisp
aleamb has joined #commonlisp
<shka>
where is the default path of quicklisp local-projects on windows?
<selwyn>
let´s find out
azimut_ has quit [Ping timeout: 252 seconds]
<selwyn>
for me, it is C:/Users/selwyn/quicklisp/local-projects/ on a fresh quicklisp install
azimut has joined #commonlisp
<tfb>
shka: what does ql:*local-project-directories* tell you? Because it's that
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
<selwyn>
though for actual development i use the portacle quicklisp installation which is itself under the msys2 home directory
<selwyn>
which i heartily recommend
<shka>
tfb: i would check, IF I WAS ON WINDOWS!
<shka>
:P
<shka>
selwyn: thanks
<shka>
actually i forgot about portacle
random-nick has joined #commonlisp
<tfb>
shka: my point was, you don't need to: write a program which uses that variable. If you need, say, to run programs in some other language to install things there, spawn them from CL
mrcom has quit [Quit: Leaving]
<selwyn>
if you are deploying it is not wise to rely on or expect the existence of quicklisp though
pok has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
tyson2 has joined #commonlisp
contrapunctus has joined #commonlisp
yewscion has joined #commonlisp
yewscion has quit [Ping timeout: 245 seconds]
aleamb has quit [Quit: bye]
dsk has quit [Ping timeout: 245 seconds]
<ludston>
In your lisp init file, (e.g. .sblrc) it will specify the directory that quicklisp is installed in. By default this is (user-home-pathname) which on Windows uses the "HOME" environment variable.
<ludston>
I'm not sure what (user-home-pathname) is by default because mine is set to my msys64 home dir
aleamb has joined #commonlisp
<Duuqnd>
Isn't it supposed to be (user-homedir-pathname)?
<ludston>
^ that one
<ludston>
If you are using lisp on Windows, I'd highly recommend using something like msys, because a lot of libraries rely on open source dll's. You can set your "Path" environment variable to point to C:\msys64\mingw64\bin and then install external dependencies with pacman
<selwyn>
yes
<selwyn>
when i start sbcl under msys64, it does indeed instead install quicklisp under the msys64 homedir
<selwyn>
it´s best to just stick to doing everything under msys, and you also get a shell to use
<ludston>
If you open up "Edit the system environment variables" you can set the HOME directory so that it is always msys, even if you launch sbcl outside of msys
<selwyn>
:o
<Duuqnd>
I had no idea that was possible
<Duuqnd>
I'm probably not doing that myself though because my Windows computer is already messed up with like three different msys/mingw things installed somehow
<splittist>
My problem (on Windows) is not lisp and its idea of home (/Users/me), it's emacs and it's weird idea (:
<splittist>
s/it's w/its w/
<ludston>
emacs uses the same variable
<splittist>
nah
<tyson2>
I'm just getting started with sbcl on windows, and have it working with slime, etc. But I've decided to set up a local docker sbcl instance and use that instead.
<ludston>
splittist: It does :p
<tyson2>
My intention is to eventually deploy using docker on a vps
<tyson2>
that way I can avoid all the drawbacks of adding linux-workalike libraries for sbcl on windows which I have already encountered
cage has joined #commonlisp
<selwyn>
i just retreat inside msys2/portacle and its fine most of the time
<tyson2>
seems to be good support for docker in emacs, docker-tramp etc., will test it out this weekend
<selwyn>
am reliably informed that deployment on windows is easier than linux
<tyson2>
probably right. However I will be using prebuilt docker images for sbcl
<ludston>
Deployment on windows is only easier when everybody copies the same .dll into every separate install
<tyson2>
so it is already deployed when I create the container
<tyson2>
docker desktop for windows has improved a lot recently
<tyson2>
takes a lot of ram though
<tyson2>
eventually I will skip the local container and just develop directly on the docker sbcl instance on the vps
<tyson2>
on AWS lightsail, you can now deploy docker instances directly, without first installing linux
Bike has joined #commonlisp
cranium has quit [Quit: Leaving]
Nilby has quit [Ping timeout: 244 seconds]
wanagnuj has quit [Ping timeout: 245 seconds]
tyson2 has quit [Ping timeout: 268 seconds]
Duuqnd has quit [Ping timeout: 244 seconds]
etimmons has quit [Remote host closed the connection]
etimmons has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
contrapunctus has joined #commonlisp
Oladon has quit [Quit: Leaving.]
yitzi has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
MichaelRaskin has quit [Ping timeout: 244 seconds]
MichaelRaskin has joined #commonlisp
waleee has joined #commonlisp
contrapunctus has joined #commonlisp
derelict has joined #commonlisp
Cymew has quit [Remote host closed the connection]
dsk has joined #commonlisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #commonlisp
yitzi has quit [Remote host closed the connection]
contrapunctus has left #commonlisp [#commonlisp]
waleee has quit [Ping timeout: 268 seconds]
contrapunctus has joined #commonlisp
Inline has quit [Ping timeout: 244 seconds]
Inline has joined #commonlisp
<Josh_2>
Shinmera: After saving my content to a temp file with the correct extension, I am using the :media key and tracing error, I get the following: https://plaster.tymoon.eu/view/2488#2488 sorry its a bit vague but this is out of an in use system
<Shinmera>
If you have ssl errors that's not my problem.
<Josh_2>
something borked in cl-ssl :( (hopefully not)
derelict has quit [Changing host]
derelict has joined #commonlisp
yitzi has joined #commonlisp
<Josh_2>
Is doing a (ql:quickload :chirp-dexador) enough to swap over to the dexador backend?
derelict has quit [Quit: WeeChat 3.1]
derelict has joined #commonlisp
<Shinmera>
should be.
<Josh_2>
Okay thanks
taiju has quit [Ping timeout: 272 seconds]
<Josh_2>
Well idk if I got a cl-ssl error that time
<Josh_2>
just says :expected-type character :context :aref, cant read the rest because my terminal doesn't scroll back that far
aeth has quit [Killed (NickServ (GHOST command used by aeth_))]
aeth_ is now known as aeth
OlCe has quit [Ping timeout: 264 seconds]
<hexology>
why does quicklisp/qlot use dates instead of the :version specified in the system?
<hexology>
i assume this is a case of chesterton's fence, but it's quite unusual
<Xach>
Dates for what?s
<jmercouris>
well, how about the folders stored within the dist
<Xach>
hexology: dates for what?
<hexology>
Xach: i was under the impression that i can only specify a quicklisp release date in the qlot file, as opposed to a version number
<Xach>
hexology: I don't know about qlot. quicklisp releases are versioned with a date. there is no system involved.
<Xach>
The date is not processed as a date, really - it's just a convention with convenient ordering properties usually.
<jmercouris>
if I go to: quicklisp/dists/quicklisp/software
<jmercouris>
I see always dates
<hexology>
right, but does quicklisp itself have no facility for checking the version numbers?
<hexology>
pretty much every other package manager i've seen uses the version number, so i assume there's a good technical reason why quicklisp doesn't work like that
<Xach>
Every project is snapshotted, built, and released together. Projects are not updated individually.
<Xach>
Things in a quicklisp release work together.
caret has joined #commonlisp
<Xach>
(If they don't, they are retried until they do, with feedback loops.)
<hexology>
what do you mean by "retried"?
<Xach>
hexology: i mean if something doesn't build, i tell the author, and they try to fix it, and then everything is built again.
<Xach>
Repeat as needed
<hexology>
i see, i didn't realize manual work was being done to validate that they all build together
<hexology>
by comparison, npm, pypi, etc. would be "rolling release" where the author can publish a new version at any time
<Xach>
it's pretty automated, but there's a bit of manual work to plug the failure logs into github or other bug report systems.
<Xach>
there are advantages to rolling releases too - i don't mind if people don't like how quicklisp works, there are different ways to do things.
<hexology>
it's not that i don't like it, it's that it's very unusual for a programming language package manager
<Xach>
It helps that Lisp has so few libraries and so little activity!
<hexology>
hah true
<Xach>
(not a joke!)
<hexology>
what if there's a bug and a developer wants to publish a quick fix? do people just have to install from git, or is it case-by-case where you might do a 2nd release?
<Xach>
hexology: there are a few options for the user. 1. don't update to the new dist 2. override with a local version from git or whatever. I rarely, rarely make a quick new release of everything - I've done it when slime crashed on startup, once, but fewer than 5 times in 10 years.
<hexology>
i see
<_death>
I guess it helps that a new dist is made only each month
<Xach>
or use ultralisp, which has a totally different dist release strategy
<Xach>
i don't know if it has the indelible release policy or not, but i consider that a feature too
yitzi has quit [Remote host closed the connection]
<_death>
I meant, a new release
yitzi has joined #commonlisp
<hexology>
so there's no "technical" reason why one couldn't make something like npm for lisp packages, it was just a design decision
<hexology>
i haven't used ultralisp at all, i was wondering about it
knusbaum has quit [Remote host closed the connection]
<hexology>
based on the website, it looks like ultralisp is also versioned in "releases", but maybe those releases are automatic whenever a package is updated
<hexology>
so more like rolling. i'll do some reading
<jmercouris>
keep them doggies rolling rawhide!
derelict has quit [Ping timeout: 268 seconds]
derelict has joined #commonlisp
<hexology>
hah
<hexology>
Ultralisp is a quicklisp distribution, which updates every 5 minutes.
<hexology>
now that i understand what a "quicklisp distribution" really is, that makes a lot more sense to me
contrapunctus has left #commonlisp [#commonlisp]
v88m has quit [Ping timeout: 268 seconds]
<remexre>
are there some weird things with giving an ftype to a function before doing a defsetf for it?
<remexre>
I get: defining setf macro for FOO when (SETF FOO) was previously treated as a function
<remexre>
hm, no, stripping the ftype doesn't help