Форум: "Прочее";
Текущий архив: 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 methodprocedure 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