?

Log in

No account? Create an account

Как восхитить наладчика - Общество дровосеков Бердичева по изучению Мишны

Feb. 3rd, 2015

02:06 pm - Как восхитить наладчика

Previous Entry Share Next Entry

Вчера я по почте объяснял наладчику (field application engineer), почему наш компилятор-синтезатор моделей цифровой аппаратуры по умолчанию ведет себя определенным образом, а с установленной опцией — другим по причине срезания некоторых углов в деталях реализуемого языка с целью ускорения. Я написал примерно так:

Так как [деталь языка] по умолчанию не поддерживается, компилятор сообщает об ошибке, если встречает использование этой детали (а не просто игнорирует ее -- S.), чтобы обратить внимание пользователя на это.

Использование опции означает: "Дорогой [компилятор], я понимаю, что полная семантика [детали языка] не поддерживается, но, возможно, она мне и не нужна; пожалуйста(b0p0h0k: ты понял, что я в этот момент вспомнил?), попробуй, как сумеешь, сделать преобразование, пусть и с некоторой потерей семантики, в то, что ты можешь синтезировать, а я потом проверю, получилось ли у тебя то, что я хотел".


Наладчик пришел в полный восторг и сказал, что меня нужно отрядить писать все сообщения о предупреждениях и ошибках, а я всего лишь хотел съязвить.

Tags:

Comments:

[User Picture]
From:sab123
Date:February 3rd, 2015 10:30 pm (UTC)
(Link)
Он прав. Это очень хорошее сообщение об ошибке. Проблемы начинаются, когда сообщения (и вообще любую документацию) начинают писать формальным языком.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:February 3rd, 2015 10:37 pm (UTC)
(Link)
Это было бы не сообщение об ошибке, а описание смысла опции, но я попытался представить себе, как gcc --help выдавал бы что-то подобное, и не смог.
(Reply) (Parent) (Thread)
[User Picture]
From:sab123
Date:February 3rd, 2015 10:57 pm (UTC)
(Link)
Почему нет?
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:archaicos
Date:February 4th, 2015 06:33 am (UTC)
(Link)
Неформальным уже пробовали. С переменным успехом:
comp.compilers: Error-handling if your compiler had an attitude.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:February 4th, 2015 06:43 am (UTC)
(Link)
Один известный мне компилятор, склонный диагностировать массу наведенных ошибок, в конце компиляции сообщал "In X lines Y errors". Когда количество ошибок превышало количество строк, это напоминало анекдот про 4 ошибки в слове "ещё".
(Reply) (Parent) (Thread)
[User Picture]
From:sab123
Date:February 4th, 2015 08:15 pm (UTC)
(Link)
Ну все-таки не надо путать нормальное неформальное описание (т.е. такое, где не "все должно быть в третьем числе и использовать научные слова") с приколизмами.

Ну вот чтобы прочувствовать разницу, могу привести в пример юниксный и виндовсный API. В виндовсе все системные вызовы названы исключительно формально (и пауэршелл - еще более отдельная история), в юниксе - неформально. Одна только история о том, какую попаболь вызывал вызов kill() у IBM когда она таки решилась делать AIX, чего стоят. Но приколизмов в юниксе нет.
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:i_eron
Date:February 3rd, 2015 10:36 pm (UTC)
(Link)
Нельзя язвить на работе! Для этого есть ЖЖ.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:February 3rd, 2015 10:37 pm (UTC)
(Link)
Раз оказывается, что я не съязвил, то можно. :)
(Reply) (Parent) (Thread)
[User Picture]
From:i_eron
Date:February 3rd, 2015 10:44 pm (UTC)
(Link)
Если поймут правильно - могут обидеться. Если неправильно - могут, например, "отрядить писать все сообщения о предупреждениях и ошибках". Но может и повезти, конечно.
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:fatoff
Date:February 4th, 2015 01:26 am (UTC)
(Link)
Dear compiler, on behalf of our company I am very glad to clarify for your convenience...

А приведи точный текст. Может тогда станет яснее, это сарказм, или вдруг им стало понятно.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:February 4th, 2015 01:38 am (UTC)
(Link)
Ровно то же, что по-русски:

As it is not supported, by default synthesis will fail if a MOS/RMOS gate is encountered to alert the user to that fact.

Setting the ConvertMOS attribute to true means "Dear [compiler], I understand that full MOS/RMOS semantics is not supported, but maybe I don't really need it; please try *converting* it as best you currently can, potentially losing some semantics, into something you can synthesize; I'll check if it works as I expect".
(Reply) (Parent) (Thread)
[User Picture]
From:fatoff
Date:February 4th, 2015 03:54 am (UTC)
(Link)
And the word 'maybe' in docs is a sign of a good literature. As well as 'dear'. :)
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:iime
Date:February 4th, 2015 10:10 pm (UTC)
(Link)
Да, жестковато.
Может быть, это было не первое письмо)
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:real_big_shish
Date:February 4th, 2015 09:23 am (UTC)
(Link)
За такое world wide респект от нас, наладчиков !
(Reply) (Thread)
[User Picture]
From:spamsink
Date:February 4th, 2015 08:22 pm (UTC)
(Link)
Спасибо, но оно само получилось.
(Reply) (Parent) (Thread)