[racket-dev] TR's optimizer eventually going to unbox structs?

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sat Aug 18 14:47:23 EDT 2012

But don't you need the 'tag' from the struct to distinguish .4 in p from .4 in 1-p? They may be the same number but they denote distinct ideas. -- Matthias
'


On Aug 18, 2012, at 2:40 PM, Neil Toronto wrote:

> Is TR's optimizer eventually going to unbox structs in the same way it unboxes rectangular flonums?
> 
> I have a design choice right now: how to represent probabilities. Floats are good because of their speed, but because of floating-point limitations, *four different representations* are typically used. (For the curious: p, 1-p, log(p), and log(1-p).) I'd like to make functions that accept any one of these representations, denoted by this type:
> 
>  (define-type Probability
>    (U probability 1-probability log-probability log-1-probability))
> 
> The types are simply struct types that tag Float.
> 
> Of course, manually boxing flonums ruins any chance of the compiler emitting code that keeps the flonums unboxed. If TR's optimizer unboxed structs, though, everything could be speedy.
> 
> FWIW, by "eventually," I mean "within the next n years", where "n" is a smallish number.
> 
> Neil ⊥
> _________________________
> Racket Developers list:
> http://lists.racket-lang.org/dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4373 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20120818/a7c62f9f/attachment.p7s>

Posted on the dev mailing list.