freenode/#sbcl - IRC Chatlog
Search
8:25:00
guicho
I believe each structure-object consumes 2 words in addition to the slot values, but the source code is somewhat contrieved, and it also looks like there are more words consumed by the underlying simple-vector
8:56:36
scymtym_
i'm experimenting with nyef``'s suggestion. sorry in case of spurious notifications
8:57:07
corci
Project sbcl-master » without-unicode,MAC_OS_mavericks_64bit build #2895: FAILURE in 2 min 43 sec: http://ci.cor-lab.de/job/sbcl-master/featureset=without-unicode,label=MAC_OS_mavericks_64bit/2895/
8:57:16
corci
Project sbcl-master » without-threads,MAC_OS_mavericks_64bit build #2895: FAILURE in 2 min 52 sec: http://ci.cor-lab.de/job/sbcl-master/featureset=without-threads,label=MAC_OS_mavericks_64bit/2895/
8:57:21
corci
Project sbcl-master » fancy,MAC_OS_mavericks_64bit build #2895: FAILURE in 2 min 56 sec: http://ci.cor-lab.de/job/sbcl-master/featureset=fancy,label=MAC_OS_mavericks_64bit/2895/
8:57:46
corci
Project sbcl-master » default,MAC_OS_mavericks_64bit build #2895: FAILURE in 3 min 21 sec: http://ci.cor-lab.de/job/sbcl-master/featureset=default,label=MAC_OS_mavericks_64bit/2895/
8:57:46
corci
Project sbcl-master » fasteval,MAC_OS_mavericks_64bit build #2895: FAILURE in 3 min 21 sec: http://ci.cor-lab.de/job/sbcl-master/featureset=fasteval,label=MAC_OS_mavericks_64bit/2895/
11:07:57
scymtym_
implemented nyef``'s suggestion. git clone problems should now be apparent upfront, in a single job. the whole configuration matrix should not even start in case of a problem. the two windows jobs will continue to do their own clones, though
12:50:38
guicho
stassats: sorry you are right, I tested both standard one and :type vector one and was confusing the two results
13:04:38
guicho
by the way, I was a bit disappointed by that defstruct does not pack smaller integer slots into one word
13:07:19
guicho
otherwise I can't keep up with the space efficiency the other solvers are enjoying (cf. https://ipc2018.bitbucket.io/)
13:21:47
jdz
Right. There's also https://github.com/frodef/binary-types, which might or might not do what you want.
14:07:42
pfdietz
So this readtable/global state change issue with asdf/quicklisp was known and being worked on. Good.
14:10:54
pfdietz
I think the idea is that systems that aren't fooling around won't see or need changes.
14:19:48
stassats
i think i see why interrupt-thread tests fail with "Interrupt thread failed: thread #<THREAD ABORTED {10026FFCD3}> has exited."
14:20:54
stassats
terminate thread enqueues an abort function and then wakes the thread, but i think the interrupt queue is processed before that
14:25:56
nyef``
It runs through GC_FLIGHT and GC_MESSAGE on the way, so after that the only threads still running are in alien code or WITHOUT_INTERRUPTS.
14:27:00
nyef``
All in-lisp threads will have safepointed by then. Whichever thread is doing the gc_advance() is, by definition, no longer in-lisp.
14:30:32
stassats
terminate-thread is done after interrupt-thread, so i think it's somehow enqueuing it while it's still processing things
14:31:05
stassats
s/things/the previous interrupt/, so it doesn't need to be woken up, and the wake up wakes up a dead therad
14:34:43
stassats
if terminate-thread may be processed by the previous interrupt-thread invocation, then wake_thread shouldn't fail with "couldn't wake up a dead thread"
14:37:29
nyef``
Yeah, I don't have the required state for this loaded right now, and don't have time this morning to try to load it.
14:38:01
stassats
just adding a closure in interrupt-thread, setting it to T and not erroring when wake-thread returns -1
14:39:31
stassats
i don't need to be atomic, it'll always be set to T, but i need the parent thread to see it
14:40:43
stassats
i always have trouble with choosing the right barriers and placing it at the right place
14:42:36
nyef``
I think you need the read barrier, but I forget what the semantics of the BARRIER macro are.
14:50:29
stassats
actually, i need (setf invoked t) to be written before any code is executed, not things read or written
14:58:27
stassats
(progn (setf invoked t) (barrier (:memory))) and (progn (barrier (:memory)) (not invoked))
15:19:20
scymtym_
rewriting the test harness as an sb-test contrib already paid off in a small way: i didn't previously know that 10 seconds of our build time is spent in the interrupt-io test of the sb-bsd-sockets contrib
15:40:04
phoe
not only it doesn't inform the user what the hell is going on, it also assumes that NIL is not a NIL.
15:41:21
nyef``
That's actually occasionally confusing. Maybe ", which is not of type NIL" would be better?
15:42:03
phoe
So that's two requests. One, about s/a/of type/; the other, about writing a proper error message for #a()
16:25:22
phoe
When compiling (/ (1+ fixnum) 6.0) with (optimize speed), I get a warning, unable to convert to multiplication by reciprocal because: 6.0 does not have an exact reciprocal
16:26:02
phoe
I understand that warning, but I want to figure out how to optimize this bit of code further.
16:27:40
corci
Project sbcl-master » safepoints,ubuntu_trusty_32bit build #2901: FIXED in 54 min: http://ci.cor-lab.de/job/sbcl-master/featureset=safepoints,label=ubuntu_trusty_32bit/2901/
16:34:57
_death
phoe: if you're satisfied with an approximate reciprocal, (* (/ 1.0 6.0) (1+ fixnum))
16:36:42
phoe
; note: unable to; avoid runtime dispatch on array element type; due to type uncertainty:; The first argument is a (VECTOR (UNSIGNED-BYTE 8)), not a SIMPLE-ARRAY.
16:46:45
phoe
stassats: it doesn't give me a sane error message like "#A expects at least two arguments, valid dimensions and valid element type"
16:47:44
corci
Project sbcl-master » safepoints,ubuntu_trusty_64bit build #2901: FIXED in 1 hr 14 min: http://ci.cor-lab.de/job/sbcl-master/featureset=safepoints,label=ubuntu_trusty_64bit/2901/
16:54:48
phoe
stassats: vectors are one-dimensional arrays, simple-arrays are specializable arrays that aren't displaced etc., but simple-vectors for some reason are *not* one-dimensional specializable arrays that are not displaced, etc.
16:56:06
phoe
stassats: is it? I thought it can hold everything, which means that it is not specialized.
16:56:30
phoe
_death: yes, that's what I am complaining about, it's a different kind of "simple" than in simple-array.
16:57:11
phoe
stassats: how is it different to specialize a vector to T than not to specialize it at all? Are there any optimizations that can be applied?
16:57:39
Bike
but you can talk about (simple-array *) as a type, which includes vectors of multiple specializations
16:59:37
Bike
the basic point without any talk of tagging is the not being able to pass a (simple-array t) to a function expecting a (simple-array (unsigned-byte whatever))
17:08:02
stassats
do not use symbols to represent colors, use structures that have their values attached
17:08:58
phoe
stassats: it's more complicated than that, color-1 and color-2 are keywords that tell me which *kind* of color I want there. it's double indirection - from the kind of color I get the index, from the index I get the gradient.
17:10:33
phoe
I've already sped up this function 12x compared to before, which is satisfiable for me right now.