Re[9]: [ann] Visual C++ Compiler November 2013 CTP
От: DarkEld3r  
Дата: 19.11.13 22:17
Оценка:
Здравствуйте, niXman, Вы писали:

DE>>ATL хедеры mingw, вроде, не переваривает.

X>это не Си/С++?
Как бы С++, но по моему как раз из-за расширение и не получалось использовать. Позже до проекта доберусь — смогу глянуть.

DE>>Плюс некоторые виндовые хедеры из тех, что с твоим mingw идут не полные.

X>почему не репортуешь?
В sal.h содержимого гораздо меньше, чем в виндовом, например.

DE>>Ну и как-то мелкий проект было желание на mingw перевести, получил "out of memory allocating x bytes".

X>при компиляции?
Да. К сожалению исхoдники показать не могу. Выделить проблемный кусок тоже не удалось.

DE>>Ну хз. Если один инструмент позволяет использовать привычное окружение, а другой нет, то первому одножначно плюс.

X>"привычное окружение" — понятие относительно. как мы выяснили, привычное окружения для меня и Абикса — несовместимы. тем не менее, я на венде вполне себе нормально кожу, если нужно. криейтор+мингв — все, что нужно. иногда даже в консоль спускаюсь.
Естественно, относительно. Тем не менее, при возможности пользоваться привычными инструментами люди предпочитают это и делать. И при переходе будут упираться. Особенно если нет никаких особых преимуществ. Возможности нового стандарта, к сожалению ("как ни странно"), не всех убеждают.

DE>>Смысл в том, что код уже написан. Переделывать его никто не будет.

X>понятно.
X>так и со стандартом — что-то кардинально менять никто не хочет, и волокут обратную совместимость, которая мешает всему новому. так кому от этого выгода? — новым проектам которые решают использовать компилируемый ЯП, но не хотят С++ из-за его "багажа", и, таким образом, выбирают Go/D?
Так если бы они начали выкидывать "старое барахло", то было бы ещё хуже — в куче проектов тупо зафиксировали бы старую версию и всё. А так хоть ограниченно новые фичи вносить можно.
К D, кстати, даже в текущих условиях часто претензии высказывают из-за ломающих изменений.

DE>>Ну и такое отношение весьма показательно, не находишь?

X>показательно.
X>но, GCC не имеет среди таргетных платформ венду. то, что GCC умеет компилить для венды, безо всякой эмуляции и прослоек — это заслуга mingw.org и mingw-w64. оба эти проекта проделали огромнейшую работу, но, видимо, недостаточную...
Я понимаю и уважаю труд этих людей (ага и твой в том числе). Просто хочу сказать, что силанговский подход (если они, конечно, завершат начатое) имеет свои плюсы.
Re[11]: [ann] Visual C++ Compiler November 2013 CTP
От: DarkEld3r  
Дата: 19.11.13 22:37
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, DarkEld3r, Вы писали:


DE>>Здравствуйте, niXman, Вы писали:


X>>>это тоже самое, как и ругать GCC за то, что он предоставляет свои расширения, которые не поддерживают другие компиляторы. нелогично же?

DE>>Ну скажем интеловский компилятор с майкросовтовским совместим...
X>правда? хм..
Да, правда не могу сказать насколько полностью.
Про совместимость с GCC у них тоже есть.
Re[10]: [ann] Visual C++ Compiler November 2013 CTP
От: night beast СССР  
Дата: 20.11.13 03:47
Оценка: :))) :)
Здравствуйте, skeptic, Вы писали:

NB>>>>единственный случай когда отладчик нужен, это когда разбираешься в чужом коде.

NB>>>>для остального хватает обычного логирования.

S>>>Ну и вообще, нельзя быть таким категоричным, вот чужой код, это чей?


NB>>тут все просто, свой код это код, который написал сам. если приходится лезть в чужой модуль, или в код, который после тебя переписали, то естественно этот код чужой


S>Ну и к чему тогда было заявление про логирование, которого в теории хватает, но на практике за чередой всевозможных "если", кейс с достаточностью одного лишь логирования никогда не выполняется?


на практике, лезть в чужой код приходится довольно редко.
те ситуации что ты описал конечно встречаются, но они имхо являются тревожным признаком. и в таких случаях иногда бывает проще переписать с нуля чем разбираться в чужом г-не.
опыта работы в больших компаниях не имею, поэтому допускаю что там все происходит по-другому.
Re[10]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 08:11
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Как бы С++, но по моему как раз из-за расширение и не получалось использовать. Позже до проекта доберусь — смогу глянуть.

если доберешся — дай знать. хотелось бы понять причину.

DE>В sal.h содержимого гораздо меньше, чем в виндовом, например.

скинь плиз sal.h от msvc, гляну.

DE>Да. К сожалению исхoдники показать не могу. Выделить проблемный кусок тоже не удалось.

исходники не нужны. просто если появится время/желание — дай знать, возможно таки сможем победить.

DE>Я понимаю и уважаю труд этих людей (ага и твой в том числе). Просто хочу сказать, что силанговский подход (если они, конечно, завершат начатое) имеет свои плюсы.

по поводу clang-cl — я это сделаю для мингва, типа gcc-cl
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[11]: [ann] Visual C++ Compiler November 2013 CTP
От: DarkEld3r  
Дата: 20.11.13 10:11
Оценка:
Здравствуйте, niXman, Вы писали:

DE>>Как бы С++, но по моему как раз из-за расширение и не получалось использовать. Позже до проекта доберусь — смогу глянуть.

X>если доберешся — дай знать. хотелось бы понять причину.
Проблемы, например, в "throw( ... )", например (atlalloc.h):
_Ret_opt_bytecap_x_(nElements * sizeof(T)) T* Allocate(_In_ size_t nElements) throw( ... )
{
...

.../Microsoft Visual Studio 10.0/VC/atlmfc/include/atlalloc.h: At global scope:
.../Microsoft Visual Studio 10.0/VC/atlmfc/include/atlalloc.h:493:44: error: expected type-specifier before '...' token
  CTempBuffer(_In_ size_t nElements) throw( ... ) :
                                            ^

Нестандартно (и бесполезно), но править хедеры не хочется.
Кстати, когда гуглил что-то про mingw + ATL, то находил ответы, что включить ATL хедеры в мингщ нельзя из-за лицензии. Не вникал правда.

DE>>В sal.h содержимого гораздо меньше, чем в виндовом, например.

X>скинь плиз sal.h от msvc, гляну.
Вот (который с 2010 студией идёт).
Re[7]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 10:32
Оценка: 16 (1)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Я видел случаи где Clang оптимизировал лучше GCC, например.

отрепортовал. исправят.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[12]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 10:36
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Кстати, когда гуглил что-то про mingw + ATL, то находил ответы, что включить ATL хедеры в мингщ нельзя из-за лицензии. Не вникал правда.

разузнаю.

DE>Вот (который с 2010 студией идёт).

как написано в самом sal.h: "sal.h provides a set of annotations to describe how a function uses its parameters — the assumptions it makes about them, and the guarantees it makes upon finishing." — т.е. это макросы, использующие в описании API. таким образом, они по логике не должны перетекать в пользовательский код.
так что да, если mingw-w64 в описании API не использует часть этих макросов, то его содержание может отличаться.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[8]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 10:53
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, Evgeny.Panasyuk, Вы писали:


EP>>Я видел случаи где Clang оптимизировал лучше GCC, например.

X>отрепортовал. исправят.
оно оказывается уже исправлено:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58742
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[9]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 12:05
Оценка:
кто-нибудь, приведите пример нескольких популярных опций cl.exe. хочу из кланга взять карту соответствий, но не могу понять где она.
спасибо.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[13]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 13:48
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, DarkEld3r, Вы писали:


DE>>Кстати, когда гуглил что-то про mingw + ATL, то находил ответы, что включить ATL хедеры в мингщ нельзя из-за лицензии. Не вникал правда.

X>разузнаю.
можно. там действует тот же принцип, что и для остальных хидеров — они не копируются из msvc, а пишутся руками. иначе, любые хидеры нельзя было бы включать в мингв.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[10]: [ann] Visual C++ Compiler November 2013 CTP
От: Abyx Россия  
Дата: 20.11.13 13:53
Оценка:
Здравствуйте, niXman, Вы писали:

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

X>спасибо.

их много.
вот например опции по умолчанию для Debug x86

compile

/GS /analyze- /W3 /Zc:wchar_t /Zi /Gm /Od /sdl /Fd"Debug\vc120.pdb" /fp:precise /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_LIB" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"Debug\" /EHa /nologo /Fo"Debug\" /Fp"Debug\nov13ctp_sandbox.pch" 

link

/OUT:"D:\_src\sandbox\nov13ctp_sandbox\Debug\nov13ctp_sandbox.exe" /MANIFEST /NXCOMPAT /PDB:"D:\_src\sandbox\nov13ctp_sandbox\Debug\nov13ctp_sandbox.pdb" /DYNAMICBASE:NO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"D:\_src\sandbox\nov13ctp_sandbox\Debug\nov13ctp_sandbox.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\nov13ctp_sandbox.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1
In Zen We Trust
Re[11]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 13:54
Оценка:
ага, спасибо, разбираюсь.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[12]: [ann] Visual C++ Compiler November 2013 CTP
От: Abyx Россия  
Дата: 20.11.13 14:01
Оценка:
Здравствуйте, niXman, Вы писали:

X>ага, спасибо, разбираюсь.


минимально необходимые это наверное пути к файлам и дефайны.
остальное можно сделать заглушками

также надо не забыть про командные файлы, они вроде используются в msbuild — http://msdn.microsoft.com/en-us/library/x2khzsa1.aspx
In Zen We Trust
Re[13]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 20.11.13 18:28
Оценка:
Здравствуйте, Abyx, Вы писали:

A>минимально необходимые это наверное пути к файлам и дефайны.

A>остальное можно сделать заглушками
думаю, сделать поддержку основных опций оптимизации(-O0,-O1,-O2,-O3), дефайнов, и путей к хидерам.

A>также надо не забыть про командные файлы, они вроде используются в msbuild — http://msdn.microsoft.com/en-us/library/x2khzsa1.aspx

эм.. поможешь, если что, с пониманием? а то я читаю доку, и реально чего-то недопонимаю... это что-то вроде баша для вендус?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[14]: [ann] Visual C++ Compiler November 2013 CTP
От: Abyx Россия  
Дата: 20.11.13 19:39
Оценка:
Здравствуйте, niXman, Вы писали:

A>>также надо не забыть про командные файлы, они вроде используются в msbuild — http://msdn.microsoft.com/en-us/library/x2khzsa1.aspx

X>эм.. поможешь, если что, с пониманием? а то я читаю доку, и реально чего-то недопонимаю... это что-то вроде баша для вендус?

не, там те же опции командной строки, только в файле.
In Zen We Trust
Re[7]: [ann] Visual C++ Compiler November 2013 CTP
От: ctapmex  
Дата: 21.11.13 07:58
Оценка:
Здравствуйте, niXman, Вы писали:

A>>- код компилируется медленно

X>ну да, слышал уже неоднократно)
X>намного медленнее?

не сильно медленнее, но ощущается. и виной тут не gcc сам по себе, а его прослойка mingw.
две библиотеки ICU и xerces-c. на VC собираются быстро.
беру msys2 (чтобы не наткнутся на проблему с компилированием в несколько потоков), gcc. запускаю сборку в число_ядер+1 потоков. времени уходит больше.

сейчас пытаюсь переползти на написание кода в linux (надеюсь получить больше плюсов, таких как valgrind и более адекватное поведение нужных библиотек). т.е. это рабочее место, а код потом уже в win собрать под mingw. виртуальная машина с fedora на том же компе, что и mingw/VC .версия gcc та же (4.8.2). запускаю сборку библиотек — если сказать, что сборка идет быстро — ничего не сказать. а уж момент конфигурации по сравнению с msys идет почти мгновенно.
Re[8]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 21.11.13 08:26
Оценка:
Здравствуйте, ctapmex, Вы писали:

C>и виной тут не gcc сам по себе, а его прослойка mingw.

C>...
C>беру msys2

противоречий не замечаете?


C>надеюсь получить больше плюсов, таких как valgrind

бестолковый инструмент для плюсового кода.

C>момент конфигурации по сравнению с msys идет почти мгновенно.

так очевидно же, msys трансформирует пути/аргументы/етц налету.

вот только к мингву это не имеет отношения.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[9]: [ann] Visual C++ Compiler November 2013 CTP
От: ctapmex  
Дата: 21.11.13 08:39
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, ctapmex, Вы писали:


C>>и виной тут не gcc сам по себе, а его прослойка mingw.

C>>...
C>>беру msys2

X>противоречий не замечаете?

при запуске из под msys2 mingw-gcc работает ведь напрямую, не беря ничего от msys ? согласен, что make может не так эффективно работать под виндой.
mingw-шный make умеет в потоках собирать ?

C>>надеюсь получить больше плюсов, таких как valgrind

X>бестолковый инструмент для плюсового кода.
ну бестолковый или нет, а под виндой бесплатного ничего нет для поиска утечек. использование всяких либ для этого как то не сложилось. то не видят проблем при работе с классами из библиотек (надо все библиотеки пересобирать вместе с ней), то не работают под mingw по причине "posix gcc детектим, и меняем хедеры — не собирается; win gcc — не имеет имплементацию потоков). это гугловская библиотека, название не помню

C>>момент конфигурации по сравнению с msys идет почти мгновенно.

X>так очевидно же, msys трансформирует пути/аргументы/етц налету.
согласен.
X>вот только к мингву это не имеет отношения.
Re[8]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 21.11.13 08:46
Оценка:
Здравствуйте, ctapmex, Вы писали:

C>надеюсь получить больше плюсов, таких как valgrind


оно, вам наверное нужно для поиска утечек памяти?

приведу пример из личного опыта, произошедший совсем недавно.

есть проект, довольно таки большой проект, ~200000 loc.
начали подготавливать проект к релизу, и обнаружились "стандартные" Си`шные чудеса в виде произвольных падений программы. при том валилась программа в совершенно разных участках, порою даже не связанных(разве что адресным пространством). я в течении нескольких дней понял, что мы имеем дело либо с порчей кучи/стека, либо с висячими указателями, либо и то, и другое.
и вот, три человека, в течении месяца, полный рабочий день занимаются только поисками этих багов. по истечении месяца стало понятно, что ничего найти не получается. стандартные средства типа отладчика и стек-трейсера никак не помогают, а только путают. так же опробован valgrind, который, к слову, тоже только "голову морочил". не для плюсового кода он, однако.

и вот, как последняя надежда, решили попробовать AddressSanitizer, который был включен в gcc-4.8.х(так же был добавлен и ThreadSanitizer, но его пока не приходилось опробовать), и, с его помощью, за один день пофиксили баги.
баги, как оказалось, были однотипные, и всего три — висячие указатели smile

хз, сколько еще месяцев потребовалось бы на поиски этих багов, без AddressSanitizer %)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[10]: [ann] Visual C++ Compiler November 2013 CTP
От: niXman Ниоткуда https://github.com/niXman
Дата: 21.11.13 08:49
Оценка:
Здравствуйте, ctapmex, Вы писали:

C>при запуске из под msys2 mingw-gcc работает ведь напрямую, не беря ничего от msys ?

напрямую.

C>mingw-шный make умеет в потоках собирать ?

уже более года, как.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.