On Thu, 16 Sep 2010 17:39:19 -0500, Sean Kelly <[email protected]> wrote:

There are a bunch of routines in druntime that could really use a structured timespan representation (Boost actually even uses a full SystemTime class for most of these) and I'm trying to work out the best way to do this. In Tango, the decision was to have the routines all accept a long value that is the same resolution as the tick count from TimeSpan, which is why everything currently works as it does. I've always hated this and would love to do something more structured, but complications arise from possible redundancy or incompatibility with std.time. What I've done for now is duplicate Boost's time_duration struct (as TimeDuration) into core.time, and I'm looking at using this for Thread.sleep(), etc. Thoughts?

Sean.

I've been porting the Boost date_time library to D. But I have been busy these last weeks and it's on hold. In essence, is finished, but I need to add unit test and more documentation, specially to the time module. The library is huge: I had to use three modules (core.d, date.d and time.d). In the time.d module is the TimeDuration struct. But right now, as I did an almost straight port, is somewhat inefficient (at least to use it as a measure element for the runtime), for two reasons:

1. The resolution is in nanoseconds, meaning that the operations to calculate the times uses big numbers 2. Internally, it uses a special struct to emulate (+/-) infinity and NAD (not a date) so most of the time operations are delegated to this struct.

Maybe you can take something from these modules, instead of reimplement it, and just adapt it or refactor it to make it more efficient. Here's the code:
http://bitbucket.org/gomez/yao-library/src/tip/src/yao/datetime/core.d
http://bitbucket.org/gomez/yao-library/src/tip/src/yao/datetime/date.d
http://bitbucket.org/gomez/yao-library/src/tip/src/yao/datetime/time.d

And some (incomplete) documentation in pretty looking html:
http://d.yao.com.mx/datetime/core.html
http://d.yao.com.mx/datetime/date.html
http://d.yao.com.mx/datetime/time.html

The documentation of TimeDuration:
http://d.yao.com.mx/datetime/time.html#TimeDuration

--
Yao G.
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to