Should time! values be restricted in number of digits and signs? REBOL allows integer values for hours and minutes, which is converts to sexagecimal values. Minutes can be negative, as can hours of course, but second can't. Negative minutes are subtracted from hours. Also, if you only specify two segments, they are HH:MM if both ints, but if the second is a decimal, it becomes MM.SS.s. And scientific notation is not supported for seconds, nor are decimals for hours or minutes.
The main thing for Ren is that values need to be unambiguous. But what other limitations should be imposed? And should similar rules apply to other segmented numbers (tuple and pair/point)?
For data exchanges purposes, I think you can stick to a more restricted format for time! than the one allowed by Rebol at runtime, like HH:MM:SS.s and only positive values.
That was my original thought as well, and what Ren specs today, with negative hours allowed. That implies that the entire time is negative, which I use today. Consider time ranges. e.g., a target time +/- N minutes. I think we can live without mixed sign time values. Mixed sign values aren't intuitive, though their results make sense if you think about them.
On the number of digits, if we limit it to HH:MM:SS.s, do we also say the values have to be valid sexagecimal (00-59)? It complicates the grammar just a bit, and does it provide value over allowing any integer value in a segment?
I am for sexagecimal values in Ren, as Ren is about representating data, not carrying on computations which could benefit from some extended format for temporary time representations (like negative values).
OK. Let's see if anyone else has an opinion.
We'll make a decision in T minus 0:0:5..0:0:4..0:0:3..
I agree with limited specs.
One of the other nice things about limiting it is that we can later loosen the restrictions if a strong argument can be made to do so.
If you want to have a wide support for Ren in non-Rebol languages, the smaller the specification, the easier to support it.
Agreed, but more limiting, in this case, doesn't mean a smaller spec.
i.e., having to specify sexagesimal rules.
What about leap seconds (23:59:60)?
Again, it could be extended later.
I wouldn't allow it either. Only stricly valid time values.
I vote for later. When someone is going to use Ren for running an atomclock, we can extend the specs ;)
I think it would be useful to allow milliseconds, and possibly microseconds. The use cases I see are sharing profiling information, debugging information and logs (of high volume systems) via REN.
Hours should be allowed to be more than 23, right? It's not just for clock time values, but also for how much time until some event.
Sure I work 40 hours a week, 180 in 4 weeks about 190 a month.. Our project is 200 hours estimated. Etcetera and so on.