Gary Burgess
Gary Burgess
Good stuff :)
I had no luck with getting an OS that dtrace works on to run, but I'm trying something else now which will hopefully let us profile.
One thing that might be worth reviewing is if we have things left in the code that are being evaluated unnecessarily due to strict evaluation. One example of this is...
After doing that stuff with `isNullaryConstructor` in codegen the other day it occurred to me that I could probably hack `newtype`s in during codegen (applying to any data constructor that...
Yeah, agreed. That way, as with Haskell, you know for sure they are inlined too as using `newtype` can enforce the one-argument-one-constructor rule. My above comment was more just saying...
Looks like there's a way to get dtrace equivalent info out of Node on Linux now: http://www.brendangregg.com/blog/2014-09-17/node-flame-graphs-on-linux.html Should be helpful when looking at performance again!
Ooh, nice find. One of the reasons I didn't do it, is I didn't have a handy reference of the rules. That looks like a great resource! Perhaps we should...
I think converting to a `Number`-based representation is fine - the constructors are all private just now as it is, as they preserve invariants to stop nonsensical dates like `2020-02-31`....
It could be breaking in a good way, we might be able to remove some of the annoying need to construct-via-`Enum` that exists for some things just now because the...
Until we have default member implementations we don't want to do this, as implementing 20+ functions rather than 2 or 3 is a little unreasonable for instance-writers to be expected...