На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS

Дорогие друзья! Поздравляем вас с Новым 2025 годом!

Всем удачи, успеха и благополучия!

msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (89) [1] 2 3 ...  88 89  ( Перейти к последнему сообщению )  
> Сборки MinGW-W64(win32/win64) от niXman , C++1x, использование, обсуждение
    с этого момента, буду производить тестовые/пререлизные/релизные сборки mingw.
    файлы с пометкой snapshot и prerelease - не стабильные версии. в реальных проектах использовать не рекомендую. использую для тестирования новых фитчей.
    файлы с пометкой release - стабильные, прошедшие тесты.
    скачать можно тут.


    моя первая сборка стабильной версии gcc-4.6.1 для windows(т.е. MinGW) с полной поддержкой LTO, OpenMP, Graphite, std atomics и std threads.

    при использовании классов из std threads, добавляйте опцию "-lpthread". в будущих сборках исправлю.

    Эта тема была разделена из темы "Новый стандарт C++: C++1x"
    Сообщение отредактировано: niXman -
      трэды, мьютексы - это все ладно... больше всего радует std::chrono. как это не банально звучит :blush:

      еще просьба.
      скажите, кто-то тестил последнюю сборку?
      я хочу сообществу GNU-gcc предложить применить мой патч в основную ветку, для корректной сборки MinGW с поддержкой всех перечисленных фитчей.

      буду благодарен если кто-то попробует собрать и потестить свои реальные проекты.
      спасибо.
        Цитата niXman @
        буду благодарен если кто-то попробует собрать и потестить свои реальные проекты.

        как то странно будет в реальных проектах за последними фичами гнаться, пока даже стандарт не принят.
          DEADHUNT, не нужно гнаться. но опробовать LTO, который, к примеру, в лине дает прирост в скорости в 11 раз, а в венде в 9 раз, наверное будет полезно. ибо его не отменят ;)
          Graphite - вообще интересная штука. но его использовать нужно с умом.
          OpenMP - утвержденный международный стандарт. разве вы его не используете? вряд-ли...

          Добавлено
          Цитата DEADHUNT @
          даже стандарт не принят.

          печатное издание на ангельском, обещано осенью. релиз gcc-5.0.0 обещан к концу этого года-началу следующего. что вас смущает?

          Добавлено
          DEADHUNT, можешь сам проверить на это тесте: http://kemiisto.blogspot.com/2010/09/lto.html
          я вообще-то пытался понять как Parma Polyhedra работает, и за счет чего этот оптимизатор позволяет получить столь необычайно высокий прирост производительности. но увы, недостаток образования ведать...
          Сообщение отредактировано: niXman -
            Цитата niXman @
            DEADHUNT, можешь сам проверить на это тесте: http://kemiisto.blogspot.com/2010/09/lto.html

            я верю, т.к. сам одно время занимался темой оптимизации в компиляторах.
            только я говорил не про оптимизацию которую предоставляют новые версии gcc(по сути это даже не относится к C++ и C++1x), а про языковые расширения и расширение STL, рискованно использовать в реальных проектах только что реализованные в libstdc++ классы/шаблоны/...(помню как std::thread пытался использовать когда его только реализовали, а он валился в деструкторе или ещё где то, в итоге обратно вернулся на boost::thread).
              DEADHUNT, это все понятно, мало кто решится зарелизить реальные проекты на этих версиях компиляторов. я и сам это понимаю. но testsuite пройдены. нет основания не доверять компилятору.
              но повторюсь: выпустить реальный проект собранный этим компилятором я и сам бы не решился... предрассудки, что-ли...

              Добавлено
              еще сильно порадовали parallel algorithms. в лине я-то их использую. но в венде до сих пор было невозможно.
                Цитата DEADHUNT @
                помню как std::thread пытался использовать когда его только реализовали, а он валился в деструкторе или ещё где то, в итоге обратно вернулся на boost::thread
                Так он и должен валиться в деструкторе:
                Цитата
                30.3.1.3 thread destructor [thread.thread.destr]
                ~thread();
                If joinable() then terminate(), otherwise no effects. [ Note: Either implicitly detaching or joining
                a joinable() thread in its destructor could result in difficult to debug correctness (for detach) or
                performance (for join) bugs encountered only when an exception is raised. Thus the programmer must
                ensure that the destructor is never executed while the thread is still joinable. —end note ]
                Работает просто не совсем так, как в бусте. Поток вызывается не в деструкторе, а в конструкторе. После чего его надо детачить.
                  Цитата Повстанець @
                  Работает просто не совсем так, как в бусте. Поток вызывается не в деструкторе, а в конструкторе. После чего его надо детачить.

                  точно, наверное моя ошибка была. сейчас и для boost::thread в том место join() вызывается перед разрушением.
                  то что я писал было год назад, тем более возможно я использовал gcc собственно ручно собранный из исходников взятых из svn транка. и то что я написал, говорит не о том что thread не правильно работает, а о том что не стоит бросаться сразу использовать только что реализованный класс/шаблон, т.к. трудно будет отлечить что не работает stdlibc++(это для gcc, или другая реализация) или собственная программа.
                    Цитата niXman @
                    моя первая сборка стабильной версии gcc-4.6.1 для windows(т.е. MinGW) с полной поддержкой LTO, OpenMP, Graphite, std atomics и std threads.


                    C OpenMP там точно все в порядке?
                      Real16, что-то не так? рассказывайте..
                        Да что-то не идет OpenMP-программа. Ставлю опцию -fopenmp, линкую библиотеку libgomp.a . Ругается много на undefined references в gomp_***-функциях на pthreads_***, sem_***. При аналогичных настройках в TDM-сборке 4.5.2 все работает.

                        Еще вопрос по LTO - правильно ли я понимаю, что опции компиляции и линковки -flto руками ставить не нужно?

                        Добавлено
                        Правильно ли я понимаю, что данная сборка 4.6.1. не поддерживает async (из C++0x) ?
                          Цитата Real16 @
                          Ругается много на undefined references в gomp_***-функциях на pthreads_***, sem_***.
                          Цитата niXman @
                          добавляйте опцию "-lpthread"
                          не?
                            Real16, только что еще раз проверил openmp. все работает.

                            Цитата Real16 @
                            данная сборка 4.6.1. не поддерживает async (из C++0x) ?

                            почему вы задаете наводящие вопросы? если что-то не работает - показывайте код, разберемся.
                              Цитата niXman @
                              почему вы задаете наводящие вопросы? если что-то не работает - показывайте код, разберемся.

                              Что касается async - вот, например, пример с data-race.com
                              ExpandedWrap disabled
                                #include <iostream>
                                #include <future>
                                #include <thread>
                                 
                                int calculate() {   return 2 * 2;  }
                                 
                                int main()
                                {
                                   std::future<int> result = std::async(calculate);
                                   std::cout << result.get() << std::endl;
                                }

                              у меня не работает.
                              С другой стороны, использование thread-объектов работает.

                              Это сообщение было перенесено сюда или объединено из темы "Новый стандарт C++: C++1x"
                                Цитата Real16 @
                                у меня не работает.

                                признаюсь, async`и не проверял. сейчас..

                                Это сообщение было перенесено сюда или объединено из темы "Новый стандарт C++: C++1x"
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (89) [1] 2 3 ...  88 89


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0677 ]   [ 16 queries used ]   [ Generated: 20.01.25, 04:52 GMT ]