Timestamps are proving to be troublesome. Some background:

RETRO runs on a 32-bit VM; this provides direct addressing
and use of only signed 32-bit values. As such, a current Unix
timestamp fits. But this becomes a problem after 2038, when
the value will overflow the signed range, making the value
negative.

Some options:

- split a 64-bit value and return as two cells
- choose a new starting date for the timestamp
- return the number of seconds and a counter, resetting
 when the overflow occurs, and incrementing the counter
 each time this occurs.
- return two values: a starting year and the number of
 seconds since January 1 of that year
- don't worry about it - will RETRO12 still be in use in
 2038?

I personally use the timestamp functionality only for a
single application, a web request log, which is enabled
while doing debugging of the application. But I can see
cases where, especially for embedded tasks, this might
become a problem.

The first option would be pretty much future proof, but
has a big drawback: RETRO has no words for dealing with
values that take more than a single cell. I have no plans
to introduce double cell words to RETRO, so doing this
may not be particularly useful.

The second option just kicks the problem down the road.

The third would work, but is somewhat inelegant and
would have some drift (since the initial rollover occurs
in early 2039, after the reset, 0 isn't January 1, so
the meaning of the counter would be more difficult to
track over time)

The fourth would solve things and allow more control; I
could maintain the use of the Unix epoch until the
end of 2038, at which point I'd choose a new epoch and
restart the timestamps relative to that. For logs, I'd
just include both the starting year and the actual stamp,
then do any needed calculations based on those values.
This would lose compatibility with Unix timestamps after
2038 though.

The easiest option is to do nothing, but: I do have plans
for using RETRO on embedded systems for data collection;
having a timestamp would be useful here, though I don't
need it to be a Unix timestamp for this purpose.

There is a final option: switch to 64-bit cells. I've held
off doing this as I don't often need a bigger numeric range
than 32-bits provide and the 64-bit image wastes a lot of
memory on strings. But it would let modern Unix timestamps
continue to work for much longer than I need to worry about.