Hi Alain,
that's actually a good question. The issue is whether the millisecond clock should start from zero or not. Clearly deriving it from the 64-bit microsecond clock is a win. It won't wrap (not for 50,000 years at least). But the current clock starts at 0 when the image starts up. If one were to continue to zero the millisecond clock on image startup won't overflow into large integers for 12.4 days, but it isn't really a clock. Personally my preference is to indeed implement millisecondClockValue as microsecondClockValue // 1000, and simply live with the fact that its always a large integer.