четверг, 18 июня 2015 г.

Микропаскаль сказал «Ой, всё!»


Успешно завалил компилятор микропаскаля 6.1.0 вот этим нехитрым кодом:
function DifADC_ConvertTempToLsb(InValue:word):dword;
implementation  
function DifADC_ConvertTempToLsb(InValue:word):word;
var
  x : dword;
begin
  x := Dword(InValue);
  x := x * Dword(90);
  x := x / Dword(109);
  x := x + Dword(291);
  result := Word(x);
end;
Как говорится, «ой всё!»: остановка с выдачей кода ошибки 102 без каких-либо пояснений и диагностики. При немалых размерах модуля, полезность такой информации весьма невелика.


Как я уже упоминал где-то ранее, не совсем ясен состав цены для продукта такой степени «безглючности». 

Сколько там еще этих «яиц Феберже» – страшно даже думать. На форуме поддержки сперва «лечили» ошибку, анализируя код и не видя разницу в объявлениях функций. Ткнул носом – очнулись спустя почти две недели и попросили проект в том виде. Увы, не фиксировал именно это состояние проекта.

Кстати, разработчики попутно заблокировали и дополнительные функциональные кнопки клавиатур (такие, как «Скопировать», «Вставить» и т.п.), что сильно огорчает. Извольте вспоминать «хоткеи» и «аппликатуры».

Попробовал откатиться с 6.1.0 на 6.0.0. А вот апдейта до 6.0.1 уже нет, то ли убрали с серверов, то ли что-то не так настроили. Ибо выкатили же это новое глюкало 6.1.0. Отписал об этом на форум... Вы уже поняли, что там было дальше :)

ps. Atmel Studio + Atmel ICE уже наготове, да. А пока что портирование с C на mP позволяет пощупать руками разницу.

Комментариев нет:

Отправить комментарий

Ваш комментарий откроется после проверки и подтверждения.
Благодарю за понимание необходимости проверки!