@ProCxx

Страница 902 из 2477
Yura
24.05.2017
22:34:24
Будет очень круто!!!Большое спасибо!

А то ни один проект не грузится..

Google
Anton
24.05.2017
23:04:38
И тут решил скампилять с помощью MSYS2 juCi++... Я никогда бы не думал, что чутка возненавижу cmake.

Всё либы есть, но эта хреновина их не находит.

Vladislav
24.05.2017
23:05:23
чутка?

Anton
24.05.2017
23:05:39
Ага. Самую малость

Просто ещё раз убедился, что не всегда автогенераторы Makefile-ов являются панацеей при разработке.

Vladislav
24.05.2017
23:08:03
у нас на работе вообще своя билд-система, не связанная с Makefile-ами

Anton
24.05.2017
23:08:35
Норм.

Vladislav
25.05.2017
00:25:30
for (size_t i = n - 1; i < n ; --i) { ... }

Anton
25.05.2017
00:27:19
Vladislav
25.05.2017
02:29:11
загадка: почему вот этот код сегфолтится? (с -mavx2 и -O3, как минимум) Бонусные очки за способ исправить vector<__m256i> v; for (int i = 0; i < 100; ++i) { v.emplace_back(); }

Vladislav
25.05.2017
02:30:02
а где аргумент в emplace_back ?
дефолтный конструктор вызываю

Google
Vladislav
25.05.2017
02:30:14
у emplace_back (Args&&...) аргументы

Stanislav
25.05.2017
02:31:03
а __m256i для не знающих это что? )

понятно что 256 битный инт

гцц авх интегер ?

Vladislav
25.05.2017
02:32:09
это векторный тип, может содержать 32 x uint8_t, 16 x uint16_t или 8 x uint32_t

Vladislav
25.05.2017
02:32:51
не проще ли reserve в таком случае сделать?
не поможет, с некоторой вероятность засегфолтится

Stanislav
25.05.2017
02:33:16
точнее vector<__m256i> v(100);

хм

Vladislav
25.05.2017
02:33:56
да)

Stanislav
25.05.2017
02:34:34
да прост тут билдили онду херню с полной оптимизацией fpu, на старых процах где такого не было тоже падало )

уточняю

надо подумать тогда лол

Vladislav
25.05.2017
02:35:10
это да

но тут не этот случай)

Stanislav
25.05.2017
02:35:41
c выравниванием косяк?

Vladislav
25.05.2017
02:35:47
Stanislav
25.05.2017
02:36:53
ну как поправить я точно хз, у гцц не помню как директивы для выравнивания работают

Google
Vladislav
25.05.2017
02:37:48
директивы для __m256i нужные проставлены в либе, как я понимаю, но это не поможет

я правда не совсем понимаю, зачем компилятор вообще гоняет данные через регистры тут - сегфолт происходит только в момент загрузки unaligned значения в регистр

Stanislav
25.05.2017
02:40:00
а, т.е. ты сам еще не разобрался ? :)

Vladislav
25.05.2017
02:41:42
я разобрался что проблема с выравниванием и как починить, но почему конкретно компилятор натыкается на эту проблему при простом перекидывании данных туда-сюда в памяти - непонятно :)

Stanislav
25.05.2017
02:42:34
рассказывай давай )

кастомный аллокатор ? )

Vladislav
25.05.2017
02:43:18
стандартный аллокатор выравнивает только по sizeof(align_t), который на моей машине 16

если вместо него воткнуть boost::alignment::aligned_allocator<__m256i> то все работает корректно)

Stanislav
25.05.2017
02:44:13
если вместо него воткнуть boost::alignment::aligned_allocator<__m256i> то все работает корректно)
охохо, а без буста хорошее тестовое задание выйдет лол

Vladislav
25.05.2017
02:44:45
в принципе, свой аналогичный аллокатор написать тоже несложно

благо есть std::align и (местами) posix_memalign

Stanislav
25.05.2017
02:45:26
благо есть std::align и (местами) posix_memalign
ваш посикс не посикс не под никсами)

Vladislav
25.05.2017
02:45:41
и да, это первый раз когда мне в работе пригодился кастомный аллокатор)

Alexander
25.05.2017
02:46:15
Можно выделить на страницу больше и положить метадату в конец (типа оригинальный поинтер) и руками выровнять

Vladislav
25.05.2017
02:46:15
внутри буста пачка #ifdef'ов на десяток разных случаев

Stanislav
25.05.2017
02:46:24
и да, это первый раз когда мне в работе пригодился кастомный аллокатор)
думаю в геймдеве их активно должны юзать, поидее, надоп оглядеть сорцы UE4 на это )

Stanislav
25.05.2017
02:46:51
пжди

http://en.cppreference.com/w/c/memory/aligned_alloc

Google
Stanislav
25.05.2017
02:46:53
а это?

Vladislav
25.05.2017
02:47:05
Stanislav
25.05.2017
02:47:14
а тьфу

там же вектор

Alexander
25.05.2017
02:47:38
да, это самый портабельный способ, но не самый эффективный
Особенно когда аллокатор бадди или слаб внутри...

Vladislav
25.05.2017
02:48:21
http://en.cppreference.com/w/c/memory/aligned_alloc
в виндовс его тоже нет, а так-то можно его в свой аллокатор завернуть тоже

Stanislav
25.05.2017
02:49:32
Vladislav
25.05.2017
02:50:35
внутри буста пачка #ifdef'ов на десяток разных случаев
во #if defined(BOOST_ALIGN_USE_ALLOCATE) #include <boost/align/detail/aligned_alloc.hpp> #elif defined(_MSC_VER) && !defined(UNDER_CE) #include <boost/align/detail/aligned_alloc_msvc.hpp> #elif defined(__MINGW32__) && (__MSVCRT_VERSION__ >= 0x0700) #include <boost/align/detail/aligned_alloc_msvc.hpp> #elif MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 #include <boost/align/detail/aligned_alloc_posix.hpp> #elif MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 #include <boost/align/detail/aligned_alloc_macos.hpp> #elif defined(__ANDROID__) #include <boost/align/detail/aligned_alloc_android.hpp> #elif defined(__SunOS_5_11) || defined(__SunOS_5_12) #include <boost/align/detail/aligned_alloc_posix.hpp> #elif defined(sun) || defined(__sun) #include <boost/align/detail/aligned_alloc_sunos.hpp> #elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600) #include <boost/align/detail/aligned_alloc_posix.hpp> #else #include <boost/align/detail/aligned_alloc.hpp> #endif

Admin
ERROR: S client not available

Stanislav
25.05.2017
02:52:09
хм, идею для бота придумал, надо алексу написать

Berkus
25.05.2017
06:09:45
Всё либы есть, но эта хреновина их не находит.
указывай пути, cmake находит их только если они стандартные, а mingw может ставить куда угодно

у меня juci собралась с одного пинка

Stanislav
25.05.2017
06:11:25
поэтому хоть и заявленно кроссплатформа, но все же

Berkus
25.05.2017
06:12:09
если вместо него воткнуть boost::alignment::aligned_allocator<__m256i> то все работает корректно)
целый буст тащить ради одного маленького аллокатора...

Stanislav
25.05.2017
06:12:26
кстати, думаю уже о том чтобы сделать нехуевый контрибьют в vcpkg, поделить буст на либы, а то он херову тучу временис обирается

Vladislav
25.05.2017
06:13:12
целый буст тащить ради одного маленького аллокатора...
разумеется, перед продакшном я буст уберу

Google
Berkus
25.05.2017
06:13:29
разумеется

Anton
25.05.2017
06:13:48
у меня juci собралась с одного пинка
Там походу не все модули были для cmake.

Berkus
25.05.2017
06:13:55
Там походу не все модули были для cmake.
я просто по readme прощелкал brew install, cmake, ninja и оно собралось и даже работает

Stanislav
25.05.2017
06:15:09
во всех нормальных пакадж менеджерах уже поделили. догоняйте
я что то пропустил? и есть норм менеджеры либ для С++ ?

Berkus
25.05.2017
06:16:42
я что то пропустил? и есть норм менеджеры либ для С++ ?
есть примерно десяток, все примерно 20% юзабельности

Stanislav
25.05.2017
06:16:48
Berkus
25.05.2017
06:17:01
они все такое себе, некоторые просто более такое

Stanislav
25.05.2017
06:17:12
мне не нравится что это поверх богомерзкого cmake делают

Berkus
25.05.2017
06:17:14
но ничем я бы не стал пользоваться для своего проекта

Stanislav
25.05.2017
06:17:21
абсолютно все

Berkus
25.05.2017
06:17:32
потому что cmake рулит

Stanislav
25.05.2017
06:17:39
он херовый же

очень

Berkus
25.05.2017
06:17:47
он практичный и удобный

Vladislav
25.05.2017
06:17:55
Berkus
25.05.2017
06:17:58
и к нему есть туева гора модулей

уже написанных и работающих

а для вашего гипа - нету

Страница 902 из 2477