std.datetime is too big
Somedude
lovelydear at mailmetrash.com
Sun Nov 6 01:00:30 PST 2011
Le 06/11/2011 02:35, Jonathan M Davis a écrit :
> On Sunday, November 06, 2011 00:22:19 Somedude wrote:
>> Le 05/11/2011 19:33, Jonathan M Davis a écrit :
>>> ...
>>> - Jonathan M Davis
>>
>> Thank you for your comprehensive response. It's very appreciated.
>> I am also interested in knowing why splitting the module was dropped.
>
> In general, Phobos doesn't do submodules. It's a fllat hierarchy. We've changed
> that some recently in a few cases, but it's still mostly true. When
> std.datetime was introduced, it was decided that there was no need to split it
> up. It worked just fine as a single module. Splitting it into several sub-
> modules would have complicated things and went against how Phobos has
> generally been organized.
>
> Any further discussions on splitting it up have come pretty much to the same
> conclusion with the addition that changing it now would break code, and the
> change just isn't worth it.
OK. I agree that a flat hierarchy is generally better than a nested one,
although 2 levels is still not too bad (provided that std is the root).
> Beyond that though, I'd have to go digging through the archives to find what
> all of the specific reasons for not splitting it up were.
>
>> As I said, it would make things a bit clearer, especially since the
>> sources embark the unit tests.
>> And a Ddoc page that spans a hundred screens long strikes me as unsound.
>
> There would be just as much documentation if it were split up. The main
> problem IMHO is the fact that there is not a good way to navigate it (i.e. a
> proper set of links at the top that represent the hiearachy). So, instead of
> being able to easily hop to the type or function that you care about, you have
> to scroll or search for what you want. It becomes much harder to get an
> overview of the module. Proper links would go a _long_ way to fixing the
> problem. But until ddoc is improved, I can't do that. No one who has said that
> they were going to look into or work on the issue has actually gotten far
> enough to submit any fixes AFAIK.
I understand and I agree.
>>> Splitting of the time zones could be done, but I don't know why
>>> anyone would ever use them without SysTime, so I don't see much point in
>>> putting them in another module.
>>
>> I agree time zones without Systime is unlikely, but is it possible to
>> use Systime without time zones, say for file timestamp for example ?
>
> SysTime has member which is a timezone. Its design requires a TimeZone. It
> maintains its time internally in UTC (hecto-nanoseconds since midnight January
> 1st, 1 A.D. to be precise), and it converts that value to whatever the
> appropriate time zone is based on its timezone property. It avoids problems
> with DST that way. That's a core part of the design.
>
> As for file timestamps, IMHO it would be very bad to have them without a
> timezone, unless they were just naked UTC. But inevitably, that leads to
> people trying to "adjust" that integral value to the local time or whatever
> time zone they want instead of leaving the time in UTC at all times (aside
> from when converting it to a string or asking for its year or whatnot). C does
> it that way, and it causes a number of problems. SysTime encapsulates it so
> that you don't have to worry about it. The time is always in UTC, and if you
> want to know the value in your local time zone, you ask it, and it uses its
> TimeZone to convert it to the appropriate value. Its internal time is never
> converted, so it avoids conversion errors.
>
> - Jonathan M Davis
Thank you for your explanation.
Dude
More information about the Digitalmars-d
mailing list