freenode/#clasp - IRC Chatlog
Search
3:04:45
no-defun-allowed
I tried to load Quicklisp after building cmps; I'm starting to think that might not be doable yet?
3:06:45
drmeister
Could you paste your wscript.config file? You may have old settings or you don't have one and the defaults are active - that shouldn't break things - but I have a wscript.config that I've been working over for a while.
3:07:24
drmeister
I haven't tested the mps build much. I'm running the static analyzer for cando and then I'll test it with that.
3:07:49
drmeister
Do you have any ideas what might be different? Did you do anything different before when it broke vs now?
3:08:51
no-defun-allowed
I replaced everything in clasp/ to build it today; my wscript.config is wscript.config.template with the Arch-specific changes (LLVM_CONFIG_BINARY = '/opt/llvm90/bin/llvm-config') and I removed "--link-static" from the llvm_libraries line in wscript
3:10:09
no-defun-allowed
Now I'm compiling some of decentralise2 and it's still behaving well. cffi and flexi-streams have the most dots out of the dependencies.
3:10:51
no-defun-allowed
(ql:quickload dots are a good metric of code size, right? The more dots you have, the more code there is.)
3:14:33
no-defun-allowed
It does a thing with *macroexpand-hook*; but in any case everything compiled fine.
3:17:00
no-defun-allowed
Then I ran Clasp under SLIME; no problems. Then ran my tests again; also no problems. Then, for kicks I evaluated (trivial-garbage:gc :full t) and it didn't like that.
3:29:11
drmeister
I'll have to take a look at it. Note: I just got it back up and running today after several weeks of not using it.
3:33:43
no-defun-allowed
That is my networking/distributed hash table library. And yeah, that is from the latest commit.
3:34:56
no-defun-allowed
It looks like something got messed up in the AWL pool, but I can't tell immediately what uses weak references.
3:36:07
drmeister
The AWL pool is used for a couple of other things as well - but I think there is a nasty problem in there.
3:36:32
drmeister
The AWL pool doesn't support interior pointers and I've been using it as if it did for static vectors.
3:42:28
no-defun-allowed
I had the same error while running the tests, which I suppose invoked a GC.
4:00:21
drmeister
A preliminary test tells me that the new SharedMutex is 5.5x faster than the old one.
4:03:50
drmeister
I evaluate this with the old SharedMutex and again with the new one (I have them built side by side).
4:05:14
drmeister
With the old SharedMutex it takes 1.65 seconds and with the new one it takes 1.713 seconds - so the new one is just a bit slower than the old one in this case.
4:10:49
drmeister
Yeah - the new one scales much better with multiple threads. I'm very impressed by the author of that code.
4:11:32
drmeister
(time (many-find-packages 20 10000000)) Old SharedMutex 80.433secs. New SharedMutex 10.965secs
4:35:39
drmeister
MPS doesn't use a shared mutex - that's would explain why it scales so poorly with multiple threads.
4:38:45
no-defun-allowed
Are there many places where it only reads? I have barely studied the MPS though.
4:43:07
drmeister
Once the allocators run out of their current buffer they call a function that grabs new pages and that has a lock.
4:43:58
drmeister
When you allocate a lot - and lisp allocates a lot - threads spend a lot of time waiting for the lock.
4:45:00
no-defun-allowed
Sure, but do any read without writing or locking everything? If not, you'd just be exercising the writer lock.
4:51:38
drmeister
I don't know what they do. I'm sure it could be done better. Java has a multithreaded GC I believe.
4:54:40
no-defun-allowed
This reminds me that I had MPS running on ARM on Linux, but then forgot about it and lost it when reimaging SD cards.
6:27:18
drmeister
Time real(20.793 secs) run(20.792 secs) consed(1373407488 bytes) interps(191) unwinds(0)
6:27:30
drmeister
Time real(51.268 secs) run(51.269 secs) consed(1784819792 bytes) interps(191) unwinds(0)
13:38:38
Bike
so right now the setCallingConv wrapper works with two different unrelated types, llvm functions and callbase. extern_defmethod sets up a single dispatch gf
13:43:15
Bike
also, i don't get llvm's restrictions on tail calls... it says the caller also needs fastcc convention, and the caller and callee need the same prototype
13:53:28
selwyn_
the issue is that you would like to be able to use it without having to be logged in under my account, right?
14:03:18
selwyn_
i suspect that any issues are due to the fact that i prefer to setup quicklisp in my .sbclrc file. if you run my scripts as a different user, then sbcl probably won't load that rc file on startup, in particular it won't use the quicklisp local-project repos under my home directory
14:18:02
selwyn_
now that i'm starting sbcl i notice lots of discouraging asdf complaints that i don't remember seeing before
14:25:29
selwyn_
i am reluctant to run anything as i don't want to interfere with the quickclasp distribution you already have up there, but i've made a new-rebuild-dist under my home directory that may work better
14:34:17
drmeister
Previously I would edit /home/selwyn/quicklisp/local-projects/dist/repositories.txt
14:34:37
selwyn_
i think you should be able to execute it as is, provided that you have sbcl installed
14:36:35
drmeister
We would like to create a quickclasp account - and move everything we need into that.
14:48:17
drmeister
How does it know to go to the /home/selwyn/quicklisp/local-projects/dist/repositories.txt file?
14:48:43
drmeister
Is that a quicklisp thing? I thought anything in quicklisp/local-projects was user defined.
14:49:30
selwyn_
the shirakumo-dist repository (which is under local-projects/dist) loads the repository list from repositories.txt under its own project root, not a quicklisp thing