freenode/#clasp - IRC Chatlog
Search
16:36:02
SAL9000
this could be a physical box, a VM on the same computer or some cloud box, doesn't matter
16:36:26
SAL9000
Docker Toolbox is designed to ease remote management of machines running Docker, such as the above
16:37:21
SAL9000
thus beleagured users who are unable to run Docker for Windows -- whether due to Home edition or conficting virtualisation -- are recommended to install Toolbox and use its automatic VM builder to get a "remote" Docker which is actually a VM in VirtualBox.
16:38:42
Shinmera
SAL9000: isn't software virtualisation decently fast with things like binary rewriting?
16:38:44
SAL9000
NB: I have not in fact tried it myself -- I just googled for docker machine remote mounting, there MAY be a special case.
16:39:14
drmeister
Ah - I'm not sure the transparent local folder mounting will work - we will find out tomorrow.
16:40:43
SAL9000
drmeister: there is a workaround -- virtualbox also supports folder mounting of sorts.
16:40:52
Shinmera
If I remember correctly VMWare uses binary rewriting and I've never had issues with its performance.
16:41:40
SAL9000
I haven't used that in years, but afaik QEMU is using a similar approach, and I have used that for running ARM on x64
16:42:58
Shinmera
I learned a whole bunch about virtualisation stuff in my OS lecture but it's been a year and a half now and I only remember faint detaisl
16:45:50
drmeister
SAL9000: We have a git repository that we are using to modify the drmeister/cando docker image.
16:47:08
drmeister
We have the docker image drmeister/cando - it runs Cando and starts a jupyter notebook server.
16:47:49
drmeister
On OS X we use the "run-docker" in the top directory and it mounts three directories within widgets-dev into three different locations within the docker container.
16:48:17
drmeister
That overrides the directories within the docker container with directories on the host that contain source code that we are developing.
16:49:49
drmeister
Also, leave out the one that mounts into cl-jupyter - the cl-jupyter directory in widgets-dev is broken - I'm working on it this afternoon.
16:50:20
drmeister
The idea is we have this docker container that runs Cando and we patch in host directories with development code within them and turn it into a portable development environment.
16:50:54
drmeister
If we can't mount those directories - then we have a problem. I assumed that the docker toolbox for Windows Home could do that.
16:52:21
drmeister
Ok, so we will know more here tomorrow. If there is some other way to mount host directories we can probably come up with a workaround.
16:53:15
SAL9000
It seems that there is a way to mount host directories -- although it might break if your Users dir is not on C:/ -- but I'm expecting all kinds of fun wrinkles due to the two layers of magic-folder indirection
16:54:24
SAL9000
drmeister: it's important to note that VirtualBox's shared folders are not like Docker -- they work "in the other direction", if that makes sense.
17:11:59
SAL9000
Docker's -v folders are mounting directories in the guest onto/over directories on the host
17:12:25
SAL9000
VirtualBox shared folders are providing directories in the host as "network shares" exposed to the guest
17:12:43
SAL9000
the guest must then use its VirtualBox-specific drivers (Guest Additions) to mount those shares wherever
17:13:45
SAL9000
Docker's -v folders are mounting direcotires in the host onto/over directories in the guest
17:14:39
SAL9000
also, it seems that the default boot2docker image doesn't actually mount /c/Users by default =/
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.