freenode/#sbcl - IRC Chatlog
Search
12:23:31
stassats
thinking about w^x, i don't think we can do it without either stopping the world or each new code object occupying a separate page
14:26:45
stassats`
the latest substitute-single-use-lvar is caused by it working on a yet uninlined local function
14:29:18
stassats`
i might just give up and only transform (let ((x ...)) x) to ..., but i wanted it to be general
14:42:46
ebrasca
Here link of my fat32 https://github.com/ebrasca/Mezzano/blob/master/file/fat32.lisp
14:54:15
stassats
ok, i'm giving up on smart substitute-single-use-lvar for returns and exits, even though i now can handle anything, except for inlining, since it can produce arbitrary code
14:54:58
stassats
but, i gather a bit of tests and a better understanding, it's really not an important optimization
14:58:15
stassats
but i still get (defun foo (z x) (position z (the simple-bit-vector x))) optimized, which was the target
14:59:30
stassats
pfdietz: i accidentally managed to make a crashing test care, so you just got a bit unlucky
15:03:56
stassats
i could probably predicate it on is-everything-inlined, but that's not something already available or worth it
15:04:00
pfdietz
Wondering why ignore-errors is defining those functions (looking at the macroexpansion).
15:07:42
stassats
well, the handlers need to have dynamic-extent and be called non-locally, where would you inline that?
15:08:10
stassats
the protected form? no idea, but it's not like anybody is experiencing slow downs due to excessive compiler work on handler-bind
15:10:41
pfdietz
There are two functions defined in the outer FLET form. Each is called in just one place.
15:14:02
pfdietz
I guess the declaration (DECLARE (OPTIMIZE (SB-C::CHECK-TAG-EXISTENCE 0))) is relevant; may not want it to apply to the user code.
15:14:27
pfdietz
So that user code gets put into flet functions, which are out of the declaration's scope.
16:49:38
stassats
default w^x would probably be not a good idea, but optionally it's somewhat trivially doable
16:51:10
Xof
slightly more importantly, having this kind of thing in NEWS sends the signal that yes, we do care (a little bit) about things being broken
16:53:22
joshe
and I'm not sure adding detection for an openbsd feature added two years ago really sends a message that someone really cares ;)
16:54:00
pfdietz
Thinking "fix committed" is not enough state; should indicate if the bug had been present at the last release. Short term bug fixes of things that were never released do not belong in the release notes.
17:00:23
stassats
i think the simplest thing to do is just to inflate the code object size at creation time to be a multiple of pagesize, then reprotect when gcing
17:08:03
stassats
well, it's optional, and openbsd doesn't mind performance degradation for performance reasons
20:43:50
joshe
there are a few timing problems in various tests caused by openbsd's course scheduler granularity
21:09:13
stassats
sb-concurrency tests are kinda slow on openbsd, maybe i need to adjust the cpu number detector, but no sigills yet
21:10:05
stassats
asarch: ok, i can't reproduce it now either, so, i'll need that core dump after all
21:19:26
stassats
if openbsd does have futex then sbcl should use them, because the non-futex path is really horrible
21:20:30
stassats
pkhuong: it could be make-config.sh detected, i don't think openbsd is big on binary compatibility across versions anyway
21:22:04
pkhuong
stassats: I honestly think the old futex emulation code was the right approach... too bad reentrancy was so hard.
21:23:31
joshe
https://gist.githubusercontent.com/jre/90bce0519cc928859282c36c7ba65494/raw/aba75d89ead5f9861371f42e35e96e51749f4379/gistfile1.txt