
Anton
24.05.2017
22:33:34
Могу завтра у коллег спросить

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();
}

Stanislav
25.05.2017
02:29:34
а где аргумент в emplace_back ?

Vladislav
25.05.2017
02:30:02

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

Stanislav
25.05.2017
02:32:27

Vladislav
25.05.2017
02:32:51

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

Vladislav
25.05.2017
02:44:45
в принципе, свой аналогичный аллокатор написать тоже несложно
благо есть std::align и (местами) posix_memalign

Stanislav
25.05.2017
02:45:26

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

Vladislav
25.05.2017
02:46:47

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

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

Vladislav
25.05.2017
02:52:07

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

Berkus
25.05.2017
06:09:45
у меня juci собралась с одного пинка

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

Berkus
25.05.2017
06:12:09

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

Berkus
25.05.2017
06:13:55

Stanislav
25.05.2017
06:15:09

Anton
25.05.2017
06:15:23

Berkus
25.05.2017
06:16:42

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
и к нему есть туева гора модулей
уже написанных и работающих
а для вашего гипа - нету