freenode/#lisp - IRC Chatlog
Search
12:43:44
beach
I would prefer something like INCLUDE and EXCLUDE for symmetry. But it's moot. We have what we have.
12:50:50
ggole
The nice thing about remove/remove-if is that the name fits beautifully for the non-function case, which is not really true of select
13:05:21
warweasle
I used the time machine. The closest I could get everything back to normal ended up with Trump. Frankly, I just quit trying after that.
15:21:45
beach
vtomole: There is now a #sicl IRC channel where I can blab freely about what I am doing.
15:23:20
beach
I am making very good progress on bootstrapping, and since Clasp seems to want to replace LLVM (which is very slow) by Common Lisp code generating x86-64, I am working on HIR-to-MIR which will eventually be possible to translate to x86-64.
15:28:44
vtomole
beach: Replacing LLVM in Clasp seems like a huge project. Good luck to those involved! Why is it slow?
15:29:28
beach
Luckily, we don't have to replicate all of LLVM. Having said that, I am convinced that it would be much easier to write something like that in Common Lisp than in C++.
15:30:16
beach
I often say "it is impossible to write a C++ program that is both modular and fast", and here is another data point in that direction.
15:30:46
beach
astalla: That's what I would have thought, but drmeister says that he can handle that.
15:34:39
djeis[m]
Generating code to access C++ directly is a lot more complicated than just what you can get with CFFI, because C++ is all kinds of nonsense at the ABI level.
15:35:17
astalla
vtomole: as far as I know, to properly link to C++ code without second-guessing whatever compiler was used to compile it, you need a C++ parser, and C++ syntax is complex enough that a proper parser is very hard to write and basically it requires a whole C++ compiler.
15:36:34
djeis[m]
Not just a C++ parser, you have to replicate the name mangling proceedure of whatever C++ compiler that lib was compiled with.
15:36:46
beach
I had assumed that LLVM was a requirement for such interoperability to work, but I only recently learned that drmeister had plans to generate x86-64 code directly.
15:38:11
djeis[m]
I'm fairly certain that LLVM would still be needed for the interop itself, but there's no reason that codegen for the bits that don't involve interop could be done using some other compiler.
15:48:01
beach
djeis[m]: drmeister (who is my house guest at the moment) says that all that is required is to follow the calling convention, which is fairly easy.
15:54:32
ggole
For instance, there's a trick which clang(?) does where if every override for a virtual function returns a constant, they replace the function pointer with the relevant constant in the vtables
15:55:07
ggole
If you have to reverse-engineer that sort of implementation quirk, you'll be in for quite a ride.
16:39:33
Shinmera
razzy: please try not to keep off-topic chatter going, especially when it's politically charged.
16:40:13
russellw
what's the best way to test a variable for being equal to one of several strings? with symbols it's (member x '(a b c)) but that uses eql so doesn't work with strings
16:42:54
shka_
data frame implementation i am working on, will use copy on write logic to only copy parts of data frame that are actually changed
16:43:40
shka_
however, obviously, it would be beneficial to check if operation on frame actually changes it
20:30:04
Myon
svillemot: Hi, are you taking over cl-nibbles from dim, or should I try uploading the fixes for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908641 ?
20:31:27
drmeister
On reflection, generating code directly from cleavir will probably require figuring out how to set up unwinding and to generate DWARF metadata.
21:30:39
housel
In another channel I'm in (#dylan), it is always morning by convention; makes it easier to choose a greeting across time zones