freenode/#sbcl - IRC Chatlog
Search
16:41:51
stassats
as bignum floats are just 53-bit integers shifted left, no need to actually create such a bignum
16:51:39
stylewarning
stassats: if I read the code right, “down-converting” to a float would lose precision
16:57:10
stassats
it truncates the float and if it's equal to the integer, than it compares the original float against the truncated one
17:00:22
stassats
stylewarning: i guess you thought that the comparison against the truncated float is the conversion part
17:48:51
stassats
i see about ten different optimization opportunities for ><, need to not lose track of them
17:50:57
stylewarning
I was going to try to write optimizers then lost interest when I found it was 10 layers deep in SBCL
17:52:55
stassats
can't really inline (< ratio float) into anything sensible, but can make it faster than (< ratio (rational float))
21:12:50
stassats
and it should stop converting things that aren't handled by generic-* to generic-*
21:16:01
no-defun-allowed
Although, in my transform, I should probably just inline the (bignum bignum) branch of two-arg-* if I've concluded we have two bignum arguments instead of calling generic-* again.
21:16:55
no-defun-allowed
...or should something rewrite the comparator with two bignum arguments to that case?
21:20:37
no-defun-allowed
I only have one "real world test" for integer-bignum comparisons, so I'm not sure of that.
21:26:22
no-defun-allowed
How awful would inlining two-arg-* and having the results of type inference remove the unnecessary clauses be?
21:28:52
no-defun-allowed
That seems like the most generic solution to me, but arguably the most horrid.
22:02:54
stassats
throw onto the pile of things to do once there's a way to delay transforms until the very end
22:13:26
stassats
that additional transform stage, it will either be stupid or slow things down by doing more passes
22:14:09
stassats
well, typechecks perform more passes, but i got it to be restricted to the newly generated code