<Wezl>
so I read the elements and an optional (cdr (last))
<Wezl>
(is there a name for that?)
<_death>
I guess "tail".. that's how clhs calls it :)
rozenglass has quit [Ping timeout: 276 seconds]
seok has joined #lisp
seok has quit [Client Quit]
kevingal has quit [Remote host closed the connection]
kevingal_ has quit [Remote host closed the connection]
<gabc>
Well I got slime/sbcl working on windows \o/
gzj has joined #lisp
charles` has quit [Ping timeout: 264 seconds]
iskander has joined #lisp
thmprover has joined #lisp
Wezl has left #lisp ["thanks for the help"]
varjagg has quit [Ping timeout: 276 seconds]
iskander has quit [Quit: bye]
ukari has joined #lisp
iskander has joined #lisp
catern has joined #lisp
<catern>
hi #lisp, I've always heard/assumed/believed that Common Lisp supports live upgrade of a running application, such that I can keep the runtime state of the application around while still upgrading it (rather than trashing all that runtime state with a process restart, like one might do to upgrade a Unix application written in C)
<catern>
is this accurate? do you have any pointers on where to learn more about this? are there any good descriptions of how people do this?
<moon-child>
catern: are you using emacs and slime?
<catern>
moon-child: probably for development, but probably not for a production instance of my application, right?
jonatack_ has joined #lisp
cgay_ has quit [Remote host closed the connection]
Wezl has joined #lisp
jonatack_ has quit [Read error: Connection reset by peer]
gilberth_ has joined #lisp
<gilberth_>
Has someone a copy of CLtL1 handy?
<Gnuxie[m]>
gilberth_: yeah but it's gross and i don't want to touch it
omtrent has quit [Quit: WeeChat 3.0]
<gilberth_>
Mine is falling apart and 100km away. I just wanted to know whether PARSE-MACRO is doing what I recall it should do.
luni has quit [Quit: Connection closed]
<Gnuxie[m]>
hang tight, i'm going in
ravndal has joined #lisp
kreyren has quit [Changing host]
kreyren has joined #lisp
kreyren has joined #lisp
kreyren has quit [Changing host]
frost-lab has joined #lisp
iamFIREc1 has joined #lisp
iamFIREcracker has quit [Ping timeout: 246 seconds]
<gilberth_>
Gnuxie[m]: Silly me, sorry. I found a specification in CLtL2. I must have misremembered.
<gilberth_>
I am very sorry, but thanks alot for your effort.
<Gnuxie[m]>
smh, yeah, it wasn't in the index
<gilberth_>
No. I misremembered and was looking at ANSI-CL, where it is not part of and forgot that CLtL2 also has a bunch of stuff not part of ANSI-CL.
<gilberth_>
So, being naive I just assumed CLtL1 would have that.
<gilberth_>
Anyhow, I am implementing a full PARSE-MACRO now as I am tired of ad hoc broken definitions of mine.
gilberth_ has quit [Quit: Back to the cafe.]
supercoven_ has joined #lisp
supercoven_ has quit [Max SendQ exceeded]
supercoven_ has joined #lisp
supercoven_ has quit [Max SendQ exceeded]
supercoven_ has joined #lisp
supercoven has quit [Ping timeout: 276 seconds]
hiroaki_ has quit [Ping timeout: 272 seconds]
ex_nihilo has joined #lisp
Wezl has quit [Ping timeout: 272 seconds]
karlosz has quit [Quit: karlosz]
int80h has joined #lisp
random-nick has quit [Ping timeout: 265 seconds]
frost-lab has quit [Quit: Connection closed]
mrchampion has quit [Ping timeout: 264 seconds]
pagnol has joined #lisp
gzj has quit [Remote host closed the connection]
gzj has joined #lisp
gko has joined #lisp
terpri has joined #lisp
mrchampion has joined #lisp
GZJ0X_ has joined #lisp
gzj has quit [Ping timeout: 265 seconds]
slyrus has joined #lisp
nicktick has joined #lisp
slyrus has quit [Ping timeout: 240 seconds]
semz has quit [Ping timeout: 264 seconds]
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
Lord_of_Life_ has joined #lisp
attila_lendvai has quit [Ping timeout: 265 seconds]
Lord_of_Life has quit [Ping timeout: 272 seconds]
wildlander has joined #lisp
Lord_of_Life_ is now known as Lord_of_Life
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
GZJ0X_ has quit [Remote host closed the connection]
int80h has quit [Quit: Connection closed for inactivity]
prxq has quit [Ping timeout: 240 seconds]
galex-713_ has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
Alloc has joined #lisp
Alloc has quit [Remote host closed the connection]
Alfr has joined #lisp
bilegeek has quit [Quit: Leaving]
bilegeek has joined #lisp
<beach>
Good morning everyone!
<KahMue>
I'm currently trying out qtools. I want to customize QAbstractTableModel and QTableView. My implementation simply returns 13 for column-count and 2 for row-count. "data" returns
<KahMue>
(format NIL "(~a, ~a)" row column).
<KahMue>
But the TableView shows this annoying checkboxes .... any hints on how to get rid of them?
wildlander has quit [Quit: Konversation terminated!]
daybreaks has joined #lisp
<contrapunctus>
fiddlerwoaroof: ^ would you consider naming it something else? It's difficult to search for it, as most results point to the libgit wrapper.
galex-713 has joined #lisp
notzmv has quit [Ping timeout: 240 seconds]
catt has joined #lisp
scymtym_ has joined #lisp
slyrus has quit [Remote host closed the connection]
sm2n has quit [Ping timeout: 264 seconds]
sm2n has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
slyrus has joined #lisp
Nilby has joined #lisp
slyrus has quit [Remote host closed the connection]
slyrus has joined #lisp
daybreaks has quit []
frost-lab has joined #lisp
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
ebrasca has joined #lisp
ebrasca has quit [Remote host closed the connection]
IPmonger has quit [Ping timeout: 265 seconds]
skapata has joined #lisp
frost-lab has quit [Quit: Connection closed]
GZJ0X_ has quit [Read error: Connection reset by peer]
GZJ0X_ has joined #lisp
slyrus has quit [Remote host closed the connection]
slyrus has joined #lisp
slyrus has quit [Ping timeout: 265 seconds]
Oladon1 has quit [Read error: Connection reset by peer]
pagnol has quit [Ping timeout: 265 seconds]
<pyc>
I know that ASDF is used to depend on other packages but if I am writing a "script" for personal use, is it acceptable to (require :asdf) or do you still recommend setting up a dependency via systems?
Oladon has joined #lisp
johan11 has joined #lisp
<Nilby>
pyc: If it's for personal use, the question is "is it acceptable to you". But I have done a (require :asdf) manually in scripts and such. But unless you're using nothing from quicklisp, it's probably better to just (load "quicklisp/setup.lisp") or whatever incantation quicklisp puts in your .lisprc, which will get the appropriate asdf.
<pyc>
Nilby: It is acceptable to me but I am beginner, so I am concerned about not developing bad habits. That's why I thought of checking here with you guys once.
<pyc>
Nilby: I have (load "quicklisp/setup.lisp") in my ~/.sbclrc but it does not seem to load asdf by default. I am required to (require :asdf) despite that to be able to run my program in script mode: sbcl --script program.lisp
<Nilby>
The topic of running a lisp script from a fresh lisp, has many differing opinions in the community. Some some only run from slime, use roswell, some run from command line shell scripts,
<pyc>
Nilby: if the Lisp program is part of automation, one has to run it from shell scripts, right? SLIME is good only for interactively running the program when a human is present, is it not?
<Nilby>
Hmmm. quicklisp always loads asdf as far as I know, but maybe it doesn't register as "require"d
<pyc>
Nilby: by the way, is .lisprc a valid filename or was that just a placeholder you used in your message. I use .sbclrc. Do you use .lisprc on your system? Which CL implementation honours .lisprc?
<pyc>
let me reinstall quicklisp fresh and see if asdf works without having to require it.
frost-lab has joined #lisp
<Nilby>
Yes, that's a placeholder.
thmprover has quit [Quit: Up, up, and away]
<Nilby>
Sometimes quicklisp may load its own version of asdf and not the one that is from "require"
waleee-cl has quit [Quit: Connection closed for inactivity]
<pyc>
Okay, I have ~/.sbclrc setup by Quicklisp. I have foo.lisp with: (format t "~a~%" (uiop:getcwd)). I run: sbcl --script foo.lisp. I get error: Package UIOP does not exist.
<pyc>
surprisingly, sbcl --load foo.lisp --quit works fine.
sauvin has joined #lisp
slyrus has joined #lisp
<pyc>
The man page for sbcl --script option says: As a runtime option equivalent to --noinform --disable-ldb --lose-on-corruption --end-runtime-options --script <filename>. See the description of --script as a toplevel option below. Not sure if one of these options is causing ~/.sbclrc to be ignored.
<pyc>
Let me put some debug print statements in ~/.sbclrc and see if it is getting loaded at all.
<Nilby>
Hmmm. I haven't used --script. It probably avoids most setup. Likely for use as in a #! script
<pyc>
Confirmed. sbcl --script does not load ~/.sbclrc but sbcl --load foo.lisp --quit does load ~/.sbclrc.
<Nilby>
I think a good habit is to have your script work with a very fresh unconfigured sbcl, without any .sbclrc or dot files. That way you can use it as a different user, and have it work.
<pyc>
Nilby: yes, agree. that is how I will test.
<Nilby>
Hmm. So it must be doing --no-userinit too
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
<pyc>
Okay, so the --script option is documented twice in man page. Not sure what the difference is between them The first entry says: As a runtime option equivalent to --noinform --disable-ldb --lose-on-corruption --end-runtime-options --script <filename>. See the description of --script as a toplevel option below.
<pyc>
The second entry says: Implies --no-sysinit --no-userinit --disable-debugger --end-toplevel-options.
<pyc>
It looks like the second entry is relevant for what I am doing.
<pyc>
The first entry is listed under "Supported runtime options". The second entry is listed under "toplevel options".
<Nilby>
It really depends on what the script is doing, whether you want to load the uers's init file. If it provides a repl than maybe, otherwise probably not.
<Nilby>
Or at least it give the script more control not to use the users setup.
slyrus has quit [Ping timeout: 265 seconds]
<Nilby>
But for development of course it's easier to have your prefered things loaded automatically.
<Nilby>
sbcl is picky (or quirky even) about the order of it's arguments
<Nilby>
some are parsed by the "c kernel" some by later lisp code
Bourne has joined #lisp
GZJ0X_ has quit [Remote host closed the connection]
<Nilby>
All those --script arguments do seem to help expectations for most scripts.
GZJ0X_ has joined #lisp
aartaka has joined #lisp
<Nilby>
If only one could pass --lose-on-corruption to running intuitions.
aartaka_d has joined #lisp
kaiwulf has quit [Ping timeout: 272 seconds]
aartaka has quit [Ping timeout: 265 seconds]
slyrus has joined #lisp
shka_ has joined #lisp
slyrus has quit [Ping timeout: 265 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
frost-lab has quit [Quit: Connection closed]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
sm2n has quit [Ping timeout: 256 seconds]
slyrus has joined #lisp
aggin has joined #lisp
<aggin>
how can I add files in a folder in asdf:defsystem's :components ?
johan11 has quit [Ping timeout: 240 seconds]
Oladon has quit [Quit: Leaving.]
slyrus has quit [Ping timeout: 265 seconds]
zmv- has joined #lisp
theothornhill has joined #lisp
GZJ0X_ has quit [Read error: Connection reset by peer]
GZJ0X_ has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
anticrisis has quit [Read error: Connection reset by peer]
theothornhill has quit [Remote host closed the connection]
GZJ0X__ has joined #lisp
slyrus has joined #lisp
GZJ0X_ has quit [Ping timeout: 246 seconds]
asarch has joined #lisp
slyrus has quit [Ping timeout: 276 seconds]
frost-lab has joined #lisp
quadrassel4321 has joined #lisp
GZJ0X__ has quit [Remote host closed the connection]
GZJ0X__ has joined #lisp
slyrus has joined #lisp
aggin has quit [Quit: WeeChat 3.0.1]
slyrus has quit [Ping timeout: 256 seconds]
iskander has quit [Quit: bye]
asarch has quit [Ping timeout: 272 seconds]
slyrus has joined #lisp
slyrus has quit [Ping timeout: 246 seconds]
iskander has joined #lisp
imode1 has quit [Ping timeout: 265 seconds]
hendursa1 has joined #lisp
hendursaga has quit [Ping timeout: 268 seconds]
frost-lab has quit [Quit: Connection closed]
epony has quit [Quit: upgrade]
slyrus has joined #lisp
slyrus has quit [Ping timeout: 265 seconds]
dwts_ has quit [Remote host closed the connection]
vert2 has quit [Read error: Connection reset by peer]
Tordek has quit [Remote host closed the connection]
aeth has quit [Ping timeout: 264 seconds]
aeth has joined #lisp
<Posterdati>
hi
<contrapunctus>
hi
<pyc>
hi
<moon-child>
hi
<seok>
hi
surabax has joined #lisp
<susam>
hi
<contrapunctus>
Oh, aggin left 🤔
<Posterdati>
please help! I need to render csv data in a diagram, what is the easiest way to do so, using common lisp? Thanks!
charles` has quit [Ping timeout: 264 seconds]
<Nilby>
What kind of diagram?
<edgar-rft>
the *easiest* is pitit it out in a long uncomprehensible list diagram :-)
attila_lendvai has joined #lisp
<edgar-rft>
*spit* it out of course
<Posterdati>
Nilby: harmonics amplitude vs armonic orders
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
Feldman has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
random-nick has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
vegansbane6963 has joined #lisp
heisig has joined #lisp
GZJ0X__ has quit [Read error: Connection reset by peer]
slyrus has joined #lisp
GZJ0X__ has joined #lisp
GZJ0X__ has quit [Remote host closed the connection]
GZJ0X__ has joined #lisp
skapata has joined #lisp
VincentVega has quit [Quit: Connection closed]
slyrus has quit [Ping timeout: 246 seconds]
Feldman has joined #lisp
terrorjack has joined #lisp
Feldman has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
VincentVega has joined #lisp
asarch has joined #lisp
Feldman has joined #lisp
<VincentVega>
So, I have a problem where a metaclass-based MOP errors out with certain inheritence conditions (B inherits from A and contains an error which happens during inheritence finalization), but then when I redefine B correctly, trying to reevaluate definition of A yields the error again (even after redefining B correctly). This is annoying, and I have
<VincentVega>
no clue what to do about it, other than restart the image. I tried makunbound on all classes and doing the finalization, but nothing. Any ideas how this may be treated? PS It's like this on CCL and ECL, but SBCL is just fine.
zaquest has quit [Quit: Leaving]
iskander has quit [Quit: bye]
zaquest has joined #lisp
slyrus has joined #lisp
iskander has joined #lisp
luis has quit [Ping timeout: 272 seconds]
slyrus has quit [Ping timeout: 256 seconds]
luis has joined #lisp
gitgood has joined #lisp
ljavorsk has joined #lisp
domovod has joined #lisp
Feldman has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Feldman has joined #lisp
slyrus has joined #lisp
slyrus has quit [Ping timeout: 272 seconds]
nullx002 has joined #lisp
nullx002 has quit [Client Quit]
KahMue has joined #lisp
GZJ0X__ has quit [Remote host closed the connection]
attila_lendvai has quit [Ping timeout: 246 seconds]
GZJ0X__ has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
<VincentVega>
With asdf, can I just say: import what that other package imports?
<VincentVega>
although, I guess, can just define a macro for that...
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
slyrus has joined #lisp
zmv- has quit [Ping timeout: 256 seconds]
slyrus has quit [Ping timeout: 264 seconds]
terpri_ has joined #lisp
terpri has quit [Ping timeout: 264 seconds]
<shka_>
question: is package (global) nickname is effectively the same as the package name or there is the use case where nickname can't be used
<beach>
I think there is no distinction in how they can be used.
<shka_>
ok, that's good
bitmapper has joined #lisp
slyrus has quit [Ping timeout: 256 seconds]
retropikzel has quit [Quit: Leaving]
orivej has joined #lisp
attila_lendvai has joined #lisp
asarch has quit [Quit: Leaving]
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 265 seconds]
X-Scale` is now known as X-Scale
retropikzel has joined #lisp
krid has joined #lisp
GZJ0X__ has quit [Remote host closed the connection]
Sheilong has joined #lisp
GZJ0X__ has joined #lisp
slyrus has joined #lisp
IPmonger has joined #lisp
GZJ0X__ has quit [Remote host closed the connection]
GZJ0X__ has joined #lisp
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 264 seconds]
X-Scale` is now known as X-Scale
slyrus has quit [Ping timeout: 264 seconds]
GZJ0X__ has quit [Remote host closed the connection]
GZJ0X__ has joined #lisp
IPmonger has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
GZJ0X__ has quit [Remote host closed the connection]
GZJ0X__ has joined #lisp
ex_nihilo has quit [Ping timeout: 240 seconds]
GZJ0X__ has quit [Remote host closed the connection]
IPmonger has joined #lisp
GZJ0X__ has joined #lisp
GZJ0X__ has quit [Remote host closed the connection]
GZJ0X__ has joined #lisp
ljavorsk has quit [Ping timeout: 276 seconds]
GZJ0X__ has quit [Remote host closed the connection]
hiroaki_ has joined #lisp
surabax has quit [Quit: Leaving]
krid has quit [Remote host closed the connection]
attila_lendvai has quit [Ping timeout: 265 seconds]
pfdietz has quit [Ping timeout: 240 seconds]
Inline has left #lisp ["Leaving"]
Inline has joined #lisp
slyrus has joined #lisp
<pyc>
is there any possible reason (ensure-directories-exist "foo/bar/" :verbose t) will not create directories when I execute my program through SLIME but will create directories when I am doing so on the shell via sbcl --script program.lisp?
<Nilby>
I would guess your working directory in the SLIME lisp might be different than you think.
<pyc>
I got a clue. While executing through slime, it is creating the directory at ~/foo/bar/ (not my current directory).
<pyc>
now the problem is that (uiop:getcwd) in SLIME shows ~/workspace as SLIME's current directory. Still (ensure-directories-exist "foo/bar/" :verbose t) is creating the folders at ~/foo/bar/. Why isn't it creating them at ~/workspace/foo/bar/?
<Nilby>
*default-pathname-defaults* vs (uiop:getcwd)
<pyc>
Nilby: you are right. *default-pathname-defaults* shows my home directory. Do all CLHS file functions default to that?
<Nilby>
*default-pathname-defaults* is where lisp file functions will work, and getcwd is where lower level os things will default to
<pyc>
it gets confusing because `uiop:delete-directory-tree` defaults to current directory but `ensure-directories-exist` defaults to home directory.
<pyc>
It looks like as a best practice I should then use absolute paths everywhere by concatenating (uiop:getcwd) myself to all paths I need to work with?
<Nilby>
It's terribly confusing. I use a change-directory function or with-directory which always sets both.
<pyc>
:(
<Nilby>
But, yes absolute paths can also work, but to me it's too annoying a requirement.
<Nilby>
When I first started using CL it drove me crazy. Then I wrote my own things which are always consistent.
<Nilby>
But I can't recommend anyone follow my path to madness.
<Nilby>
It's probably best to use the normal idiomatic things, and test any file operations thoroughly.
<pyc>
what would be an idiomatic way to handle this?
eoyath has joined #lisp
VincentVega has quit [Quit: Connection closed]
<Nilby>
I'm probably not the person to ask. But I notice the excellent quicklisp software uses the standard CL functions and carefully gets it right, but adjusts for portability with #+
slyrus has quit [Ping timeout: 246 seconds]
<pyc>
Nilby: can you point me to the quicklisp code you are looking at?
<Nilby>
I'm not looking at anything specific, but most stuff in the ~/quicklisp/quicklisp/ directory, does a lot of file and directory operations.
<Nilby>
it wrap around some implementaion quirks in impl-util.lisp
<Nilby>
but of course quicklisp can't really safely use uiop
<Nilby>
but I should probably refrain from giving advice, since I rarely do things the recommended way
<Nilby>
until I learn it the hard way
contrapunctus has left #lisp ["Disconnected: closed"]
<pyc>
thanks Nilby for sharing your knowledge so far. This fact about *default-pathname-defaults* was eye opening for me.
contrapunctus has joined #lisp
<Nilby>
That was one I had to learn the hard way after deleting all the corporate databases.
lansiir has joined #lisp
zmv- has joined #lisp
_oldtopman has quit [Ping timeout: 265 seconds]
Josh_2 has joined #lisp
<Josh_2>
Afternoon
<Nilby>
Hi Josh_2
<Josh_2>
How's it going Nilby?
<Nilby>
The earth spins fast, but I code slow
estest has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 240 seconds]
<Josh_2>
Well I just watched a video of a tortoise beating a hare in a straight line race ¯\_(ツ)_/¯
<Nilby>
Nice. Maybe there's hope for me then. :o
citizenajb has joined #lisp
iskander has quit [Quit: bye]
Feldman has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
slyrus has joined #lisp
orivej has joined #lisp
Feldman has joined #lisp
iskander has joined #lisp
cartwright has quit [Ping timeout: 268 seconds]
cartwright has joined #lisp
slyrus has quit [Remote host closed the connection]
troydm has quit [Ping timeout: 240 seconds]
Feldman has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<pyc>
Why is it named *default-pathname-defaults*? What is the significance of 'default' on both sides of the name? also why 'defaults' (plural) in the end when all it contains is a single path value?
slyrus has joined #lisp
<pyc>
Is there something in CLHS to (1) copy file (2) copy directory recursively? Or do I need to take a look at uiop for it?
<pyc>
uiop indeed has copy-file. What about copy directory?
Feldman has joined #lisp
iskander has quit [Quit: bye]
<TMA>
pyc: pathname has several components (version, type, ...) and the values of those components in the value of *default-pathname-defaults* provide the defaults
holycow has quit [Quit: Lost terminal]
slyrus has quit [Remote host closed the connection]
slyrus has joined #lisp
kam1 has joined #lisp
pve has joined #lisp
troydm has joined #lisp
<Nilby>
:defaults is keyword argument to make-pathname, which sets the default values for the components. *default-pathname-defaults* is effectively the default value of the :default keyword the make-pathname. It's plural because it specifies the defaults for the multiple components of the pathname, like host, device, etc. The idea that it should work on things like VMS, TOPS-20, Unix, DOS, LispM, etc. is why it's so crazy.
Lycurgus has joined #lisp
domovod has quit [Ping timeout: 246 seconds]
<Nilby>
It's like a URL before URLs were invented, but that sadly can't fully capture URL syntax now, and leaves a lot of flexibility to be inconsistent.
citizenajb has left #lisp ["Killed buffer"]
waleee-cl has joined #lisp
johan11 has joined #lisp
johan11 has quit [Client Quit]
epony has quit [Remote host closed the connection]
slyrus has quit [Remote host closed the connection]
kevingal has joined #lisp
epony has joined #lisp
long4mud has quit [Ping timeout: 240 seconds]
<Xach>
mfiano: are you aware of today's build failure in algae?
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
slyrus has joined #lisp
<mfiano>
Xach: no, but your log is 403 forbidden.
<mfiano>
ignore me. it's 2021 already
zmv- has quit [Ping timeout: 246 seconds]
<mfiano>
fixed
zmv- has joined #lisp
toorevitimirp has joined #lisp
yangby has joined #lisp
Feldman has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
slyrus has quit [Remote host closed the connection]
ex_nihilo has joined #lisp
fourweasle has quit [Quit: rcirc on GNU Emacs 26.1]
yangby has quit [Quit: Go out for a walk and buy a drink.]
Nilby has quit [Ping timeout: 264 seconds]
galex-713 has quit [Ping timeout: 272 seconds]
Feldman has joined #lisp
Lycurgus has quit [Quit: Exeunt]
holycow has joined #lisp
<holycow>
hi.
jonatack has joined #lisp
<holycow>
i'm trying to consume data from a text file, stuff it into a plist and do some lookups as per the gigamonkeys common lisp book.
galex-713 has joined #lisp
<holycow>
however, after i consume the data, even though the plist seems properly formatted, getf complains about a malformed property list
<holycow>
i did catch that it didn't like empty new lines in a text file, but that means i should do some text pre-processing before stuffing the data into a plist
<holycow>
i can't see what getf is complaining about
zmv- is now known as notzmv
notzmv has quit [Changing host]
notzmv has joined #lisp
<splittist>
holycow: aren't you passing in a list of property lists?
<Xach>
mfiano: thanks
galex-713_ has joined #lisp
galex-713 has quit [Ping timeout: 264 seconds]
<holycow>
splittist:: total noob here, not sure what that means. the plist format looks the same to me as the gigamonkeys example of ((list1)(list2)(etc))
<holycow>
woops that is a bit obtuse sorry one sec
<holycow>
in chapter 3 he creates a ripped music *db*
<holycow>
and pushes (list :name name :ripped ripped :rating rating) to *db*
<holycow>
and ends up with ((list1)(list2)(list3))
<holycow>
in his example getf can return all entries something like (getf *db* :rating)
<holycow>
and mine cannot
<splittist>
holycow: sure. But he uses GETF on an element of that list.
<holycow>
(getf *music* :name) is not acting on an element of the list?
<holycow>
okay actually that is good enough for me to google further
<splittist>
holycow: no - it's acting on the whole *music* list.
<pyc>
_death: thanks! is there nothing available in CLHS or uiop?
iskander has quit [Quit: bye]
<_death>
pyc: not that I'm aware of.. like I said, there are many choices to make, so a general solution would be a function with lots of options of a library for building such an operation
<_death>
*or a library
yuan has joined #lisp
<yuan>
Are there any hunchentoot wizards?
<yuan>
I'm having a strange problem.
<_death>
if you elaborate someone may answer
<yuan>
Some threads it created hangs around and aren't cleaned off.
<yuan>
And eventually it hits the maximum number of threads and start giving 503.
<_death>
where do the threads hang?
<yuan>
I'm not sure how to investigate, (bt:all-threads) gives me a list of threads but I don't know how to see what each are doing.
<_death>
are you using slime?
<yuan>
yea sly connected to the server
<_death>
well, if you try `C-c C-x t` in the repl then a thread listing may pop up
<_death>
then you can interrupt a thread at point by typing `i`
<_death>
or actually, debug by typing `d`..
<yuan>
Aha, I'm in the debugger now
euandreh has quit [Quit: WeeChat 3.0.1]
<_death>
then you can look at the backtrace.. `v` to show source, etc.
juliusdeane has joined #lisp
heisig has quit [Quit: Leaving]
<yuan>
It's in hunchentoot::read-initial-request-line
<yuan>
the top most stakframe is sb-sys:wait-until-fd-usable
<yuan>
Let me see what this is
quadrassel4321 has quit [Quit: Leaving]
<_death>
so it waits for a line from the stream.. I guess hunchentoot or you can set up a timeout
<_death>
maybe it's just a too large timeout
<juliusdeane>
how do I get slime to print sdtout output from a function called through cffi?
<juliusdeane>
I'm able to call printf and flush to get output when running sbcl from the command-line
<yuan>
@_death I thought the timeout is set by default, let me check
<juliusdeane>
but in the slime repl, it doesn't work for some reason
slyrus has quit [Remote host closed the connection]
<Alfr>
juliusdeane, I think it'll be in the inferior-lisp buffer.
slyrus has joined #lisp
<juliusdeane>
ah, ok
<juliusdeane>
yeah it is lol
<juliusdeane>
thanks
<yuan>
So it does have read & write timeout, maybe something went wrong in that function
rogersm has quit [Quit: Leaving...]
shka_ has quit [Ping timeout: 276 seconds]
slyrus has quit [Ping timeout: 272 seconds]
orivej has quit [Ping timeout: 240 seconds]
<yuan>
None of the functions in the call stack has timeout parameter
<yuan>
I'll bring this up to the author, maybe he knows what's going on.
<yuan>
Thanks!
anticrisis has joined #lisp
Nilby has quit [Ping timeout: 264 seconds]
<_death>
yuan: the socket file descriptor has associated timeouts
slyrus has joined #lisp
<yuan>
I see, I'll need to look at where it's created then.
akoana has joined #lisp
<_death>
hunchentoot's acceptor has timeout initargs.. it calls a set-timeouts function in accept-connections, prior to calling handle-incoming-connection, which in turn creates a thread and eventually calls process-connection, which calls get-request-data, which calls read-initial-request-line..
imode1 has joined #lisp
slyrus has quit [Ping timeout: 276 seconds]
<yuan>
Somehow this timeout isn't taking effect.
<yuan>
I can see that the stream object's timeout attribute is 20.0
<_death>
maybe try to create a small test case
juliusdeane has left #lisp ["ERC (IRC client for Emacs 27.1)"]
catt has quit [Remote host closed the connection]
<_death>
well, maybe it doesn't even try to read from the socket, just waits until it's readable
<_death>
well, cl+ssl's definition looks a bit strange
<_death>
its ssl-stream class has a deadline slot.. is it filled
charles` has joined #lisp
<_death>
maybe make-ssl-server-stream should pass a :deadline initarg with value derived from the stream it wraps
<yuan>
Yeah :deadline is nil
<yuan>
I mean the deadline attribute is nil
<_death>
well, what happens if you give it a deadline?
hiroaki_ has quit [Ping timeout: 272 seconds]
<yuan>
Ok I understand what you mean now, this make-ssl-server-steam does look a bit wrong
iskander has joined #lisp
Aurora_v_kosmose has quit [Remote host closed the connection]
<_death>
to try, you can call (setf cl+ssl::ssl-stream-deadline) in an :around method for initialize-connection-stream ..
<_death>
or just patch it ;)
<yuan>
Ok, I set the deadline attribute, restarted and can't see that thread anymore, I think that's it
Aurora_v_kosmose has joined #lisp
<_death>
I guess not many stumble on this code path.. for example, I use hunchentoot for years, but with nginx frontending, so no need for ssl acceptor
<yuan>
I'll just patch it for now ;-)
<yuan>
I see, I really don't know much about web and just want to simple server for my blog so I just put everything into hunchentoot