The real way to deal with time/date bugs forever is a 512-bit timestamp,
with a 144-bit subsecond part and a 368-bit second count. This provides
resolution on the order of 1 Planck time for over 10^100 years, which
should be sufficient for as long as computers will be needed, and to cover
all foreseeable technological improvements in clock precision [citation
needed].

On Tue, Nov 12, 2024, 09:50 tsiegel--- via Freedos-user <
freedos-user@lists.sourceforge.net> wrote:

> To solve the whole time/date problem, I never understood why they don't
> separate the two.  Time could then be a regular integer, since there's
> only 86,400 seconds in a day.  Then simply make the date the number of
> days (instead of number of seconds) from some arbitrary start date.
> This would solve the problem nicely, since even a regular 16-bit
> integer could hold a date up to 179 years from the arbitrary start date.
>
>
> On 11/12/2024 6:30 AM, Frantisek Rysanek via Freedos-user wrote:
> >> String "DOS" is absent from
> >> https://en.wikipedia.org/wiki/Year_2038_problem. Has anything been
> >> done or planned to deal with it in FreeDOS, or the legacy filesystems
> >> it supports?
> > The UNIX epoch time is originally a 32bit integer in seconds, since
> > 1.1.1970. Not defined to be signed, but often is.
> >
> > https://stackoverflow.com/questions/471248/what-is-time-t-ultimately-a
> > -typedef-to
> >
> > That permeates through all sorts of software in UNIX. But:
> > If any piece of software at hand is written "properly", i.e. using
> > strictly the type "time_t" in its source code (and doing any
> > manipulation in a safe way), then there's a good chance, that you're
> > safe on a 64bit platform by merely recompiling your binaries from
> > source - because the year 2038 has been known about since the dawn of
> > UNIX, definitely in the time sync community.
> >
> > You are possibly safe on a modern 32bit platform as well, because the
> > C type may be #defined with explicit length ("signed long int" vs.
> > "signed long long int") rather than just "int" (would make the length
> > automatically dependent on the target instruction set of your
> > compilation pass). It's really down to whoever built your "distro"
> > from source (kernel and libc) and how they defined time_t in the
> > respective header file.
> > Ahh this paragraph is just my fabulation. The stumbling stone here
> > is, that you need to keep compatibility between apps and system
> > libraries. For that, you can either define the length of time_t as
> > fixed/explicit (which might hamper portability of binaries), or I
> > could imagine a rule that the size of time_t shall follow the
> > instruction architecture of the "target platform of compilation",
> > making binaries portable in this respect...
> >
> > Allegedly, the year 2038 should only affect software at runtime. It
> > is proper practice to AVOID using the binary allocation size of
> > "time_t" (as defined locally) as part of time encoding in
> > communication protocols, storage formats and UI output.
> > So again, properly written software, including proper file systems,
> > should keep you safe against the Y2038 problem.
> >
> >
> > There is another Wikipedia entry though, where DOS *is* implied:
> >
> > https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs
> >
> > Apparently, some DOS-based "systems" are prone to a problem with the
> > year 2080, depending on the format of calendar YEAR as kept in the
> > RTC (two decimal digits since 1980). Not sure if this affects
> > FreeDOS, or is an internal matter of the BIOS brand and build, or
> > what.
> >
> > Next, the file timestamps in FAT are subject to a problem with year
> > 2108. Allegedly the calendar year is stored in FS metadata as an 8bit
> > signed integer i.e. 7 bits available, since 1980.
> >
> > => oh, 2080 and 2108.
> > What a pity.
> > I myself will have overflowed by then.
> >
> > Frank
> >
> >
> >
> > _______________________________________________
> > Freedos-user mailing list
> > Freedos-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/freedos-user
>
>
> _______________________________________________
> Freedos-user mailing list
> Freedos-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freedos-user
>
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to