freenode/#clasp - IRC Chatlog
Search
17:48:49
drmeister
I've rejiggered my CMP:WITH-TRY macro - it gives me something that's a hybrid of UNWIND-PROTECT and TRY/CATCH (TRY/CATCH/FINALLY really) within functions using LLVM.
17:53:25
SAL9000
drmeister: Looks like I've found the bug. The default Docker VM is being created with a shared folder using Windows' extended path syntax (\\?\f:\oo\bar), which (at least my somewhat old version of) VirtualBox doesn't grok in this context, so the automount fails, so /c/Users is meaningless, etc. etc.
20:27:13
drmeister
I'm still working on getting cclasp fully up and running. Currently I'm adding back the backtrace frames.
20:28:10
drmeister
I have a student working with me since yesterday Kevslinger - he's working on widgets for jupyter notebooks.
20:29:23
drmeister
So I'm rushing to get cclasp working in a general way to support development. Not having backtraces is unacceptable.
20:30:21
frgo
I've been busy with day job and was drawn away for a few days - one of my stuff being in hospital with severe gastralgia and yet unknown cause made me take over some projects.
20:32:42
drmeister
Kevslinger may have questions - I told him he can ask here if I'm not immediately available.
21:14:51
drmeister
I should be able to help out more once I get this exception handling/backtrace/debugging stuff sorted out.
22:04:04
frgo
drmeister: Yes - I'd like to finish cffi support work asap now. Lot's of other stuff on my plate currently and itÄs not going to change a lot in the coming months.
3:17:35
Bike
hey beach. i was thinking about path replication. for something like (car x) (cdr x) replicating just the second TYPEQ CONS works since then the upper NULL test will dominate the later, but if you were distinguishing between four types instead of three I don't think it would work. or distinguishing three types where there's no pre-cut error branch, i guess.
3:17:56
Bike
i mean, you could do it, but it would go replicate -> type inference -> replicate -> type inference, which seems non optimal
3:21:03
beach
It is entirely possible that doing type inference might create the opportunity for path replication.
3:22:25
beach
We would have to prove termination if path replication is used on a test that is not dominated by a similar one.
3:23:33
beach
But, yes, I can very well see how path replication creates a better situation for type inference and vice versa.
3:24:11
beach
I think that several optimization steps are like that, i.e., running one might create more to work with for a different one.
3:27:54
Bike
For an example, I was thinking of sequence functions in an implementation with extended sequences. So they all do basically (etypecase sequence (list ...) (vector ...) (extended-sequence ...))
3:28:29
Bike
if you have two such calls in sequence, you can replicate the listp check, but not vectorp.
3:30:06
beach
Establishing an order between optimization passes is very hard. Maybe it is possible to find one that will work most of the time, but for high values of SPEED, it is worth repeating passes.
3:33:29
beach
Just like replicating with respect to CONSP makes it possible to then replicate with respect to NULL?
3:34:13
Bike
but without doing that the later vectorp can come from the first vectorp or from the listp branch
3:35:13
Bike
the other option i thought of was having typeq extended into a typeqcase with multiple successors, kinda complicated
3:36:07
beach
Seriously, I think that in the case where we want the best performance, there is no alternative but running different optimization passes several times.
3:40:46
Bike
not that i haven't thought at least a little about how to do hir transforms while preserving most optimization info
3:42:50
beach
I suggest we wait with such optimizations of compiler execution time until we have the optimization passes working. Introducing such optimizations of compiler execution time will complicate the compiler and make it harder to maintain.
3:46:15
beach
The book by Muchnick has a discussion about the order of optimization passes. Might be worth looking at.
3:54:48
Bike
i just googled and someone mentioned "150 A4 pages of errata" which is pretty impressive (not really related)
4:01:29
beach
I typically read a particular chapter or section on some technique, and then go to the papers referred to by that chapter or section.