Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2017.10.22;
Скачать: [xml.tar.bz2];

Вниз

FixInsight for Delphi   Найти похожие ветки 

 
Cobalt ©   (2015-05-25 13:05) [160]

> Дмитрий Белькевич ©   (20.05.15 12:36) [158]
>
> >Некрасиво, конечно, но если нормального способа не предусмотрено,  то ничего другого не остается.
>
> Я у себя делал специальный таймер TThreadTimer - работающий
> в параллельном потоке и вызывающий код в параллельном потоке,
>  добавил методы Start, Stop и Restart. Почему что-то такое
> не добавить в VCL/FMX? Неудобно же как есть.

Мне кажется, не стоит нагружать Embarcadero вещами, которые может сделать каждый программист. Они со своими-то не справляются. А им это ещё поддерживать для разных платформ...


 
q1w2e ©   (2015-05-26 14:09) [161]


> Kerk ©   (23.05.15 13:42) [159]
> Директивы компиляции в командной строке можно указывать
> с помощью параметра --defines
> А написано про это в документации :)

Ну конечно, я это пробовал. Легче не стало. Директивы компиляции по какой-то причине у меня игнорируются, происходит парсинг всего текста модуля.

Вот коротенький пример для иллюстрации:

{$I Definitions.inc}
unit Test;

{$IFNDEF TEST}
deprecated; // этот модуль предназначен только для тестовых сборок
{$ENDIF}

interface
implementation
end.


Содержимое Definitions.inc:

{$IFDEF TEST_1.DPR}
 {$DEFINE TEST}
{$ENDIF}


 
Kerk ©   (2015-05-26 14:52) [162]

Покажи что в командной строке пишешь.
А инклуды пока не поддерживаются, к сожалению.


 
q1w2e ©   (2015-05-26 15:53) [163]

Вообще-то ничего писать, по идее, не требуется в случае анализа проекта TEST_1.DPR, так как, во-первых, символ имени проекта определяется самим компилятором, и во-вторых, он присутствует в настроечных файлах проекта TEST_1.DOF и TEST_1.CFG.

Однако, эксперимента ради я могу указать и впрямую этот символ в параметрах командной строки:

FixInsightCL.exe --project=TEST_1.DPR --defines=TEST_1.DPR


Если, как Вы пишите,  включения не поддерживаются, то все равно работать, видимо, не будет.


 
q1w2e ©   (2015-05-26 15:59) [164]

При работе с командной строкой можно ли как-то ограничить множество выполняемых проверок, например, перечислив их в какой-нибудь секции настроечного файла (.ficfg ?)? Где об этом почитать?


 
q1w2e ©   (2015-06-01 16:18) [165]

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

type
 TValue = class
   constructor Create; overload;
   constructor Create(const AValue: Integer); overload;
   constructor Create(const AValue: string); overload;
 end;


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


 
Kerk ©   (2015-06-01 16:26) [166]


>  q1w2e ©   (26.05.15 15:59) [164]
>
> При работе с командной строкой можно ли как-то ограничить
> множество выполняемых проверок, например, перечислив их
> в какой-нибудь секции настроечного файла (.ficfg ?)? Где
> об этом почитать?

Можно. В IDE в диалоге настроек настраиваешь все как хочешь. В результате рядом с проектом появляется тот самый файл .ficfg. При работе через командную строку по умолчанию будут взяты настройки из файла, который лежит рядом с проектом, но ты можешь указать путь к другому файлу настроек с помощью параметра --settings.


 
Kerk ©   (2015-06-01 16:27) [167]


> q1w2e ©   (01.06.15 16:18) [165]
>
> Было бы здорово разделить W504 на отдельно пропущенный inherited
> в конструкторе и деструкторе. Дело в том, что часто предупреждение
> в конструкторах ложное, так как имеется несколько перегруженных
> конструктуров, конструктор предка зовется лишь в одном,
> а остальные зовут этот первый.

Это уже сделано в следующей версии, которая пока не вышла. Думаю, в июне она появится на сайте.


 
q1w2e ©   (2015-06-01 17:15) [168]

К сожалению, работаю в delphi 5


 
q1w2e ©   (2015-06-01 17:27) [169]

Если еще интересуют идеи по отлову багов, то решусь предложить такой частый баг копипаста

if Assigned(P) then
 Exit;
P.DoSomething;


ну или симметричный:


if P = nil then
 P.DoSomething;


Можно попробовать отловить такие обезниливания указателей хотя бы в простейших случаях.


 
Kerk ©   (2015-06-01 20:30) [170]

Вот так файл .ficfg выглядит для текущей версии (2015.04)
http://pastebin.com/CNa89vdn

Сохрани куда-нибудь. Отредактируй значения руками, там вроде очевидно что как.


 
q1w2e ©   (2015-06-02 15:54) [171]

Спасибо. С cfg- все ясно.

1. Ошибка W521 иногда шумит:


 function GenerateTempFileName(const Dir: string): string;
 var
   I: Integer;
 begin
   for I := 0 to 65535 do
   begin
     Result := AddBk(Dir) + Format("~tmp%d.dbf", [I]);
     if not FileExists(Result) then
       Exit;
   end;
 end;


2. Хороша была бы подсказка о неиспользованных параметрах, передаваемых в процедуру, но только при условии, что можно ее включать/выключать раздельно:
- для вложенных процедур;
- для процедур и функций глобальных для модуля (область видимости implementation);
- для процедур и функций глобальных для программы (область видимости interface);
- для конструкторов / деструкторов;
- для виртуальных и динамических методов;
- для методов-обработчиков событий объектов VCL;
- для методов-обработчиков событий Windows;
- для методов объектов с видимостью published;
- для остальных методов.


 
q1w2e ©   (2015-06-03 11:13) [172]

Можно еще предложения?

Если да, то было бы здорово ловить getеter-ы и setter-ы свойств, которые опрокидывают программу в рекурсию.


procedure TMyClass.SetMyProperty(const Value: TMyType);
begin
 if MyProperty <> Value then
   MyProperty := Value; { упс }
end;


 
Kerk ©   (2015-08-25 12:31) [173]

Незаметно подкралась новая версия. 2015.08. Сделана полноценная поддержка директивы $INCLUDE. Анализируются теперь не только файлы напрямую включенные в проект, но и используемые файлы из search path (отключаемо).

Плюс пара новых правил. Вот такое, например. W526 Pointer to a nested method

      procedure TMyClass.DoWork;

        procedure NestedMethod(List: TObjectList);
        var
          I: Integer;
        begin
          for I := 0 to List.Count - 1 do
            Foo(Self, List[I]);
        end;

      begin
        SetCallback(@NestedMethod); // <------
      end;


Скачивать все там же :)
http://sourceoddity.com/fixinsight/download.html


 
DayGaykin ©   (2015-08-25 13:25) [174]

На правах предложений:
Меня очень порадовало в Intellij Idea следующее предупреждение:
""scrollLeft" should probably not be assigned to "top""
на код:
var top = document.scrollLeft;


 
DVM ©   (2015-08-25 13:30) [175]


> Kerk ©   (25.08.15 12:31) [173]

Предложение: добавить в анализатор отслеживание ситуаций, когда адрес приводится к 4-байтовому целому. Полезно при переносе 32 бит кода в 64.


 
Игорь Шевченко ©   (2015-08-25 16:16) [176]

DVM ©   (25.08.15 13:30) [175]


> Полезно при переносе 32 бит кода в 64.


А что, регулярный процесс ? Просто интересно


 
DVM ©   (2015-08-25 16:33) [177]


> Игорь Шевченко ©   (25.08.15 16:16) [176]


> А что, регулярный процесс ? Просто интересно

Ну мне частенько такое встречалось (в последнее время правда реже, все что надо уже перенесено на 64 бит).


 
DVM ©   (2015-08-25 16:39) [178]


> Игорь Шевченко ©

Да и безотносительно регулярности, ну ведь ошибка это явная, как в с++ использование int вместо size_t:

http://www.viva64.com/ru/a/0050/)


 
Rouse_ ©   (2015-08-25 18:09) [179]


> Игорь Шевченко ©   (25.08.15 16:16) [176]
> А что, регулярный процесс ? Просто интересно

Конечно регулярный, более того скажу, нам ручками приходится перепарсивать исходники от DevExpress с целью поиска, поправили ли они очередной пак ошибок, которые мы высылали или нет.
Поэтому в любом коде, где есть сторонние классы имх нужно делать такую проверку.


 
Rouse_ ©   (2015-08-25 18:14) [180]


> Kerk ©   (25.08.15 12:31) [173]

static постфикс у Nested процедур/функций обрабатываешь?


 
Kerk ©   (2015-08-25 18:18) [181]

Это что такое?


 
Rouse_ ©   (2015-08-25 18:42) [182]


> Kerk ©   (25.08.15 18:18) [181]
> Это что такое?

Self отключается. Кстати ты почаще в аську выходи бо к примеру несколько дней мне нужна твоя помощь, а я не знаю как до тебя проще достучаться :)


 
Kerk ©   (2015-08-25 19:28) [183]

Не, такое пока не учитывается.

Я всегда есть в скайпе roman_yankovsky
Или джаббере roman@yankovsky.me
Плюс почта конечно же

Сейчас попробую аську включить. Но там я редко.


 
Rouse_ ©   (2015-08-25 19:32) [184]


> Kerk ©   (25.08.15 19:28) [183]
> Не, такое пока не учитывается.
>
> Я всегда есть в скайпе roman_yankovsky
> Или джаббере roman@yankovsky.me
> Плюс почта конечно же
>
> Сейчас попробую аську включить. Но там я редко.

не, аську не надо, если в скайпе - завтра подключусь.


 
virex(home) ©   (2015-11-26 08:11) [185]


> Kerk ©   (30.04.15 13:24) [115]
>
> > virex(home) ©   (30.04.15 09:47) [114]
> >
> > >кгшзх ©   (30.04.15 08:37) [113]
> >
> > да кстати
> > не помешало бы отключать некоторые проверки доп. опциями
>
> > в консольной утилите
>
> Это можно делать и это упомянуто в документации.
> Тут я рассказываю подробнее как это сделать http://fixinsight.
> userecho.com/topic/686863-command-line-client-define-rules-
> per-parameter/

With the FixInsight trial version you may run any analysis, as in the full version, but some limitations apply: the trial reports no more than five messages per unit, and the option to exclude a list of units from analysis is disabled.

теперь понятно почему в консоли не работает
скачал новую версию, а тут такое


 
Limpo ©   (2015-11-26 14:35) [186]

Удалено модератором


 
DayGaykin ©   (2015-11-26 14:52) [187]

Удалено модератором


 
DayGaykin ©   (2015-11-26 14:53) [188]

Удалено модератором


 
Kerk ©   (2015-11-26 19:23) [189]


> virex(home) ©   (26.11.15 08:11) [185]

Ну так это всегда так было :)


 
virex(home) ©   (2015-11-27 08:38) [190]

порадовал вывод консольной утилиты
File: c:\..\.......pas
 Fatal parser error (17, 1)


ошибка в 17 строке

оказалось в uses было две запятые
возможно удаляли "лишние" библиотеки какой-нибудь утилитой и получилось чтото вроде
uses StrUtils,Windows,,Classes...


 
Kerk ©   (2015-11-27 11:17) [191]

А как оно компилировалось? :)


 
virex(home) ©   (2015-11-27 11:38) [192]


> А как оно компилировалось? :)

никак

это было в одном из проектов, в настоящее время не использущийся модуль

з.ы. вообще это ПО которое я "поддерживаю" работает примерно с 2002 года, уже несколько лет его пытаются заменить на что-то другое
этакий "мастдай", как delphi которая вот вот прекратит свое существование
была попытка перенести всю функциональность в SAP, теперь думают об 1С
но столько человекочасов вложенных в это ПО, столько логики нереально мигрировать в другие программные решения быстро и уж темболее бесплатно
поэтому пока так


 
Kerk ©   (2015-11-27 17:54) [193]

Новая серия сериала "Свой код никому не показывай, чужой критикуй" :)
http://sourceoddity.com/blog/2015/11/fixinsight-vs-fmx-in-delphi-10-seattle/


 
Германн ©   (2015-11-28 02:35) [194]


> Kerk ©   (27.11.15 17:54) [193]
>
> Новая серия сериала

Была у меня как-то мысля попробовать ради собственного интереса сделать что-то на FMX. Но как-то сразу интерес пропал. :(


 
Kerk ©   (2015-11-28 18:19) [195]

Ну там не так все плохо, как может показаться. У нас есть одно приложение на FMX. Полет вполне нормальный.


 
Eraser ©   (2015-11-28 20:25) [196]

Да, сейчас - это уже не то, что было в XE2, качество лучше.


 
Германн ©   (2015-11-29 01:52) [197]


> Eraser ©   (28.11.15 20:25) [196]
>
> Да, сейчас - это уже не то, что было в XE2, качество лучше.
>
>  

Я пробовал в ХЕ5. Качество было очень сырое.


 
Eraser ©   (2015-11-29 04:32) [198]

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


> Kerk ©   (28.11.15 18:19) [195]

вот, кстати, давно хотел спросить, не собираются ли делать ARC версию компилятора под Mac OS? Сейчас получается, что это и не VCL и не FMX в полной мере, стиль кода ARC там использовать нельзя, или я что-то путаю?


 
Kerk ©   (2015-11-29 23:58) [199]

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

Мне вообще этот ARC не нравится. Просто потому, что поломали переносимость кода между платформами. Было бы лучше везде одинаково работать. И строки индексируемые с нуля такая же глупость.


 
Германн ©   (2015-12-01 01:43) [200]


> Eraser ©   (29.11.15 04:32) [198]
>
> и не XE5 )
> там достаточно взглянуть на список исправленных багов от
> каждой новой версии, каждый раз удивляюсь, как оно вообще
> раньше работало. на данный момент детские болезни они почти
> побороли.
>

А не детские болезни когда лечить начнут?



Страницы: 1 2 3 4 5 6 вся ветка

Форум: "Прочее";
Текущий архив: 2017.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.82 MB
Время: 0.041 c
2-1448345611
lewka
2015-11-24 09:13
2017.10.22
html код выполненного JavaScript


2-1449055785
Анна
2015-12-02 14:29
2017.10.22
PageControl1 не отображает названия Sheet в windows 7


2-1448611590
ShurikSNZ
2015-11-27 11:06
2017.10.22
При компиляции в новой версии выдает ошибку constant expression v


2-1446125074
NitroTek
2015-10-29 16:24
2017.10.22
Шаблоны


2-1448527183
Арлекино
2015-11-26 11:39
2017.10.22
Пару вопросов про указатели





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский