Nп/п : 4 из 28
От : 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 67ec23da
@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: 50/109 104/117 221/6 240/1120 301/1 341/66
451/31 452/28 166 455/19
SEEN-BY: 463/68 4500/1 5000/111 5001/100 5015/42 46
120 255 5019/40 400
SEEN-BY: 5020/101 113 545 715 828 830 846 848
1042 2992 4441 12000 5022/128
SEEN-BY: 5030/49 115 1081 1474 5053/51 55 5054/89
5058/104 5060/900 5061/133
SEEN-BY: 5066/18 5068/45 5083/1 444 6090/1
@PATH: 5015/46 5020/1042 4441