Necktwi has quit [Remote host closed the connection]
MattyR has joined #lisp
MattyR has left #lisp [#lisp]
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
dddddd_ has joined #lisp
dddddd has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 256 seconds]
caltelt has joined #lisp
ebrasca has quit [Remote host closed the connection]
akoana has left #lisp ["Leaving"]
swills has quit [Ping timeout: 258 seconds]
Necktwi has joined #lisp
slyrus_ has joined #lisp
slyrus__ has quit [Ping timeout: 240 seconds]
slyrus_ has quit [Ping timeout: 258 seconds]
terpri has joined #lisp
swills has joined #lisp
vlatkoB has joined #lisp
gravicappa has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
karlosz has joined #lisp
<beach>
Good morning everyone!
<loke``>
Hello beach!
slyrus has joined #lisp
shka_ has joined #lisp
_whitelogger has joined #lisp
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
niceplace has quit [Ping timeout: 272 seconds]
niceplace has joined #lisp
malm has quit [Quit: Bye bye]
caltelt has quit [Ping timeout: 255 seconds]
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
oxum has quit [Remote host closed the connection]
shifty has joined #lisp
oxum has joined #lisp
borodust has quit [Remote host closed the connection]
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
shka_ has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
shka_ has joined #lisp
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
narimiran has joined #lisp
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
shifty has quit [Ping timeout: 256 seconds]
terpri has joined #lisp
shifty has joined #lisp
oxum has quit [Remote host closed the connection]
dale has quit [Quit: My computer has gone to sleep]
malm has joined #lisp
terpri has quit [Remote host closed the connection]
gioyik has joined #lisp
terpri has joined #lisp
borodust has joined #lisp
shka_ has quit [Ping timeout: 268 seconds]
oxum has joined #lisp
dddddd_ has quit [Ping timeout: 260 seconds]
shifty has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
oxum has quit [Ping timeout: 240 seconds]
ggole has joined #lisp
oxum has joined #lisp
ljavorsk__ has joined #lisp
jprajzne has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
ljavorsk__ has quit [Ping timeout: 260 seconds]
oxum has quit [Remote host closed the connection]
leo` has joined #lisp
emys has joined #lisp
<leo`>
hello
shifty has quit [Ping timeout: 268 seconds]
shifty has joined #lisp
<pjb>
hello
<beach>
Hello leo`.
<karlosz>
hi folks
<beach>
Hey karlosz.
hiroaki_ has quit [Ping timeout: 258 seconds]
oxum has joined #lisp
Jesin has quit [Ping timeout: 258 seconds]
oxum has quit [Remote host closed the connection]
<beach>
leo`: Are you new here? I don't recognize your nick.
ljavorsk__ has joined #lisp
scymtym has quit [Ping timeout: 268 seconds]
<HiRE>
I've read PCL and I enjoyed it...however I am now looking for something a little more hands on. I feel like PCL threw the kitchen sink at me and now I have the tools but no idea how to practice them
<HiRE>
are there good supplementary books to PCL?
<Shinmera>
Paradigms of Artificial Intelligence Programming is one
<beach>
minion: Please tell HiRE about PAIP.
<minion>
HiRE: PAIP: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
<Shinmera>
Other than that, just.. you know, do things.
<HiRE>
oh neat. Yeah I feel like PCL got me most of the way here but the whole kitchen sink and stuff
<HiRE>
was just looking for more ways to branch out
<HiRE>
I've read a lot of stuff about CLOS being great but often overkill for most things and im having trouble deprogramming OOP from my brain
<beach>
HiRE: Start a project or get involved in an existing one.
<beach>
HiRE: CLOS is definitely not overkill.
<HiRE>
thats why im asking for more books - for example I'd like to implement a bunch of stuff in computational geometry. It's my specialization in my PhD
<HiRE>
however having been poisoned by java for years
<HiRE>
Im just staring at a blank screen
<HiRE>
figured when that happens I need to spend more time learning the proper way to think lispy
<HiRE>
before being so ambitious
ljavorsk__ has quit [Ping timeout: 240 seconds]
<beach>
I don't know whether there is a Common Lisp library for computational geometry, but it would be good to have one.
<beach>
HiRE: Where did you get your PhD?
oxum has joined #lisp
oxum has quit [Remote host closed the connection]
shka_ has joined #lisp
<shka_>
good day!
<beach>
Hello shka_.
|Pirx| has quit [Remote host closed the connection]
|Pirx| has joined #lisp
sauvin has joined #lisp
<HiRE>
beach, working on it - currently in my 2nd semester
<HiRE>
im out of UNLV
<beach>
I see. Do you know my friend Subhash Suri?
<HiRE>
the name sounds familiar but I doubt Ive met them
<beach>
OK.
<HiRE>
I'd be happy to contribute a computational geometry library to the lisp universe
<HiRE>
just gotta...you know get good enough to write one
<beach>
Of course.
<HiRE>
I havent'felt so overwhelmed in a long time. It's a nice feeling but uncomfortable
<HiRE>
like learning the first language I ever learned.
<HiRE>
I can see the real power of lisp just from what I've done in PCL - the trick now is to be able to execute on that power. I suppose thats just practice.
<HiRE>
lots and lots of it.
<beach>
Indeed.
<Shinmera>
Yep.
<beach>
And get feedback on your code.
<Shinmera>
The first library I ever wrote is still useful today! So I'd say just go for it.
<Shinmera>
It's also the first thing I did after PCL, though I did have to rewrite it some months later.
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
<HiRE>
yep, the whole impetus for running back here for help is that I dont really know how to structure a red black tree right in a lispy way
<HiRE>
would you use CLOS to contain all the methods?
Lord_of_Life_ is now known as Lord_of_Life
<trittweiler>
It's not Java. Objects do not contain methods. :)
<aeth>
CLOS is multiple dispatch so that doesn't make sense, unlike in most OOP languages.
<HiRE>
right...sorry the deprogramming is going to take time
ljavorsk__ has joined #lisp
<trittweiler>
You could have generic functions LEFT-NODE, RIGHT-NODE. But in this case, I would probably just use functions. Except if you have a good idea on in what way you want things to be extensible
ak5 has joined #lisp
<HiRE>
ah ok. I will go back and review PCL's tutorial on CLOS again so I can fully grasp multiple dispatch
<HiRE>
I was thinking of just using methods as well
<Josh_2>
you can
<loke``>
HiRE: I have implemented the only red-black tree implementqtion on Common Lisp that works.
<loke``>
ALl the other I've tried loses data in certain edge-cases
<HiRE>
thats a bold statement :P
<HiRE>
I suppose I have my work cut out for me then
<loke``>
HiRE: Fair enough. rbtrees are notoriously difficult to get right. But I have tested it extensively.
<loke``>
And all others (three other versions if I'm not mistaken) have failed.
orivej has joined #lisp
<HiRE>
yeah I chose it arbitrarily. For maintaining sweepline state you generally need a height balanced tree and rbtrees are just convenient in the literature
rwcom9 has joined #lisp
<loke``>
And I ran a special version that _also_ stored the data in a linked list in parallel and double-checked the result on every acess and ran this debug/slow version in production for months without errors.
<loke``>
It's based ont he reference C implementation.
rwcom has quit [Ping timeout: 256 seconds]
rwcom9 is now known as rwcom
<loke``>
Please don't try to reimplement it yourself. It _will_ fail. An rbtree will work 99.999% of times if you get a single rotation wrong, until it doesn't, and you lose data.
<HiRE>
yeah, I may borrow your rbtree or use a 2-3 tree or something instead
<HiRE>
im not trying to overcomplicate finding line intersections
ebzzry has joined #lisp
<loke``>
Please go ahead.
<HiRE>
O(logn) is really all I care about
<loke``>
rbtrees are amazing when they work :-)
flamebeard has joined #lisp
Necktwi has quit [Read error: Connection reset by peer]
<aeth>
I personally only use methods over functions when either generic dispatch is needed or :after/:before/:around is needed.
shifty has quit [Ping timeout: 256 seconds]
<Josh_2>
after before and around are very useful
<beach>
Josh_2: Is that your code?
shifty has joined #lisp
v88m has quit [Read error: Connection reset by peer]
ljavorsk__ has quit [Ping timeout: 240 seconds]
<Josh_2>
yes
eghoe has joined #lisp
<eghoe>
[Global Notice] Hello, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<eghoe>
[Global Notice] Hello, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<eghoe>
[Global Notice] Hello, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
eghoe has left #lisp [#lisp]
v88m has joined #lisp
varjag has joined #lisp
karlosz has quit [Quit: karlosz]
<beach>
Josh_2: Are you showing it in order to get feedback?
<beach>
Somehow, I think that "Global Notice" is fake.
<pjb>
:-)
<shka_>
lol
<Josh_2>
beach: yes :P
<p_l>
miiight get us some respite
<beach>
Josh_2: Why is there a blank line between some top-level definitions and not others?
<Josh_2>
I don't know
<beach>
And why do you select a random number in the interval [0,25[ when there are 26 letters?
<Josh_2>
because 25 gets zz
<Josh_2>
z*
<aeth>
There should always be a blank line between defines at the top level unless they're one liners that make sense together, which is more of a DEFVAR/DEFPARAMETER/DEFCONSTANT thing
<beach>
Josh_2: I don't understand.
<Josh_2>
oops
<Josh_2>
I do
<Josh_2>
random should be 26
<aeth>
it's a common bug
<Josh_2>
Fixed that :P
ak5 has quit [Ping timeout: 258 seconds]
<beach>
Josh_2: I think the error in x..n is wrong.
<beach>
Plus n..x and x..n look very similar. It ought to be possible to factor the code.
ak5 has joined #lisp
<White_Flame>
yeah, calculate a stepping of -1 or +1 first, and use it in the loop
<White_Flame>
plus the names don't really tell you which is which
<White_Flame>
*names of the functinos
<beach>
Josh_2: With (reduce #'append...) you might want to do :from-end t as well.
Cymew has joined #lisp
<beach>
Not that it matters much here probably, but still.
<Josh_2>
What difference does adding :from-end make?
<Josh_2>
It produces the same result
<beach>
It turns a quadratic algorithm into a linear one.
<Josh_2>
White_Flame: what do you mean with -1 +1 in the loop?
<Josh_2>
beach: I do not know what you mean by that :O
<beach>
Look also at the amount of memory allocated in the two cases.
<White_Flame>
Josh_2: (loop for x = start then (+ x delta) collect x until (= x end))
<White_Flame>
the BY clause doesn't work for both positive & negative, unfortunately
<White_Flame>
but the way I pasted is agnostic to the direction of the iteration. You just need to figure if delta should be +1 or -1
<Josh_2>
beach: yes I see, quite a difference
<White_Flame>
and probably be more defensive for edge cases
<Josh_2>
White_Flame: are you talking about x..n and n..x?
<White_Flame>
yes
<Josh_2>
I changed those names
<Josh_2>
Much more descriptive now :P
<Josh_2>
but why would I change the loop, it works just fine
<White_Flame>
just going on what beach said abotu not needing to duplicate 99% of the code across 2 functions
<Josh_2>
oh right
leo` is now known as Leo_4
Duuqnd has joined #lisp
clothespin has quit [Ping timeout: 248 seconds]
oxum has quit [Remote host closed the connection]
<Josh_2>
I'm going to keep those functions as is, the error check is different so I'm only really repeating 1 line ¯\_(ツ)_/¯
<Josh_2>
Thanks for taking the time White_Flame beach :)
<beach>
Josh_2: So that little experiment shows why you should use :from-end t with (reduce #'append...).
Jachy has joined #lisp
<Josh_2>
Yes :P
<beach>
Now you just need to understand why. :)
Jachy has left #lisp [#lisp]
<Josh_2>
That's for tomorrow after sleep :P
Jachy has joined #lisp
scymtym has joined #lisp
oxum has joined #lisp
DataLinkDroid has quit [Quit: DataLinkDroid]
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
hhdave has joined #lisp
Leo_4 has quit [Remote host closed the connection]
emys has quit [Ping timeout: 256 seconds]
ljavorsk__ has joined #lisp
oxum has quit [Remote host closed the connection]
emys has joined #lisp
frodef has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
oxum has joined #lisp
ljavorsk__ has quit [Ping timeout: 240 seconds]
ljavorsk__ has joined #lisp
oxum has quit [Ping timeout: 260 seconds]
v88m has quit [Ping timeout: 256 seconds]
hekeecl has joined #lisp
<hekeecl>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<hekeecl>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<hekeecl>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
hekeecl has left #lisp [#lisp]
ljavorsk__ has quit [Ping timeout: 256 seconds]
<no-defun-allowed>
Huh, didn't know that about (reduce #'append ...). Very clever.
<beach>
It is obvious when you think about it.
TurboHaskal has joined #lisp
v88m has joined #lisp
<no-defun-allowed>
Definitely (and maybe with APPEND or a wrapper traced), but I'll leave Josh_2 to figure it out.
<beach>
If you know how REDUCE and APPEND both work, the result is clear.
terpri has quit [Ping timeout: 240 seconds]
vidak`` has joined #lisp
vidak`` has quit [Remote host closed the connection]
vidak has joined #lisp
vidak has quit [Client Quit]
zaquest has quit [Quit: Leaving]
zaquest has joined #lisp
Cymew has quit [Ping timeout: 256 seconds]
Southy has joined #lisp
jonatack has quit [Ping timeout: 256 seconds]
ebzzry has quit [Ping timeout: 256 seconds]
eli_oat has joined #lisp
emys has quit [Ping timeout: 265 seconds]
orivej has quit [Ping timeout: 240 seconds]
TurboHaskal has quit [Ping timeout: 260 seconds]
oxum has joined #lisp
emys has joined #lisp
gioyik has quit [Quit: WeeChat 2.7]
emys has quit [Ping timeout: 255 seconds]
emys has joined #lisp
v_m_v has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
emys has quit [Ping timeout: 256 seconds]
xuxuru has joined #lisp
emys has joined #lisp
aroosh has joined #lisp
<aroosh>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<aroosh>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<aroosh>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
aroosh has left #lisp [#lisp]
<p_l>
... on days like that, I'm tempted to hack back on each IP, find the worm, trace back to it's C2 and do impolite things :|
Awei has joined #lisp
<Awei>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<Awei>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<Awei>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
drol_ has joined #lisp
Awei has left #lisp [#lisp]
<drol_>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<drol_>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<drol_>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
drol_ has left #lisp [#lisp]
<phoe>
p_l: we need +r on the channel.
obleegh has joined #lisp
<obleegh>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<obleegh>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<obleegh>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
obleegh has left #lisp [#lisp]
aklo has joined #lisp
<aklo>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<aklo>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
<aklo>
[Global Notice] Hello chatters, freenode will be undergoing maintenance 3 hours from now. Please disconnect from this network, connect to irc.quakenet.org, and join #Quakenet for updates, otherwise, you may be k-lined permanently from freenode. Thank you. -freenode staff
aklo has left #lisp [#lisp]
<phoe>
It is a breaking change, but otherwise we're not going to make it.
<phoe>
Registering Freenode accounts is going to at least slow the spambots down.
<_death>
trivial-spam-prevention
oxum has quit [Read error: Connection reset by peer]
<no-defun-allowed>
Yeah, it really likes its groups of 8 too.
tomaw has quit [Ping timeout: 633 seconds]
jeosol has quit [Remote host closed the connection]
ak5 has quit [Ping timeout: 268 seconds]
eeeeeta has quit [Quit: Gateway shutdown]
eeeeeta has joined #lisp
v_m_v has joined #lisp
prince1 has quit [Ping timeout: 256 seconds]
markoong has quit [Ping timeout: 256 seconds]
markong has joined #lisp
cosimone has joined #lisp
ljavorsk__ has quit [Ping timeout: 240 seconds]
Southy has quit [Remote host closed the connection]
eeeeeta has quit [Quit: Gateway shutdown]
eeeeeta has joined #lisp
Cymew has joined #lisp
emys has joined #lisp
emys has quit [Ping timeout: 258 seconds]
salva has quit [Ping timeout: 268 seconds]
ravenx has quit [Ping timeout: 260 seconds]
ravenx has joined #lisp
v_m_v_ has joined #lisp
v_m_v has quit [Ping timeout: 245 seconds]
Irenes[m] has joined #lisp
nonlinear[m] has joined #lisp
katco has joined #lisp
Gnuxie[m] has joined #lisp
unl0ckd has joined #lisp
metabyt[m] has joined #lisp
ak5 has joined #lisp
gko_ has joined #lisp
xuxuru has quit [Quit: xuxuru]
ukari has quit [Remote host closed the connection]
ljavorsk__ has joined #lisp
ukari has joined #lisp
<vidak`>
just learned how to start SBCL, and then connect successfully to it in EMACS SLIME, all in the context of using croatoan, the common lisp library for binding to ncurses
<vidak`>
i can finally breathe a sigh of relief: i can have unbuffered terminal input :3
Cymew has quit [Ping timeout: 256 seconds]
v_m_v_ has quit [Remote host closed the connection]
flamebeard has quit [Remote host closed the connection]
flamebeard has joined #lisp
emys has joined #lisp
ebzzry has joined #lisp
flamebeard has quit [Ping timeout: 260 seconds]
prince1 has joined #lisp
emys has quit [Ping timeout: 255 seconds]
flamebeard has joined #lisp
quazimodo has quit [Ping timeout: 265 seconds]
ljavorsk__ has quit [Ping timeout: 245 seconds]
prince1 has quit [Ping timeout: 255 seconds]
quazimodo has joined #lisp
oxum has joined #lisp
v_m_v has joined #lisp
emys has joined #lisp
Duuqnd has quit [Ping timeout: 256 seconds]
marusich has joined #lisp
oxum has quit [Remote host closed the connection]
marusich has quit [Client Quit]
xkapastel has joined #lisp
ebrasca has joined #lisp
emys has quit [Ping timeout: 256 seconds]
cosimone has quit [Quit: Quit.]
emys has joined #lisp
jmercouris has joined #lisp
<jmercouris>
what is the time complexity of SORT?
<minion>
jmercouris, memo from phoe: 00:19 < pjb> Why does this jmercouris guy always log out before getting an answer?
<jmercouris>
lol
<jmercouris>
I don't log out on purpose, my IRC client crashes frequently :-D
<jmercouris>
I'm using Circe, and it seems to disconnect on Emacs 27
<jackdaniel>
it is not defined what is its time complexity, it may be a bubblesort for what it's worth ,)
<jackdaniel>
usually it is a quicksort though
<jmercouris>
OK, thank you
<jackdaniel>
so n² in a nasty case, down to n*log(n)
<jackdaniel>
and since you ask about time, the time unit is nano-lispconds
<jmercouris>
11
barryfm has joined #lisp
flamebeard has quit [Remote host closed the connection]
lucasb has joined #lisp
barryfm has quit [Quit: Leaving]
emys has quit [Ping timeout: 246 seconds]
<beach>
jmercouris: Are you sorting a list or a vector?
<_death>
on sbcl, it appears to be merge sort for lists and heapsort for vectors
<jmercouris>
A list
<jmercouris>
beach: a list, I was just curious, :-)
<beach>
Then, with merge sort, it is O(n log n).
flamebeard has joined #lisp
<Posterdati>
hi
emys has joined #lisp
<beach>
Hello Posterdati.
flamebeard has quit [Ping timeout: 265 seconds]
iAmDecim has joined #lisp
<jdz>
jmercouris: I bet it's not Circe that crashes (if anything it would be Emacs crashing). Maybe instead of "crashes" you mean loses connection, in which case I'd rather blame "gnutls".
bitmapper has joined #lisp
emys has quit [Ping timeout: 240 seconds]
Bike has joined #lisp
emys has joined #lisp
flamebeard has joined #lisp
oxum has joined #lisp
panico has joined #lisp
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
oxum has quit [Remote host closed the connection]
xantoz has quit [Ping timeout: 260 seconds]
mingus has quit [Quit: ERC (IRC client for Emacs 26.3)]
<Bike>
like how, working with vectors of fixnums and translating them to/from bignums when you pass into/out of cuda?
v_m_v has quit [Ping timeout: 268 seconds]
_paul0 has joined #lisp
<flip214>
yeah, for example... I'd like to offload some bignum calculations
iAmDecim has quit [Ping timeout: 256 seconds]
eli_oat9 has joined #lisp
eli_oat9 has quit [Client Quit]
eli_oat has joined #lisp
ebzzry has joined #lisp
paul0 has quit [Ping timeout: 272 seconds]
EvW has joined #lisp
<luis>
Does anyone use ASDF with logical pathnames? I'd like to set up my source like SBCL's SYS:SRC;**;*.* but ASDF turns them into physical pathnames ASAP.
oxum has joined #lisp
emys has joined #lisp
oxum has quit [Read error: Connection reset by peer]
oxum has joined #lisp
EvW has quit [Ping timeout: 272 seconds]
emys has quit [Ping timeout: 272 seconds]
rj0d has joined #lisp
oxum_ has joined #lisp
oxum_ has quit [Read error: Connection reset by peer]
rj0d has quit [Client Quit]
rj0d has joined #lisp
oxum has quit [Ping timeout: 268 seconds]
jibanes has quit [Ping timeout: 255 seconds]
<Shinmera>
luis: I asked about that for portacle. If I remember correctly it's not really possible.
prince1 has joined #lisp
jibanes has joined #lisp
emys has joined #lisp
prince1 has quit [Ping timeout: 256 seconds]
iAmDecim has joined #lisp
oxum has joined #lisp
jibanes has quit [Ping timeout: 256 seconds]
<luis>
That and logical pathnames being restricted to a-z, digits and hyphen is a bit of a shame.
jibanes has joined #lisp
<jackdaniel>
I always thought, that if I have enough time some day I would want to propose a CDR which extends logical pathname specification and clarifies some undefined behaviors
<jackdaniel>
that and an in-image virtual filesystem
iAmDecim has quit [Ping timeout: 256 seconds]
<jackdaniel>
(extensible one, so i.e a programmer could implement a few methods and voila, their package has a file interface ,)
<p_l>
unfortunately, while pathnames themselves are maximal implementation of pathnames, logical pathnames are closer to the minimum side :/
<p_l>
despite it not being necessary
v_m_v_ has quit [Remote host closed the connection]
v_m_v has joined #lisp
<Shinmera>
luis: logical pathnames being forced to one version of case really makes them impossible to use generally.
<Shinmera>
I think a library to replace pathnames with a more useful system (using modern day assumptions) would be great.
amerlyq has joined #lisp
v_m_v has quit [Ping timeout: 258 seconds]
emys has quit [Ping timeout: 255 seconds]
Cymew has joined #lisp
<p_l>
Just something that would support full scope of pathnames would be good
<luis>
The case insensitivity doesn't bother me too much because I have to live with Windows anyway.
<edgar-rft>
AFAIK UIOP (part of ASDF) was meant as an attempt to replace logical pathnames
<luis>
edgar-rft: how so?
wsinatra has quit [Quit: WeeChat 2.7]
iAmDecim has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
Inline has joined #lisp
iAmDecim has quit [Ping timeout: 260 seconds]
pjb has quit [Ping timeout: 272 seconds]
jonatack has joined #lisp
eli_oat has quit [Ping timeout: 255 seconds]
madrik has quit [Quit: Dinner]
eli_oat has joined #lisp
wsinatra has joined #lisp
<Shinmera>
luis: Well it makes it impossible to use on linux if you have a directory that's not lowercase
<luis>
Shinmera: yeah, that's terrible.
ak5 has quit [Ping timeout: 255 seconds]
<p_l>
luis: beware case-sensitive windows installs
<p_l>
Yes, they exist
<p_l>
Also, I wonder how much code would break if I made a lisp implementation faithfully represent full NT pathnames...
gko_ has quit [Ping timeout: 255 seconds]
<p_l>
(all ANSI CL pathname components are present on Windows)
v88m has joined #lisp
eli_oat has quit [Ping timeout: 258 seconds]
edgar-rft has quit [Quit: Leaving]
iAmDecim has joined #lisp
iAmDecim has quit [Ping timeout: 258 seconds]
whiteline_ has quit [Remote host closed the connection]
flamebeard has quit []
whiteline_ has joined #lisp
pjb has joined #lisp
didi has joined #lisp
<didi>
Using SLIME and a fresh SBLC instance, why does C-c C-l work for loading a file with `require' forms but C-c C-k complain about non designated packages?
<didi>
s/SBLC/SBCL
random-nick has joined #lisp
peterhil has joined #lisp
zaquest has quit [Quit: Leaving]
ecraven has quit [Quit: bye]
ecraven has joined #lisp
zaquest has joined #lisp
tomaw_ is now known as tomaw
mingus has joined #lisp
<_death>
the require is evaluated during load time, but not during compile-time (you could use eval-when to make it work)
<didi>
_death: Thank you.
eli_oat has joined #lisp
eli_oat has quit [Client Quit]
eli_oat has joined #lisp
momozor has joined #lisp
momozor has quit [Remote host closed the connection]
gmeister has joined #lisp
rj0d has quit [Quit: leaving]
prince1 has joined #lisp
EvW1 has joined #lisp
ukari has quit [Ping timeout: 268 seconds]
iAmDecim has joined #lisp
<fe[nl]ix>
Shinmera: there's IOlib if you want better pathnames
prince1 has quit [Ping timeout: 265 seconds]
<Shinmera>
It carries too much other baggage and depends on a C library.
vhost- has quit [Read error: Connection reset by peer]
<p_l>
we could also encourage implementations to provide better own abstractions to be used by things like IOlib
vhost- has joined #lisp
vhost- has quit [Changing host]
vhost- has joined #lisp
frodef has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
terpri has joined #lisp
prince1 has joined #lisp
prince1 has quit [Ping timeout: 240 seconds]
<fe[nl]ix>
Shinmera: the C library is pretty much necessary, unless you can convince implementors to include POSIX FFI bindings
xantoz has joined #lisp
<dlowe>
I think Shinmera is suggesting going straight to kernel syscalls
<fe[nl]ix>
that works only on Linux
<fe[nl]ix>
all other operating systems place the ABI compatibility boundary in the libc
<fe[nl]ix>
including BSDs, OSX, Windows
<Shinmera>
I am suggesting not using a library that requires C stuff for something that's just a new pathname implementation.
<fe[nl]ix>
you need C stuff to access the filesystem
hiroaki_ has joined #lisp
<fe[nl]ix>
including some function-like accessors which are allowed by POSIX to be defined as C macros
<fe[nl]ix>
so you can't access them using FFI unless there's a wrapper
<p_l>
you don't need C except for grovelling the costants on Windows
karlosz has quit [Quit: karlosz]
<p_l>
as all interface libraries are explicitly language-agnostic (and even if they use C internally, it's fully hidden from you, including lack of linkage to C runtime)
<fe[nl]ix>
you'll have to reimplement S_ISDIR & co.
<fe[nl]ix>
which is doable just a lot of maintenance
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
karlosz has joined #lisp
<p_l>
fortunately S_ISDIR isn't part of the API
<p_l>
there's a bitmask field
<p_l>
but no macros
<p_l>
so you test a bitmask against the value of FILE_ATTRIBUTE_DIRECTORY
<p_l>
so it's a bit saner than going through libc
<pjb>
p_l: but the value of S_ISDIR is C implementation dependendant! How do you find it?
karlosz has quit [Client Quit]
<pjb>
(without relying on a C compiler on a given target).
<jackdaniel>
given that these operating systems all have libc which gives you necessary functionality, and that it is possible o have an uniform interface to it, I'd say that it is saner to have such interface
<p_l>
jackdaniel: the problem is that the libc might not be first class API on some platforms
<pjb>
What's documented, on the other hand, is the syscall API of the kernel…
<pjb>
So instead of using libc, write your own libcl.
<pjb>
(in CL, you just need a way to syscall).
<p_l>
arguably, the only one major platform that has libc as second-class citizen is Windows
<p_l>
but it's a pretty big platform
<p_l>
I have no idea on how the API interface goes with libSystem.dyld on OSX
<pjb>
p_l: even amongst C programmers, there's a movement to avoid libc, and use linux syscalls directly!
<p_l>
but it's OSFMK derived, so probably libSystem is full of libc-isms
<pjb>
p_l: it's more fun, since it's not a unix system, under, but a Mach OS. So you don't syscall, you send messages to the microkernel :-)
<p_l>
pjb: and on Windows, libc is second class, limited API
<pjb>
p_l: Also, libc ≠ POSIX.
<p_l>
that too, as well
<Odin->
"Going the easy way around isn't pure enough, so let's do tons of difficult work to try and keep up with outside systems that are often a very swiftly moving target!"
<pjb>
So, basically CL implementations would have to support 3 kernels, Mach, MS-Windows-NT, and Linux.
xantoz has quit [Quit: WeeChat 2.7.1]
* Odin-
glances nervously in the direction of the BSDs.
<fe[nl]ix>
BSD developers consider libc as the ABI so they have in the past removed syscalls and reimplementing libc functions
<p_l>
though I'm pretty sure POSIX specifies a libc that contains certain interfaces (mostly compatible with ANSI/ISO), another set of "syscalls" which might be actually implemented by another library (passing to message passing interfaces)
<pjb>
yes, POSIX doesn't impose an architecture. It can be all libraries.
xantoz has joined #lisp
<p_l>
fe[nl]ix: from my understanding, POSIX spec doesn't require that various low-level interfaces are "syscalls", it can be a library
<Odin->
POSIX is defined in terms of a C interface, yes.
<p_l>
and I'm pretty sure someone even made one for linux (or maybe some other OS) in the form of "libsyscall" or something like that
<pjb>
Odin-: more or less. We could define in a chapter of POSIX a CL API.
<p_l>
Odin-: there's also FORTRAN API, iirc
<Odin->
It then also defines a bunch of command line utilities on top of that.
<p_l>
anyway, going through libc on Windows means you are relegated to second class citizen, and in fact might actually mean a more moving target
<jackdaniel>
in other words, supporting posix is a matter of having ffi wrapper, what's precisely what IOlib does ;) I'd file a bug on Windows bugtracker and call it a day, i.e "[bug][critical] Windows is not a real POSIX" ;)
jonatack has joined #lisp
<pjb>
On the other hand, this is what makes the success of unix (POSIX) systems, the command line user interface. Other systems were way more inconvenient to use. You couldn't compile and run programs like that, willy-nilly…
<jackdaniel>
since windows eats linux (they even linux working there), it won't be a problem
<jackdaniel>
even have*
<pjb>
It was more like iOS, where you needed sysadmins to install the commands for you, with authorisations, etc (not code signatures at the time, but it was as inconvenient).
<p_l>
jackdaniel: if you actually managed to get deep enough to put a bug on internal bugtracker, and someone with a grey enough beard read it, you might end up with a long rant on why POSIX interfaces sucks :P
pfdietz has joined #lisp
<Odin->
pjb, p_l: Dunno, at least some of the relevant standards include C header snippets as the definitive material.
<Odin->
POSIX is crap.
<Odin->
So is C.
<jackdaniel>
p_l: that's not my point. either way, since we talk about outstanding operating systems, here is windows93: http://www.windows93.net/ and I'll stop offtopic on my part
<pjb>
Odin-: anyways, we should aim higher, with a lispOS…
<Odin->
pjb: Yes, but it's still going to be useful to run a Lisp on those other OSes.
<Odin->
And those might not always be pure Lisp all the way down.
* Odin-
goes to get his food.
<fe[nl]ix>
I consider win32.dll to be the equivalent of "libc" for all intents and purposes
<fe[nl]ix>
direct syscalls is nice but in practice it would only work on Linux
<pjb>
Odin-: we can have lisp implementations targetting POSIX systems indeed. ecl is more like that than other implementations. We could have CL implementation to produce DLLs and shared libraries usable from C.
<jackdaniel>
libecl.so and libecl.dll are usable from C
<jackdaniel>
I'm sure that they would be even usable from sbcl via CFFI :-)
karlosz has joined #lisp
karlosz has quit [Remote host closed the connection]
<dlowe>
Right, so to summarize, POSIX is crap, therefore libfixposix. QED.
<p_l>
fe[nl]ix: OneCore.lib/dll for recent windows
<pjb>
Yep.
<fe[nl]ix>
that said, if SBCL used LLVM, you could have wrappers for C macros that get inlined in Lisp code
<copec>
I like the unix processor model with C. I think it is the lowest common denominator to have totally separate software systems share
<fe[nl]ix>
a bit like Rust and C++ functions can be cross-inlined in the IR
efm has quit [Ping timeout: 260 seconds]
<fe[nl]ix>
that would be cool and make libfixposix mostly unnecessary
<copec>
It would be nice if there were some type of standard low level data structures that could work between different languages without conversion
<Odin->
WASM is shooting for something sorta-kinda like that.
<copec>
I guess in terms of Unix/C, that interface IS C like fe[nl]ix said
didi has left #lisp ["O bella ciao bella ciao bella ciao, ciao, ciao."]
<p_l>
well, WinNT is much more C-like, but a) the interfaces are designed mostly so that you don't need C b) for complex interfaces there's COM
* Odin-
would be delighted if he could compile CL code to run on a microcontroller.
<copec>
I think the best bet for that is to write a cross-compiler in a CL as you dev it
<jackdaniel>
Odin-: subset of it, or a whole thing (eval included)?
<p_l>
depending on size of the microcontroller, you might fit some...
<fe[nl]ix>
I look forward for a libc whose API is defined in some IDL language, which is then translated to various languages (including C headers)
cg505 has joined #lisp
shifty has quit [Ping timeout: 255 seconds]
<p_l>
fe[nl]ix: WinNT is... getting close there? I mean, there's a bunch of stuff which will remain defined through C headers, but all the advanced complex APIs are in IDL (including DirectX, WPF, etc.)
<Odin->
jackdaniel: I'd be fine with a subset. There's an interpreter for a slightly-off subset that can run on an ATmega328, which is an interesting toy.
shifty has joined #lisp
<fe[nl]ix>
I need a C compiler because libc headers are typically a nightmare to parse
<p_l>
yeah, though at least those structs are not going to change on you :V
<fe[nl]ix>
they do change across architecture
<fe[nl]ix>
perhaps we're complaining too much
<p_l>
across architectures, yes. But even then not much, afaik (due to rather specific typing approach in MS source code)
<fe[nl]ix>
Go developers just redefined everything manually
<ebrasca>
copec: I think there is one cros copiler from llvm to cl
<fe[nl]ix>
and put the burden of doing that on whoever wanted to port Go to their OS/arch combo
<jackdaniel>
grammar
<jackdaniel>
(which was also cleaned up by him)
<Odin->
fe[nl]ix: Yeah, but Go seems to have a manpower problem on the opposite end of the scale.
<fe[nl]ix>
exactly
<fe[nl]ix>
if you have too many contributors you don't need general solutions
lavaflow has quit [Ping timeout: 258 seconds]
<fe[nl]ix>
libfixposix can be an annoying requirement but it works very well and it's easy to maintain
<p_l>
Go, most importantly, started with an already ported custom runtime before they wrote first line of compiler
karlosz has joined #lisp
<p_l>
*then* they slowly rewrote the C parts (that weren't ANSI/ISO C anyway)
<fe[nl]ix>
Well, they ported it from Plan9 to Linux
<fe[nl]ix>
the other operating systems came afterwards
<p_l>
fe[nl]ix: they used a pre-existing ported code, iirc
lavaflow has joined #lisp
<p_l>
8c as well as Plan9 runtime libs were already ported to Linux, Windows and Mac
<fe[nl]ix>
ah ok
<p_l>
6c wasn't, but I don't remember if they published a version of it, but then, 6c differences from 8c were... minor
<p_l>
8 = code for 386-compatible, 6 = code for amd64
<p_l>
ARM was 5, ppc32 was q, ppc64 9, SPARC k, MIPS be v, and MIPS le 0
ukari has joined #lisp
karlosz has quit [Quit: karlosz]
<Odin->
Plan9 was a ... thing.
<p_l>
Octopus was... thingier
<jackdaniel>
I think that this discussion drifted from lisp a while ago
<jackdaniel>
towards #lispcafe :)
<Odin->
Fair enough.
<p_l>
fe[nl]ix: anyway, they way I see it, perhaps iolib should promote better interfaces to be packaged as part of the implementation, so that libfixposix is needed less (or might be, in fact, embedded in the implementation)
<p_l>
and avoid C runtime interfaces on platforms where they are not, in fact, native
* dlowe
notes that sbcl itself has C parts due exactly to this issue.
<dlowe>
Now using those C parts to expose a full posix interface sounds like a worthy project.
<dlowe>
if the sbcl project would have it
<jackdaniel>
do you mean sb-posix package?
<dlowe>
that's where it would go, sure. But I mean taking the bits from libfixposix and integrating them so that libfixposix isn't needed.
<fe[nl]ix>
This has been discussed already
<fe[nl]ix>
sb-posix is very high-level and slow
<fe[nl]ix>
it conses a lot because it deals with Lisp objects, path names etc...
<dlowe>
If the implementation were in the C runtime instead, it wouldn't need to be high-level or slow
<fe[nl]ix>
you also need an package with FFI-only functions
orivej has quit [Ping timeout: 240 seconds]
<fe[nl]ix>
anyway, we're talking about standardising a Posix interface
varjag has joined #lisp
<fe[nl]ix>
and I'm not going there
narimiran has quit [Ping timeout: 256 seconds]
earl-ducaine has joined #lisp
efm has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
madage has quit [Remote host closed the connection]
gravicappa has quit [Ping timeout: 260 seconds]
jgkamat has joined #lisp
ebrasca has quit [Remote host closed the connection]
madage has joined #lisp
niceplace has quit [Ping timeout: 268 seconds]
niceplace has joined #lisp
kamog has joined #lisp
karlosz has joined #lisp
xuxuru has quit [Quit: xuxuru]
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
prince1 has joined #lisp
random-nick has quit [Ping timeout: 258 seconds]
prince1 has quit [Ping timeout: 255 seconds]
slyrus_ has joined #lisp
slyrus__ has quit [Ping timeout: 256 seconds]
z147 has joined #lisp
ArthurStrong has joined #lisp
pilne has joined #lisp
akoana has quit [Ping timeout: 268 seconds]
amerlyq has quit [Quit: amerlyq]
xkapastel has quit [Quit: Connection closed for inactivity]
karlosz has quit [Quit: karlosz]
Bike has quit [Quit: Bike]
hiroaki_ has quit [Ping timeout: 256 seconds]
prince1 has joined #lisp
kamog has quit [Remote host closed the connection]
karlosz has joined #lisp
varjag has quit [Ping timeout: 255 seconds]
jmercouris has joined #lisp
Frobozz___ has quit [Quit: quit]
<jmercouris>
optima vs trivia?
<jmercouris>
any reason to prefer one over the other?
asarch has joined #lisp
loli has quit [Quit: WeeChat 2.7.1]
<phoe>
trivia seems faster
loli has joined #lisp
<phoe>
and compatible with optima
Inline has quit [Ping timeout: 272 seconds]
<loli>
trivia is quite nice
akoana has joined #lisp
<jmercouris>
OK
<jmercouris>
thanks for opinions
<jmercouris>
I guess trivia it shall stay
<jmercouris>
goodnight everyone
jmercouris has quit [Remote host closed the connection]