freenode/#sbcl - IRC Chatlog
Search
12:06:42
mfiano
scymtym: phoe was posting on behalf of me. I went ahead and replaced with-accessors with a symbol-macrolet to do the aref's instead of calling a structure's functions. I am still having the exact same problem. here is the code, if you have any ideas: https://gist.github.com/mfiano/3cb843b22e276c8756ab69d95cf08a9d
12:16:07
mfiano
adding (declare (single-float length)) fixes it. apparently SBCL still wants to treat the result of SQRT as possibly complex
12:31:24
phoe
the issue I see is that (* (aref x 0) (aref x 0)) is still not detected as non-negative even if X is an array of single-floats
12:33:24
pkhuong
and only doing them once would call for a real memory model. SBCL's is currently similar to a "everything is volatile"
12:34:25
pkhuong
we might want to change that, but that calls for hard thinking (or stealing someone else's work)
12:36:53
pkhuong
2. even once you recognize that two values are EQ, propagating bounds on correlated values is hard. we can detect when two lvars
12:38:21
pkhuong
the constraint pass does have the information we want, but its current interface with ir1 optimisations is just updating the type of lvars
13:19:53
pkhuong
oh. and i guess a transform is broken if it makes cprop wrong in an observable manner
13:20:44
pkhuong
i'm talking about passing equality constraint info back to transforms. in this case, though, just the type deriver would suffice
13:21:26
stassats
the constraints just remain on the refs, as it appears nothing is needed to clear them
13:36:26
stassats
and things like x is < than (+ x 2) would be useful for bound checking elimination
17:28:54
karlosz
i thought i had done something wrong, but (find ... (sset-vector ...)) returns T while sset-member returns NIL
18:00:29
stassats
sset has some degenerate states beside not keeping the blocks where they should be
18:04:52
karlosz
well, the implementation has been replaced at least once already, couldn't hurt to do it again
21:02:44
stassats
the unbox-box is actually encountered in sbcl itself, so not a total waste of time
21:18:04
Xach
M-. says Error: DEFINITION-SOURCE of package SB-UNIX did not contain meaningful information.
21:24:33
Xach
stassats: I wanted to look because i was confused by #.path-max failing when using C-c C-c in run-program.lisp
21:26:46
Xach
stassats: I am in fact adding darwin to the list because run-program :pty t does not work properly right now on darwin
22:36:06
karlosz
is it frowned upon to annotate nodes in hash tables? is there a better way to mark nodes during an optimization?
22:39:18
karlosz
speaking of which, IR1-TO-DOT confused the hell out of me until i realized it was doing DFOs on predecessors rather than successors
22:40:09
karlosz
i've got working loop invariant code motion now, at least for the simple example of (defun f (x) (dotimes (i 10) (print (+ x x))))
22:40:38
karlosz
now to just make it smart with SETs and maybe send a patch to the list for some feedback
22:47:05
Xach
I can't seem to simply reproduce the issues I had last year regarding pty use on darwin. So I will just start using them and see what happens.