Форум: "Прочее";
Текущий архив: 2017.10.22;
Скачать: [xml.tar.bz2];
ВнизFixInsight for Delphi Найти похожие ветки
← →
Дмитрий Белькевич © (2014-10-08 20:32) [80]>https://dl.dropboxusercontent.com/u/26403307/smartscreen.png
у меня нормально. 8.1.
← →
Eraser © (2014-10-08 20:41) [81]на вот такую конструкцию в объявлении интерфейса
function D3D11CreateDevice(
Adapter: IDXGIAdapter;
DriverType: D3D_DRIVER_TYPE;
Software: HMODULE;
Flags: UINT;
pFeatureLevels: PD3D_FEATURE_LEVEL;
FeatureLevels: UINT;
SDKVersion: UINT;
out Device: ID3D11Device;
pFeatureLevel: PD3D_FEATURE_LEVEL;
out ImmediateContext: ID3D11DeviceContext):HRESULT; stdcall; external DLL_D3D11 delayed;
ругнулось
Fatal parser error
← →
Eraser © (2014-10-08 20:43) [82]
> объявлении интерфейса
точнее это не в объявлении интерфейса :-) просто внешняя системная API функция.
← →
Kerk © (2014-10-08 21:27) [83]А почему винда считает, что msi безопаснее, чем exe? Я вообще подумал, что дело в отсутствии электронной подписи, но я от этого пока далёк.
InnoSetup не умеет вроде msi делать. Вот ведь нежданный геморрой.
← →
ProstoTak © (2014-10-08 21:27) [84]
> любое нормальное ПО собирает билдсервер
можно поспорить о том, что такое "нормальное ПО", но по факту билд сервер используется крайне редко в процентном соотношении от количества проектов, на которых работают множество компаний.
Конечно, это не отменяет озвученных доработок.
← →
Rouse_ © (2014-10-08 21:30) [85]
> Kerk © (08.10.14 21:27) [83]
> А почему винда считает, что msi безопаснее, чем exe?
Потому что MSI для нее родное.
Впрочем, изучив чуть более чем полностью этот MSI (особливо состав кодов ошибок спонтанно возникающих у нашей двухсоттысячной аудитории клиентов) я пришел к выводу - что он нафиг не нужен.
Второй год юзаем InnoSetup и довольны по полной :)
← →
Rouse_ © (2014-10-08 21:31) [86]
> ProstoTak © (08.10.14 21:27) [84]
>
> > любое нормальное ПО собирает билдсервер
>
> можно поспорить о том, что такое "нормальное ПО", но по
> факту билд сервер используется крайне редко в процентном
> соотношении от количества проектов
Ты вот это сейчас чисто пофлудить озвучил, или в качестве экспертной оценки?
← →
Rouse_ © (2014-10-08 21:49) [87]Еще нюанс, не всегда интерфейсы с TLB импортируются с префиксом "I", особливо в WebDav, но у них у всех есть автогенерированные хидерники (спорный конечно нюанс, но) на которые можно в принципе ориентироваться при генерации варнинга мол интерфейс должен начинаться с "I"
← →
Игорь Шевченко © (2014-10-08 22:15) [88]Rouse_ © (08.10.14 19:18) [75]
> 1. любое нормальное ПО собирает билдсервер, проводящий кучу
> проверок при самом билде и принимающий решение на каждом
> этапе - можем ли мы собрать релиз или нет.
Если код компилируется, а тем более, без предупреждений, то релиз собрать можно.
Это если говорить о "любом нормальном ПО"
А если говорить о различного рода нюансах, принятых в той или иной группе разработчиков, то на все варианты писать обвески - работа длинная и неблагодарная.
← →
Kerk © (2014-10-08 22:21) [89]
> Eraser © (08.10.14 20:41) [81]
> на вот такую конструкцию в объявлении интерфейса
> Fatal parser error
В работе уже :)
http://github.com/RomanYankovsky/DelphiAST/issues/6
← →
Rouse_ © (2014-10-08 22:25) [90]
> Если код компилируется, а тем более, без предупреждений,
> то релиз собрать можно.{$MESSAGE WARN "Стало быть не используем в проекте?"}
А нюансы они ж разные, кто-то к примеру SEH воткнул в код, который будет изыматься и переводиться в пикод VM - один случай (а проект-то соберется - без проблем)
Другой со скриптом инсталятора перемудрил, что он выдал ворнинг на пустом месте.
Третий, забыл подключить ресур содержащий публичные RSA ключи, и проект просто не сможет расшифровать данные.
Воть этим всем и занимается билдсервак, страхуя нас от ошибок.
← →
Rouse_ © (2014-10-08 22:30) [91]ЗЫ: на данный момент у нас на билдсервере на релизе 17 этапов сборки проекта. Ручками это все... ну заколебешся контролировать. Сколько общался с ребятами из других солидных контор (DrWeb/Guardant/Simantec/ReactOS) билдсерверы везде присутствуют (разные сборки но методика в принципе идентична).
← →
Kerk © (2014-10-08 22:44) [92]
> Rouse_ ©class operator In
пофиксил уже. В следующем релизе будет нормально.
Ну и над утилитой командной строки я думаю. Не ожидал, что там много людей о ней будут спрашивать.
← →
Rouse_ © (2014-10-08 22:49) [93]
> Игорь Шевченко © (08.10.14 22:15) [88]
> А если говорить о различного рода нюансах, принятых в той
> или иной группе разработчиков, то на все варианты писать
> обвески - работа длинная и неблагодарная.
Кстати вопрос. Возьмем простую схему.
Для релизного билда (обычного проекта без наворотов) нужно в принципе сделать такие вещи:
1. Слить исходники с мастер бранча SVN (или другой системы контроля версий) на машину, на которой будет собираться релиз.
2. Выставить правильную версию билда (параметры мажор/минор/релиз я даже не рассматриваю, считаем их по умолчению выставлеными).
3. Собрать релиз
4. Повесить на него подпись
5. Прогнать тесты на VirusTotal, если не прошли, гоу пункт 3
6. Собрать инсталятор
7. Собрать архив из всего что должно уйти пользователю
8. Проапдейтить архив на внешнем FTP
9. Апнуть метку о версии на сайте и в репозитории автообновления.
10. Пнуть мыло манагеру, чтоб запилил новость о выходе новой версии.
Вы это все ручками делаете?
← →
Rouse_ © (2014-10-08 22:57) [94]
> Kerk © (08.10.14 22:44) [92]
> Ну и над утилитой командной строки я думаю. Не ожидал, что
> там много людей о ней будут спрашивать.
Первые беты сразу мне пуляй, у нас как раз скоро релиз, поэтому консолька как раз будет в тему (ну и багрепорты с первых рук получишь).
← →
Игорь Шевченко © (2014-10-08 23:47) [95]Rouse_ © (08.10.14 22:49) [93]
Если не трудно, все то же самое на русском языке, пожалуйста.
← →
Rouse_ © (2014-10-09 00:01) [96]Удалено модератором
← →
Pavia © (2014-10-10 10:02) [97]
> Rouse_ © (08.10.14 22:49) [93] Если не трудно, все то
> же самое на русском языке, пожалуйста.
Не знаю только как "репозитории" перевести. Может вы подскажете?
Тот же вопрос касаемо "реализ" ? Но слово уже попало в словари. Так что можно считать русским.
Ниже перевод на Русский язык.
Кстати вопрос. Возьмем для примера обычного проекта без наворотов и его простой алгоритм подготовки реализной версии ПО.
Для реализной сборке, нужно сделать следующие действия:
1. Скачать исходники с главной ветки SVN (или другой системы контроля версий) на машину, на которой будет собираться версия ПО;
2. Выставить правильную версию сборки. Параметры "старшая","младшая", "модификация" я даже не рассматриваю. Считаем их по умолчанию выставленными;
3. Собрать модификацию ПО с параметром реализация;
4. Экземпляр программы подписать цифровой подписью;
5. Выполнить тестирование на VirusTotal. В случае отрицательного результата перейти к 3 пункту;
6. Собрать установщик;
7. Собрать архив из всего что должно быть отправлено пользователю
8. Обновить архив на внешнем сервере FTP;
9. Обновить сообщение о версии на сайте и в репозитории автообновления;
10. Отправить сообщение менеджеру, чтобы тот сообщил новость о выходе новой версии.
Вы это все ручками делаете?
← →
Игорь Шевченко © (2014-10-10 10:17) [98]Rouse_ © (08.10.14 22:49) [93]
> Кстати вопрос.
> Вы это все ручками делаете?
Кстати не до конца понимаю, какое отношение технология сборки, принятая в нашей компании (или в иной другой) имеет отношение к теме ветке. Я полагаю, что это не та тема для беспокойства
Разумеется, у нас сборка автоматизирована.
Что касается целесообразности применения подобной программы на этапе сборки, то я по-прежнему придерживаюсь мнения, что она нецелесообразна.
Точно так же, как в систему контроля версий должен попадать код, который компилируется без предупреждений, можно договориться, чтобы в репозиторий попадал код, который проходит проверки без сообщений.
← →
Kerk © (2014-10-23 19:56) [99]Господа, мне нужны счастливые обладатели Delphi 2006, 2007 или 2009 для тестирования. Напишите мне, пожалуйста, в почту (в анкете) или оставьте тут свою. Заранее благодарю.
← →
Rouse_ © (2014-10-23 20:10) [100]2007 могу оттестировать, 2006 - вроде где-то валялся дистрибутив, но мы давно с него спрыгнули, боюсь не смогу найти ключей активации.
Да кстати сорь - сегодня твою консольку не затестировал, бо запарка была по полной, завтра буду проверять.
← →
Rouse_ © (2014-10-23 20:12) [101]Ты с UTF-8 BOM префиксом точно все пофиксил? А то опять IDE ляжет наглухо, что не хотелось бы :)
← →
Kerk © (2014-10-23 20:20) [102]Пофиксил, да. Тестировал на том твоем юните и с ним все в порядке. Ссылку тебе слать не буду, потому что она у тебя есть. Но скачай завтра лучше заново, может до тех пор еще что-нибудь пофикшу :)
← →
Kerk © (2014-10-23 20:21) [103]Ну и ради меня не стоит 2006 ставить. Достаточно того, что есть :)
← →
Rouse_ © (2014-10-23 22:19) [104]
> Kerk © (23.10.14 20:20) [102]
> Пофиксил, да. Тестировал на том твоем юните и с ним все
> в порядке. Ссылку тебе слать не буду, потому что она у тебя
> есть. Но скачай завтра лучше заново, может до тех пор еще
> что-нибудь пофикшу :)
Кстати знаеш что подумал, я правда не уверен что такие файлы дельфя генерирует, но работать с ними она умеет. Ты енкодинг модуля без BOM префикса тестил?
А завтра проверю, но скорее уже не я а Женька, я только общие моменты, а вот как его встраивать в билдсервак, это только он сможет сказать кгде у тебя косяки.
← →
Rouse_ © (2014-10-23 22:22) [105]Прочто чем это грозит, если ты не распознаешь UTF и будешь трактовать как ANSII, то сразу можешь влететь на символ "{" который будет частью UFT символа. Сам понимаешь - весь парсинг уплывет, а то еще и ошибку выдаст если закрывающего "}" не найдет.
← →
Kerk © (2014-10-23 22:54) [106]Нет, если преамбулы нет (так вроде оно научно называется), то кодировка не распознается. Это у меня сделано средствами дельфового класса TEncoding, а он ориентируется на первые байты. Не уверен, что требуется что-то более сложное. Но посмотрим.
← →
Kerk © (2014-11-02 23:11) [107]Вышла версия 2014.11
В ней есть:
* Утилита командной строки
* Поддержка версий 2006, 2007 и 2009
* Возможность иметь свои настройки для каждого проекта
* Исправленные баги
← →
Kerk © (2015-03-24 01:22) [108]Подниму-ка я ветку, благо версия 2015.03 уже вышла. Матереем.
http://sourceoddity.com/fixinsight/download.html
> ProstoTak © (07.10.14 17:09) [41]
>
> Да, я тоже подумал, что Kerk прочитал про PVS Studio на
> хабре (пиарятся они толково) и решил что-то типа такого
> запилить )
Если действительно интересно, то вдохновлялся я этой штукой
http://www.toadworld.com/products/toad-for-oracle/b/weblog/archive/2015/03/19/how-to-simplify-code-reviews-with-code-analysis-new-videos-on-toad-for-oracle-xpert-edition.aspx
А про PVS Studio уже намного позже узнал. И ты сильно недооцениваешь сопутствующие сложности, если думаешь, что можно так просто "прочитать и решить запилить" :)
← →
mike-d © (2015-03-27 07:00) [109]На Delphi 7 не ставится. Пичалька...
← →
Kerk © (2015-03-27 10:50) [110]
> mike-d © (27.03.15 07:00) [109]
>
> На Delphi 7 не ставится. Пичалька...
К сожалению, так. Но утилита командной строки работает с любыми версиями Delphi. Правда, это уже не так удобно.
Поискал баги в VCL :) Нашлась пара интересных мест.
http://roman.yankovsky.me/?p=1748
← →
virex(home) © (2015-03-28 07:45) [111]>Kerk © (27.03.15 10:50) [110]
надо будет на работе попробовать твою тузлу, правда там дельфя 7
← →
virex(home) © (2015-04-30 06:18) [112]>virex(home) © (28.03.15 07:45) [111]
проверил консольной утилитой
просто вывод в консоль работает, а при отправке в файл - содержимое "обрывается"
пример: тузла --xml --project=c:\...\...dpr > 1.txt
в файле 1.txt не весь вывод тузлы
← →
кгшзх © (2015-04-30 08:37) [113]C102 Too many parameters in "TAjaxEvent.Invoke"
TAjaxEvent = class(TInterfacedObject, IDispatch)
...
function Invoke(DispID : Integer; const IID : TGUID; LocaleID : Integer; Flags : Word; var Params; VarResult : Pointer; ExcepInfo : Pointer; ArgErr : Pointer) : HRESULT; stdcall;
---
А есть ли там предупреждения типа :
- имя метода начинается с буквы "I"
- если сложить коды символов в имени переменной xxx то получится число зверя 666?
ну и т.д.
← →
virex(home) © (2015-04-30 09:47) [114]>кгшзх © (30.04.15 08:37) [113]
да кстати
не помешало бы отключать некоторые проверки доп. опциями в консольной утилите
а так утилита полезная, вчера рефакторинг делал
в древнем проекте куча ошибок создания объекта в try и уничтожения в finally
← →
Kerk © (2015-04-30 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/
← →
Юрий Зотов © (2015-04-30 13:56) [116]> Kerk
Еще бы fast fix добавить, где это возможно - полная конфета была бы. Понимаю, не просто. Ну на будущее - как вариант развития.
← →
Cobalt © (2015-04-30 15:43) [117][FixInsight Warning] fmuVisualListWare.pas(453): W508 Variable is assigned twice successively
tmrFilter.Enabled := false;
tmrFilter.Enabled := true;
← →
Юрий Зотов © (2015-04-30 20:58) [118]> Kerk
Кстати, обрати внимание на:
http://delphimaster.net/view/15-1430333783/
Возможное добавление к списку подозрительных конструкций: некорректное использование вложенной функции. Диагностировать можно по описателю stdcall (хотя это и грубовато, пожалуй).
← →
Юрий Зотов © (2015-04-30 21:06) [119]> Cobalt © (30.04.15 15:43) [117]
Похоже на умышленный сброс таймера. Вообще, подобные конструкции иногда используются для того, чтобы "дернуть" код внутри VCL (например, что-то пересоздать). Некрасиво, конечно, но если нормального способа не предусмотрено, то ничего другого не остается.
Но FixInsight сработал правильно, место подозрительное.
← →
Kerk © (2015-04-30 22:50) [120]
> Юрий Зотов © (30.04.15 13:56) [116]
>
> > Kerk
>
> Еще бы fast fix добавить, где это возможно - полная конфета
> была бы. Понимаю, не просто. Ну на будущее - как вариант
> развития.
Что-то такое иметь было бы очень здорово. Постепенно, надеюсь, все получится.
Вообще, как можно плотнее интегрироваться с IDE - один главных приоритетов.
> Юрий Зотов © (30.04.15 20:58) [118]
Я бы на самом деле на любую передачу указателя на вложенную функцию ругался. Случаи, когда это оправдано придумать сложно, а вот проблем не оберешься.
> Юрий Зотов © (30.04.15 21:06) [119]
>
> Но FixInsight сработал правильно, место подозрительное.
Такие ситуация - моя большая боль. Одно дело действительно настоящие ложные срабатывания, с которыми я борюсь как могу. А другое - когда срабатывание верное, но программист эту ситуацию умышленно допустил. Это все-таки всего-лишь анализатор, а не искусственный интеллект, он не может такие тонкие вещи прочувствовать.
И по-моему в таком случае от предупреждения нет никакого вреда, человек просто посмотрит, убедится, что все в порядке и пойдет дальше.
А боль это для меня потому, что многие пользователи ждут от инструмента совершенно магического поведения и расстраиваются, что это не так. Имеют право, конечно.
Страницы: 1 2 3 4 5 6 вся ветка
Форум: "Прочее";
Текущий архив: 2017.10.22;
Скачать: [xml.tar.bz2];
Память: 0.76 MB
Время: 0.029 c