[phobos] Split std.datetime in two?
Andrei Alexandrescu
andrei at erdani.com
Thu Feb 10 14:19:00 PST 2011
On 2/10/11 9:50 AM, Steve Schveighoffer wrote:
> ----- Original Message -----
>> From:Andrei Alexandrescu<andrei at erdani.com>
>> std.datetime has 34219 lines, which accounts for over 26% of the entire Phobos
>> size. If Jonathan will (as he promised, I didn't forget :o)) fix line sizes
>> to conform to 80 columns, then std.datetime will become 40961 lines, or straight
>> 30% of Phobos.
>>
>> (This might have to do with the increase of "hello, world" that was
>> noted by some people on the compiler list.)
>
> I don't think so, but I cannot be sure. I'd say a full 75-90% of
> std.datetime is unit tests or documentation. That shouldn't increase
> the size of the lib, and certainly not by as much as it does.
It increases the size of the source that someone looking at the library
must navigate and absorb.
In case I wasn't clear: my concern is source size. I am now sorry I
mentioned library size, and twice so because I didn't verify the hypothesis.
It is difficult to believe that a library needs that much unittests in
terms of sheer size. The more I browse through std.datetime, the more
firmly my hair is standing up on my head. It's most all large
hand-unrolled loops. I am now sorry I voted for the library without
having raised a flag at this very serious problem. I didn't realize its
size back then.
>> I understand there are factors that contribute to that: date and time
>> manipulation is a bulky endeavor, there's a ton of unittests, and
>> there's a lot of documentation. But at a level I find it difficult to digest
>> the fact that in sheer numbers date and time manipulation accounts for 30% of
>> Phobos. As a comparison point, std.algorithm does arguably a lot of work, has
>> adequate documentation, and has unittest coverage at 95%, yet does all that in a
>> "measly" 8027 lines.
> Lines of file does not mean % of a library, especially when a large
> portion of it is not compiled. I think we need to stop this
> prejudice against uncompiled LOC. I fully support having unit tests
> next to the code being tested, it's the whole point of the builtin
> unit test system in D.
I am sorry, I disagree with discounting LOC. LOC is LOC. Compiled or
uncompiled it is intellectual overhead. We need to write good code, code
that we provide as living examples on how to write quality programs.
Good code is not unrolled loops. Well, except sometimes :o).
> Bottom line, the doc generator should do a better job of generating
> documentation, so we don't *have* to open the file, and if
> std.datetime is adding too much binary to the exe, we should fix
> whatever problems dmd is likely having there.
I agree.
Andrei
More information about the phobos
mailing list