freenode/#sbcl - IRC Chatlog
Search
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.
17:12:48
phoe
what I understood from the article: I want the assoc-values and gethashes precomputed, as in, before I enter the loop.
17:26:32
phoe
declare it to be the float? the single-float? (the {single-,}float (lerp factor x y)) doesn't change the warning.
17:26:33
stassats
phoe: and you're putting the array into the hash-table, are you sure it's ok to hoist it?
17:29:51
stassats
and index-1 and index-2 is ub8, why aren't you using an 255-element vector instead of a hash-table?
17:30:57
phoe
_death: it's a good one though, I unnecessarily have COUNT there because it's always 5.
17:34:10
phoe
stassats: I still don't know what about lerp I need to declare. Range of what exactly?
17:37:53
_death
phoe: so again, you don't need floating point.. b[i] = x[i]+f*(y[i]-x[i])/6 for f [0,6]
17:39:19
stassats
since the rounded number is stuffed into a ub8 array, i can deduce that the range is 0 255
17:41:19
stassats
but hash-table access and array creation will dominate, so focus on making it one big array
17:46:28
stassats
for some reason (round (single-float 0.0 (255.5))) isn't derived as (unsigned-byte 8)
17:50:01
phoe
stassats: for some reason? 255.5 gets rounded up to 256, and this one more than ub8 can contain
17:51:41
phoe
yes, I don't care that much about if the pixel's R or G or B value is going to be one off.
17:51:45
nyef``
Hint: "Yes" is a perfectly valid answer. As are "no" and "I don't know, let me think about that."
17:53:30
phoe
stassats: I know why I'm not using a big ub8 vector - from these 256 elements that I have, only 48 will be populated
18:29:15
corci
Project sbcl-master » fancy,ubuntu_trusty_64bit build #2902: FAILURE in 30 min: http://ci.cor-lab.de/job/sbcl-master/featureset=fancy,label=ubuntu_trusty_64bit/2902/
18:29:16
corci
Project sbcl-master » safepoints,ubuntu_trusty_64bit build #2902: FAILURE in 30 min: http://ci.cor-lab.de/job/sbcl-master/featureset=safepoints,label=ubuntu_trusty_64bit/2902/
18:29:17
corci
Project sbcl-master » ccl,ubuntu_trusty_64bit build #2902: FAILURE in 30 min: http://ci.cor-lab.de/job/sbcl-master/featureset=ccl,label=ubuntu_trusty_64bit/2902/
18:31:09
corci
Project sbcl-master » safepoints,ubuntu_trusty_32bit build #2902: FAILURE in 32 min: http://ci.cor-lab.de/job/sbcl-master/featureset=safepoints,label=ubuntu_trusty_32bit/2902/
18:31:10
corci
Project sbcl-master » ccl,ubuntu_trusty_32bit build #2902: FAILURE in 32 min: http://ci.cor-lab.de/job/sbcl-master/featureset=ccl,label=ubuntu_trusty_32bit/2902/
18:37:17
stassats
scymtym_: could it be because there's a new upstream fetch so the tarball is deleted?
18:40:13
nyef``
... I didn't have a "fetch-to-tarball" in mind when I made that suggestion. I had "clone from local repository" in mind.
18:46:31
scymtym_
nyef``: it fetches (not clones) into a local "workspace", then makes a tar-archive to distribute to a bunch of machines. do you see a way to simplify that?
18:47:15
nyef``
I have no idea. Jenkins and its constraints are not my strong point, nor likely ever to be.
18:54:21
scymtym_
i will try to just have sbcl-master-fetch keep archives around longer. the problem was that sbcl-master-fetch ran again, deleting the previous archive, before all sbcl-master jobs could fetch it
18:59:14
corci
Project sbcl-master-windows » Windows_7_32bit build #1809: FAILURE in 29 min: http://ci.cor-lab.de/job/sbcl-master-windows/label=Windows_7_32bit/1809/
19:01:06
scymtym_
if anybody wants to give feedback regarding the "user interface", a prototype sb-test contrib is at https://github.com/scymtym/sbcl/tree/wip-sb-test . test with e.g. sh make-target-contrib.sh ; cd tests ; sh run-tests.sh sh clos-1.impure.lisp arith.pure.lisp (sb-{sprof,bsd-sockets} will use it for their tests and apparently fail)
19:24:45
corci
Project sbcl-master » safepoints,ubuntu_trusty_32bit build #2903: FIXED in 53 min: http://ci.cor-lab.de/job/sbcl-master/featureset=safepoints,label=ubuntu_trusty_32bit/2903/
19:33:10
corci
Project sbcl-master » ccl,ubuntu_trusty_32bit build #2903: FIXED in 1 hr 1 min: http://ci.cor-lab.de/job/sbcl-master/featureset=ccl,label=ubuntu_trusty_32bit/2903/
19:33:21
corci
Project sbcl-master » fancy,ubuntu_trusty_64bit build #2903: FIXED in 1 hr 1 min: http://ci.cor-lab.de/job/sbcl-master/featureset=fancy,label=ubuntu_trusty_64bit/2903/
19:46:08
corci
Project sbcl-master » safepoints,ubuntu_trusty_64bit build #2903: FIXED in 1 hr 14 min: http://ci.cor-lab.de/job/sbcl-master/featureset=safepoints,label=ubuntu_trusty_64bit/2903/
19:51:35
corci
Project sbcl-master » ccl,ubuntu_trusty_64bit build #2903: FIXED in 1 hr 20 min: http://ci.cor-lab.de/job/sbcl-master/featureset=ccl,label=ubuntu_trusty_64bit/2903/
22:19:34
corci
Project sbcl-master-windows » Windows_7_32bit build #1810: FIXED in 29 min: http://ci.cor-lab.de/job/sbcl-master-windows/label=Windows_7_32bit/1810/