freenode/#sbcl - IRC Chatlog
Search
18:34:42
stassats
|3b|: 2fc73e45c983c6f77775d61c174322b5642d3d0a 3f30bba41bc66e5bd9ace84446cecac2db8b4d44
19:00:31
|3b|
and now that i think about it, my sbcl is patched... is that test likely to involve backtraces at all?
19:01:35
|3b|
fixing home means my default coding system is utf8 now, that could affect printing things
19:39:44
|3b|
more windows test results, lots of stuff i don't recognize from last time i ran tests :/ https://gist.github.com/3b/714825e148ff605250cadac22fb57586
20:16:28
|3b|
ACTION should save stderr too when running tests, commented gist with 'fatal error' from bit-vector.impure-cload.lisp
20:28:07
stassats
i think there's been enough fixes for windows (not just for regressions) that i might have enough extra motivation to post up a binary come release time
20:35:20
|3b|
fairly small sample set so far, but threads.impure.lisp hangs on :all-threads-have-abort-restart. if i comment that out it hangs on (:condition-variable :notify-multiple). comment both and it finishes
20:35:57
|3b|
and now that i typed all that out it seems to have hung somewhere else on the 5th or 6th try :p
20:47:18
stassats`
i've even seen the code that does interrupts, there's no intention for it to be right
20:49:26
|3b|
all-threads-have-abort-restart seems to be locking in the test harness rather than the test itself
20:49:41
stassats`
the only solution to windows woes i can envision: replacing safepoints with good old signals, or whatever is the equivalent on windows
20:50:15
stassats`
although safepoints is a good idea in theory, it's not implemented right, at least wrt interrupts
20:59:07
|3b|
possibly some race with thread termination when with-tests tries to terminate it again if it isn't dead after the first time?
20:59:44
|3b|
assuming that is even a reasonable thing to do in the first place, which i'm not sure about (or i could be misreading the code instead)
21:02:48
Shinmera
I've had some unbelievably slow condition variables on Windows, but now I can't reproduce it.
21:06:11
|3b|
ah, i think maybe the other thing that was running into the problem just got commented out instead :/
21:08:09
stassats`
Shinmera: not guarantees that windows will receive any love, but i'll be in a better position to handle it after dealing with darwin
21:11:42
|3b|
from last time: "looks like possibly the problem is that STATIC_SPACE_SIZE isn't a multiple of os_vm_page_size, so it tries to commit more than was reserved when it gets to the last page (page size is #x8000 = 32k, static space ends at 201ff000)"
21:22:57
|3b|
not sure what specific effect that had before... i think either bigger or smaller would work as long as it was a multiple of 32k
21:34:15
stassats`
i think all that :alignment and :margin-size fuzz is because the sizes are not aligned
21:41:32
|3b|
does seem to still be not a multiple of 32k, but :margin-size doesn't have any effect on it
21:47:14
|3b|
is page-size always going to be small enough for the immediate offset thing in the comments?
21:50:26
|3b|
would it matter if /all/ of the safepoint was within immediate offset range though, or just needs to be some of it?
21:51:19
|3b|
if it is just triggering a segfault or something, seems like hitting the end would work as well as the beginning
21:51:36
stassats`
but since they are need only on windows, and there's no problem with 32-bit offsets there
21:58:56
|3b|
actually looks like :margin was probably just propagating stuff that was done manually before the macro, and the windows port may have always been broken that way
22:00:07
scymtym
over the years, i have seen SBCL failing to wait for sub-processes now and then. now i have a multi-threaded, sub-process-heavy application basically running 24/7 and see the problem maybe 3 times a week. iirc, my best bet when i last investigated this was the cookie stuff in run-program using non-atomic incf/decf. does that sound plausible?
22:02:26
stassats`
so what is the !gencgc-space-setup trying to achieve by chopping off "for good measure" bytes off spaces, when it may not be a multiple of pagesize
22:04:11
|3b|
looks like original intent was 1 page: "#define STATIC_SPACE_SIZE(0x0ffff000) /* 256MB - 1 page */"
22:09:09
scymtym
the list seems to serve as a mutable cell that is available before the process instance is created - it is very strange
22:09:53
scymtym
just doing atomic-{incf,decf} might be enough to fix my particular problem but i really don't like how this works
22:27:48
|3b|
ah, might help if i set :margin-size on right architecture when i tried to test that :p
22:31:15
|3b|
and for whatever it is worth, the test passes with :margin-size #x8000 in the right place
22:32:12
stassats`
sure, there'll be no test anymore, but make-static-vector fails on windows before saying not enough space
22:55:18
|3b|
should INTERRUPT-THREAD be checking for (ZEROP OS-THREAD) instead of or in addition to (NOT OS-THREAD)?
23:03:24
stassats`
i don't want to rewire all backends and just rearranging the files doesn't seem to work
23:38:35
stassats`
nyef: and +backend-page-bytes+ is 32K and there's some roundabout dance in gencgc-space-setup
23:40:11
nyef
Had there not been a stupid, stupid bug in the handling of the D flag, it'd've been working a full year or more earlier than it was, and I'd've probably had motivation and hardware to keep working on it.