[07:38:41] <Kemet> vlad2: ну может это аппаратные исключения. а может оно не трапается вовсе. у вирта же как - вот вводим мы идентификатор агромадной длины, а в Виртовском сканере это пох, прочитает 31 символ, а остальное пропустит )))
[07:39:57] <Kemet> ну то есть это может и не ошибка, я раньше часто в старих компиляторах такое видел - идентификаторы произвольной длины, но значащих символов столько-то
[09:34:07] <valexey> Kemet: справедливости ради, вот тут есть ассерты: https://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources/Kernel.Mod.txt
[09:34:23] <valexey> 8 чтук
[09:34:53] <valexey> и тут: https://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources/FileDir.Mod.txt
[09:36:07] <valexey> тут: https://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources/Math.Mod.txt
[09:39:23] <valexey> хотя, кажется, не очень хорошо, если программа упадет если ты случайно отрицательное число в sqrt передашь
[11:31:36] <Kemet> valexey: хз, может я эти файлы не вытянул из прожекта
[11:41:03] <Kemet> но, судя по всему, никто на коре прожект не смотрел
[11:56:30] <Kemet> valexey: но эти трапы иногда задалбывают - я счас полчаса думал, почему в а2 компайлер трапается, пока методом исключения кода путем комментирования не оставил одну строчку где приводится беззнаковое к longreal - не реализована такая конверсия, блин. и никаких вразумительных сообщений
[11:58:47] <Kemet> ну когда одна процедура из одной строчки осталась всё понятно стало, а до этого полную чушь выдавало, но тут еще может сыграло что Феликс новый рефлекшн пилит и не до конца где то склеил :
[12:01:44] <Kemet> ещё и жабер глючит
[12:40:47] <_valexey_> Kemet: это ж получается как пошаговая отладка, только медленнее!
[12:48:22] <Kemet> ыыы, паубывал бы усих
[12:49:54] <Kemet> причем семантикчекер это пропускает и только уже в бакенде рушится
[12:50:47] <Kemet> ну так то понятно, просто у феликса руки не дошли доделать, тем более вряд ли ему беззнаковые так сильно нужны
[13:45:06] <_valexey_> Ну, вопрос не в готовности, а в общем подходе обработки и поиска ошибок.
[13:45:24] <_valexey_> Был бы полноценный стектрейс - нашел бы сразу.
[15:10:26] <Kemet> _valexey_: стектрейс там нормально работает, но там же не видно где ошибка в исходнике ) это не задача стектрейса
[15:11:34] <_valexey_> Kemet: странный стектрейс. Обычно там инфа с точностью до строки кода, при наличии дебажных символов конечно.
[15:12:06] <_valexey_> Ну или просто корка к которой если подцепить дебажные символы, то опять все видно.
[15:12:34] <Kemet> так я вижу где компилятор грохнулся, но я не знаю почему , на какой строчке исходника это произошло
[15:13:13] <_valexey_> Дык с точностью до строчки видно же обычно
[15:13:22] <_valexey_> В тех же корках плюсов например
[15:14:13] <_valexey_> Точнее - с точностью до инструкции, а инструкция это, при наличии дебажных символов, автоматом в номер строки кода переводится
[15:14:43] <_valexey_> Ну и целиком состояние проги можно глянуть - что там в стеках, в регистрах, в хипе
[15:15:25] <_valexey_> А если говорить про стектрейс текстовый в консоль от исключения - то там тоже инфа с точностью до строки кода
[15:15:39] <_valexey_> Во всяких явах, голангах и проч
[15:19:54] <Kemet> ну так если бы компилятор грохнулся на этапе парсинга, то я бы увидеж по состоянию сканера номер строки и символа, но он трапнулся уже при генерации машинного кода в бакенде, а там я не вижу номеров строк
[15:19:57] <Kemet> или не знаю где искать ))
[15:27:09] <Kemet> но таки да, кое что там есть - имя текущей секции в кодогенераторе, которое совпадает с именем процедуры
[15:27:54] <Kemet> вернее он там в виде ИмяМодуля.ИмяТипа.ИмяМетода
[15:28:17] <TRUE> То есть, стектрейс есть, и он показывает место, где сложился компилятор, и показывает стек компилятора? Программы. А нужно узнать, где в компилируемом исходнике ошибка. Не в каком месте программы работа завершилась, а какой участок данных привёл к проблеме.
[15:31:29] <Kemet> ага
[15:35:13] <Kemet> и если бы это была прямая генерация кода как в виртовском простейшем компиляторе, то я там тоже бы что-тио увидел по стостоянию сканера, но здесьпримерно синтаксис, семантика, IR код, машкод
[15:37:11] <_valexey_> Оно друг на друга не ссылается?
[15:37:30] <_valexey_> Вроде в том же гцц в ir есть ссылки на исходник.
[15:38:16] <_valexey_> Но ваще это безобразие когда прога вместо диагностического сообщения тупо падает.
[15:38:22] <Kemet> где-то ссылается, но в трапе ir же не печатается
[15:38:47] <Kemet> это да - вирт-путь!
[15:39:15] <Kemet> http://paste.org.ru:2/?ltGarf
[15:39:29] <Kemet> вот трейс например
[15:51:38] <Kemet> и в этом трейсе у каждой процедуры указан PC и если в PETе я выберу FindPC он покажет в исходнике место где процедура трапнулась
[16:48:46] <Kemet> ещё мне не нравится, что компилятор не призводит проверку наличия RETURN result в процедуре возвращающей значение. С одной стороны наличие всех ретурнов проверить наверное невозможно, но хотя бы сам факт наличия проверяли
[16:58:58] <_valexey_> Kemet: возможно в принципе
[16:59:10] <_valexey_> Плюсовый то ругантся варнингом
[16:59:34] <_valexey_> В других языках - еггогом
[17:07:40] <Kemet> а тут ругается трапом )) в рантайме TRAP 3 [1] PL 3 3 RETURN missing
[17:09:37] <_valexey_> O_O
[17:09:45] <_valexey_> Это не гуманно
[17:14:35] <Kemet> ну оно там по люблму нужно - вдруг где забыли в нужном месте ретурн чтототам поставить
[17:19:10] <Kemet> что-то Феликс IR ассемблер не делает
[17:19:27] <Kemet> а оно там забавно
[17:19:47] <Kemet> http://paste.org.ru:2/?33UhDw
[17:19:51] <Kemet> като так