17:46:31mrcode_yeah, i guess you're right. i was driven more for sake of completeness of understanding of how the types get propagated and how to specify them
17:49:01stassatsoh, what am i thinking, (double-float (0d0))
18:00:45mrcode_so a somewhat related problem is how to inline an ftruncate of a double ? i have note saying that (result (truncate corr)) can't be inlined. corr is (+ 0.5d0 r) where r is a double-float
18:02:34mrcode_basically i have this piece that is giving me trouble, since it's my first time trying to optimize lisp code : https://pastebin.com/UWQ8bSZE
18:02:45stassats(truncate (the (double-float #.(float most-negative-fixnum 1d0) #.(float most-positive-fixnum 1d0)) x))
18:05:52mrcode_nice. black magic, but it works. thanks a lot stassats
18:06:15Bikeit's not black magic, it's just that if the float is too big there's extra code to make a bignum
18:09:14mrcode_so does specifying the most-*-fixnum get rid of that code ?
18:10:56Bikeyou're declaring that the float is not too big.
18:22:25mrcode_so now a lot of stuff is inlined, and i'm looking at the disassemble output, i see sb-kernel:two-arg-/ suggesting i still get some un-inlined divisions, even though i am declaring arguments as fixnums