Alright, so we've talked about the issues with the data structure used by the standard library. And that's most of the reason for the slowness in instantiating date objects.
In many cases, the algorithms that the standard library uses and the ones used by home_run are pretty much the same, though home_run implements them in C.
There are a few problematic algorithms used in the standard library, though. Most of them have to do with converting to and from strings.