On 10 feb 2011, at 10:49, Lars Tandle Kyllingstad wrote: > On Wed, 2011-02-09 at 21:54 -0800, Jonathan M Davis wrote: >> Okay. On the whole, I'm fine with std.datetime being one, large module. It >> works >> fine from a maintenance standpoint, and while some people have complained >> about >> the large number of unit tests getting in the way of finding stuff in the >> file, I >> find that having the unit tests right next to the functions like that to >> really >> help with maintenance. >> >> I do have one concern however. As there's a fair bit of functionality in >> there, >> there's a lot of documentation, and I'm afraid that the documentation may be >> a >> bit overwhelming to someone trying to figure out how to use std.datetime. On >> the >> whole, everything in there is quite easy to use, but there's a lot of it. >> >> So, what I'm wondering is if it would be worthwhile to split out the >> interval >> and range stuff into a separate module. That wouldn't hugely reduce the size >> of >> the module, but it _would_ make the documentation more manageable. It also >> has >> the nice side effect that the three main date/time concepts would then be in >> three separate modules. The duration types were already split into >> core.time, >> because Sean needed a duration type for some stuff in druntime. The time >> points >> would stay in std.datetime. And the time intervals would then be in >> std.timeinterval (or whatever we wanted to call it). The documentation would >> therefore be more easily digestible. Also, if and when I get around to >> coming up >> with more date/time functionality, the main area that I'd likely be putting >> it >> would be in the intervals and ranges (in particular, at some point, I'd like >> to >> create functionality to handle date recurrence patterns), so the bulk of the >> new >> stuff would end up in the smaller of the two time-related modules in Phobos, >> thereby evening out their size a bit. >> >> Again, I don't really have a problem with std.datetime being as big as it is >> (though some people do), but I _am_ concerned that the documentation is >> going to >> be a bit hard to digest for newcomers. It's not complicated, but there's a >> lot >> of it. So, I'm thinking that there would be some value in create >> std.timeinterval for the date/time interval and range functionality, thereby >> reducing the size of std.datetime and making it easier for newcomers to >> digest. >> It will also make it easier to find the interval and range-related >> functionality >> if that's what you're looking for. >> >> So, what are everyone else's thoughts on this? Andrei and Walter favored >> std.datetime being one giant module, and I don't exactly disagree, but I do >> think that splitting _some_ of its functionality out would make it more >> digestible, and I know that there are at least a few folks who think that >> std.datetime is just plain too large. > > I don't think std.datetime should be split. Keeping it in one file is > consistent with the way the other Phobos modules are organised. Rather, > the Phobos documentation as a whole (and possibly DDOC itself) should be > improved. > > If it were to be split, I think it would be better to split it into > std.calendar (Date, TimeOfDay, DateTime), and std.time (SysTime, > StopWatch). > > Note that I'm not saying I think Phobos' flat module hierarchy is the > best one. On the contrary, now that the library is getting so big, it > would probably be better to have it one level deeper > (std.algorithm.search, std.algorithm.sort, std.time.calendar, > std.time.systime, etc.), but I guess it's too late for that. >
I agree with this, we need to start to create packages and not just have a flat module hierarchy > -Lars > > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos -- /Jacob Carlborg _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
