cross-float: Intern the different number types separately.
commitd8943f6b7556ef04c7c2feea8d29b382a90db4b6
authorCharles Zhang <charleszhang99@yahoo.com>
Mon, 22 Apr 2024 23:45:51 +0000 (23 01:45 +0200)
committerCharles Zhang <charleszhang99@yahoo.com>
Tue, 23 Apr 2024 19:24:22 +0000 (23 21:24 +0200)
tree126ace2053d741e3a4149512026fcc6cd28dfb4e
parent193fc2ac14cff03f93a5769a375320fe40bd3fa2
cross-float: Intern the different number types separately.

We can avoid consing up extra keys every time we want to create a
float this way. And delete MAKE-FLONUM constructor, as we can replace
it with our standard float constructors.

Also canonicalize (SB-XC:COMPLEX rational 0) = rational, as specified.
src/code/cross-early.lisp
src/code/cross-float.lisp
src/compiler/generic/genesis.lisp