<Josh_2>
or ask in clnoobs because that is a real clnoob question
<pjb>
or if you want more privacy, type: /msg specbot clhs lambda
<paule32>
also i understand it so: lambda fetch the last result and re eval it the operatorations that are given?
<pjb>
Nope.
<Bike>
seriously, it's been a year.
<Bike>
there must be resources in your native language. english clearly isn't working for you.
<pjb>
paule32: the clhs says that (lambda (x) …) is a short hand for (function (lambda (x) …))
<pjb>
paule32: then you have to click on function to read what function is, because you didn't read a fucking tutorial, so you fucking don't know what this means.
<paule32>
(funcall (lambda (x) (+ x 3)) 4) => 7
<mason>
Such language.
<pjb>
(lambda (x) (+ x 3)) #| --> #<Anonymous Function #x302002FDAFDF> |#
mson has quit [Quit: Connection closed for inactivity]
trocado has joined #lisp
<pjb>
mason: international language. It's the single word most said in american movies, and understood everywhere in the world.
<mason>
Hey, a question: Is there something newer than IOLib I should consider if I want a relatively portable socket library that does nonblocking IO, or better, signal-based asynchronous stuff?
<Josh_2>
UIOP?
<mason>
pjb: Still. I have to think there's a gentler, nicer way to express the same sentiment.
Xal has quit [Ping timeout: 255 seconds]
<pjb>
It's not a sentiment, it's a shake.
<Josh_2>
I dunny think that's what ya want but hey ho
<pjb>
To make the student realize that he needs to start his brains.
<Bike>
paule32 has been around for literally a year, on this same program. they have made seemingly no progress. i don't know what else there is to say.
<Josh_2>
gotta get some of them brain smarts
<mason>
Josh_2: That looks like general asynchronous execution. I'd be happiest with something that limits itself to socket IO.
<mason>
Ah, kk. wait-for-input looks like it's essentially select, which is good enough for me.
<mason>
Thank you.
Xal has joined #lisp
<aeth>
I thought okay/OK was the most common and interntionally understood word
<Josh_2>
ok
<fe[nl]ix>
mason: newer ?
zachk has quit [Quit: night]
<mason>
fe[nl]ix: The docs I randomly found for IOlib looked like they were from 2010. I know old doesn't mean broken, but I didn't know if there was something I should be looking at instead.
<mason>
That that socket IO is a fast-moving target.
<pjb>
paule32: if you know C++, then you should know what lambda is (approximatively): [](int x){return 4*x;}
margeas has quit [Quit: Konversation terminated!]
<fe[nl]ix>
the POSIX socket API has been stable for a couple of decades now
<mason>
Anyway, I'll real about Usocket and IOLib more and see which seems closest to what I want. Thank you all.
<mason>
fe[nl]ix: Right. :)
margeas has joined #lisp
EvW1 has quit [Ping timeout: 258 seconds]
<mason>
fe[nl]ix: I didn't see this right off, but does IOLib do aio_read, or signals anyway?
<mason>
Argh, I need to go pick up dinner. I'll be back. I'll read scrollback. (TY in advance for clues.)
<fe[nl]ix>
mason: it doesn't do either of those
thebardian has joined #lisp
SaganMan has joined #lisp
margeas has quit [Quit: Konversation terminated!]
edgar-rft has quit [Remote host closed the connection]
turkja has joined #lisp
edgar-rft has joined #lisp
damke_ has joined #lisp
bkst has joined #lisp
Arcaelyx has joined #lisp
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
AxelAlex has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
<mason>
fe[nl]ix: Honestly, select is probably enough - what I want is no wasted time if there is no traffic, but since what I really want is to be able to scale up to a fairly large number of connections, I won't realistically end up burning any time idling.
damke has joined #lisp
Arcaelyx has joined #lisp
<mason>
Thank you, in any event.
AxelAlex has quit [Client Quit]
AxelAlex has joined #lisp
bluesmonk has joined #lisp
damke_ has joined #lisp
eSVG has quit [Ping timeout: 258 seconds]
damke has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 268 seconds]
thebardian has quit [Remote host closed the connection]
trocado has quit [Ping timeout: 248 seconds]
damke has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
eSVG has joined #lisp
Josh_2 has quit [Remote host closed the connection]
SaganMan has quit [Quit: zzzz]
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
thebardian has joined #lisp
Baggers has quit [Remote host closed the connection]
damke has quit [Ping timeout: 240 seconds]
damke_ has joined #lisp
z3t0 has joined #lisp
z3t0 has quit [Client Quit]
damke has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
whaack has joined #lisp
<whaack>
hi all, I am wondering whether or not it is possible for a function to return itself, and how I would go about doing that
<pjb>
(defun y (f &rest args) (apply f f args)) (y (lambda (myself) myself)) #| --> #<Anonymous Function #x30200309C69F> |#
<pjb>
Y combinator stole us the y combinator!
<whoman>
x_x;
python476 has joined #lisp
myrkraverk has quit [Ping timeout: 248 seconds]
myrkraverk has joined #lisp
<whaack>
if it returns itself then shouldn't you be able to call it n times and still get foo?
<whaack>
(defun foo () (function foo)) so why does ((foo)) not return foo?
wigust has quit [Ping timeout: 255 seconds]
<Bike>
because that's not valid syntax.
<Bike>
(funcall (funcall (funcall (foo)))) will work though.
<pjb>
cl. main in ecl/src/c/cinit.d
neoncontrails has joined #lisp
<pjb>
sorry, wrong channel.
<whaack>
Bike: ah i see so you can never double parens to call a function returned by another function
<pjb>
So now the nice trick is to write a set of functions representing states of a DFA, each returning the next state function!
<pjb>
(loop for state = (function init) then (funcall state input) until (eql (function final) state))
EvW has joined #lisp
jameser has joined #lisp
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
EvW has quit [Ping timeout: 255 seconds]
bmgxc9 has joined #lisp
fikka has joined #lisp
bmgxc9 has quit [Quit: Leaving]
bmgxc9 has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
damke_ has joined #lisp
wigust has joined #lisp
damke has quit [Ping timeout: 240 seconds]
bmgxc9 has quit [Remote host closed the connection]
d4ryus1 has joined #lisp
bmgxc9 has joined #lisp
d4ryus has quit [Ping timeout: 248 seconds]
wxie has quit [Ping timeout: 248 seconds]
AxelAlex has quit [Ping timeout: 268 seconds]
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
vancan1ty has quit [Ping timeout: 240 seconds]
BitPuffin|osx has quit [Ping timeout: 268 seconds]
pseudonymous has quit [Ping timeout: 248 seconds]
ahungry has joined #lisp
Arcaelyx has joined #lisp
vzerda has quit [Ping timeout: 250 seconds]
<raynold>
ahh it's a wonderful day
<ahungry>
sure is
fikka has joined #lisp
pmetzger has quit [Remote host closed the connection]
<MrBusiness>
oh, whew, I thought those l0de radio spammers had hit me up in a 3rd room
pierpa has quit [Quit: Page closed]
fikka has quit [Ping timeout: 248 seconds]
jameser has joined #lisp
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<aeth>
Is there a way to not give an input stream EOF in uiop:launch-program, but also not hang up forever or fill the heap?
Karl_Dscc has joined #lisp
sz0 has joined #lisp
<aeth>
e.g. something like this: (uiop:launch-program "dc" :input input :output ouput) with a replish application (let's say dc, for simplicity).
damke has joined #lisp
<aeth>
Ideally, I'd want to be able to say something like "1 1 + p" and receive "2" without also sending EOF and ending the program. And then I could say "2 * p q" and get "4", which would only work if the state 2 was remembered. Of course "q" would quit it. (Or quit or exit, depending on the REPLish application running this way.)
dieggsy has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
megalography has left #lisp [#lisp]
AxelAlex has joined #lisp
<aeth>
(This would allow all sorts of cool things, including afaik an inferior-lisp emacs-style, at least sort of like how emacs does it.)
<pjb>
aeth: for bidirectional connection to a subprocess, it is usually needed to use more primitive syscalls.
<pjb>
and threads.
dieggsy has quit [Remote host closed the connection]
<pjb>
eg. libc popen opens only one pipe.
<aeth>
How do applications run interactive shells that run interactive command line programs inside of them, then?
safe has joined #lisp
<pjb>
in the case of (let ((pi (uiop:launch-program program :input :stream :output :stream))) …)
<pjb>
then you can fork a thread to read on (uiop/run-program:process-info-output pi) and another to write to (uiop/run-program:process-info-input pi)
<pjb>
aeth: by calling pipe, dup, and exec.
<pjb>
Happily, uiop:launch-program allows :stream for both :input and :output.
<pjb>
Notice that interactive programs have no specific synchronization mechanism. In general, they don't flush the input, so the user can input multiple commands before they're processed. (It's actually quite a bother to work with programs that do flush their input before each interaction, but sometimes it's needed, like when you want to read a password without echo, etc).
k-stz has quit [Remote host closed the connection]
Karl_Dscc has quit [Remote host closed the connection]
aoeu256 has quit [Ping timeout: 248 seconds]
jibanes has quit [Ping timeout: 268 seconds]
<beach>
Good morning everyone!
<aeth>
pjb: Oh, I see, something like this: (uiop/launch-program:process-info-input (uiop:launch-program "dc" :input :stream :output :stream))
jibanes has joined #lisp
<aeth>
except of course it'd be more let (let* ((process ...) (input (process-input process))) ...)
<pjb>
yes.
bluesmonk has quit [Ping timeout: 248 seconds]
<aeth>
oh, and then of course it hangs because I never send it the quit message, but... success, I guess
damke_ has joined #lisp
<aeth>
I even see the tree in htop of /usr/local/bin/stumpwm to emacs to /usr/bin/sbcl to it
<pjb>
aeth: you need 2 threads, one to read, one to write. And don't forget to flush!
wigust has quit [Read error: Connection reset by peer]
damke has quit [Ping timeout: 240 seconds]
jstoddard has joined #lisp
lisp_guest has quit [Ping timeout: 248 seconds]
python476 has quit [Ping timeout: 260 seconds]
bluesmonk has joined #lisp
dieggsy has joined #lisp
pjb has quit [Ping timeout: 255 seconds]
pmetzger has joined #lisp
bmgxc9 has quit [Remote host closed the connection]
ahungry has quit [Remote host closed the connection]
bmgxc9 has joined #lisp
pmetzger has quit [Ping timeout: 248 seconds]
pjb has joined #lisp
pmetzger has joined #lisp
fikka has joined #lisp
Khisanth has quit [Ping timeout: 268 seconds]
Bike has quit [Quit: Lost terminal]
fikka has quit [Ping timeout: 268 seconds]
mson has joined #lisp
dieggsy has quit [Ping timeout: 250 seconds]
astronavt has quit [Quit: Leaving...]
pjb has quit [Remote host closed the connection]
Harzilein has quit [Ping timeout: 240 seconds]
thebardian has quit [Remote host closed the connection]
Khisanth has joined #lisp
jrm has quit [Quit: ciao]
zmt00 has quit [Quit: Leaving]
jrm has joined #lisp
Beetny has joined #lisp
bluesmonk has quit [Ping timeout: 268 seconds]
antonv has joined #lisp
<antonv>
a persistent sesssions library for hunchentoot?
nika has joined #lisp
bmgxc9 has quit [Quit: Leaving]
bmgxc9 has joined #lisp
pedh has joined #lisp
dddddd has quit [Remote host closed the connection]
Devon has quit [Ping timeout: 268 seconds]
lisp_guest has joined #lisp
EvW1 has joined #lisp
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
EvW1 has quit [Ping timeout: 260 seconds]
resttime has joined #lisp
Oladon has quit [Quit: Leaving.]
hooman has joined #lisp
whoman has quit [Ping timeout: 240 seconds]
eSVG has quit [Ping timeout: 240 seconds]
damke_ has quit [Ping timeout: 240 seconds]
Oladon has joined #lisp
sz0 has quit [Quit: Connection closed for inactivity]
safe has quit [Read error: Connection reset by peer]
sz0 has joined #lisp
eSVG has joined #lisp
fikka has joined #lisp
damke_ has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
nullman has quit [Ping timeout: 268 seconds]
rippa has joined #lisp
Reinhilde is now known as Ellenor
emacsomancer has quit [Ping timeout: 240 seconds]
<aeth>
Well, I've officially found something else other than compiling C++ that takes up 100% of all my cores (well, technically, all my threads). Chess engines.
pedh has quit [Quit: pedh]
<aeth>
This is constantly at 100% everywhere so it's actually the most parallel thing I've seen run on my CPU
<aeth>
Once I solve communication, I should be able to write a chess GUI in CL.
<aeth>
There were minutes of this massive computational power before I stopped this chess engine while in the depth of 30, all so it could say "bestmove e2e4"
hooman has quit [Remote host closed the connection]
hooman has joined #lisp
pmetzger has quit [Ping timeout: 248 seconds]
<edgar-rft>
aeth: It's definitely worth the massive computation effort, because once copmuted, the bestmove will win *all* future chess games, just because your opponent can't move any better.
bmgxc9 has quit [Remote host closed the connection]
vlatkoB has joined #lisp
fikka has joined #lisp
B3nszy has joined #lisp
<B3nszy>
hello
<B3nszy>
I'm only familiar with Python as far as programming languages go and using Spyder as an editor
<B3nszy>
I need to learn lisp for an internship
<B3nszy>
But I'm so unfamiliar with it all
<B3nszy>
I got recommended SBCL/Emacs/SLIME for a development environment, what are those things
fikka has quit [Ping timeout: 248 seconds]
<aeth>
Emacs is a text editor, one of the traditional Unix text editors, next to ed (no one uses this) and vim (very popular because it's everywhere, but hard to use). Its main claim to fame is that it's very customizable, with lots of plugins, written in the dialect of Lisp called Emacs Lisp.
<aeth>
Naturally, it has good support for editing Lisps and Schemes since it's written in a Lisp (but not Common Lisp)
<aeth>
SLIME is the Emacs add-on that turns Emacs from a text editor into a full-featured Common Lisp IDE.
<aeth>
SBCL is generally the fastest implementation of Common Lisp.
<aeth>
It's also one of the most popular free implementations.
space_otter has quit [Remote host closed the connection]
<aeth>
SBCL is not the only popular implementation. On IRC (which might be a biased sample), CCL and ECL are also quite popular. Common Lisp is not a single-implementation language and most software tries to be portable to as many implementations as possible.
mson has quit [Quit: Connection closed for inactivity]
thebardian has joined #lisp
hajovonta has joined #lisp
<hajovonta>
hu
<hajovonta>
good morning
<B3nszy>
hey aeth
nika_ has joined #lisp
<B3nszy>
I've downloaded emas and sbcl
<B3nszy>
What exactly is it again
<B3nszy>
what do you mean by fastest implementation
<B3nszy>
I'm sorry I'm completely new to all of this
<hajovonta>
there is no single Common Lisp that you download from a central place
<hajovonta>
I have a rather disturbing issue with SBCL+Hunchentoot on Windows: when starting a server with (hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 12345)), it immediately starts to consume 100% cpu
<B3nszy>
Shinmera: thanks for the link
<B3nszy>
I'll just go with that
<hajovonta>
then when hitting Ctrl+C in the REPL, SBCL goes into SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded and crashes
<aeth>
B3nszy: What I mean is that SBCL generally produces the fastest code (compared to other implementations), which is one reason why it's currently very popular.
<B3nszy>
I've downloaded it for mac and have 4 folders... to start using it do I just go ont he application 'portacle' or do I need to do something with the 'all' 'config' and 'mac' fles
neoncontrails has quit [Remote host closed the connection]
mson has joined #lisp
<Shinmera>
If you can't get it to work even with the instructions, let me know.
turkja has quit [Quit: Leaving.]
nika_ has quit [Quit: Leaving...]
nika has joined #lisp
<B3nszy>
No I got it working, thanks Shinmera
<B3nszy>
Do I need to download a LISP compiler?
<Shinmera>
No, that's SBCL
<Shinmera>
If you have it open and see the CL-USER> prompt, when you type code in there, you're already compiling and running lisp.
<Shinmera>
Since you're already familiar with programming, the now recommended way to start learning the language is PCL. http://www.gigamonkeys.com/book/
<Shinmera>
Just ignore the notes about "Lisp in a Box" in Chapter two, as that's outdated and has been replaced by Portacle.
<B3nszy>
Thanks
<aeth>
CL might look like it's interpreted at the REPL, but it doesn't have to be. SBCL by default isn't. It's actually compiling at the REPL. e.g. (defun foo (x) (+ 42 x)) (compiled-function-p #'foo) => T ; in SBCL
<B3nszy>
the first thing I need to do is figure out how to load images into arrays
<B3nszy>
is that more advanced or can I start on that soon
<Shinmera>
I'd hold off on that.
<Shinmera>
It's not too far off if you use a library, but just spend a week or two or maybe three going through the book.
terpri has quit [Ping timeout: 240 seconds]
quazimodo has joined #lisp
Beetny has quit [Read error: Connection reset by peer]
<B3nszy>
lol this is so confusing
<B3nszy>
I keep trying to put parentheses
wxie has joined #lisp
<aeth>
If you want emacs to balance your parentheses for you, there are several things that do that. One is called paredit
<Shinmera>
paredit is enabled in portacle
<aeth>
ah, okay
<Shinmera>
If anything he's confused because of that.
<beach>
Is that really a good idea to have paredit enabled by default?
<Shinmera>
Portacle has two, sometimes conflicting, goals.
<beach>
I am listening...
<Shinmera>
Well, for people like me that just need a quick setup, paredit being on by default is great.
<Shinmera>
For people that don't know Lisp it's a bit more of a learning curve.
<beach>
I see, yes.
sz0 has quit [Quit: Connection closed for inactivity]
rumbler31 has joined #lisp
<Shinmera>
I see the real problem in, not necessarily paredit itself, but rather that there's currently no introductory text that gets people going with using it.
mishoo_ has joined #lisp
<Shinmera>
Portacle has a help file that lists the keybindings, but that's a reference, not really something to learn it by.
rumbler31 has quit [Ping timeout: 240 seconds]
ngqrl has quit [Quit: ngqrl]
<aeth>
If the syntax itself is confusing: foo(1, 2, 3) => (foo 1 2 3) and foo[1] => (elt foo 1) and foo["key"] => (gethash :key foo) and [1, 2, 3] => '(1 2 3) or #(1 2 3) if literal, (list 1 2 3) or (vector 1 2 3) if not literal
<Shinmera>
My confidence in thinking it's just a matter of introduction lies with the fact that I managed to get my dad going with it, despite him being very resistant against keybindings of any kind. (He's been coding in Fortran for like 40 years, mostly on Windows)
hajovonta has quit [Ping timeout: 240 seconds]
<aeth>
And the difference between a list and a vector in Lisp is a list is for in-order access (because it's a linked list), while a vector allows random access
<aeth>
s/allows random access/allows instant random access/
<resttime>
Has anyone used SBCL on ARM? I'm curious whether there might be any platform issues/instability (specifically ARMel).
<Shinmera>
There's no threads on 32 bit ARM
<Shinmera>
I've used it on a Pi and that's all I know because I switched to CCL pretty soon.
<beach>
Do you mean that SBCL does not have threads on that platform, or are you saying something about the ARM architecture itself?
<Shinmera>
The former.
<beach>
Thanks.
<resttime>
Shinmera: Think CCL might be a better implementation to use then for ARM?
<Shinmera>
CCL has threads and is solid, so yeah
<Shinmera>
I think SBCL has threads on ARM64
<resttime>
Kk thanks for info, might get a chance to run my tests on flight hardware.
<Shinmera>
resttime: By the way, did you ever finish that Qtools tutorial?
<aeth>
B3nszy: If you have very basic Lisp questions you can try asking in the channel #clnoobs
<resttime>
Oh whooa, I forgot about that so definite no.
<Shinmera>
Heh
<resttime>
Think it's still validish? I think ECL5 is out now
<resttime>
I meant ECL with QT5
<Shinmera>
I don't want to use ECL, so
<Shinmera>
I'm sure other people feel similar about the platform lock-in.
<resttime>
Yeah, I'm sorta learning on waiting for QT5 bindings for that isn't platform locked for now. Kinda even thinking of writing bindings myself, but no clue wheere to start since there's no smoke.
<resttime>
QT Smoke that is, which I believe translated stuff for Qt4
<resttime>
*leaning
pmetzger has joined #lisp
<Shinmera>
Ask stassats if you're serious. He might have some pointers on the way he was going to go for the CommonQt rewrite
antonv has quit [Ping timeout: 268 seconds]
<Shinmera>
Smoke is automated C bindings for C++.
<Shinmera>
Well, "automated"
<resttime>
Well can't say I've a need for GUI programming, so probably not.
<resttime>
Hmmmm, but maybe I'll ask anyways since I'm curious.
caseyowo has quit [Ping timeout: 250 seconds]
ngqrl has joined #lisp
quazimodo has quit [Ping timeout: 248 seconds]
shka has joined #lisp
fikka has joined #lisp
Oladon has quit [Quit: Leaving.]
angavrilov has joined #lisp
hhdave has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
mishoo__ has joined #lisp
mishoo_ has quit [Ping timeout: 248 seconds]
muresanvlad has joined #lisp
muresanvlad is now known as Murii|linux
<resttime>
Looked into the process of writing bindings for C++ and it's really ugh... I don't think I realized how much work it would be lol
<beach>
I strongly recommend you program in Common Lisp instead.
random-nick has joined #lisp
<shka>
resttime: yup, bindings to C++ all always the pain
<shka>
despite the language
alpert has joined #lisp
<shka>
in fact, it so painful, that it seeded idea of clasp in drmeister
<Shinmera>
That's not why.
<Shinmera>
Clasp was created because he was sick of Python and needed to use the C++ science libraries.
<shka>
so why not just make bindings?
<Shinmera>
Because he's a very adventurous and ambitious man.
<shka>
that surely would be easier then making CL implementation
<resttime>
I wonder if one day: Use clasp to offload the C++ parsing magic-ish stage and then generating the bindings for lisp implementations. A lisp version of SWIG I suppose would be the gist of it.
<Shinmera>
resttime: That was stassats' first plan
<shka>
resttime: SWIG can generate lisp code already
<Shinmera>
But clasp is slow, unstable, and so forth. It especially was two years ago when he first got the idea for that.
<shka>
i never tried to use is
<resttime>
Huh guess I'm two years behind on the idea lol
cvoxel has joined #lisp
<Shinmera>
The second idea was to use Clang's tools straight up in C++ to do the parsing logic, but that was abandoned because it took him way too long to do anything at all.
<Shinmera>
The third was to use c2ffi, not sure what happened to that or what his current thoughts are.
<shka>
anywya
<shka>
binding to C++ is a lot of work
<shka>
actually binding to anything but C is a lot of work!
<lisp_guest>
Shinmera, took him too long, as in the small/simple/quick stuff was too complicated/long to write?
<Shinmera>
Binding to C properly is quite a bit of work too.
cvoxel has quit [Remote host closed the connection]
<Shinmera>
lisp_guest: Yes. Lots and lots of boilerplate and general C++ pain in the ass.
fikka has joined #lisp
cvoxel has joined #lisp
<Shinmera>
If someone implemented the name mangling algorithm for GCC/Clang in Lisp we'd already be a long way there to binding to C++ directly without needing a C bridge.
nsrahmad has joined #lisp
nullman has quit [Ping timeout: 240 seconds]
nullman has joined #lisp
<shka>
now that's a good idea
isBEKaml has joined #lisp
nsrahmad has quit [Quit: Leaving]
josemanuel has joined #lisp
random-nick has quit [Remote host closed the connection]
sz0 has joined #lisp
random-nick has joined #lisp
mson has quit [Quit: Connection closed for inactivity]
Josh_2 has joined #lisp
random-nick has quit [Remote host closed the connection]
random-nick has joined #lisp
damke has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
alpert has quit [Remote host closed the connection]
alpert has joined #lisp
pmetzger has quit [Ping timeout: 240 seconds]
damke has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 255 seconds]
damke has joined #lisp
alpert has quit [Ping timeout: 268 seconds]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 250 seconds]
Amplituhedron has quit [Ping timeout: 248 seconds]
ngqrl has quit [Quit: ngqrl]
Josh_2 has quit [Ping timeout: 240 seconds]
random-nick has quit [Remote host closed the connection]
damke_ has joined #lisp
damke has quit [Ping timeout: 240 seconds]
Harzilein has joined #lisp
whyNOP has quit [Ping timeout: 240 seconds]
pmetzger has joined #lisp
brendyn has quit [Quit: WeeChat 1.9.1]
jameser has joined #lisp
scymtym has quit [Ping timeout: 248 seconds]
ngqrl has joined #lisp
jameser has quit [Client Quit]
quazimodo has joined #lisp
jameser has joined #lisp
resttime has quit [Quit: Leaving]
nika has quit [Quit: Leaving...]
random-nick has joined #lisp
scymtym has joined #lisp
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ellenor is now known as Reinhilde
jameser has joined #lisp
attila_lendvai has joined #lisp
Karl_Dscc has joined #lisp
brendyn has joined #lisp
Josh_2 has joined #lisp
<p_l>
Shinmera: the name mangling algorithm is the *easy* part, since you can easily get GCC to spew out the mapping
<Shinmera>
You don't want to have to rely on GCC being available.
<p_l>
vtable stuff gets hairy, because it's start as plain offset but then you need to take care of inheritance which is where it gets... weird
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Shinmera>
Ah, right, forgot about the vtable indirection
<p_l>
Shinmera: without GCC being available you have no guarantee that you'll get vtable layout, which means you're dead on arrival for C++ interfacing
<Shinmera>
Bah.
<p_l>
anyway, C++ compiler involved in compiling the module you're linking with is necessary at the point of compiling the binding
<p_l>
the sole exception is Windows, which is used to heterogenous languages, so serious modules tend to have COM bindings, and those have common API
<p_l>
on AIX, you can compile C++ code with alternative interface which is afaik easier to interface with, but I don't know how it goes into code mixing
jstoddard has quit [Remote host closed the connection]
jstoddard has joined #lisp
<Shinmera>
p_l: Hold on, why do you need GCC for the vtable layout? Surely the algorithm to compute it must be replicable
<p_l>
Shinmera: it's in the class of "you only need to implement a C++ compiler to interface with C++" kind of task
<p_l>
but that is also, semi-doable
<p_l>
then you get exceptions
<Shinmera>
I'd think C++ has a lot more to it than just the vtable.
<_death>
not just vtable layout.. passing this, exceptions, limitations wrt template support.. etc. and of course each implementation may have its own ABI.. there was a good book (likely outdated by now with all these new standards) by Lippman
<p_l>
but not all hope is lost!
<p_l>
there's *DWARF4*
<Shinmera>
_death: If I remember correctly Clang and GCC are ABI compatible, so that part is not that big a deal
<p_l>
Shinmera: in theory, in practice you hit dependencies on their own implementation of stdc++
aoeu256 has joined #lisp
<p_l>
which is, iirc, why clang allowed building against GCC's stdc++
<_death>
do they have flags changing the ABI?..
<p_l>
yes
<p_l>
or close to it
<Shinmera>
Oh yeah I remember trouble in Clasp building related to differing stdc++ implementations
sthalik has joined #lisp
<p_l>
"string" in one binary is not the same "string" in another binary depending on flags and libs
<p_l>
But, but!
<p_l>
as I said, there's DWARF
<Shinmera>
Parsing DWARF is an adventure of its own though
<p_l>
if the binary is compiled with full debug symbols, you can extract all kinds of data, including exception handlers
<p_l>
Shinmera: a nicer one than C++
<sthalik>
dunno what the problem is, but you're solving the wrong one
<Shinmera>
Mind your own business.
<Shinmera>
p_l: Will a library built without DWARF symbols still correlate with one built with so you could just parse out the definitions from a debug-enabled one?
<p_l>
Shinmera: no guarantee
<Shinmera>
Bah, humbug.
<p_l>
if it's same compiler and system, maybe
<Shinmera>
The C++ exceptions part is fortunately one that can be ignored for a lot of libraries as they don't use it.
<Shinmera>
So even if there was "just" a vtable and name mangling compiler in CL you could get pretty far.
<p_l>
I'd still recommend DWARF parser for various reasons, including getting data on types etc.
<p_l>
including parameters
<sthalik>
why not get into dw2, sjlj, and seh exception types?
<p_l>
SEH is nice and already done by win32 iplementations
<p_l>
(ok, VEH for some, but it supports catching SEH exceptions as well)
pmetzger has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 248 seconds]
safe has joined #lisp
<sthalik>
p_l, what you doing anyway?
<Shinmera>
Discussing the prospects of binding to C++ without a C intermediate library.
<sthalik>
i don't think exceptions are common enough to bother, at least initially
<sthalik>
i compile a decent chunk of dependencies with -fno-exceptions
pjb has joined #lisp
<Shinmera>
Right, but even without exceptions there's a lot of stuff that needs to be replicated to get this going.
<sthalik>
name mangling, calling convention?
<Shinmera>
name mangling and vtables for the most part, yeah.
<sthalik>
hope you won't actually bother coercing lisp lambdas to c++11 lambdas
<Shinmera>
As p_l suggested, if the DWARF doesn't influence the produced binary, one aspect instead of replicating a compiler would be to parse out the DWARF info and use that to feed the information needed to call methods.
<sthalik>
then again, with templated code your scheme's not very useful
<sthalik>
that templated code is more common than exceptions, isn't a controversial view
<p_l>
DWARF4 does cover templated code and lambdas, though
<p_l>
Well, you'd need some extra code to parse it out
<_death>
with templates you could support just already existing instantiations..
sz0 has quit [Quit: Connection closed for inactivity]
yeticry_ has joined #lisp
pseudonymous has joined #lisp
yeticry has quit [Read error: Connection reset by peer]
yeticry_ has quit [Ping timeout: 255 seconds]
ft has quit [Remote host closed the connection]
<p_l>
_death: you can't support non-compiled instantations
wxie has quit [Remote host closed the connection]
B3nszy has quit [Remote host closed the connection]
<_death>
right, unless you write a C++ compiler :)
damke has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
emacsoma` has quit [Ping timeout: 240 seconds]
yeticry has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
Bike has joined #lisp
papachan has joined #lisp
nullman has quit [Ping timeout: 248 seconds]
nullman has joined #lisp
dddddd has joined #lisp
nullman has quit [Ping timeout: 255 seconds]
arbv_ has joined #lisp
arbv has quit [Read error: Connection reset by peer]
arbv_ is now known as arbv
FreeBirdLjj has joined #lisp
nullman has joined #lisp
pmetzger has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
isBEKaml has quit [Ping timeout: 268 seconds]
yeticry has quit [Ping timeout: 240 seconds]
brendyn has quit [Read error: Connection reset by peer]
brendyn has joined #lisp
ft has joined #lisp
jstoddard has quit [Remote host closed the connection]
EvW has joined #lisp
yeticry has joined #lisp
rajeshbr has joined #lisp
jstoddard has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
pjb has quit [Ping timeout: 240 seconds]
Tobbi has joined #lisp
rumbler31 has joined #lisp
orivej has joined #lisp
klltkr has joined #lisp
nullniverse has joined #lisp
pjb has joined #lisp
wigust has joined #lisp
fikka has joined #lisp
Walex has quit [Quit: leaving]
<hooman>
ELF fortress
dlf42 has joined #lisp
orivej has quit [Ping timeout: 248 seconds]
strelox has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
milanj has quit [Quit: This computer has gone to sleep]
yeticry has quit [Ping timeout: 240 seconds]
milanj has joined #lisp
yeticry has joined #lisp
nowhere_man has quit [Remote host closed the connection]
varjag has joined #lisp
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nowhere_man has joined #lisp
Tobbi has joined #lisp
Tobbi has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
Tobbi has joined #lisp
Kevslinger has joined #lisp
FreeBirdLjj has quit [Ping timeout: 248 seconds]
BitPuffin|osx has joined #lisp
wigust has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
zmt00 has joined #lisp
wigust has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
smokeink has joined #lisp
EvW has quit [Ping timeout: 250 seconds]
alexshendi has joined #lisp
random-nick has quit [Remote host closed the connection]
isBEKaml has joined #lisp
k-stz has joined #lisp
random-nick has joined #lisp
EvW1 has joined #lisp
varjag has quit [Ping timeout: 268 seconds]
smokeink has quit [Ping timeout: 240 seconds]
terpri has joined #lisp
EvW1 has quit [Ping timeout: 250 seconds]
JenElizabeth has joined #lisp
raynold has quit [Quit: Connection closed for inactivity]
bluesmonk has joined #lisp
varjag has joined #lisp
astronavt has joined #lisp
varjag has quit [Ping timeout: 255 seconds]
thinkpad has quit [Ping timeout: 248 seconds]
astronavt has quit [Remote host closed the connection]
astronavt has joined #lisp
BitPuffin|osx has quit [Ping timeout: 250 seconds]
astronavt has quit [Remote host closed the connection]
astronavt has joined #lisp
astronav_ has joined #lisp
astronavt has quit [Ping timeout: 258 seconds]
filou has joined #lisp
astronav_ has quit [Remote host closed the connection]
filou has left #lisp [#lisp]
varjag has joined #lisp
shrdlu68 has joined #lisp
damke_ has joined #lisp
varjag has quit [Ping timeout: 250 seconds]
damke has quit [Ping timeout: 240 seconds]
astronavt has joined #lisp
milanj has joined #lisp
astronavt has quit [Remote host closed the connection]
Arcaelyx has joined #lisp
neoncontrails has joined #lisp
Josh_2` has joined #lisp
Josh_2 has quit [Ping timeout: 250 seconds]
isBEKaml has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 248 seconds]
alexshendi is now known as astronef
astronef is now known as alexshendi
fikka has joined #lisp
caseyowo has joined #lisp
mson has joined #lisp
vzerda has joined #lisp
varjag has joined #lisp
varjag has quit [Ping timeout: 240 seconds]
scymtym has quit [Ping timeout: 240 seconds]
nullniverse has quit [Ping timeout: 268 seconds]
strelox has quit [Remote host closed the connection]
attila_lendvai has quit [Ping timeout: 252 seconds]
scymtym has joined #lisp
rajeshbr has quit [Quit: Page closed]
pjb has quit [Ping timeout: 240 seconds]
pjb has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
astronavt has joined #lisp
Oladon has joined #lisp
vancan1ty has joined #lisp
astronavt has quit [Remote host closed the connection]
orivej has joined #lisp
DingoSaar has joined #lisp
fikka has joined #lisp
mishoo_ has joined #lisp
mishoo__ has quit [Ping timeout: 248 seconds]
astronavt has joined #lisp
DingoSaar has quit [Max SendQ exceeded]
pchrist has quit [Quit: leaving]
DingoSaar has joined #lisp
sthalik has quit [Quit: leaving]
random-nick has quit [Remote host closed the connection]
rain1 has joined #lisp
<rain1>
is it possible to download steve russels lisp for IBM 704?