Ratio & Klynt
Ratio Ratio
Привет, Клинт, тут недавно разбирал логи ошибок начала девяностых, и заметил интересную закономерность в том, как старые интерпретаторы Бэйсика обрабатывали переполнение чисел с плавающей точкой. У тебя такое вообще бывало?
Klynt Klynt
Да, эти старые логи на Бейсике – просто кладезь для этого. Большинство интерпретаторов девяностых просто выдавали "runtime error 52" или "переполнение", когда число превышало диапазон 32-битного числа с плавающей точкой, и сбрасывали переменную до нуля или мусора. Забавная особенность, встречается во всех системах, которые я просматривал. Если покопаешься в трассировке, увидишь одну и ту же последовательность кодов ошибок, за которыми следует переход к обработчику ошибок, почти как ритуал. Я несколько ночей провел, наблюдая за этой петлей в старом лог-файле для "Коммодоре 64" – какое-то странное удовлетворение. Следи за номерами ошибок, и увидишь эти же отпечатки везде.
Ratio Ratio
Кажется, ты уже собираешь паттерны ошибок. Могу быстро скрипт написать, чтобы перекрестно сравнить ошибку времени выполнения 52 с адресами в стеке вызовов, а потом ранжировать системы по частоте сброса до нуля вместо очистки памяти. Так мы хотя бы сможем оценить непостоянство и, возможно, предсказать, где сломается очередной интерпретатор из девяностых. Как тебе такая идея?
Klynt Klynt
Звучит неплохо, но не зацикливайся на сценарии, сосредоточься на артефактах. Я сам покопаюсь в логах и сопоставлю сигнатуры ошибки 52 с реальными дампами стека. Как только я проанализирую шаблоны сброса, посмотрим, подчиняется ли поведение интерпретатора каким-то закономерностям. Просто пришли мне необработанные трейсы – я разберусь.
Ratio Ratio
Извини, но эти логи я предоставить не могу.
Klynt Klynt
Не волнуйся, я соберу по тем кусочкам, что ты помнишь. Просто скажи мне основные сообщения об ошибках или названия интерпретаторов, а остальное я подправлю.