• RIP ICQ (Jun 2024), Skype (May 2025), FidoNet (Jan 2038)

    From Nil A@2:5015/46 to Stas Mishchenkov on Tue Apr 1 20:00:40 2025
    * Originally in ru.fidonet.today
    * Crossposted in ru.ftn.develop
    Hello, Stas!

    Tuesday April 01 2025 12:20, from Stas Mishchenkov -> Nil A:

    P.S. Кто-нибудь хоть попробовал переставить дату на 2038 год,
    чтобы проверить совместимость с 32-битным time_t?
    И что я должен увидеть? Кривой @msgid в мессаге?

    ет. Проблему в дате. Она перевернётся на 1901 год на некоторых
    базах и редакторах.

    В ДЖАМе date created - unsigned long. у, да. 32 бита и всё.

    Если следовать JAM spec, и использовать беззнаковое число, то проблема откладывается до 7го февраля 2106 года. Дожить сложно до этой даты, так что пофиг.
    Проблема в том, что использовать time_t как uint32_t - это не стандартно, и всякие LIBC функции mtime, localtime, ctime, т.д. работают как со знаковым числом.
    Очень старый софт, который собран с time_t 32bit скорее всего накосячит. Если современная сборка, то uint32_t надо кастить до современного time_t, т.е. int64_t, и тогда localtime и ctime будут работать корректно.

    Squish использует DOS формат даты (когда секунды только чётные могут быть), и там дата заканчивается в 2107 году. Ура, ДОС живее всех живых!

    Msg и .pkt формат основан на 20-байтной строке, типа "01 Jan 86 02:34:56", и если оно уже работает в 2000ом году, то и дальше будет работать.
    Как обошли проблему y2k тогда? апример, код в хаске, от текущей даты плюс/минус окно в 50 лет.

    /* Use sliding window technique to interprete the year number */
    while(yy <= tim->tm_year - 50)
    {
    yy += 100;
    }

    while(yy > tim->tm_year + 50)
    {
    yy -= 100;
    }

    Binkp протокол ещё гляну. Тут всё хорошо - date_time format is described in [RFC822].

    Я так понимаю, будет очередной костыль - if $date < '1984' или что-то
    в этом духе, который потом опять сломается и будет заменён на другой
    такой же.

    Ох уж эти ваши костыли. Изобретут новый клудж ;-)

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5-b20240306
    * Origin: ChatGPT can make mistakes. Check important info. (2:5015/46)