<White_Flame>
Pixel_Outlaw: sure, I started with Clack, but while it's syntactically simpler to set up, it's far less accessible than hunchentoot
<White_Flame>
clack has no documentation, uncommented source code, and does not expose many things easily
phoe6245 has joined #lisp
<White_Flame>
hunchentoot is the way to go, at least for now
<Pixel_Outlaw>
White_Flame, yes the curse of hackers "just getting things done" with "works here" and no time for documentation.
<White_Flame>
clack also isn't very good IMO, regarding error handling, not handling many things correctly, broken websockets implementation, etc
<Pixel_Outlaw>
We'll see if hunchentoot plays nice on Windows 10 which is the virus we perpetuate at work. :P
adam4567 has quit [Remote host closed the connection]
<ebrasca>
What do you think about radiance?
<ebrasca>
It seem interesting but did not use it.
<White_Flame>
ebrasca: I haven't tested anything but hunchentoot & clack
<White_Flame>
I don't want much of a framework, but just expose http stuff to our framework
<White_Flame>
so hunchentoot fills the space well
<ebrasca>
I did a image board demo with hunchentoot.
<White_Flame>
radiance does look interesting. once our web stuff is more mature, maybe I'll take a harder look at it
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
zefram22 has joined #lisp
monolithic has quit [Remote host closed the connection]
Pixel_Outlaw has quit [Quit: Leaving]
DHARMAKAYA has joined #lisp
mrchampion has quit [Read error: Connection reset by peer]
wxie has quit [Read error: Connection reset by peer]
mrchampion has joined #lisp
ebrasca has quit [Remote host closed the connection]
wxie has joined #lisp
dnjp[m] has joined #lisp
<kagevf>
I think hunchentoot has the most mindshare
<kagevf>
... and I like using it :)
Guest60158 is now known as X-Scale
CrazyPython has quit [Ping timeout: 260 seconds]
lotuseat` has joined #lisp
lotuseater has quit [Ping timeout: 245 seconds]
tempest_nox has quit [Quit: ERC (IRC client for Emacs 27.1)]
<charles`>
White_Flame: clack is not really meant to be used by someone developing websites. It is just a internal thing that Fukamachi decided to make separate and modular. It is meant to be used via niggle or caveman which has good documentation. clack by itself is not a drop in for hunchcentoot.
<White_Flame>
well, I wonder if those other things have workarounds then for when clack loses errors and such ;)
* White_Flame
obviously did not get a good impression
hypercube has quit [Ping timeout: 250 seconds]
<charles`>
I have yet to actually try caveman, but it actually looks better than hunchentoot with more batteries included.
<White_Flame>
if it's on top of clack, I wouldn't trust its completeness or stability
MichaelRaskin has quit [Ping timeout: 240 seconds]
<no-defun-allowed>
Hyeh, you use <these-class-names> and Python @annotation syntax with Caveman?
<White_Flame>
s/completeness/coverage/ I guess
tophullyte has joined #lisp
<Josh_2>
Hunchentoot behind Nginx is great
aartaka_d has quit [Ping timeout: 252 seconds]
nij has joined #lisp
theothornhill has joined #lisp
theothornhill has quit [Ping timeout: 240 seconds]
john__ has joined #lisp
wxie has quit [Quit: wxie]
gaqwas has quit [Ping timeout: 252 seconds]
wxie has joined #lisp
<nij>
swank-client does work for swank.. I'm amazed.
theothornhill has quit [Remote host closed the connection]
Sheilong has quit []
Guest502921 has joined #lisp
Guest502921 has joined #lisp
Guest502921 has quit [Changing host]
<beach>
Good morning everyone!
<CrashTestDummy>
Morning beach
<CrashTestDummy>
nij: Ok, I posted to pastebin above
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
Guest502921 is now known as dieggsy
akoana has left #lisp ["Leaving"]
semz has quit [Ping timeout: 276 seconds]
mathrick has quit [Read error: Connection reset by peer]
mathrick has joined #lisp
caoliver has left #lisp ["Leaving"]
<dieggsy>
A lot of the CL projects i've been looking at haven't been worked on for 2+ years. is this stability, abandonment, little of both?
<beach>
dieggsy: Probably depends on the project. My projects Flexichain and Cluffer have not been touchechd because they are stable.
<CrashTestDummy>
The typical answer is that a lot of the projects are just "complete" and don't need to be updated because CL is such a "stable" language. In other words, the libraries don't need to be updated to keep up with the language since the language doesn't change.
<dieggsy>
that's fair
<dieggsy>
though that does change for FFI libraries
<CrashTestDummy>
yup
<Jachy>
Similarly, library dependency chains aren't such gigantic monsters like they can be in other ecosystems, so there's less chance for churn to update libraries solely because libraries they depended on updated
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
<dieggsy>
is there any good decently up to date computer vision library you guys work with ?
<nij>
CrashTestDummy: I have no idea. I did rememeber receiving some failures of testing.. but that didn't bother me.
<nij>
What makes CL "stable"? And why lib dep chains is not monsters in CL?
<beach>
nij: What is your reason for being interested in environment objects? If it is just to see how things could be done, check out our libraries Clostrum and Trucler on GitHub.
<beach>
In fact, I believe Trucler can work with SBCL environment objects too.
zefram22 has quit [Quit: zefram22]
zefram22 has joined #lisp
<jcowan>
nij: CL is stable because no one person, group, or implementer group controls the evolution of the language. The current standard has been in place for 30 years, and most unofficial extensions have been worked on in parallel, so that even what is not standard is de facto portable.
<Jachy>
I invite you to run the visualizers on a sampling of CL libs vs JS libs though to compare overall complexities, especially on similarly-scoped projects. Multiple selection pressures contribute to the differences.
lotuseat` has quit [Remote host closed the connection]
lotuseat` has joined #lisp
<Jachy>
(You can also see what I mean by churn with the JS project's recent commit in the doc/js folders, "add --all option to npm ls (needed from npm 7 on)".)
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
skapata has quit [Remote host closed the connection]
<nij>
jcowan: I like that comment.
<nij>
Why don't people just upgrade their codes without breaking any pass codes?
<Bike>
pass codes?
<nij>
codes in the pass*
remby has joined #lisp
<Bike>
what do you mean, pass?
<nij>
beach: environment objects - I'm just curious to see how to make one like making a list as in (list 1 2 3).
<Bike>
if you're asking why people make breaking changes to software, it's because sometimes the old interface sucks
<nij>
Oh..I'm very tired now. Sorry.. code in the past*
<nij>
Well.. can't we always change without breaking?
<Bike>
to some extent, and that's why my computer has instructions for working with binary coded decimal
<nij>
Yeah.. people should create things that don't perish at all.
<Bike>
sometimes we also want things that work efficiently and well.
semz has quit [Ping timeout: 245 seconds]
aeth has quit [Ping timeout: 252 seconds]
aeth has joined #lisp
tempest_nox has joined #lisp
semz has joined #lisp
<jcowan>
A lot of code was broken in the shift from pre-CL to CL
orivej has joined #lisp
<jcowan>
The Scheme standards are not as stable as the CL standards: they do grow. But very little of that is backward incompatible.
<charles`>
and they are not as batteries included
gigamonkey has quit [Ping timeout: 268 seconds]
Bike has quit [Quit: sleep]
Nilby has joined #lisp
remby has quit [Ping timeout: 240 seconds]
remby has joined #lisp
<CrashTestDummy>
nij: Ok, thank you for the response
<CrashTestDummy>
Anyone here ever use Qemu (or some other hardware emulation rather that a normal VM) to compile the SBCL source?
mindCrime has quit [Ping timeout: 240 seconds]
mindCrime_ has joined #lisp
<moon-child>
jcowan: really, huh. I always thought the main point of cl (and the reason it was so big) was to keep majority compatibility with all the lisps that preceeded it
<moon-child>
(hence 'common')
<jcowan>
In many respects, yes. But CL was the firat "mainstream" lisp to do lexical scope, an idea borrowed -- from Scheme.
<moon-child>
having guy steele on the committee _would_ do that
Ziemas has quit [Ping timeout: 246 seconds]
rumbler31 has joined #lisp
Ziemas has joined #lisp
rumbler31 has quit [Ping timeout: 252 seconds]
renzhi has quit [Ping timeout: 260 seconds]
<charles`>
I love having dynamic scope, but it feels like cheating every time I use it.
waleee-cl has quit [Quit: Connection closed for inactivity]
<Nilby>
I don't think dynamic scope is cheating, since it's basicly what the hardware does. But special variables seem a little like cheating, since it's like having undo on your memory.
<beach>
So the MacLisp compiler used lexical scope, but the interpreter used dynamic scope. The next Lisp system I used was Franz Lisp on Unix, and they worked very hard to make everything use dynamic scope.
<moon-child>
Nilby: how is dynamic scope what the hardware does?
<moon-child>
to my recollection, it was responsible for a number of elisp's performance problems
<charles`>
Nilby, what is the difference between dynamic scope and special variables?
<beach>
charles`: Special variables use dynamic scope.
<charles`>
That is what I though
<beach>
But in the past, many Lisp systems used dynamic scope by default.
<charles`>
like for all variables
<beach>
Yes.
<beach>
It was a huge source of bugs.
<charles`>
Yeah, I remember every had to put -*- lexical -*- at the top of emacs source
<charles`>
or something like that
<charles`>
I don't see why one would be "cheating" and the other not though since I see them as basically the same thing. specials just have the advantage of being able to control which variables are dynamic
charles` has quit [Ping timeout: 245 seconds]
<Nilby>
I'll probably explain it wrong, so I don't want to annoy our experts. Old fashioned dynamic scope isn't much different than writing to a memory location. Lexicals can increase performance because they allow optimizations, increased locality, simplified management, as well as helping get rid of a class of bugs.
<Nilby>
In some way most old Lisps, but not the first, had a form of lexical scope with function arguments. We're lucky the whole scoping thing was nicely resolved in CL.
Odin- has quit [Read error: Connection reset by peer]
Odin- has joined #lisp
saganman has joined #lisp
theothor` has joined #lisp
theothor` has quit [Remote host closed the connection]
sword865 has joined #lisp
gigamonkey has joined #lisp
gigamonkey has quit [Ping timeout: 240 seconds]
tophullyte has quit [Ping timeout: 240 seconds]
zefram22 has quit [Ping timeout: 265 seconds]
tempest_nox has quit [Read error: Connection reset by peer]
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
theothornhill has joined #lisp
asarch has joined #lisp
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
aartaka has joined #lisp
<asarch>
One stupid question: in Emacs, how do you Postscript Print Buffer to a file?
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
slyrus has joined #lisp
slyrus has quit [Ping timeout: 252 seconds]
froggey has quit [Ping timeout: 268 seconds]
froggey has joined #lisp
theothornhill has quit [Ping timeout: 252 seconds]
varjag has joined #lisp
theothornhill has joined #lisp
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
Odin- has quit [Ping timeout: 245 seconds]
Odin- has joined #lisp
imode has quit [Ping timeout: 260 seconds]
<saganman>
Morning everyone
theothornhill has quit [Ping timeout: 252 seconds]
<saganman>
hello beach
andrei-n has joined #lisp
<beach>
Hello saganman.
<saganman>
how is the work going on beach? do you work on sundays as well?
<beach>
Work is going fine, thank you. I am currently preparing my slides for the ELS talk. And yes, I work every day for around 10-12 hours.
<beach>
What about you? Still in lockdown?
<saganman>
I am in self imposed lockdown. The situation here is worst.
<beach>
So I hear. That's very sad.
<saganman>
Yeah, it is brought by people and government with their carelessness. Anyway you work relentlessly beach
<beach>
saganman: I think most researchers work all the time. One can't just turn the brain off.
<saganman>
yeah, you know my brother is also in research
<saganman>
computational sciences
<beach>
I see.
hendursa1 has joined #lisp
<saganman>
I will disconnect from the world today. I got a new P.G. Wodehouse book.
<beach>
Sounds like a good plan.
hendursaga has quit [Ping timeout: 240 seconds]
<saganman>
I love Wodehouse. Have a nice day beach.
<saganman>
or as Bertie says, tinkertie tonk
<beach>
You too.
<saganman>
haha
<remby>
what is a lisp image? I know it's a binary that holds the interpreter, but I'm not sure how to picture this
<beach>
remby: WOW, hold on a sec...
<remby>
ok :)
<beach>
First of all, most modern Common Lisp systems don't have an interpreter.
elderK has joined #lisp
<beach>
Second, the term "Lisp image" is in the glossary.
<beach>
It is a bit long to quote it all here, but you can read it yourself in the Common Lisp HyperSpec.
<beach>
"a running instantiation of a Common Lisp implementation..."
<beach>
So it does not refer to a "binary" if by that you mean a file.
<beach>
remby: So the image holds every object, including all executable code.
<beach>
Pleasure.
<remby>
I think this is just kinda hard for me to imagine cause I'm not experienced with low level stuff, but I'll do more research
surabax has joined #lisp
<beach>
OK. What part is hard to imagine?
<beach>
Just think of it as a large graph of objects, each object taking up a chunk of memory, and some words in the chunk may contain pointers to other objects.
<beach>
So, a symbol will be a chunk that has a pointer to a string that holds the name of the symbol, and another pointer that refers to a package object.
<remby>
what about the executable code, does it have no dependencies?
<beach>
Executable code is just a vector of bytes that is tagged so that the operating system accepts that it is executed.
<beach>
What do you mean by "dependencies"?
nature has joined #lisp
* Nilby
laments that operating systems lost the ability to save a restartable image for any process.
<remby>
normally those will be there unless the executable is "statically" linked right?
<beach>
remby: Forget about executable files in a "modern" operating system.
<beach>
remby: Code is truly executable only when it is in the primary memory of the computer.
<remby>
yeah
<beach>
And then it is just a sequence of bytes that the processor understands as instructions.
<beach>
So the Lisp image contains those sequences of bytes as data objects.
<remby>
I see
pve has joined #lisp
<beach>
There are lots of details that you need to know about to understand everything, of course. Like how a function calls another function, and how a function can refer to its arguments and its lexical variables.
amb007 has quit [Ping timeout: 240 seconds]
<beach>
But don't hesitate to ask. This is important information.
amb007 has joined #lisp
anticrisis has quit [Read error: Connection reset by peer]
<remby>
I'm statisfied for now, thank you :)
<beach>
Pleasure. Good luck!
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #lisp
cage_ has joined #lisp
gigamonkey has quit [Ping timeout: 252 seconds]
Duuqnd has joined #lisp
edgar-rft has joined #lisp
raeda has quit [Ping timeout: 240 seconds]
remby has quit [Quit: Going offline, see ya! (www.adiirc.com)]
theothornhill has joined #lisp
asarch has quit [Remote host closed the connection]
theothor` has joined #lisp
theothornhill has quit [Remote host closed the connection]
refusenick has quit [Remote host closed the connection]
refusenick has joined #lisp
theothor` has quit [Ping timeout: 240 seconds]
zzappie has joined #lisp
MichaelRaskin has joined #lisp
buoy49 has quit [Ping timeout: 258 seconds]
andinus` has joined #lisp
andinus` has quit [Remote host closed the connection]
mindCrime_ has quit [Ping timeout: 252 seconds]
buoy49 has joined #lisp
lotuseat` is now known as lotuseater
mindCrime_ has joined #lisp
heisig has joined #lisp
sword865 has quit [Quit: Connection closed for inactivity]
indathrone has joined #lisp
pseudonymous has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
shka_ has joined #lisp
supercoven has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
surabax__ is now known as surabax
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
saganman has joined #lisp
epony has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
pve has quit [Quit: leaving]
Odin- has quit [Ping timeout: 245 seconds]
kevingal has quit [Remote host closed the connection]
Odin- has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
frost-lab has joined #lisp
gitgood has quit [Remote host closed the connection]
Duuqnd has quit [Quit: Connection closed]
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
srji has quit [Quit: leaving]
Odin- has quit [Ping timeout: 240 seconds]
srji has joined #lisp
FennecCode has joined #lisp
nij has joined #lisp
srji has quit [Client Quit]
srji has joined #lisp
srji has quit [Client Quit]
srji has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
frost-lab has quit [Quit: Connection closed]
aeth has quit [Ping timeout: 240 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
aeth has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
srji has quit [Quit: leaving]
amb007 has joined #lisp
gigamonkey has joined #lisp
srji has joined #lisp
srji has quit [Client Quit]
Odin- has joined #lisp
srji has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
gigamonkey has quit [Ping timeout: 240 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
gitgood has joined #lisp
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
nij has quit [Read error: Connection reset by peer]
Lord_of_Life has quit [Ping timeout: 265 seconds]
<dieggsy>
daphnis: uiop also has string-suffix-p
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
john__ is now known as gaqwas
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
Spawns_Carpeting has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
nij has joined #lisp
raeda has quit [Read error: Connection reset by peer]
raeda has joined #lisp
nij has quit [Remote host closed the connection]
Spawns_Carpeting has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
saganman has quit [Quit: WeeChat 1.6]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
dsrt^ has quit [Read error: Connection reset by peer]
amb007 has quit [Read error: Connection reset by peer]
Lord_of_Life has joined #lisp
amb007 has joined #lisp
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
Bike has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
semz has joined #lisp
Tordek has quit [Ping timeout: 250 seconds]
17WAABRZX has quit [Remote host closed the connection]
CrazyPython has joined #lisp
Tordek has joined #lisp
amb007 has joined #lisp
pseudonymous has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
pseudonymous has joined #lisp
amb007 has joined #lisp
indathrone has quit [Quit: Leaving]
amb007 has quit [Read error: Connection reset by peer]
liberliver has joined #lisp
liberliver has quit [Client Quit]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<lotuseater>
hey i ran into an interesting problem recently ^^ an algorithm with TAGBODY and labels 1..13 has a step with "now goto step Z+3" so I calculate with (let ((next-step (+ Z 3))) (go next-step)) but of course that didn't work, as no NEXT-STEP label is there. i got it to run otherwise, but my question is is there another clever trick? :D
ssbnxx has joined #lisp
<beach>
clhs go
amb007 has quit [Read error: Connection reset by peer]
<Shinmera>
phoe: fortunately the dangers of scanf are not present in this version.
epony has joined #lisp
<dieggsy>
splittist: why does the order seems reversed lol
notzmv has joined #lisp
CrazyPython has quit [Ping timeout: 265 seconds]
CrazyPython has joined #lisp
notzmv has quit [Ping timeout: 252 seconds]
<splittist>
dieggsy: where?
<dieggsy>
splittist: you have (sscanf "123 abc" "%d %s"), i'd almost expect (sscanf "%d "%s" "123 abc")
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
<splittist>
dieggsy: yeah. But that's how C does it: int sscanf(const char *str, const char *format, ...);
<dieggsy>
right
<splittist>
dieggsy: it kind of makes sense if you think of fscanf having the FILE *stream first
<splittist>
and scanf omitting them altogether
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
Inline has joined #lisp
<dieggsy>
oh no, you're right
<dieggsy>
neat
theothornhill has joined #lisp
long4mud has joined #lisp
jtecca has quit [Quit: ERC (IRC client for Emacs 27.2.50)]
_paul0 has quit [Remote host closed the connection]
paul0 has joined #lisp
gigamonkey has quit [Remote host closed the connection]
gigamonkey has joined #lisp
amb007 has quit [Ping timeout: 268 seconds]
mindCrime_ has joined #lisp
selwyn has quit []
selwyn has joined #lisp
amb007 has joined #lisp
Spawns_Carpeting has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
Spawns_Carpeting has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
tempest_nox has joined #lisp
contrapunctus has joined #lisp
easye has joined #lisp
wsinatra has joined #lisp
aeth has quit [Ping timeout: 265 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
aeth has joined #lisp
Lord_of_Life_ has joined #lisp
slyrus has joined #lisp
theothornhill has quit [Ping timeout: 268 seconds]
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life_ is now known as Lord_of_Life
contrapunctus has left #lisp ["Disconnected: closed"]
slyrus has quit [Ping timeout: 240 seconds]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
<gigamonkey>
I gather the folks who wrote uiop consider uiop/pathname a replacement for cl-fad. Can anyone point me to any discussion about why certain things that are in cl-fad are not in uiop (e.g. pathname-as-file unless I'm missing something)?
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
contrapunctus has joined #lisp
<jackdaniel>
gigamonkey: it was "self proclaimed" replacement for many things
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<Shinmera>
I find pathname-as-file's behaviour for directories a bit wild.
amb007 has quit [Read error: Connection reset by peer]
<gigamonkey>
Shinmera: well, it's just about manipulating pathnames. Like if you wanted to create a file name based on a directory name.
amb007 has joined #lisp
<Shinmera>
It has a very different idea of what it means to turn a pathname into a "file pathname"
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<gigamonkey>
E.g. (let ((p #p"some/dir/")) (merge-pathnames p (make-pathname :type "foo"))) gives you a goofy result of a pathname with a type but no name.
amb007 has quit [Read error: Connection reset by peer]
<gigamonkey>
:type "foo"))) does something sensible.
<Shinmera>
Does it?
amb007 has joined #lisp
<gigamonkey>
To my mind? If I have a directory named foo/bar/ and I want to make a file foo/bar.whatever it does that.
aartaka has quit [Read error: Connection reset by peer]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
theothornhill has quit [Ping timeout: 240 seconds]
<Shinmera>
I guess. My disagreement I suppose comes from directories and files being fundamentally of different purposes, so "converting" a directory into a file seems wrong. I would have worded the same maybe like this: (make-pathname :name (pathname-utils:directory-name path) :type "foo" :defaults (pathname-utils:parent path))
<Shinmera>
Much longer of course.
Anton93 has joined #lisp
<gigamonkey>
Yeah. The whole point of CL-FAD (when I wrote the original code for PCL) was to do syntactic manipulations of pathnames. And because pathnames distinguish between directory names and file names I needed a function to say, how would I make a syntactically correct pathname that is the "same" name but as a file.
hendursa1 has quit [Ping timeout: 240 seconds]
Anton93 has quit [Client Quit]
zefram22 has quit [Ping timeout: 265 seconds]
<dieggsy>
Can ECL generate statically linked executables?
<dieggsy>
that is, with libecl statically linked in
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<Shinmera>
The depressing thing about writing pathname-utils was that a lot of the behaviour around munging pathnames can be hairy on certain implementations.
<Shinmera>
At least I wrote a test suite to catch most of that.
ebrasca has joined #lisp
dieggsy has quit [Ping timeout: 245 seconds]
e[m]1 has quit [Ping timeout: 245 seconds]
santiagopim[m] has quit [Ping timeout: 245 seconds]
dmiles[m] has quit [Ping timeout: 245 seconds]
kreyren has quit [Ping timeout: 245 seconds]
heretical_crypte has quit [Ping timeout: 245 seconds]
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
loskutak has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
dieggsy has joined #lisp
amb007 has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
amb007 has quit [Read error: Connection reset by peer]
santiagopim[m] has joined #lisp
e[m]1 has joined #lisp
<loskutak>
Hi, I want to do a SVD decomposition of (small) matrix in common lisp. Is there any library, that could do that for me? I have tried gsll, but so far I couldn't get it to work.
dmiles[m] has joined #lisp
orivej has joined #lisp
kreyren has joined #lisp
amb007 has joined #lisp
<jackdaniel>
dieggsy: yes; but then you limit yourself to .a linkage (i.e no C-compiled fasls)
Lord_of_Life has quit [Read error: Connection reset by peer]
<jackdaniel>
that limitation is more a defect than a hard constraint - it could be fixed with code
heretical_crypte has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<jackdaniel>
compile ecl with --disable-shared to have libecl.a; as for how to compile libraries (with dependencies) to static libraries, check out examples/ directory
<dieggsy>
ah, ok
<dieggsy>
thanks
amb007 has quit [Read error: Connection reset by peer]
<Shinmera>
Ah man, I didn't implement SVD for 3d-matrices? For shame.
<dieggsy>
is there a big performance difference between e.g. SBCL and ECL (i know SBCL is like the holy grail of lisp performance lol)
amb007 has joined #lisp
<jackdaniel>
dieggsy: for declared numeric operations - no. for everything else - yes
<jackdaniel>
sbcl is much faster for a) generic function dispatch, b) inferred numeric operations
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
<jackdaniel>
but it still gives rathe an accurate picture
layerex has quit [Remote host closed the connection]
<jackdaniel>
I believe that a type inferencer and a fast generic function dispatch will bring ecl much closer to more performant implementations
<loskutak>
Shinmera: my matrices are 8x9
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
<Josh_2>
does anyone know how SBCL compares to commercial implementations in terms of performance?
<Shinmera>
loskutak: 3d-matrices does support nxm matrices, but alas, no SVD
amb007 has joined #lisp
<jackdaniel>
Josh_2: I believe Rainer Joswig ran cl-bench also against lw and allegro, but I don't remember for sure
<dieggsy>
loskutak: what wasn't working about GSLL out of curiosity
<loskutak>
In fact, I want to solve A*x = 0 (nullspace of A), so non-SVD methods would probably be ok as well.
pseudonymous has quit [Remote host closed the connection]
<Shinmera>
It does have LU and QR.
theothornhill has joined #lisp
pseudonymous has joined #lisp
<dieggsy>
hmm, what would be the best method to live code an ncurses application? Start a swank server in the program ?
charles` has joined #lisp
<loskutak>
dieggsy: idk, I probably just cannot load it properly. I do (ql:quickload "gsll"), (in-package :gsll), then I want to create the matrix with (make-marray) and I get gsll::make-marray is undefined... I am quite new to CL, so I have no idea what is going on... I have also tried testing the installation with (asdf:test-system :gsll), but that fails after while with heap exhausted error
<jackdaniel>
dieggsy: here is a rather hackish tutorial (for cl-charms binding to ncurses) :http://turtleware.eu/posts/cl-charms-crash-course.html
<jackdaniel>
on the same blog you will see also two tutorials about controlling the terminal without ncurses
<jackdaniel>
(these are shameless plugs of course)
<dieggsy>
jackdaniel: oh, sweet! thank you!
<dieggsy>
loskutak: i don't think you want to (in-package :gsll) like that
<charles`>
Would it be bad to tell a user to redefine a function from my library for configuration?
<dieggsy>
loskutak: for example, after (ql:quickload :gsll) you can use the gsl:sv-decomposition function
<dieggsy>
and you can still (make-array ) or whatever
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<Shinmera>
charles`: yes
<charles`>
So it would be better to ask them to define a *variable* as a lambda?
<Shinmera>
if by define you mean set, yes. At least then reloading your library would not override it (provided you defvar).
<Shinmera>
but it's still not great if multiple different actors would want to configure different aspects of your library.
<Shinmera>
you'd need a more complex mechanism in that case
<Shinmera>
but, not knowing anything about your case, it's hard to say.
xkapastel has quit [Quit: Connection closed for inactivity]
ljavorsk has joined #lisp
<dieggsy>
jackdaniel: that's pretty much exactly what i was looking for
<loskutak>
dieggsy: cool, this works - I can gsl:sv-decomposition, but if I give it an array created by (make-array '(2 3) :initial-contents '((3 2 2) (2 3 -2))), it fails with: There is no applicable method for the generic function ... gsll:mpointer (3). So I guess I have to convert the array to some other type?
<charles`>
Shinmera, thanks for the insight
pseudonymous has quit [Remote host closed the connection]
<_death>
loskutak: cl-mathstats has svd, though the symbol is not exported
<dieggsy>
jackdaniel: i'm not sure i understand (loop (sleep 1))
<dieggsy>
like, what it's for here
Thom2503 has joined #lisp
andrei-n has quit [Quit: Leaving]
mindCrime_ has quit [Ping timeout: 240 seconds]
<loskutak>
dieggsy: it seems that they create a matrix with #2m(...), but that gives me "no dispatch function defined for #\M"
notzmv has joined #lisp
notzmv is now known as Guest91421
Thom2503 has quit [Quit: Leaving]
<jackdaniel>
dieggsy: there is only one terminal, and that termial is accessed with standard-output (and other) streams bound in the thread started from said terminal
<jackdaniel>
so this (sleep 1) is to not have the repl in that "main" thread get in the way with input and output processing
<jackdaniel>
for example repl calls (read); so it is first waiting for a character (or a line) - to not have that you make it "busy"
<jackdaniel>
if you want to be more elegant, make it sleep for the most-positive-fixnum :)
_jrjsmrtn has joined #lisp
epony has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 260 seconds]
<loskutak>
_death: sorry, I am new to this - what does it mean that it is not exported? Can I load it somehow, or does that mean, that I have to copy the function definition to my code?
<dieggsy>
jackdaniel: not really sure i follow
<_death>
loskutak: it means it's not advertised as public by the library.. you can still call it like (cl-mathstats::singular-value-decomposition matrix)
<dieggsy>
loskutak: looks like they're using grid:make-foreign-array to create the matrices
<dieggsy>
loskutak: i believe that's from the antik library that the GSLL library mentions
<dieggsy>
indeed not a very friendly API
<Josh_2>
How do i check if a variable declared special is bound?
<Josh_2>
I tried boundp but that signals a condition
<_death>
loskutak: the library hasn't changed much in the last decade, so I think it's not a big deal.. you could try to submit a pull request that exports that symbol, or maybe start maintaining your own fork
<_death>
Josh_2: note that you need to pass the name of the variable to boundp
<Josh_2>
Well I have (declare (special *validate*))(when (and (boundp *validate*) *validate*) <do my thing>)
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<_death>
(boundp '*variable*)
<Josh_2>
oof
lotuseater has quit [Read error: Connection reset by peer]
<Josh_2>
Simple mistakes like this do make me laugh
<Josh_2>
Thanks
<loskutak>
dieggsy: thanks, I am now able to create the matrices. So much pain... To finally arrive to "Requested feature not (yet) implemented; svd of MxN matrix, M<N, is not implemented in svd.c at line 60" :D
<dieggsy>
LOL
zefram22 has joined #lisp
<dieggsy>
I had been working on a GSL wrapper for chicken scheme a while back
<dieggsy>
maybe i'll look into writing one for CL too jaja
theothornhill has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
theothornhill has joined #lisp
amb007 has joined #lisp
andrei-n has joined #lisp
<loskutak>
I will now try the cl-mathstats svd, then do it with QR decomposition from 3d-matrices instead and if I fail on both of these I will just give up... I am really trying to like CL, but using any external code feels like hitting my head against a wall again and again. It is not very newcomer-friendly :D.
<Josh_2>
Gotta try some easier to use libraries. Simple az
<dieggsy>
loskutak: good computational math libraries are hard to come by in most languages that aren't like the top 5
<dieggsy>
in terms of popularity/industry usage i guess
aartaka has joined #lisp
CL-ASHOK has joined #lisp
Lord_of_Life_ has joined #lisp
<loskutak>
that is understandable. I use python/numpy for most of my work, so I am used to having these functions. I was happy that there is numpy "clone" numcl, but that doesn't have the SVD implemented.. :/
<CL-ASHOK>
CL-JSON or YASON - which one do you guys recommend?
Lord_of_Life has quit [Ping timeout: 252 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<jackdaniel>
dieggsy: say you start lisp form the terminal. the repl runs and it calls (read-line)
<jackdaniel>
then you connect from emacs and call a function (read-char *stdio*)
<jackdaniel>
since the first repl already called dips, the first input will go to it (and confuse you probably)
<jackdaniel>
dibs*
<Josh_2>
CL-ASHOK: I always use Jojo
amb007 has quit [Read error: Connection reset by peer]
<Josh_2>
Jonathan
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
Sheilong has quit []
amb007 has joined #lisp
<Shinmera>
I've had jonathan hard crash my lisp because it apparently does some really nasty shit in the name of optimisation.
<Shinmera>
I think I typically use jsown or yason.
<jackdaniel>
jsown has that safety 0 speed 3 declaration, just so you know (it may have unhandled memory faults for incorrect input)
<jackdaniel>
bedtime, goodnight folks \o
aartaka has quit [Ping timeout: 246 seconds]
<CL-ASHOK>
nights
<loskutak>
great news, the cl-mathstats SVD works :). It cannot do MxN matrices with M<N either, but it helpfully told me to add rows of zeros and then it works :) (except it doesn't sort the singular values, but that would not be a problem). I have then tried this "add zero rows" trick in gsll and it works too and gives me more precision. Thanks a lot for all the help, guys.
cage_ has quit [Quit: Leaving]
<CL-ASHOK>
Josh_2: Will check out Jonathan too, currently using Yason
anticrisis has joined #lisp
aartaka has joined #lisp
vaporatorius__ has joined #lisp
ljavorsk has quit [Ping timeout: 245 seconds]
Vaporatorius has quit [Ping timeout: 240 seconds]
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
CL-ASHOK has quit [Quit: Ping timeout (120 seconds)]
<dieggsy>
loskutak: nice! I'm definitely no stranger to missing numpy's convenience in other languages, so i feel your pain heh
<dieggsy>
jackdaniel: ah ok. thanks for the explanation
aartaka_d has quit [Ping timeout: 252 seconds]
MrFantas` has joined #lisp
CL-ASHOK has joined #lisp
epony has joined #lisp
cosimone has quit [Remote host closed the connection]
akoana has joined #lisp
ssake has joined #lisp
MrFantastik has quit [Ping timeout: 250 seconds]
<moon-child>
there is april
shka_ has quit [Ping timeout: 265 seconds]
CL-ASHOK has quit [Quit: Connection closed]
<dieggsy>
moon-child: that's very cool and i hadn't heard of it, but I'm not sure I'd describe APL as "convenient" heh
luni has joined #lisp
luni has left #lisp [#lisp]
kevingal has joined #lisp
pjb has joined #lisp
<moon-child>
call it an acquired taste
<dieggsy>
lol, sure
Inline has quit [Ping timeout: 260 seconds]
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
theothornhill has quit [Ping timeout: 252 seconds]
theothornhill has joined #lisp
andrei-n has quit [Quit: Leaving]
pacon has quit [Remote host closed the connection]
anticrisis_ has joined #lisp
supercoven_ has joined #lisp
supercoven_ has quit [Max SendQ exceeded]
ljavorsk has joined #lisp
zefram22 has quit [Quit: zefram22]
supercoven_ has joined #lisp
zefram22_ has joined #lisp
jackhill has quit [Ping timeout: 250 seconds]
anticrisis has quit [Ping timeout: 240 seconds]
supercoven has quit [Ping timeout: 240 seconds]
jackhill has joined #lisp
daphnis has quit [Ping timeout: 265 seconds]
MrFantas` has quit [Remote host closed the connection]
surabax has quit [Quit: Leaving]
aartaka has joined #lisp
zefram22_ has quit [Quit: zefram22_]
nature has quit [Ping timeout: 252 seconds]
heisig has quit [Quit: Leaving]
heretical_crypte has quit [Ping timeout: 245 seconds]
heretical_crypte has joined #lisp
e[m]1 has quit [Ping timeout: 245 seconds]
e[m]1 has joined #lisp
kreyren has joined #lisp
kreyren has quit [Changing host]
kreyren has joined #lisp
etimmons has quit [Quit: authenticating]
etimmons has joined #lisp
<dieggsy>
besides rlwrap (and of course slime from emacs), is there a go-to for a more pleasant terminal REPL experience?
<Shinmera>
there's linedit, though I haven't used it myself.
<dieggsy>
hmmmm. i've figured out using roswell with system lisp, i wonder if i can make it use my pre-installed quicklisp as wel
<dieggsy>
moon-child: ros install install is failing with Symbol "%SIMPLE-FUN-NEXT" not found in the SB-KERNEL package.
<dieggsy>
ah, linedit is pretty nice i suppose
<antoszka>
it's not too bad
<antoszka>
as long as it works
frgo has quit [Remote host closed the connection]
wsinatra has quit [Quit: WeeChat 3.1]
frgo has joined #lisp
epony has quit [Ping timeout: 240 seconds]
<dieggsy>
ah, actually, rlwrap gives me vi-style bindings so rlwrap it is lol
<dieggsy>
sbcl-readline isn't available on quicklisp i guess
perrier-jouet has quit [Quit: WeeChat 3.1]
epony has joined #lisp
ljavorsk has quit [Ping timeout: 240 seconds]
loskutak has quit [Ping timeout: 252 seconds]
amb007 has quit [Read error: Connection reset by peer]
<MetaYan_>
dieggsy: sbcl-readline is not in the distribution, so to install it, one just clones it in ~/quicklisp/local-projects/ and runs (ql:register-local-projects) once.
varjag has quit [Ping timeout: 252 seconds]
amb007 has joined #lisp
random-nick has quit [Ping timeout: 240 seconds]
theothornhill has quit [Remote host closed the connection]
<dieggsy>
MetaYan_: neat, thanks
<MetaYan_>
dieggsy: I use it because it has completion and easy access to function documentation, plus it saves history.
nij has left #lisp ["ERC (IRC client for Emacs 27.2)"]
<dieggsy>
MetaYan_: how do you access function docs?
<MetaYan_>
dieggsy: With a space after the function, just press TAB.
random-nick has joined #lisp
saganman has quit [Ping timeout: 240 seconds]
<dieggsy>
cool
<dieggsy>
i'm still mostly use slime, but having something nice to fallback to is always nice
<MetaYan_>
dieggsy: TAB twice.
<MetaYan_>
dieggsy: Same here.
<MetaYan_>
dieggsy: For the real stuff, it's Portacle here.
<dieggsy>
do you find yourself regularly switching computers?
<MetaYan_>
dieggsy: I have many with different OSes, so yes. Lisp works fine on all ;). Why? (Maybe continue in #lispcafe)
zzappie has quit [Ping timeout: 240 seconds]
epony has quit [Ping timeout: 240 seconds]
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
pseudonymous has quit [Remote host closed the connection]
srhm has quit [Remote host closed the connection]
srhm has joined #lisp
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
kevingal has quit [Remote host closed the connection]
gumman has quit [Read error: Connection reset by peer]
gumman has joined #lisp
attila_lendvai has quit [Ping timeout: 260 seconds]