<pillton>
It would have to be before 2013 because that is when I used it in a project.
loli has quit [Quit: WeeChat 2.1]
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
smurfrobot has quit [Remote host closed the connection]
loli has joined #lisp
fikka has joined #lisp
markoong has quit [Quit: Konversation terminated!]
markoong has joined #lisp
markoong has quit [Client Quit]
markoong has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
m3tti has joined #lisp
markoong has quit [Ping timeout: 240 seconds]
m3tti_ has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
eli_oat has joined #lisp
kjeldahl has joined #lisp
eli_oat has quit [Client Quit]
eli_oat has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
dtornabene has quit [Quit: Leaving]
_cosmonaut_ has quit [Ping timeout: 245 seconds]
fikka has joined #lisp
Pixel_Outlaw has joined #lisp
Jesin has joined #lisp
Axe_Yell has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
eli_oat has quit [Quit: Leaving.]
fikka has joined #lisp
gousuto has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
rumbler31 has joined #lisp
eli_oat has joined #lisp
smurfrobot has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
zachk has quit [Quit: Leaving]
fikka has quit [Ping timeout: 264 seconds]
smurfrobot has joined #lisp
kozy has joined #lisp
m3tti_ has joined #lisp
fikka has joined #lisp
m3tti has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 256 seconds]
Axe_Yell has quit [Ping timeout: 265 seconds]
smurfrobot has quit [Remote host closed the connection]
fikka has joined #lisp
spoken-tales has joined #lisp
smurfrobot has joined #lisp
spoken-tales has quit [Client Quit]
spoken-tales has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
didi has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
SenasOzys has quit [Ping timeout: 260 seconds]
buffergn0me has joined #lisp
Beep-Lord has quit [Quit: WeeChat 1.6]
fikka has joined #lisp
gousuto has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
Beep-Lord has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
<didi>
How would you compare the memory usage of different data structures? For example, between a list, a vector, and a hash-table, all of them with 10 k elements.
<mfiano>
That is implementation-specific. Also, lists may share structure.
slyrus1 has quit [Quit: slyrus1]
<akkad>
like shared hashes vs non-shared
<didi>
mfiano: Indeed. I want to compare them using my implementation.
<didi>
I don't want to make a general statement. Just compare these things inside my own program.
rumbler31 has quit [Remote host closed the connection]
<mfiano>
Youre going to have a hard time. At best you can use ROOM to get an approximation at any point in time, garbage collection aside.
<Jachy>
A portable hack might be to load up the data in one data structure and call (room), exit, rerun with the other data structure...
robotoad has quit [Quit: robotoad]
subroot has quit [Read error: Connection reset by peer]
<didi>
Thank you.
FreeBirdLjj has quit [Remote host closed the connection]
uncommon_lisp has joined #lisp
fikka has joined #lisp
Oladon has joined #lisp
asarch has joined #lisp
<LdBeth>
Can someone explain what’s the precedence list of class
slyrus_ has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 256 seconds]
shangul has joined #lisp
<mfiano>
it's a flattened view from that class to T, with every super-class in between.
<mfiano>
it's literally a list of ordered class objects
<LdBeth>
Does it regenerated after any super-class is updated?
montxero has joined #lisp
<montxero>
Hey guys
<pfdietz>
Yes it is.
<LdBeth>
Thank you guys
fikka has joined #lisp
<montxero>
Quick question... I have some functions in funcs.lisp and I want to use them in a differnt file other_funcs.lisp. How do I achieve that
<montxero>
On common lisp sbcl
<Bike>
just do it
<mfiano>
You need to learn about ASDF
<mfiano>
You typically don't manually load files, but systems.
robotoad has joined #lisp
<LdBeth>
If you don’t want write asdf, just (LOAD file)
<montxero>
Thanks <mfiano>, I am just starting out with lisp
<mfiano>
I would suggest reading PCL. It's free online
<montxero>
Is it possible to achieve this before having to learn about packaging and all that
<montxero>
for something as simple as importing a couple of sorting functions, surely one doesnt have to worry about asdf, quicklisp and the like
<montxero>
Thanks LsBeth
<montxero>
Ldbeth**
fikka has quit [Ping timeout: 264 seconds]
<Bike>
yeah. just load one file then load the other file.
al-damiri has quit [Quit: Connection closed for inactivity]
slyrus_ has joined #lisp
eli_oat has quit [Quit: Leaving.]
<didi>
Jachy: Cool, thank you.
<didi>
Incidentally, I'm using SBCL.
pjb` has joined #lisp
pjb has quit [Ping timeout: 256 seconds]
eli_oat has joined #lisp
<aeth>
didi: It also depends on what you're storing. If you're storing (unsigned-byte 8)s or single-floats or bits, etc., you could use :element-type in make-array
<aeth>
10k bits in a bit-vector are probably going to be better than 10k conses storing bits
<didi>
aeth: Thank you.
<didi>
Like I said, I don't want to make any general statement. Just compare my program memory usage by using different data structures.
pjb`` has joined #lisp
pierpa has quit [Quit: Page closed]
EvW has joined #lisp
pjb` has quit [Ping timeout: 245 seconds]
shangul has quit [Quit: sudo rm -rf /usr/*]
pjb``` has joined #lisp
<mfiano>
That seems a strange request
brendyn has joined #lisp
pjb`` has quit [Ping timeout: 256 seconds]
EvW has quit [Ping timeout: 256 seconds]
<didi>
Yeah? Oh well.
<slyrus_>
Hmm... tried to say this before, but I guess the network died.
fikka has joined #lisp
<slyrus_>
I see TBRSS has shut down. What was TBRSS?
pjb```` has joined #lisp
<slyrus_>
hey pjb is the com.informatigo stuff no longer in quicklisp?
<mfiano>
pjb's informatigo has been missing from Quicklisp for quite a while.
mathZ has joined #lisp
<Jachy>
(TBRSS was an rss reader and I think you could sign up to have it archive things for you similar to Pinboard, but there's a lot of open source lisp code the author released around it.)
pjb````` has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
pjb```` has quit [Ping timeout: 256 seconds]
<mfiano>
slyrus_: Do note that com.informatigo is released under the terms of the GNU AGPL, and may not be compatible with a great deal of other Lisp software.
pjb`````` has joined #lisp
eli_oat has quit [Quit: Leaving.]
<slyrus_>
ok, thanks mfiano and Jachy. looking to replace pjb's html generator with something else.
<mfiano>
Speaking of TBRSS, may I recommend his html generator?
<mfiano>
It was by far the most pleasant to work with to me after trying more than a handful over the last few years
<mfiano>
It's called spinneret
pjb````` has quit [Ping timeout: 256 seconds]
<slyrus_>
hah! I tried that but it doesn't build on ABCL :(
Jesin has quit [Quit: Leaving]
<slyrus_>
am looking at xhtmlambda and not liking it much
pjb`````` has quit [Ping timeout: 256 seconds]
<didi>
Uh, I didn't know SBCL could profile memory allocation. This is great. Thank you, Jachy, for the article.
<uncommon_lisp>
sbcl can do anything! :}
<slyrus_>
except play nice with the JVM
<uncommon_lisp>
But who needs that?
<Jachy>
Has anyone tried making a Clojure <-> ABCL bridge? They're just two jars.. :) But then you could use Hiccup.
skapata has quit [Read error: Connection reset by peer]
slyrus_ has quit [Ping timeout: 264 seconds]
pierpal has quit [Read error: Connection reset by peer]
fikka has joined #lisp
pierpal has joined #lisp
housel has joined #lisp
shifty has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
eli_oat has joined #lisp
eli_oat has quit [Client Quit]
fikka has joined #lisp
slyrus_ has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
buffergn0me has quit [Ping timeout: 256 seconds]
pierpal has quit [Read error: Connection reset by peer]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
nickenchuggets has quit [Read error: Connection reset by peer]
nickenchuggets has joined #lisp
<akkad>
oddly some distros have better java interropt :P
fikka has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
AetherWind has joined #lisp
fikka has joined #lisp
<beach>
Good morning everyone!
<beach>
mfiano: I developed Cluffer that way, i.e. using several packages and an internal protocol.
<montxero>
Thanks <mfiano> and others. It turns out I what I needed to do was to compile the functions in my current instance of slime/sbcl.
<pillton>
Compile and load.
<montxero>
mfiano: following your advise, I will not use load for individual functions. Thanks
sz0 has quit [Quit: Connection closed for inactivity]
fikka has quit [Ping timeout: 240 seconds]
<mfiano>
beach: Yeah it does seem the way to go, and what has worked well for very large projects of mine in the past. I guess what I was getting at is it's going to be a considerable amount of time before I have a protocol which is stable enough, even for internal use, and it's easier to develop with a single package during early development, where early at this scale is several months at least.
<mfiano>
It's just too much meta-programming (and not the fun kind!) and too early when I should be sketching out a PoC
<beach>
mfiano: Sure. All that depends on experience and your personal preference.
<beach>
In my case, it was not the first time I thought about this kind of software (I have been thinking about it for some 30 years and produced various versions), so I pretty much knew the issues.
<beach>
Where "this kind of software" is an "editable sequences", specifically for use as a text buffer in a text editor.
rumbler31 has joined #lisp
<mfiano>
I see.
fikka has joined #lisp
copyeditor has quit [Read error: Connection reset by peer]
nydel has quit [Read error: Connection reset by peer]
<mfiano>
After all, I did move to CL over a decade ago for the reason that it was better at prototypical code than what I was using at the time.
<mfiano>
It is important to spend more time on ideas during early development than protocols and nomenclature in my honest opinion.
<beach>
You may be right. And that's what I did for 25 years. :)
rumbler31 has quit [Ping timeout: 248 seconds]
<mfiano>
Speaking of Cluffer, how is SecondClimacs coming along these days? I admit it's been a year or two since I checked on it.
<beach>
It is stalled at the moment. I am working on the specification of the garbage collector for SICL right now.
Bike has quit [Quit: Lost terminal]
fikka has quit [Ping timeout: 248 seconds]
<mfiano>
THat is respectable
<beach>
And I have been distracted by the work of MichaelRaskin on debugging. It gave me the idea that I could give support for something like Clordane without having a native SICL version. Instead, I could use it for debugging cross-compiled SICL code inside SBCL, which would be a huge advantage over debugging core dumps.
<beach>
I am not much into masochistic programming practices, so I try to minimize my own pain when it comes to software development.
<beach>
I am worried about this GC thing though. I fear that nobody I know has both the time and the competence to read and understand my specification. If so, I would have to implement it myself to verify that it works, and that would certainly be very painful.
<uncommon_lisp>
I could try reading your spec - but I can only offer a nod of approval and a thumbs up afterwards because I probably wouldn't understand it.
<beach>
uncommon_lisp: That's very kind of you. I'll work on it a bit more and then I'll submit it for remarks here. I know flip214 is expecting more material from me before he is able to comment any further.
<beach>
He is right that it was very sketchy, and I need to work out the details. And there turn out to be many such details to work out.
smurfrobot has quit [Remote host closed the connection]
hph^ has quit [Ping timeout: 260 seconds]
Pixel_Outlaw has quit [Remote host closed the connection]
fikka has joined #lisp
<Jachy>
Is the spec for a particular GC implementation or for being able to integrate/swap different GCs?
spoken-tales has quit [Quit: ERC (IRC client for Emacs 26.1)]
<beach>
Jachy: That would be very hard to do. The GC is intimately tied to other implementation aspects of the system.
<beach>
Jachy: But there is an entire book on different types of GC and how they work.
<beach>
Jachy: The book is absolutely horrible when it comes to the writing itself, but it does contain a fairly complete description of must existing techniques.
<Jachy>
I've got a digital copy of the garbage collection handbook if that's the one you're referring to though I have barely scratched the surface in the past.
<Jachy>
I'm just thinking of the JVM with its several GC implementations (and a few proprietary ones like Azul's) has been an advantage.
<beach>
Yes, that's the one.
Lauven has joined #lisp
smurfrobot has joined #lisp
<pillton>
When is the 2016 edition coming out in dead tree form? The website has been saying soon for ages. I emailed the publisher and I got no reply.
<beach>
Jachy: Just keep in mind that, if you read a section and do not understand it, it may not be your fault. It could very well be the bad writing.
fikka has quit [Ping timeout: 260 seconds]
<beach>
I am sorry to say this. Jones is a great thinker, but his writing stinks.
<beach>
He could use some advice from Steven Pinker.
<uncommon_lisp>
I was going to buy that book but now I'm not so sure I want to waste money on bad writing
igemnace has joined #lisp
<beach>
You have no alternative, I am afraid.
<beach>
Or, you can start with Paul Wilson's survey paper.
<beach>
It is a bit old now, but Paul is a much better writer.
<uncommon_lisp>
I could request that you write several essays and compile them into a book for me, and then post it here.
<uncommon_lisp>
I only joke of course.
<uncommon_lisp>
:]
<beach>
Heh. On GC, specifically? Sure, but I would manly just rehash what the others have already written.
<beach>
There might be some value to that, because I think of myself as a better writer than Jones. Maybe not better than Paul Wilson, though.
<uncommon_lisp>
If you do write a comprehensive paper on it (not in a scholarly, verbose fashion, but in the style of K&R or Maurice J. Bach's design of unix), I'd read it for sure
<beach>
I'll put it on my list of books to write. It is now in position 12.
fikka has joined #lisp
<uncommon_lisp>
Btw, I missed the conversation regarding the gc (what it's for (the software package I mean)) - are you writing the gc and everything in CL?
<Jachy>
Wilson's paper seems very familiar, I suspect I read it before sometime in the last 4-6 years but it's not in my finished folder..
<beach>
uncommon_lisp: I am planning to write as much as possible in Common Lisp. For now, I am just writing a detailed specification of the GC I am planning for SICL.
<Jachy>
It is dated in that no mention of real time GC, but the Handbook only goes over that in the final chapter. Doesn't seem like there's that much interest in real time systems in the broader environment anyway.
fikka has quit [Ping timeout: 256 seconds]
<beach>
Jachy: It's just very hard stuff.
<beach>
Jachy: Also, some of the standard techniques can be adapted to be real-time.
didi has left #lisp ["there are always reasons to /part"]
<uncommon_lisp>
I've just glanced at some of your projects, very nice stuff
fikka has joined #lisp
vtomole has joined #lisp
<uncommon_lisp>
The climacs editor in particular was something I was really interested in back when I was trying my best to avoid emacs.
smurfrobot has quit [Remote host closed the connection]
<beach>
uncommon_lisp: Thanks.
fikka has quit [Ping timeout: 264 seconds]
makomo has quit [Quit: WeeChat 2.0.1]
makomo has joined #lisp
Lauven has quit [Quit: leaving]
uncommon_lisp has quit []
shka_ has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
fikka has joined #lisp
igemnace has joined #lisp
vtomole has quit [Ping timeout: 260 seconds]
nopf has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
sauvin has joined #lisp
asarch has quit [Quit: Leaving]
fikka has joined #lisp
cpape has quit [Ping timeout: 245 seconds]
daniel-s has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 276 seconds]
xrash has quit [Ping timeout: 255 seconds]
milanj has joined #lisp
nickenchuggets has quit [Quit: Leaving]
daniel-s has joined #lisp
SlowJimmy has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
cpape has joined #lisp
Inline has quit [Quit: Leaving]
fikka has quit [Ping timeout: 264 seconds]
buffergn0me has joined #lisp
smurfrobot has joined #lisp
Beep-Lord has quit [Quit: WeeChat 1.6]
smurfrobot has quit [Ping timeout: 248 seconds]
surya has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
fikka has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
khrbt has joined #lisp
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 268 seconds]
shrdlu68 has joined #lisp
fikka has joined #lisp
flamebeard has joined #lisp
eschatologist has quit [Ping timeout: 244 seconds]
eschatologist has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
smurfrobot has joined #lisp
buffergn0me has quit [Ping timeout: 265 seconds]
buffergn0me has joined #lisp
vlatkoB has joined #lisp
smurfrobot has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
AetherWind_GJ has joined #lisp
doesthiswork has quit [Quit: Leaving.]
AetherWind has quit [Disconnected by services]
AetherWind_GJ is now known as AetherWind
fikka has joined #lisp
scymtym has quit [Ping timeout: 255 seconds]
kushal has quit [Ping timeout: 250 seconds]
kushal- has joined #lisp
Smokitch has joined #lisp
mathZ has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
kushal- is now known as kushal
buffergn0me has quit [Ping timeout: 245 seconds]
robotoad has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
<flip214>
beach: just prove that your GC is correct, no need for debugging or even writing it then ;P
zaquest has quit [Ping timeout: 256 seconds]
<beach>
Good plan.
surya has quit [Remote host closed the connection]
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 25.3.2)]
fyodost has quit [Ping timeout: 248 seconds]
robotoad has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
surya has joined #lisp
fikka has joined #lisp
vertigo has quit [Ping timeout: 256 seconds]
littlelisper has joined #lisp
shifty has quit [Remote host closed the connection]
daniel-s has quit [Remote host closed the connection]
shifty has joined #lisp
daniel-s has joined #lisp
vertigo has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
smurfrobot has joined #lisp
lumm has joined #lisp
smurfrobot has quit [Ping timeout: 256 seconds]
xh4 has joined #lisp
robotoad has quit [Quit: robotoad]
varjag has joined #lisp
caltelt_ has quit [Ping timeout: 248 seconds]
scymtym has joined #lisp
nowhere_man has joined #lisp
fikka has joined #lisp
schweers has joined #lisp
littlelisper has quit [Quit: leaving]
PinealGlandOptic has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
zaquest has joined #lisp
smurfrobot has joined #lisp
fikka has joined #lisp
Folkol_ has joined #lisp
dddddd has joined #lisp
smurfrobot has quit [Ping timeout: 260 seconds]
shrdlu68 has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 256 seconds]
shrdlu68 has joined #lisp
nowhere_man has quit [Ping timeout: 256 seconds]
lumm has quit [Read error: Connection reset by peer]
lumm has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
Cymew has quit [Read error: Connection reset by peer]
Cymew has joined #lisp
milanj has joined #lisp
Kaisyu7 has joined #lisp
fikka has joined #lisp
schweers has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
PinealGlandOptic has quit [Quit: leaving]
Folkol_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has quit [Ping timeout: 265 seconds]
daniel-s has quit [Remote host closed the connection]
orivej has joined #lisp
nowhere_man has joined #lisp
smurfrobot has joined #lisp
nowhereman_ has joined #lisp
nowhere_man has quit [Ping timeout: 260 seconds]
smurfrobot has quit [Ping timeout: 255 seconds]
schweers has joined #lisp
logicmoo has quit [Ping timeout: 265 seconds]
trittweiler has joined #lisp
random-nick has joined #lisp
dmiles has joined #lisp
fikka has joined #lisp
<LdBeth>
Spend whole afternoon figuring out what does STACK-LET do.
<dim>
stack-let?
<LdBeth>
And finally I found it just do type declarations and declare dynamic extend
<beach>
Is that an Alexandria thing?
shrdlu68 has quit [Ping timeout: 248 seconds]
shrdlu68 has joined #lisp
nowhere_man has joined #lisp
nowhereman_ has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 248 seconds]
hhdave has joined #lisp
markoong has joined #lisp
<edgar-rft>
LdBeth, I've heard a stacklet is a little child of a stack
smurfrobot has joined #lisp
fikka has joined #lisp
m00natic has joined #lisp
smurfrobot has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 264 seconds]
<beach>
edgar-rft: heh.
xificurC has joined #lisp
``Erik_ has joined #lisp
``Erik has quit [Ping timeout: 265 seconds]
Folkol_ has joined #lisp
xh4 has quit [Remote host closed the connection]
Khisanth has quit [Ping timeout: 240 seconds]
xh4 has joined #lisp
fikka has joined #lisp
<LdBeth>
beach: It Lisp Machine thing.
<LdBeth>
Symbolics Common Lisp
nowhere_man has quit [Ping timeout: 245 seconds]
lnostdal has quit [Ping timeout: 240 seconds]
skapata has joined #lisp
Smokitch has quit []
Kaisyu has quit [Quit: Connection closed for inactivity]
heisig has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
Folkol_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lnostdal has joined #lisp
AetherWind has quit [Quit: Leaving]
kajo has quit [Ping timeout: 265 seconds]
kajo has joined #lisp
fikka has joined #lisp
smurfrobot has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
fikka has quit [Ping timeout: 256 seconds]
smurfrobot has quit [Ping timeout: 256 seconds]
eschatologist has quit [Ping timeout: 276 seconds]
eschatologist has joined #lisp
smurfrobot has joined #lisp
Cthulhux has quit [Quit: ne praeteriverit priusquam obesa cantaverit]
<jmercouris>
jackdaniel: does it work on a modern implementation of sbcl?
<jmercouris>
ok
<jackdaniel>
it's hard to recover from errors though
<jmercouris>
that's fine
<jmercouris>
and did you use it on Linux?
<jackdaniel>
yes
<jackdaniel>
keep in mind, that documentation is useful but incomplete
<jmercouris>
jackdaniel: outside of mcclim, what is, in your opinion the best cross-platform GUI?
<jmercouris>
jackdaniel: I've not yet encountered complete documentation for a CL GUI :D
<jackdaniel>
there is a separate system (in the same tar shipped by quicklisp) which gives you many useful widgets
<jmercouris>
I'll have to check it out, thanks
<jackdaniel>
I have no opinion on that
<jmercouris>
Ok
<jackdaniel>
all are terrible one way or another
<jackdaniel>
(mcclim included)
<jmercouris>
too real
<jmercouris>
I haven't tried any of the offerings by allegro or lispworks though
<jackdaniel>
capi is suposedly good
<jmercouris>
like :http://www.lispworks.com/products/capi.html
<jmercouris>
yeah I was about to say, it looks really good
<jackdaniel>
EQL (ECL embedded with QT) is a good solution and it works with QML
<jmercouris>
Yeah, I did a lot of work on EQL
<jmercouris>
I must say it is quite good, but getting a compilable, and distributable binary
<jmercouris>
is a huge challenge
EvW1 has joined #lisp
<jackdaniel>
everything is a huge challenge given person in question needs to learn the basics of the tool in question
<jackdaniel>
so many "in question"'s
<jmercouris>
It's not just about learning the tools
<jmercouris>
the distributions of QT are very different from each other
<jmercouris>
I had to make modifications to the actual source of EQL to get it to work with different versions of QT
<jmercouris>
and platform specific differences for how one distributes a binary are also a huge challenge
<jmercouris>
normally when working in the QT environment, QT provides all of that tooling for you
<jmercouris>
but when you have to use unupdated insufficient command line tools, it isn't a good time
igemnace has quit [Quit: WeeChat 2.1]
<jmercouris>
it would be like trying to compile and distribute an xcode project entirely on the command line, its totally possible, but its totally not made easy for you
<jackdaniel>
I don't understand what you are saying, but that's most likely lack of knowledge on my site. I'll be back later
<jmercouris>
its fine, it doesn't matter, but suffice to say, distribution with EQL is hard
<jmercouris>
getting a suitable build environment involved something like 20 steps
* jackdaniel
had different experience
<jmercouris>
you are on Linux, as is the developer of EQL
<jmercouris>
as you can see, the instructions are non-trivial
<jmercouris>
for the record, it would not even install on OSX when I started, that is far later on, the earlier instructions are even worse
<jackdaniel>
I think you've already lost when you said xcode
<jackdaniel>
but what do I know ,) either way, OSX isn't very appealing platform, I believe you
<jmercouris>
what do you mean "lost"? I didn't realize we were competing
<jmercouris>
I'm pretty sure we are on the same team
Tristam has quit [Ping timeout: 255 seconds]
Trystam is now known as Tristam
schweers has quit [Ping timeout: 260 seconds]
<LdBeth>
Compiling CCL applications does not require Xcode
<jmercouris>
LdBeth: well, kind of
<LdBeth>
Even with Cocoa Interface
<jackdaniel>
jmercouris: I mean: you've lost against the computer and sanity
Ricchi has joined #lisp
<jmercouris>
Oh, I see
<jmercouris>
I've certainly lost my sanity a few times dealing with building
<jackdaniel>
not against me, I have no interest (sorry about that), how deep into craziness you've digged on OSC ;p
<jackdaniel>
osx
<jackdaniel>
in knowing how deep*
<flip214>
DEFTYPE allows to do parametric types, like (DEFTYPE UINT (size) `(INTEGER 0 ,(1- (expt 2 size)))). but such types can't be used in DEFMETHOD, right?
<jackdaniel>
flip214: they can't, because types and class system are not the same in CL
<flip214>
as these are just subsets of already existing types.
<flip214>
jackdaniel: ack, thanks
<jackdaniel>
for instance you may associate an arbitrary predicate with a type
<jackdaniel>
what you could do is to detect type during dispatch and construct object of a specific class (to dispatch on it) – look at filtered-functions for such possibility
<jackdaniel>
filtered-functions is closer-mop based
juristi has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
fikka has joined #lisp
doesthiswork has quit [Quit: Leaving.]
carmack has joined #lisp
<carmack>
I'm home ^_^
raynold has quit [Quit: Connection closed for inactivity]
nowhere_man has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
Folkol_ has quit [Ping timeout: 240 seconds]
milanj has joined #lisp
smurfrobot has joined #lisp
wildbartty has joined #lisp
foom2 has joined #lisp
foom has quit [Ping timeout: 255 seconds]
smurfrobot has quit [Ping timeout: 256 seconds]
<jmercouris>
there's some sort of slime configuration for how the process is spawned
<jmercouris>
I can't remember what it is called
<jmercouris>
can someone please remind me?
fikka has joined #lisp
<shka_>
jmercouris: yes
makomo has quit [Ping timeout: 248 seconds]
<jmercouris>
shka_: will someone please remind me?
<jmercouris>
I meant threads, not processes, my bad
RTZ0x859 has joined #lisp
RTZ0x859 has quit [Max SendQ exceeded]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
RTZ0x859 has joined #lisp
RTZ0x859 has quit [Max SendQ exceeded]
SaganMan has joined #lisp
<jmercouris>
specifically communication threads
<jmercouris>
because sometimes you get blocked IO in the slime repl depending on the system
lnostdal_ has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
rumbler31 has joined #lisp
lnostdal has quit [Ping timeout: 264 seconds]
lnostdal_ has quit [Ping timeout: 256 seconds]
pierpal has joined #lisp
Denommus has quit [Ping timeout: 248 seconds]
rumbler31 has quit [Remote host closed the connection]
lnostdal has joined #lisp
fikka has joined #lisp
Bike has joined #lisp
<varjag>
is there a way to get raw request body in easy handler of hunchentoot?
kajo has quit [Ping timeout: 256 seconds]
<varjag>
mm.. *request* + raw-post-data i guess..
xaotuk has joined #lisp
attila_lendvai has quit [Ping timeout: 248 seconds]
Ricchi has quit [Quit: Leaving]
smurfrobot has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
smurfrobot has quit [Ping timeout: 248 seconds]
Ricchi has joined #lisp
Ricchi has quit [Client Quit]
attila_lendvai has joined #lisp
surya has quit [Ping timeout: 248 seconds]
ikeru7639 has joined #lisp
Murii_ has joined #lisp
ikeru7639 has quit [Quit: leaving]
ebrasca` has joined #lisp
ebrasca has quit [Ping timeout: 276 seconds]
ebrasca` is now known as ebrasca
mindCrime has joined #lisp
merodix has joined #lisp
kajo has joined #lisp
eli_oat has joined #lisp
xaotuk has quit [Ping timeout: 256 seconds]
Ricchi has joined #lisp
FreeBirdLjj has joined #lisp
sjl has joined #lisp
arzoriac has joined #lisp
FreeBirdLjj has quit [Ping timeout: 255 seconds]
<shrdlu68>
Who goes by the nick "lispm" on HN?
<jackdaniel>
shrdlu68: Rainer Joswig
<jackdaniel>
why?
<jdz>
My guess is Rainer Joswig.
<shrdlu68>
Just curious. Does he ever hang out here?
attila_lendvai has quit [Ping timeout: 245 seconds]
<Xach>
shrdlu68: no
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 264 seconds]
mindCrime has quit [Ping timeout: 276 seconds]
arzoriac has quit [Ping timeout: 255 seconds]
jack_rabbit has quit [Ping timeout: 264 seconds]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
nowhere_man has quit [Ping timeout: 256 seconds]
asarch has joined #lisp
SaganMan is now known as e^i
rumbler31 has joined #lisp
nowhere_man has joined #lisp
rumbler31 has quit [Ping timeout: 276 seconds]
Kaisyu has joined #lisp
Khisanth has joined #lisp
shrdlu68 has quit [Ping timeout: 265 seconds]
surya has joined #lisp
scymtym has quit [Ping timeout: 255 seconds]
sjl has quit [Quit: WeeChat 2.2-dev]
sjl has joined #lisp
attila_lendvai has quit [Ping timeout: 248 seconds]
eli_oat has quit [Quit: Leaving.]
Inline has joined #lisp
flamebeard has quit []
smurfrobot has joined #lisp
eli_oat has joined #lisp
nickenchuggets has joined #lisp
<beach>
GAH, working out the details of how the SICL garbage collectors will work is both painful and totally necessary. I am grateful to flip214 for not being content with my sketchy description of it. It turns out there are tons of little details to hash out. A few bitmaps here and there, the order between promotion and compaction in the nursery, how promotion works exactly, etc. etc.
smurfrobot has quit [Ping timeout: 240 seconds]
<beach>
Xof: You are off the hook (for now). I need to determine a lot more details before I will ask you again to review it.
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
schweers has joined #lisp
heisig has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
edgar-rft has quit [Quit: edgar-rft]
buffergn0me has joined #lisp
EvW has joined #lisp
<LdBeth>
lispm... sounds like someone logins to IRC as root : D
<Xof>
*phew*
<beach>
Xof: And you can of course still decline next time I ask.
robotoad has joined #lisp
nowhere_man has quit [Ping timeout: 256 seconds]
sbwhitecap has joined #lisp
mindCrime has joined #lisp
lumm has quit [Ping timeout: 255 seconds]
doesthiswork has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
merodix has quit [Remote host closed the connection]
EvW has quit [Ping timeout: 276 seconds]
Beep-Lord has joined #lisp
light2yellow has joined #lisp
attila_lendvai has quit [Ping timeout: 268 seconds]
Bike has quit [Ping timeout: 260 seconds]
Bike has joined #lisp
xaotuk has joined #lisp
smurfrobot has joined #lisp
xaotuk has quit [Client Quit]
makomo has joined #lisp
smurfrobot has quit [Ping timeout: 268 seconds]
<hjudt>
i have a slime usability question. when i have a macro like (with-stuff (bindings) object) and object is in the same line as the last binding, emacs highlights object in red color. why does it do that? if i put it in the next line, it doesn't get highlighted in red.
<hjudt>
it looks like when you use (error ...)
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
makomo has quit [Client Quit]
scymtym has joined #lisp
<hjudt>
is this intentional?
buffergn0me has quit [Ping timeout: 240 seconds]
<beach>
hjudt: It doesn't happen to me. At least not in every situation similar to what you describe.
fyodost has joined #lisp
hhdave has quit [Ping timeout: 276 seconds]
<Xof>
I think it's intentional
<Xof>
if you are closing something that was opened on a previous line, it's unconventional to have more stuff on the line that closes
<Xof>
(with-stuff ((a x)
<Xof>
(b y)) object)
<Xof>
would be more naturally
<Xof>
(with-stuff ((a x)
<Xof>
(b y))
<beach>
Oh, I misunderstood the situation.
<Xof>
object)
<Xof>
[ I can't count spaces at all, clearly ]
buffergn0me has joined #lisp
<beach>
I still can't reproduce it.
<beach>
Maybe I have an old version of Emacs and/or SLIME.
sbwhitecap has quit [Read error: Connection reset by peer]
<jackdaniel>
beach: try (let (a {newline} b) foo)
<jackdaniel>
where {newline} is to be replaced with a new line
<jackdaniel>
not that it won't show in REPL
<jackdaniel>
you need to type it in file
<Beep-Lord>
I can't reproduce it either
<beach>
jackdaniel: I tried that.
fikka has quit [Ping timeout: 255 seconds]
DemolitionMan has joined #lisp
DemolitionMan has quit [Client Quit]
buffergn0me has quit [Ping timeout: 256 seconds]
<beach>
Must be old versions. I am not going to work on it further.
<akkad>
jackdaniel: ltns! how is the Mcclim stuff going?
pjb has joined #lisp
<beach>
Hmm. Finding GC roots when stack traversal is precise, and in the presence of callee-saves registers is, let's say, interesting. A datum in a register or in a stack location close to the top of the stack may or may not be a Common Lisp object, depending on the value of the program counter in a stack frame much further down the stack.
al-damiri has joined #lisp
lumm_ has joined #lisp
lumm has quit [Ping timeout: 268 seconds]
attila_lendvai has quit [Ping timeout: 256 seconds]
erratic has quit [Ping timeout: 240 seconds]
lumm_ has quit [Ping timeout: 256 seconds]
m00natic has quit [Remote host closed the connection]
smurfrobot has joined #lisp
shifty has quit [Ping timeout: 264 seconds]
eli_oat has quit [Quit: Leaving.]
attila_lendvai has joined #lisp
smurfrobot has quit [Ping timeout: 256 seconds]
smasta has quit [Ping timeout: 240 seconds]
lumm has joined #lisp
asarch has quit [Quit: Leaving]
smasta has joined #lisp
lumm has quit [Remote host closed the connection]
mflem has joined #lisp
erratic has joined #lisp
smasta has quit [Ping timeout: 268 seconds]
smasta has joined #lisp
EvW has quit [Remote host closed the connection]
<Ukari>
is it possible to expand a list as a funcall's arguments without macro? for example, (defun test (&rest rest)) (defun expand (list) ...) (test (expand list))
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]
mathrick has quit [Ping timeout: 245 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
<hjudt>
beach: my slime and emacs are up-to-date for sure.
<beach>
hjudt: OK, mine must be old then.
<hjudt>
i have require 'slime-autoloads, slime-contribs fancy and indentation and ac-slime loaded
<hjudt>
it also happens with-slots. xof's description is more accurate than mine and makes sense.
<hjudt>
maybe i just need to get over the fact that is is highlighted and accept that it is good the way it is.
<hjudt>
this way, one cannot miss stuff and sees it immediately. i just wondered whether it is normal.
<jackdaniel>
this highlight is a good hint, that you should break the line before the red elements
<jackdaniel>
akkad: good, right now I'm focused on dragging ECL through 16.2.0 release finish line
<jackdaniel>
loke did some nice work with rendering and wrote a maxima client in McCLIM
attila_lendvai has quit [Ping timeout: 255 seconds]
<jackdaniel>
also froggey and fittestbits works on Mezzano port, I hope it will be ready to be a pull request soon
Ricchi has quit [Ping timeout: 240 seconds]
Smokitch has quit []
eli_oat has joined #lisp
EvW1 has joined #lisp
<beach>
So I guess for each safe point, we must keep a table that, for every callee-saves register contains the stack location where it was saved, if at all. Then traversing the stack, it suffices to swap the contents of the register (or the representation of it in the GC) with the corresponding location, to get a valid next stack frame. Then on the way up, do the operation in reverse.
Ricchi has joined #lisp
smurfrobot has joined #lisp
nymphy has joined #lisp
brandonz has joined #lisp
nymphy has quit [Client Quit]
smurfrobot has quit [Ping timeout: 264 seconds]
mathrick has joined #lisp
troydm has joined #lisp
Smokitch has joined #lisp
sjl has quit [Quit: WeeChat 2.2-dev]
sjl has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
Kaisyu has quit [Quit: Connection closed for inactivity]
nydel has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
smasta has quit [Ping timeout: 256 seconds]
pierpal has quit [Client Quit]
pierpal has joined #lisp
smasta has joined #lisp
MolluskEmpire has joined #lisp
sauvin has quit [Remote host closed the connection]
brendyn has quit [Ping timeout: 256 seconds]
nowhere_man has joined #lisp
Naergon has quit [Ping timeout: 248 seconds]
Naergon has joined #lisp
random-nick has joined #lisp
sjl has quit [Ping timeout: 260 seconds]
karswell_ has joined #lisp
lumm has joined #lisp
smasta has quit [Read error: Connection reset by peer]
ebrasca has quit [Remote host closed the connection]
<Beep-Lord>
Is there a way to tell SBCL not to use the cache'd temp .fasl? It's loading an earlier version of my file and not recompiling it.
lumm has quit [Ping timeout: 240 seconds]
<dlowe>
Beep-Lord: specify the .lisp extension when using LOAD
<dlowe>
if you're using asdf, specify :force t when using asdf:load-system
<Beep-Lord>
That's what I'm looking for asdf. Thanks.
ebrasca has joined #lisp
eli_oat has quit [Quit: Leaving.]
eli_oat has joined #lisp
igemnace has quit [Quit: WeeChat 2.1]
varjagg has joined #lisp
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
erjag has joined #lisp
varjagg has quit [Ping timeout: 245 seconds]
<eMBee>
alvinstarr: interesting, i have been considering this approach too, but i have not looked at it. overlayfs not handling gluster at the top would be a real bummer :-(
<eMBee>
ooops
warweasle has joined #lisp
m3tti_ has quit [Read error: Connection reset by peer]
milanj has quit [Quit: This computer has gone to sleep]
k-hos has quit [Read error: Connection reset by peer]
Denommus has joined #lisp
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
karswell_ has quit [Remote host closed the connection]
Murii_ has quit [Remote host closed the connection]
karswell_ has joined #lisp
karswell_ has quit [Remote host closed the connection]
kajo has joined #lisp
shka_ has quit [Ping timeout: 245 seconds]
karswell_ has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
mindCrime__ has joined #lisp
mindCrime_ has quit [Ping timeout: 240 seconds]
nowhere_man has quit [Ping timeout: 256 seconds]
nowhere_man has joined #lisp
milanj has joined #lisp
comborico1611 has quit [Quit: comborico1611]
comborico1611 has joined #lisp
fikka has joined #lisp
comborico1611 has quit [Remote host closed the connection]
pfdietz2 has quit [Ping timeout: 245 seconds]
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
smurfrobot has quit [Ping timeout: 264 seconds]
pierpa has joined #lisp
e^i has quit [Ping timeout: 264 seconds]
smasta has quit [Ping timeout: 240 seconds]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
Bike has quit [Ping timeout: 260 seconds]
e^i has joined #lisp
stnutt has quit [Ping timeout: 276 seconds]
stnutt has joined #lisp
MolluskEmpire has quit [Ping timeout: 256 seconds]
stnutt has quit [Ping timeout: 260 seconds]
stnutt has joined #lisp
lumm has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
pfdietz_ has joined #lisp
nowhere_man has quit [Ping timeout: 256 seconds]
nowhere_man has joined #lisp
pfdietz has quit [Ping timeout: 264 seconds]
JuanDaugherty has joined #lisp
lumm has quit [Ping timeout: 256 seconds]
sjl has quit [Ping timeout: 256 seconds]
erjag has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
attila_lendvai has quit [Ping timeout: 240 seconds]
sbwhitecap has quit [Ping timeout: 260 seconds]
<aeth>
Does anyone have an example of something that can only be (easily) done with multiple dispatch?
edgar-rft has quit [Quit: edgar-rft]
sbwhitecap has joined #lisp
MolluskEmpire has joined #lisp
Bike has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
<mfiano>
There isn't really anything that can _only_ be done with multiple dispatch. It's just another tool to solve the same old problems. However it is much more widespread in languages such as Clojure, where you are allowed to specify the function for how dispatching is performed, which you simply cannot do in portable CL
<mfiano>
An obvious example of when multiple dispatch would be useful is collision detection. Does object A always collide with object B? Does object B always collide with object A? No, we don't have to tie that behavior to a single object -- they both collide with each other.
<aeth>
Collision detection's always the example that comes up and I don't think it's a good example because it's a toy example. It's rarely how collision detection *actually* works.
<aeth>
At least, afaik. It's certainly not how I'd approach the problem.
<Bike>
could be a collision in something other than a physics engine.
<Beep-Lord>
Like a GUI
<Bike>
for example a spatial agent simulation of some kind.
<aeth>
Bike: That's true.
<aeth>
Bike: I'm just wondering if there's a better go-to example than collide?(A, B)
<Bike>
i mean how often do binary relations come up, really
<Bike>
though those are actually kind of annoying with multiple dispatch if they're commutative
caltelt_ has joined #lisp
<mfiano>
What about set theory?
<Bike>
yeah, i worked with a generic subsetp once.
<Bike>
was'nt bad
rumbler31 has quit [Remote host closed the connection]
<mfiano>
I mean shape intersections can be quite reptitious. I think multiple dispatch would help here.
<mfiano>
I could be wrong..I didn't explore this before.
knusbaum1 has joined #lisp
clog has quit [Ping timeout: 260 seconds]
Beep-Lord has quit [Ping timeout: 265 seconds]
robotoad has quit [Quit: robotoad]
<aeth>
There has to be something better than the collidep that always comes up. I didn't think about the commuative issue before, though.
<aeth>
I use multiple-dispatch for vec= (via specialization-store instead of defmethod, though)
<aeth>
Equality seems like... a bit of a weak example, but that's the best one I can think of.
<aeth>
It's particularly weak because most of the results are NIL, although I guess I could have a vec3 compare to only the first three elements of a vec4 or something. Probably not very intuitive, though.
kjeldahl has quit [Ping timeout: 245 seconds]
<aeth>
(Or maybe implicitly upgrade a vec3 to a vec4 with 1f0 as the 4th elt)
<mfiano>
That's very stupid
<aeth>
It's a stupid example or it's stupid to have them return NIL or it's stupid to have a vec3 ever be vec= to a vec4? Because I think having them return NIL is the right answer.
<mfiano>
Then you lose meaning of whether the vec4 is in homogenous coordinate space, and the types of operations you do on it need to know this.
<_death>
I use multiple dispatch every now and then.. it's just natural
<aeth>
mfiano: Absolutely. Upgrading a vec3 implicitly to a vec4 is a very PHP thing to do.
<aeth>
strong vs. weak typing and all.
sjl has joined #lisp
<aeth>
It seems simplier, but it makes things less reliable
<aeth>
(It especially becomes problematic when there's ambiguity, like with + being used for addition and string concatenation.)
Beep-Lord has joined #lisp
Beep-Lord has quit [Ping timeout: 245 seconds]
robotoad has joined #lisp
<aeth>
_death: can you think of something other than collide that's a nice example?
Beep-Lord has joined #lisp
<mfiano>
I just gave one
Kaisyu has joined #lisp
<aeth>
mfiano: shape intersections?
<mfiano>
Or really any set-theoretic operations
mindCrime__ has quit [Ping timeout: 240 seconds]
<_death>
e.g., 98:(defmethod evaluate ((problem (eql 'line-fitting)) model (point point)) 104:(defmethod evaluate ((problem (eql 'line-fitting)) model (points sequence))
<aeth>
mfiano: can you give a quick example of a good set-theoretic multiple-dispatch?
<_death>
there are other cases with eql specializers
<_death>
sometimes not, like 228:(defmethod pour ((source tap) (target jug)) 231:(defmethod pour ((source jug) (target jug)) 236:(defmethod pour ((source jug) (target sink))
<aeth>
_death: The last one is interesting because those clearly have a source and destination
<mfiano>
I cannot, but consider the application of image processing, where you need to define a kernel whose size and shape are compositions of multiple primitives shapes You could simply have a multiple-dispatch method return a function that would loop over the required cells, and then the kernel could use this function as it rolls over the image.
johnnymacs has joined #lisp
<aeth>
_death: and a tap is clearly invalid in the second argument
<johnnymacs>
Is there a function that takes a function and a list and calls the function on the list
<mfiano>
Like return a function that will map over all cells where a ellipse is cut out from a square
<johnnymacs>
Rather passes the list as the arguments of the function
subroot has joined #lisp
<aeth>
apply?
<johnnymacs>
thanks
<_death>
aeth: not sure what you mean
al-damiri has quit [Quit: Connection closed for inactivity]
<aeth>
_death: (pour source target) avoids the commutative problem Bike mentioned earlier, and your example gives something (the tap) that wouldn't be a valid target but is a valid source (assuming you're only refering to the faucet and not the drain)
<_death>
aeth: sure, but that is still an example of multiple dispatch?
<aeth>
_death: Yes. What I'm saying is that it's a good example.
<mfiano>
aeth: Does what I say make any sense?
<aeth>
mfiano: It's advanced, I'll have to think about it.
<mfiano>
Well, are you familiar with image processing; particularly what a kernel-based convolution is?
fikka has quit [Ping timeout: 260 seconds]
<aeth>
mfiano: I'm reading about it right now
<mfiano>
Ok, so I'll keep this close to home for you. Consider you were using CL to design a very simple procedurally generated map for your game.
<aeth>
I guess the key point is that you want to use multiple-dispatch to return (non-generic?) functions that iterate?
<mfiano>
You start with a bunch of "pixels" that are solid walls, and you want to "carve" out space where players can roam around. Your simple algorithm decided that it wants to carve out rooms first, and rooms are compositions of ellipses and rectangles. That is a room could be the union of an ellipse and a rectangle, or even the difference.
caltelt_ has quit [Ping timeout: 264 seconds]
MolluskEmpire has quit [Ping timeout: 264 seconds]
<aeth>
So the multiple dispatch is used as a way to select which iteration to run, essentially? In this example, what rooms to carve.
MolluskEmpire has joined #lisp
<mfiano>
So you can start writing functions for circles, which would just be the parametric equation of a circle with different axis values. So given a size, it would return the pixels to flip. You also have one for rectangles. Each iteration, you could use multiple dispatch to compose a new shape from these functions, and place it somewhere on your map.
dddddd has quit [Read error: Connection reset by peer]
pjb` has joined #lisp
<mfiano>
I skipped over a lot, but the point is you can compose functions from existing functions using multiple dispatch, and it can save a lot of reptition in theory. I did similary when I wrote crawler, which I'm sure I've showed you before.
<aeth>
s/what rooms to carve/how to carve the rooms/
<aeth>
I was... sloppy
pjb has quit [Ping timeout: 256 seconds]
karlosz has quit [Ping timeout: 260 seconds]
<mfiano>
I probably didn't explain very well, but point being, you can dispatch on multiple shapes, and have it do set-theoretic operation(s) on them to return a new shape
<aeth>
mfiano: how are you composing the functions in this hypothetical (or practical)?
<aeth>
(I guess it's not a hypothetical if you've done it)
pjb`` has joined #lisp
<mfiano>
Well for something simple, like a vertical strip of pixels composed with a horizontal strip, You could just do: https://gist.github.com/mfiano/d1793462a13a5944a7fbb3bad3afb3c4, and then your multimethod would just merge the lists. Sorry a lot of context is left out of this code, but it should be fairly straight forward what is going on