Geographic
Resources
Analysis
Support
System
Year 2000 Compliance Statement
We have run Sun Microsystems Year 2000 compliance software on GRASS and have found
no programs that should be affected. GRASS libraries also should not be affected.
However, you may need to watch out for January 19, 2038 if your UNIX isn't fixed by then.
GRASS has one library routine, G_date, which fetches an ascii representation of the date from
the system, using standard C library calls which return a date that looks like this on my system:
Thu Dec 17 00:00:00 1998
Notice that the date includes the century, and while internally some systems store the year as
"years since 1900", an integer is used rather than two chars, so there is no "99" limit; the
system adds 1900 when reporting it via the C function "asctime". Years after 1999 will therefore
be correctly represented. GRASS uses this routine to record the creation date in header or
history files. No programs do temporal analysis where the date is used to derive a
difference - the dates used are for metadata purposes only.
Internally, the C functions in most UNIX systems use a long integer to represent seconds since
1/1/70 to calculate the current date, thus the potential problem on January 19, 2038 at about
3:14:07 AM, when 32 bit overflow would occur. But some systems provide a type "time_t"
(which is still usually defined as a long int, but could easily be changed when necessary). If you
have such a system, you can prepare your GRASS code for the year 2038 by changing the word
"long" on line 16 of src/libes/gis/date.c to the word "time_t" and recompile. This change would
also need to be made to the files src/mapdev/v.to.rast/clock.c and src/mapdev/diglib/clock.c.
Of course, any program is (at best) only as robust as the operating system under which it runs,
so if the year 2000 causes your computer to write files backwards, GRASS will be adversely
affected.
ADDRESS
GRASS Development Team
Center for Applied Geographic and Spatial Research
Baylor University
P.O. Box 97351
Waco, Texas 76798-7351