freenode/#clasp - IRC Chatlog
Search
15:14:19
Bike
using the compiler while using the compiler to rebuild the compiler turns out to be difficult
15:15:14
beach
That's why I have been thinking about using first-class global environments for that.
15:15:28
Bike
if it hits a class definition, it redefines the class, which undefines all the readers, then calls class-slots, which updates the constructors, which calls the compiler, which tries to use a reader
15:15:40
beach
One environment would contain the working compiler that could be used to compile the compiler in a different environment.
15:16:06
Bike
drmeister: she's been trying, no luck. this conda "environments" thing seems a little weird
15:17:50
drmeister
I'll have to separate out ironclad - it compiles really, really slowly when building the docker environment but builds pretty fast on my laptop.
15:17:56
hana
also in the readme for rdkit ipython, it says that it was written for python3 so im not sure if it would work with the python2 notebook?
15:18:33
drmeister
Hana - Is it possible to install the python3 notebook stuff alongside python2 notebook stuff?
15:19:29
hana
what do you mean by alongside? I think it should be possible to have a python3 notebook, if I recall correctly, I saw some in youtube tutorials
15:19:45
beach
Bike: As I recall, drmeister has made some noise in the past about wanting first-class global environments, but I think it was never worked on any further.
15:20:32
Bike
maybe i'll do it. currently when you build cclasp it just... redefines everything as it goes. all i foresee is more problems
15:22:18
Bike
"if it hits a class definition, it redefines the class, which undefines all the readers, then calls class-slots, which updates the constructors, which calls the compiler, which tries to use a reader"
15:22:25
drmeister
I (1) set up this in the wscript.config --> INSTALL_PATH_PREFIX = '/Users/meister/local/clasp/'
15:25:01
beach
Seriously, I think first-class global environments is a great solution to that problem. If drmeister is serious about wanting them in Clasp, maybe that should be worked on first.
15:26:38
Bike
i think i would run into the same problem, because it would still redefine the class and things would proceed in the same order.
15:30:50
Bike
i'll give it a shot. i'm not sure how it will work with some things, most obviously classes
15:32:01
beach
I can walk you through the issues with first-class global environments so that you can decide what design decisions to make.
15:32:05
Bike
actually. yeah. when you hit an eval-when and you're supposed to evaluate something /in the compiler/, does that affect the compiler's environment or the environment in which you are compiling?
15:33:02
beach
It affects the "compilation environment". The problem is that the Common Lisp HyperSpec gives to many options for an implementation to make that environment different or the same as some others.
15:33:48
beach
Can I assume that you read the page in the Common Lisp HyperSpec about different environments?
15:35:01
beach
Also, with first-class global environments you get an excellent testing platform. You can have multiple versions of the compiler and whatnot, and you can compare them without re-building your system.
15:35:27
Bike
yeah, more than once i've recompiled some particular function in the compiler, and it was wrong, and then i can't fix it because the compiler is broken
15:35:35
drmeister
Hana: Try building one that sets up a web server first - there are lots of tutorials.
15:36:40
drmeister
Hana: You can use my Dockerfiles as reference and as a starting point - hang on...
15:37:24
Bike
that is sort of what's happening here, really. the compiler hits a defclass, so it redefines the class. while it does that, the compiler is in an inconsistent state.
15:40:19
beach
And I had a long day. I fixed lunch for my favorite co-author, and then we worked in the afternoon.
15:41:13
hana
drmeister: so the goal is to set up a docker image that contains jupyter notebooks for python 2, python 3 and rdkit?
15:42:53
beach
One of the uses for first-class global environments that I imagined after phoe's suggestion was to have an environment in which the compiler functions have been converted to ordinary functions, so as to facilitate bootstrapping the real compiler in a different environment.
15:43:50
drmeister
hana: Yes - except we don't need python 2. It's a docker image that just runs rdkit. We want to see what it does and how it works.
15:44:50
drmeister
hana: It's cleaner to set up jupyter notebook running in a Docker container. You can keep rebuilding it and throwing it away if it doesn't work and you don't pollute your system with bad configuration info.
15:45:56
drmeister
You keep manipulating a file called a "Dockerfile" and rebuilding the docker image until you get it right.
15:47:48
drmeister
Bike: Figure out how first class environments work - then I can help you implement them within Clasp.
15:50:24
drmeister
hana: You will need to install 'docker-compose' on your system - it's an application that runs on top of docker.
16:10:12
drmeister
hana: I've created a Dockerfile that builds a docker image that just provides the python 2.7 jupyter notebook with nglview. You can try massaging it to install python 3 and rdkit and see if you can get that working.
16:13:51
drmeister
hana: An important thing to learn about docker is how to clean up broken images with: docker images; docker rmi xxxxx
16:25:19
Bike
anyway, seems like it'll be an undertaking, so i should do something else for now. inlining svref i think would be doable. basically just have to know the offset of the stretchy vector
16:43:13
Bike
seems like it would be like car_offset and cdr_offset. dunno why those aren't just offsetof, but regardless it's probably not as smooth since template_SimpleVector is just a template
16:43:33
beach
Bike: Have you and drmeister set specific goals for what you might try to accomplish during the year, or are you free to work on anything that improves Clasp?
16:45:16
drmeister
Let's talk about goals in light of the new development that you will be staying until next summer.
16:47:50
Bike
i mean, i have specific targets to work on, but if there's a delay in one i have other ones
17:06:08
derrida
Hey all! Looks like you guys have made a lot of progress since I last poked around :) Trying to build from testing on OSX and I'm running into a linker problem near the very end of building clasp. https://gist.github.com/mgs/ca213570f44dc64a588bd6b8d6fb3b4a
17:07:06
derrida
ld: could not parse object file src/gctools/gc_interface.cc.3.o: 'Invalid record (Producer: 'LLVM4.0.0svn' Reader: 'LLVM 3.9.1')', using libLTO version 'LLVM version 3.9.1' file 'src/gctools/gc_interface.cc.3.o' for architecture x86_64
17:07:44
Bike
says it's using /opt/local/bin/ld instead of externals clasp, i wonder if that is problematic
17:10:47
Bike
i mean, it looks like a version mismatch, but i'm not sure how 3.9.1 is getting involved
17:13:29
derrida
I didn't catch that and I thought I had prevented macports/brew conflicts, I guess not. :[ That's fixable anyway.