...Как и обещал в свое время.
Взять можно здесь (10 мегов): http://dbxdeadbeef.googlepages.com/gcc-4.3.0.tar.bz2
Содержимое сборки:
— сам компилятор C/C++ 4.3.0
— отладчик GDB 6.7.50 с примитивным текстовым интерфейсом (TUI)
— ассемблер и линкер (binutils-2.18.50)
— документация на GCC и GDB в CHM-ах (английский)
— стандартные библиотеки — STL/OpenMP/pthread
Процедура установки:
— отсутствует Распаковывайте куда-нибудь и наслаждайтесь. Постарайтесь только не называть каталог установки GCC — будут проблемы.
Что там интересного:
— OpenMP и pthreads (флаг -fopenmp)
— реализована часть TR1 в C++ standard library. Подробнее здесь: http://gcc.gnu.org/onlinedocs/libstdc++/ext/tr1.html
— в STL добавлен "параллельный режим" для некоторых алгоритмов. Подробнее здесь: http://gcc.gnu.org/onlinedocs
— C++ поддерживает кое-что из C++0x. Cтатус здесь: http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
--- variadic templates
--- decltype (но не auto!)
--- rvalue references
--- type traits, которые не могут быть реализованы без помощи компилятора
А теперь дисклеймеры:
— эта сборка предназначена для того "чтобы поиграться". Дело в том, что версии x.x.0 у GCC как правило весьма сырые
— я врядли смогу ответить на вопросы об ошибках компиляции. Если думаете что это баг — говорите о нем сюда: http://gcc.gnu.org/bugzilla/
— если будут проблемы с запуском — т.е. не найденные библиотеки, .h-файлы и прочая — это скорее всего моя вина — обращайтесь сюда.
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>- в STL добавлен "параллельный режим" для некоторых алгоритмов. Подробнее здесь: http://gcc.gnu.org/onlinedocs
Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>...Как и обещал в свое время.
Не подскажите заодно, как утянуть с svn://gcc.gnu.org какой-нить тег без ".svn" директорий, а то оно весит уже очень много и не нужно?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>>...Как и обещал в свое время. V>Не подскажите заодно, как утянуть с svn://gcc.gnu.org какой-нить тег без ".svn" директорий, а то оно весит уже очень много и не нужно?
Здравствуйте, _nn_, Вы писали:
__>Хотелось бы знать если есть там поддержка SEH.
Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.
Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions.
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, 0xDEADBEEF, Вы писали: __>>Хотелось бы знать если есть там поддержка SEH. DEA>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом. DEA>Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions.
А поддержка MS specific __try/__except или _set_se_translator?
Сейчас на мингву не получается полностью перевести некоторые вещи как раз из за отсутствия поддержки этих вещей.
К тому же, если я правильно понял 19.4 System error support, в любом случае придёться что-то подобное организовывать.
Здравствуйте, Tonal-, Вы писали:
DEA>>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом. DEA>>Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions. T>А поддержка MS specific __try/__except или _set_se_translator?
Гуголь тебе в помощь. Попробуй поискать "GCC SEH" или "Gygwin Mingw SEH". Конечно, полной функциональности __try/__catch ты не получишь, но какой-то костыль из макросов и inline assembler-а вполне реально собрать.
T>Сейчас на мингву не получается полностью перевести некоторые вещи как раз из за отсутствия поддержки этих вещей.
А начерта тебе мингва, если есть "родной" (для винды) бесплатный MSVC-Express? На мингву имхо, имеет смысл переползать только для последующего переползания на юниха. А там SEH отсутствует. Ерго, надо избавляться от него.
T>К тому же, если я правильно понял 19.4 System error support, в любом случае придёться что-то подобное организовывать.
Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет.
Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>- где-то в недрах ReactOS некоторое время назад ходил патч для C (не C++) с полной поддержкой SEH. Но я что-то не могу его найти.
Нашел в своей файловой свалке. Брать здесь: http://files.rsdn.ru/33732/gcc-3.4.0-seh.zip
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, 0xDEADBEEF, Вы писали: T>>К тому же, если я правильно понял 19.4 System error support, в любом случае придёться что-то подобное организовывать. DEA>Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет.
Лезет. Как-то же нужно будет этот код вытащить из seh-ного исключения чтобы выкинуть system_error
Стало быть нужен будет механизм перехвата SEH-а.
DEA>ЗЫ. Материалы по теме: DEA>- http://gcc.gnu.org/ml/gcc/2005-05/msg00511.html — Почему сеха нету и не будет. DEA>- http://cygwin.com/ml/cygwin/2002-08/msg01598.html — "костыль" для сеха DEA>- где-то в недрах ReactOS некоторое время назад ходил патч для C (не C++) с полной поддержкой SEH. Но я что-то не могу его найти.
Спасибо, поизучаю.
Здравствуйте, Tonal-, Вы писали:
DEA>>Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет. T>Лезет. Как-то же нужно будет этот код вытащить из seh-ного исключения чтобы выкинуть system_error
Согласно изложенного в http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2521.pdf (Последний working draft)
таки не следует. Там определена иерархия исключений с кодами ошибок и не более того. Все это можно легко получить из errno/strerror (posix) и GetLastError/FormatMessage (Win23). На злобные вещи типа SIGSEGV ака "Access Violation" стандарт вроде бы не замахивается и это есть хорошо.
Так что, если можно, поподробнее плз... Мне действительно любопытно...
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, 0xDEADBEEF, Вы писали: DEA>>>Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет. T>>Лезет. Как-то же нужно будет этот код вытащить из seh-ного исключения чтобы выкинуть system_error DEA>Согласно изложенного в http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2521.pdf (Последний working draft) DEA>таки не следует. Там определена иерархия исключений с кодами ошибок и не более того. Все это можно легко получить из errno/strerror (posix) и GetLastError/FormatMessage (Win23). На злобные вещи типа SIGSEGV ака "Access Violation" стандарт вроде бы не замахивается и это есть хорошо. DEA>Так что, если можно, поподробнее плз... Мне действительно любопытно...
Просмотрел стандарт — похоже действительно прогнал.
Подвела сноска из пункта 19.4.5.1:
If an error represents an out-of-memory condition, implementations are encouraged to throw an exception object
of type bad_alloc 18.5.2.1 rather than system_error.
Out-of-memory — это сигнал в posix и seh-исключение в винде.
Ход мысли такой — раз специально оговаривают, что исключение нехватки памяти надо обрабатывать особым образом, без генерации system_error, то остальные системные исключения должны system_error генерировать.
А если по системным исключениям system_error не генерируется, то какой смысл в этой сноске?
... << RSDN@Home 1.2.0 alpha 3 rev. 956>>
Re[3]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От:
Аноним
Дата:
19.03.08 16:48
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>Здравствуйте, _nn_, Вы писали:
__>>Хотелось бы знать если есть там поддержка SEH. DEA>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом. DEA>Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions.
Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>Здравствуйте, _nn_, Вы писали:
__>>Хотелось бы знать если есть там поддержка SEH. DEA>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.
Может меня сильно плющит, но по-моему, эти алгоритмы использовались еще в PL/1, что это борланд заптентовала?
Здравствуйте, Michael7, Вы писали:
DEA>>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом. M>Может меня сильно плющит, но по-моему, эти алгоритмы использовались еще в PL/1, что это борланд заптентовала?
Это вопросы не ко мне. А патент на самом деле существует — можно посмотреть здесь.
И закончится он ой как нескоро — в 2014-м.
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, Michael7, Вы писали:
M>Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>>Здравствуйте, _nn_, Вы писали:
__>>>Хотелось бы знать если есть там поддержка SEH. DEA>>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.
M>Может меня сильно плющит, но по-моему, эти алгоритмы использовались еще в PL/1, что это борланд заптентовала?
Это вообще тенденция последнего времени — всё больше и больше известных алгоритмов из public domain патентуется. К сожалению это не вопрос здравого смысла, это вопрос крутизны твоих юристов
Хорошо, что мы в России и можем плевать с высокой колокольни на американские патенты и патентное законодательство