defunkydrummer has quit [Ping timeout: 272 seconds]
nicktick has joined #lisp
alxplorer has quit [Remote host closed the connection]
alxplorer has joined #lisp
Inline has quit [Ping timeout: 272 seconds]
alxplorer has quit [Ping timeout: 260 seconds]
shinohai_ has joined #lisp
shinohai has quit [Ping timeout: 264 seconds]
dbotton has joined #lisp
Steeve has quit [Quit: end]
rixard has joined #lisp
kaftejiman_ has joined #lisp
kaftejiman has quit [Ping timeout: 240 seconds]
kir0ul_ has joined #lisp
kiroul has quit [Ping timeout: 258 seconds]
* Xach
got to use (report-bug-in "mutility") and it worked fine
vegansbane has quit [Read error: Connection reset by peer]
vegansbane has joined #lisp
skapata has quit [Read error: Connection reset by peer]
shinohai_ has quit [Quit: ZNC 1.8.x-git-190-d3011c6 - https://znc.in]
shinohai has joined #lisp
skapata has joined #lisp
jcowan has left #lisp [#lisp]
semz has quit [Ping timeout: 260 seconds]
defunkydrummer has joined #lisp
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
Volt_ has joined #lisp
skapata has quit [Quit: Leaving]
tormball has joined #lisp
<tormball>
is there a way to set clisp -modern in .clisprc.lisp?
<Bike>
i haven't used clisp, but it looks like you can replicate the effect with an in-package and setting *print-case*
wxie has joined #lisp
<no-defun-allowed>
What's in CS-COMMON-LISP-USER? Does it try to downcase symbol names?
<Bike>
i figured it would have the cl symbols but with lower case names
<no-defun-allowed>
And (not really going to help with CLISP) doesn't...Allegro CL have a "modern" mode like that which makes people hesitate to use strings as symbol name designators?
lucasb has quit [Quit: Connection closed for inactivity]
Firedancer_ has quit [Ping timeout: 258 seconds]
defunkydrummer has quit [Quit: Leaving]
otwieracz has quit [Ping timeout: 258 seconds]
Firedancer_ has joined #lisp
otwieracz has joined #lisp
lonjil has quit [Ping timeout: 258 seconds]
lonjil has joined #lisp
<tormball>
*print-case* default is :UPCASE with -modern it is :downcase. But if I setq :downcase I don't have case sensitive variables like with -modern.
<tormball>
Not sure how to look in CS-COMMON-LISP-USER. I'm in the REPL and there are quite a few CS-COMMON-LISP: prefixed values but no CS-COMMON-LISP:USER.
<no-defun-allowed>
The package name is CL-COMMON-LISP-USER; I expect there to be no exported symbols (mirroring CL-USER) though.
<no-defun-allowed>
But (setf *print-case* :downcase) (in-package :cs-common-lisp-user) should replicate it, like Bike suggested.
sword865 has joined #lisp
Stanley00 has joined #lisp
<tormball>
(in-package :cs-common-lisp-user) did it. Value of *print-case* doesn't seem to matter. Thank you.
orivej has joined #lisp
<tormball>
Actually it only works in REPL or file not in .clisprc
<tormball>
Just noticed -modern breaks tab completion too. Not sure why. system::map-external-symbols: There is no package with name "NIL"
shinohai has quit [Read error: Connection reset by peer]
dilated_dinosaur has quit [Ping timeout: 246 seconds]
shinohai has joined #lisp
ffwacom has quit [Ping timeout: 240 seconds]
alxplorer has joined #lisp
ffwacom has joined #lisp
alxplorer has quit [Ping timeout: 258 seconds]
asarch has joined #lisp
Oladon1 has quit [Quit: Leaving.]
Oladon has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
ramHero has quit [Ping timeout: 256 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
orivej has quit [Ping timeout: 260 seconds]
contrapunctus has joined #lisp
sts-q has quit [Ping timeout: 272 seconds]
jasom has joined #lisp
gravicappa has joined #lisp
frost-lab has joined #lisp
sts-q has joined #lisp
<beach>
Good morning everyone!
space_otter has joined #lisp
orivej has joined #lisp
WorldControl has joined #lisp
shka_ has joined #lisp
WorldControl has quit [Quit: Exeunt]
wxie has quit [Ping timeout: 272 seconds]
<beach>
phoe: As usual, I am unable to understand the question. I guess, since I don't know what problem it means to solve.
<tormball>
beach: good morning
shinohai has quit [Quit: ZNC 1.8.x-git-190-d3011c6 - https://znc.in]
shinohai has joined #lisp
madage has quit [Ping timeout: 240 seconds]
kaftejiman_ has quit [Remote host closed the connection]
madage has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
alxplorer has joined #lisp
Bike has quit [Quit: leaving]
bilegeek has quit [Quit: Leaving]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
alxplorer has quit [Ping timeout: 260 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
tormball has quit [Remote host closed the connection]
kir0ul_ has quit [Ping timeout: 265 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
torbo has quit [Remote host closed the connection]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
Guest811 has joined #lisp
Guest811 is now known as tamarindo
<beach>
phoe: I think I figured out where the question was asked, and I will answer it later today.
narimiran has joined #lisp
rumbler31 has quit [Ping timeout: 264 seconds]
wxie has joined #lisp
rumbler31 has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
Necktwi has quit [Ping timeout: 260 seconds]
contrapunctus has joined #lisp
Necktwi has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
leedleLoo has joined #lisp
leedleLoo has left #lisp [#lisp]
tamarindo has left #lisp ["Leaving"]
zacts has joined #lisp
zacts has quit [Client Quit]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
Guest811 has joined #lisp
Guest811 has left #lisp [#lisp]
_whitelogger has joined #lisp
zacts has joined #lisp
zacts has quit [Client Quit]
akoana has quit [Quit: leaving]
wxie1 has joined #lisp
malm has joined #lisp
wxie has quit [Read error: Connection reset by peer]
wxie1 is now known as wxie
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
frgo has quit [Remote host closed the connection]
contrapunctus has joined #lisp
alxplorer has joined #lisp
alxplorer 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
saganman has joined #lisp
<phoe>
beach: YouTube, under the third video for implementing CL
<beach>
Yes, found it. Thanks!
<phoe>
beach: I have a question. Let's say that I try to call a (block nil (lambda () (return-from nil))).
<phoe>
Under what circumstances must CONTROL-ERROR be signaled, if there are any? Or is it compeltely up to the implementation?
<beach>
You mean when the anonymous function is ultimately invoked?
<phoe>
I mean like (funcall (block nil (lambda () (return-from nil))))
<beach>
Right.
<phoe>
Is this form required to signal a control-error? In what circumstances?
<beach>
As I recall, the standard says it is undefined behavior.
<phoe>
"The errors that result from giving throw a tag that is not active or from giving go or return-from a tag that is no longer dynamically available are of type control-error."
<beach>
I think that if the implementation decides to detect the situation, that's the error it must signal.
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
jonatack has quit [Ping timeout: 272 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
Qudit314159 has quit [Remote host closed the connection]
liberliver has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
space_otter has quit [Remote host closed the connection]
Necktwi has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
dilated_dinosaur has joined #lisp
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
hendursa1 has joined #lisp
Volt_ has quit [Quit: ]
<flip214>
Can I tell PRINT-TO-STRING to start each new leaf in a tree (normal CONSes) in a new line?
<flip214>
currently it puts multiple lists in a line, if they're short enough.
hendursaga has quit [Ping timeout: 240 seconds]
zacts has quit [Quit: leaving]
jonatack has joined #lisp
davepdotorg has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
davepdot_ has joined #lisp
<phoe>
I think you'd need to define your own pprint dispatch for that
<flip214>
phoe: thanks, feared that already ;)
jonatack has quit [Ping timeout: 272 seconds]
jonatack has joined #lisp
Necktwi has quit [Ping timeout: 260 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
Necktwi has joined #lisp
alxplorer has joined #lisp
shinohai has quit [Ping timeout: 265 seconds]
shinohai_ has joined #lisp
wxie has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
zacts has joined #lisp
alxplorer has quit [Ping timeout: 246 seconds]
contrapunctus has joined #lisp
galex-713 has joined #lisp
Necktwi has quit [Ping timeout: 246 seconds]
saganman has quit [Ping timeout: 256 seconds]
wxie has quit [Ping timeout: 256 seconds]
heisig has joined #lisp
scymtym has quit [Ping timeout: 264 seconds]
emys has joined #lisp
isaac_ has joined #lisp
isaac_ is now known as iissaacc
<iissaacc>
Can anyone point me to where I could learn to make an emacs keybind to run some CL code in the SLIME repl?
Necktwi has joined #lisp
nicktick has quit [Ping timeout: 246 seconds]
<heisig>
iissaacc: You mean something like (define-key global-map (kbd "C-c x") 'slime-eval-defun) ?
scymtym has joined #lisp
alxplorer has joined #lisp
<iissaacc>
I want to make an #'in-package keybind, so I guess i need to define a new 'slime-eval-foo
<iissaacc>
thanks heisig ill look at the slime source
decentyousername has joined #lisp
alxplorer has quit [Remote host closed the connection]
alxplorer has joined #lisp
alxplorer has quit [Read error: No route to host]
alxplorer has joined #lisp
karlosz has quit [Ping timeout: 256 seconds]
alxplorer has quit [Remote host closed the connection]
alxplorer has joined #lisp
vms14 has joined #lisp
alxplorer has quit [Ping timeout: 246 seconds]
alxplorer has joined #lisp
cosimone has joined #lisp
alxplore_ has joined #lisp
alxplorer has quit [Read error: Connection reset by peer]
saganman has joined #lisp
cosimone has quit [Read error: Connection reset by peer]
alxplore_ has quit [Ping timeout: 256 seconds]
cosimone has joined #lisp
<_death>
slime-repl supports shortcuts, so you can type ",in RET foo RET" in the repl and it will set the current package to foo
h4ck3r9696 has joined #lisp
<h4ck3r9696>
Anyone familiar with usockets here ?
<beach>
Ask your question and you will find out.
<h4ck3r9696>
How do I do multithreading with it
<h4ck3r9696>
Or even select ?
jonatack has quit [Ping timeout: 258 seconds]
<no-defun-allowed>
(usocket:wait-for-input <list of sockets> :ready-only t) will do something like poll or select.
<h4ck3r9696>
ok thanks
<no-defun-allowed>
On SBCL, that will eventually select().
<no-defun-allowed>
SBCL on a POSIX system, rather, Windows does its own thing.
vms14 has quit [Remote host closed the connection]
<no-defun-allowed>
You may also be interested in cl-async if you want to do asynchronous code, but I would learn synchronous sockets first, so you don't lose your mind picking up sockets and async code (if you aren't familiar with either).
<h4ck3r9696>
Can I easly integrate it with usockets? I don't think there are a lot of examples online.
davepdot_ has quit [Remote host closed the connection]
<no-defun-allowed>
Not easily. usocket is synchronous and blocking (meaning it allows for sequential code that you can read staying in one piece), and cl-async is non-blocking and asynchronous (meaning you get a lot of "callbacks" and you have basically reinvented Node.js in your Lisp image).
davepdotorg has joined #lisp
<h4ck3r9696>
cl-async seems to be what i'm looking for. Thanks!
h4ck3r9696 has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
<no-defun-allowed>
Plain old multithreading is also possible using bordeaux-threads; oh dear, they've left already.
davepdotorg has quit [Ping timeout: 272 seconds]
cosimone has quit [Quit: cosimone]
cosimone has joined #lisp
davepdotorg has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
alxplorer has joined #lisp
davepdotorg has joined #lisp
cosimone has quit [Quit: cosimone]
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
cosimone has joined #lisp
Alloc has quit [Ping timeout: 260 seconds]
Alloc has joined #lisp
contrapunctus has joined #lisp
saganman has quit [Ping timeout: 256 seconds]
davepdotorg has quit [Ping timeout: 256 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
arbv has quit [Ping timeout: 256 seconds]
Retropikzel has joined #lisp
aartaka has joined #lisp
phantomics has quit [Ping timeout: 272 seconds]
ramHero has joined #lisp
EvW has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
cosimone has quit [Quit: cosimone]
alxplorer has quit [Remote host closed the connection]
alxplorer has joined #lisp
davepdotorg has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
davepdotorg has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
<dlowe>
one of these days I'd really like to see a lisp implementation with a fiber/thread scheduler runtime.
alxplorer has quit [Ping timeout: 260 seconds]
<flip214>
dlowe: that's a real hard problem... priorities, fair scheduling, assignment to pthreads, ...
<dlowe>
yeah, very hard
<flip214>
"hard" as in "needs lots of code that's already done in your OS scheduler"
<flip214>
and most probably "done better" ;)
<dlowe>
I can tell you from experience that my OS scheduler gets pretty unhappy with 100k+ threads
<flip214>
dlowe: yeah, but do you think your own would be much better, apart from 1 or 2 special cases that you care about?
<no-defun-allowed>
CMUCL had green threads, but that was a common survival strategy when POSIX threads weren't around (also seen in early Java).
<flip214>
I did work a few years on a c library doing fibers on pthreads... and it was no easy work
<dlowe>
flip214: my personal own? no, I have no expertise in schedulers.
<no-defun-allowed>
flip214: You just need to context switch faster than your kernel, which should be easy given you don't have to fiddle with the MMU.
<no-defun-allowed>
I say "just"...
<flip214>
no-defun-allowed: well, if you need the kernel to find out whether it makes sense to switch threads (I/O or other events), it doesn't make much difference
<flip214>
ie. doing select() and then switching to some fiber stack isn't that much different from just blocking on read() and letting the kernel to its thing
<flip214>
yeah, in principle user-space switching could save lots of CPU and memory.... but lots of things needed for a sound implementation
<dlowe>
one thing fibers have that is unambiguously positive about fibers is signal handling
<no-defun-allowed>
I think it worked well for Erlang and Go.
<dlowe>
haha, I'm not woken up yet
<flip214>
dlowe: as in unix signals??
<dlowe>
yeah
<flip214>
what's that much better? all signals blocked, exactly one pthread that gets all of them
edgar-rft has joined #lisp
WorldControl has joined #lisp
WorldControl has quit [Remote host closed the connection]
dbotton_ has joined #lisp
xrash has joined #lisp
WorldControl has joined #lisp
aap has quit [Read error: Connection reset by peer]
aap has joined #lisp
WorldControl has quit [Client Quit]
dbotton has quit [Ping timeout: 244 seconds]
<dlowe>
the actual handling of the signal is made more complicated. It's not unsolvable, just annoying.
<dlowe>
yeah, I'm thinking of Erlang and Go
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
refpga has joined #lisp
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
phantomics has joined #lisp
arbv has joined #lisp
jonatack has joined #lisp
phantomics has quit [Ping timeout: 246 seconds]
phantomics has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
emys has quit [Ping timeout: 256 seconds]
contrapunctus has joined #lisp
emys has joined #lisp
_whitelogger has joined #lisp
davepdotorg has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
davepdotorg has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
Retropikzel has quit [Remote host closed the connection]
davepdotorg has quit [Ping timeout: 264 seconds]
Stanley00 has quit []
davepdotorg has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
davepdotorg has joined #lisp
frost-lab has quit [Quit: Connection closed]
refpga has quit [Ping timeout: 272 seconds]
drot has quit [Ping timeout: 240 seconds]
refpga has joined #lisp
drot has joined #lisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
madage has quit [Ping timeout: 240 seconds]
madage has joined #lisp
shinohai_ has quit [Quit: ZNC 1.8.x-git-190-d3011c6 - https://znc.in]
refpga has quit [Ping timeout: 240 seconds]
refpga has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
cosimone has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
refpga has quit [Ping timeout: 256 seconds]
shinohai has joined #lisp
wsinatra has joined #lisp
heisig has quit [Read error: Connection reset by peer]
semz has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
semz has joined #lisp
semz has quit [Client Quit]
semz has joined #lisp
refpga has joined #lisp
<sm2n>
dlowe, termite scheme
<semz>
this is possibly a cffi noob question, but is there a way to dig through a chain of foreign structs (think a->b.c->d) such that: 1. there are no allocations except for maybe the final result 2. the solution isn't to calculate the offsets by hand every time?
<semz>
it's fine if it only works for structs that are directly embedded, though if it can go across pointers that'd be even better
<dlowe>
sm2n: I'm aware of it. Not common lisp.
<sm2n>
ah, true
<dlowe>
also, it looks daed.
Bike has joined #lisp
<sm2n>
also true
orivej has joined #lisp
shifty has joined #lisp
kir0ul_ has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
<mfiano>
What's a good test you can come up with for checking if an integer is one of [4,7,10,13,..,∞] and not [0-3,5-6,8-9,11-12,..,∞]? I currently have (and (> i 1) (= 1 (mod i 3))).
galex-713 has quit [Ping timeout: 272 seconds]
<beach>
Looks good.
<Alfr>
mfiano, a cl integer is never \infty .
galex-713 has joined #lisp
<mfiano>
Right, then replace with most-positive-fixnum if you didn't know I meant mathematically zero plus the whole number set
<Bike>
your test seems like the obvious way to do it.
<mfiano>
Ok thanks
Alloc has quit [Ping timeout: 260 seconds]
Alloc has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
* Alfr
shrugs. Wasn't a really similar question asked a week or two ago?
contrapunctus has joined #lisp
<mfiano>
and I stupidly used the answer without much thought, when it was wrong. The above is correct
alandipert has quit [Ping timeout: 256 seconds]
mseddon has quit [Ping timeout: 264 seconds]
<mfiano>
Writing tests after 2 weeks of coding a new project discovered the problem.
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
alandipert has joined #lisp
mseddon has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
sword865 has quit [Quit: Connection closed for inactivity]
srhm has joined #lisp
nicktick has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
epony has quit [Quit: cya (ame) in 10 minutes for sysupgrades.. you should upgrade too, NWO!]
edgar-rft has quit [Quit: Leaving]
arbv has joined #lisp
aaaaaa has joined #lisp
Psycomic has quit [Quit: Leaving]
madage has quit [Ping timeout: 240 seconds]
arbv has quit [Ping timeout: 258 seconds]
epony has joined #lisp
madage has joined #lisp
Psycomic has joined #lisp
alxplorer has joined #lisp
arbv has joined #lisp
arbv has quit [Client Quit]
dbotton has joined #lisp
Psycomic has quit [Ping timeout: 272 seconds]
refpga has quit [Ping timeout: 272 seconds]
dbotton_ has quit [Ping timeout: 260 seconds]
refpga has joined #lisp
jeosol has joined #lisp
dbotton_ has joined #lisp
asarch has joined #lisp
dbotton has quit [Ping timeout: 272 seconds]
gum has joined #lisp
gareppa has joined #lisp
Lycurgus has joined #lisp
EvW has joined #lisp
frgo has quit [Remote host closed the connection]
Cymew has quit [Ping timeout: 240 seconds]
alxplorer has quit [Remote host closed the connection]
torbo has joined #lisp
<_death>
exchanging the conjuncts may be a bit faster
yonkunas has joined #lisp
dbotton has joined #lisp
Gerula has quit [Ping timeout: 260 seconds]
dbotton_ has quit [Ping timeout: 260 seconds]
kapil_ has joined #lisp
alxplorer has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
gareppa has quit [Quit: Leaving]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
dbotton_ has joined #lisp
alxplorer has quit [Remote host closed the connection]
alxplorer has joined #lisp
dbotton has quit [Ping timeout: 260 seconds]
davepdotorg has joined #lisp
alxplorer has quit [Ping timeout: 260 seconds]
jonatack has quit [Quit: jonatack]
nicktick has quit [Ping timeout: 240 seconds]
arbv has joined #lisp
alxplorer has joined #lisp
jonatack has joined #lisp
davepdotorg has quit [Ping timeout: 246 seconds]
arbv has quit [Client Quit]
Psycomic has joined #lisp
arbv has joined #lisp
nicktick has joined #lisp
dbotton has joined #lisp
dbotton__ has joined #lisp
dbotton_ has quit [Ping timeout: 260 seconds]
dyelar has joined #lisp
dyelar has quit [Client Quit]
dbotton has quit [Ping timeout: 240 seconds]
sts-q has quit [Ping timeout: 240 seconds]
jonatack has quit [Ping timeout: 240 seconds]
sts-q has joined #lisp
jonatack has joined #lisp
arbv has quit [Ping timeout: 264 seconds]
arbv has joined #lisp
Lycurgus has quit [Quit: Exeunt]
dbotton__ has quit [Ping timeout: 240 seconds]
Codaraxis_ has joined #lisp
pxpxp has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
shifty has joined #lisp
arbv has quit [Ping timeout: 246 seconds]
<pxpxp>
Does anyone have experience with hunchentoot session management? I'm trying to use sessions only through cookies, not URL rewriting. But in my minimal example here (https://pastebin.com/iJEcD9rv), hunchentoot does URL rewriting even though it also correctly sets a cookie (seen from the developer tools): after logging in, I see an unwanted "?hunchentoot-session=..." in the URL.
<pxpxp>
This happens even with my attempt to set *rewrite-for-session-urls* to nil
dbotton has joined #lisp
jeosol has quit [Remote host closed the connection]
kiroul has joined #lisp
arbv has joined #lisp
jw4 has quit [Quit: tot siens]
kir0ul_ has quit [Ping timeout: 258 seconds]
skapata has joined #lisp
jw4 has joined #lisp
alxplorer has quit [Remote host closed the connection]
frgo has joined #lisp
frgo_ has joined #lisp
frgo has quit [Ping timeout: 240 seconds]
emys has joined #lisp
aartaka has joined #lisp
saganman has joined #lisp
saganman has quit [Changing host]
saganman has joined #lisp
arbv has quit [Ping timeout: 240 seconds]
shka_ has quit [Quit: Konversation terminated!]
edgar-rft has joined #lisp
arbv has joined #lisp
dbotton_ has joined #lisp
dbotton has quit [Ping timeout: 240 seconds]
shka_ has joined #lisp
alxplorer has joined #lisp
Psycomic has quit [Ping timeout: 272 seconds]
emys has quit [Ping timeout: 272 seconds]
Psycomic has joined #lisp
sydney_locker has joined #lisp
<flip214>
pxpxp: the documentation says "Once a request handler has called START-SESSION, Hunchentoot uses either cookies or (if the client doesn't send the cookies back) rewrites URLs"
<flip214>
do you see incoming cookies in HT?
emys has joined #lisp
karlosz has joined #lisp
<sydney_locker>
i suck dick
sydney_locker has quit [Quit: Client Quit]
<Cthulhux>
good.
<pxpxp>
I've looked at the packets with wireshark. On submission of the login form, the reply is a 302 Moved Temporarily, to new location: http://localhost:4242/?hunchentoot-session=<cookie> and also a Set-Cookie to this cookie. Then my client dutifully sends back the cookie. But I understand why hunchentoot does it this way: if the user didn't send back the cookie, the session would be lost.
dbotton has joined #lisp
<pxpxp>
However I thought setting *rewrite-for-session-urls* to nil would make the server send the cookie but not redirect to a URL containing it.
<edgar-rft>
sydney_locker: better eat cookie! Om nom nom nom.
<mfiano>
YOu might be able to look at what clack's hunchentoot backend does. I know I've never seen it use GET query parameters for cookies.
<pxpxp>
So I'll probably only have the URL "polluted" just after login (then when I click on a link, hunchentoot knows I'm sending back the cookies and everything is fine). Still, I'd like to avoid this if possible.
emys has quit [Ping timeout: 240 seconds]
<pxpxp>
Okay I'll have a look
<mfiano>
Might even be worth developing for clack so you can switch out the server in production without any server-specific code changes
<flip214>
pxpxp: I can reproduce.
<mfiano>
Or any for that matter, just a keyword swap
<flip214>
the REDIRECT function
<flip214>
takes an ADD-SESSION-ID
<flip214>
that you could set to T manually
dbotton_ has joined #lisp
<flip214>
then it works
akoana has joined #lisp
<flip214>
otherwise the ?ht-s=... gets added, unless you already have a cookie or provide a more-complete url
<flip214>
pxpxp:
<flip214>
(hunchentoot:redirect "/"
<flip214>
:add-session-id nil))
<flip214>
(hunchentoot:redirect "/login"
dbotton has quit [Ping timeout: 260 seconds]
<flip214>
:add-session-id nil)))
arbv has joined #lisp
<pxpxp>
It works!! Thanks!
<pxpxp>
mfiano: I've considered Clack and I understand that it's probably a superior solution, but as a beginner I decided to go for the project with good documentation (I guess this might be a frequent debate?)
emys has joined #lisp
arbv has quit [Ping timeout: 258 seconds]
arbv has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
emys has quit [Ping timeout: 256 seconds]
emys has joined #lisp
alxplorer has quit [Remote host closed the connection]
alxplorer has joined #lisp
contrapunctus has joined #lisp
orivej has joined #lisp
dbotton_ has quit [Ping timeout: 260 seconds]
alxplorer has quit [Ping timeout: 258 seconds]
saganman has quit [Quit: Leaving]
gravicappa has quit [Ping timeout: 260 seconds]
gravicappa has joined #lisp
<jasom>
pxpxp: the choice of hunchentoot is fine; mfiano was suggesting you look at the clack code that interfaces with hunchentoot to figure out how this can be done, since we know that clack can do this with hunchentoot
<jasom>
pxpxp: however I suspect that clack does not use hunchentoot's session management at all, so that's probably a dead-end
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<mfiano>
Right, I was also noting that it _might_ be worth it to build on top of clack instead of hunchentoot directly, for the benefits that provides, and if you can't do it otherwise. Depends how invested you are already, etc, but it is an option.
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
Psycomic has quit [Ping timeout: 272 seconds]
amb007 has joined #lisp
bocaneri has quit [Ping timeout: 240 seconds]
emys has quit [Ping timeout: 272 seconds]
dbotton has joined #lisp
<jasom>
Also the builtin session logic in hunchentoot looks questionable from a security point of view
<jasom>
at least it's md5ing twice that's better than it could be
emys has joined #lisp
<jasom>
and you can plug the session-verify, and inherit from session to use something more obviously correct
<jasom>
actually you can't do what I just said because regenerate-session-cookie-value is not generic nor is stringify-session. That's slightly annoying
<no-defun-allowed>
My code usually has protocol files, but they're probably not as clean as beach-style, as it also contains default implementations.
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
<aeth>
I usually put defgeneric, defconstant, etc., at the very top of the first relevant file, and then the other non-defun/defmethod defines like deftype/defclass/defstruct right below them
contrapunctus has joined #lisp
skapate has joined #lisp
skapata has quit [Ping timeout: 272 seconds]
gaqwas has quit [Ping timeout: 246 seconds]
<aeth>
Often it makes sense to e.g. have a file full of just define-condition or a file full of just defconstant or whatever, but those are usually larger projects, which are rare. I could see myself having a file full of defgeneric, but it would have to be a pretty large application
random-nick has quit [Ping timeout: 240 seconds]
minion has quit [Read error: Connection reset by peer]
specbot has quit [Read error: Connection reset by peer]
specbot has joined #lisp
minion has joined #lisp
wsinatra has quit [Read error: Connection reset by peer]
tankrim` has quit [Read error: Connection reset by peer]
tankrim` has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
notzmv has quit [Read error: Connection reset by peer]
frgo_ has quit [Read error: Connection reset by peer]
frgo has joined #lisp
wsinatra has joined #lisp
wsinatra has quit [Read error: Connection reset by peer]
yottabyte has quit [Ping timeout: 272 seconds]
sts-q has quit [Ping timeout: 260 seconds]
rme has quit [Ping timeout: 272 seconds]
yottabyte has joined #lisp
rme has joined #lisp
gendl has quit [Ping timeout: 272 seconds]
orivej has quit [Read error: Connection reset by peer]
pve has quit [Quit: leaving]
orivej has joined #lisp
CEnnis91 has quit [Ping timeout: 272 seconds]
tamarindo has quit [Remote host closed the connection]
wsinatra has joined #lisp
gendl has joined #lisp
CEnnis91 has joined #lisp
notzmv has joined #lisp
tamarindo has joined #lisp
tamarindo has quit [Remote host closed the connection]
<phantomics>
Just checking, was someone here talking about problems with cl-tcod?