Nп/п : 97 из 100
От : Nil A 2:5015/46 01 апр 25 20:00:40
К : Stas Mishchenkov 01 апр 25 20:37:02
Тема : RIP ICQ (Jun 2024), Skype (May 2025), FidoNet (Jan 2038)
----------------------------------------------------------------------------------
@MSGID: 2:5015/46 67ec23d9
@REPLY: 2:460/5858 67ebb194
@CHRS: CP866 2
@TZUTC: 0300
@TID: hpt/lnx 1.9
* Originally in ru.fidonet.today
* Crossposted in ru.ftn.develop
Hello, Stas!
Tuesday April 01 2025 12:20, from Stas Mishchenkov -> Nil A:
NA>>>> P.S. Кто-нибудь хоть попробовал переставить дату на 2038 год,
NA>>>> чтобы проверить совместимость с 32-битным time_t?
SM>>> И что я должен увидеть? Кривой @msgid в мессаге?
NA>> ет. Проблему в дате. Она перевернётся на 1901 год на некоторых
NA>> базах и редакторах.
SM> В ДЖАМе 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].
SM> Я так понимаю, будет очередной костыль - if $date < `1984` или что-то
SM> в этом духе, который потом опять сломается и будет заменён на другой
SM> такой же.
Ох уж эти ваши костыли. Изобретут новый клудж ;-)
Best Regards, Nil
--- GoldED+/LNX 1.1.5-b20240306
* Origin: ChatGPT can make mistakes. Check important info. (2:5015/46)
SEEN-BY: 46/49 50/109 361 104/117 221/6 240/1120
301/1 341/66 450/1024 451/31
SEEN-BY: 452/28 455/19 460/58 463/68 5000/111
5001/100 5010/352 5015/42 46
SEEN-BY: 5015/120 255 5019/40 400 5020/113 329 545
715 828 830 846 848 1042
SEEN-BY: 5020/2992 4441 12000 5022/128 5030/49 115
1081 1474 1900 5053/51 55
SEEN-BY: 5053/58 5054/89 5058/104 5059/37 5060/900
5061/133 5068/45 5083/1
SEEN-BY: 5083/444 6078/80
@PATH: 5015/46 5020/1042 4441