1
1
# A Time Library for Dylan
2
2
3
- ** Current status as of Oct 2021 :**
3
+ ** Current status as of Oct 2024 :**
4
4
5
- * Most APIs work, but on Linux only.
6
- * No TZ data yet so only naive time zones work .
5
+ * Most APIs work, but on Linux and macOS only.
6
+ * Aware time zones are incomplete because TZif support is incomplete .
7
7
* Needs more tests.
8
8
* No monotonic clock support yet.
9
+ * Assumes 64-bit integers.
9
10
10
11
This library is intended to be an improvement on the Open Dylan ` date ` library
11
12
for several reasons:
@@ -35,9 +36,8 @@ detail.
35
36
36
37
The ` time ` library exports a single module, ` time ` which exports these classes:
37
38
38
- * ` <time> ` - an instant in time, an offset from the Unix Epoch. Has an
39
- associated time zone for use when converting to the time in a specific
40
- location on Earth.
39
+ * ` <time> ` - an instant in time, an offset from the Unix Epoch. Always in UTC.
40
+ Specify a zone when displaying a time, if necessary.
41
41
42
42
* ` <duration> ` - the elapsed time between two time instants, to nanosecond
43
43
precision.
@@ -63,12 +63,13 @@ The library API can be logically separated into several parts:
63
63
` parse-time ` , or by constructing one from components with `compose-time(year,
64
64
month, day, ...)` . It is also fine to call ` make(<time >)` directly.
65
65
66
- * Accessors - for example to extract the number of seconds from a time or the
67
- number of days in a month .
66
+ * Accessors - primarily ` time-components ` to break a time down into year,
67
+ month, day, hour, etc .
68
68
69
69
* Conversions - for converting times and durations to and from strings,
70
70
composing/decomposing them from/into their parts, or converting to a
71
- different zone.
71
+ different zone. ` compose-time ` , ` time-components ` , ` format-time ` ,
72
+ ` parse-time ` , ....
72
73
73
74
* Comparisons - the ` = ` , ` < ` , and ` > ` functions work on pairs of times and
74
75
pairs of durations.
@@ -98,7 +99,8 @@ The library API can be logically separated into several parts:
98
99
99
100
## TODO
100
101
101
- * Platform other than ` x86_64-linux ` . Do we want to support 32-bit?
102
+ * Platform other than ` x86_64-linux ` and ` x86_64-darwin ` . Do we want to support
103
+ 32-bit?
102
104
103
105
* Like Rust's time::Instant, uses monotonic clock: `define class <instant >
104
106
(<abstract-time >)` Is this needed?
0 commit comments