
Anton
24.01.2018
05:19:11
почему это

Ilia
24.01.2018
05:21:47
Не знаю, так написали...

Anton
24.01.2018
05:22:51
ну до mfc ему далеко )

Evgeniy
24.01.2018
05:48:50

Google

Pepe
24.01.2018
05:51:31
ну ты посмотри какой он асм генерирует
я не разбираюсь в этом особо, понял уже что там только одна инструкция, хотя не знаю как это связано со спектр и мелтдаун и можно ли без брэнч предикшн работать используя не только mov

Александр
24.01.2018
06:33:34

Pepe
24.01.2018
06:35:23

Evgeniy
24.01.2018
06:37:13

Ilia
24.01.2018
06:43:36

Ioann V
24.01.2018
06:45:27
Кажется кто то очень долго писал на mfc :)

Anton
24.01.2018
06:47:04
Давайте не будем кидаться общими фразами, а в двух словах изложим претензии к WTL уже

Maxim
24.01.2018
07:13:41
Всем доброе утро. Вопрос по CMake. Может кто нибудь подсказать, при создании dll можно ли передать линковщику в качестве аргумента .def файл кроме как явно изменяя переменную CMAKE_SHARED_LINKER_FLAGS?

Maxim
24.01.2018
07:26:19
ну до mfc ему далеко )
Все равно годная вещь wtl. Чисто под винду вполне. В отличие от mfc просто другая идеология.

Anton
24.01.2018
07:27:20
я собсно и не спорю. знаю несколько вполне удачных крупных проектов на нем.

Viacheslav
24.01.2018
07:38:19

Maxim
24.01.2018
07:40:59

Google

Anatoly
24.01.2018
07:52:46

Anton
24.01.2018
07:53:11
это да...

Matwey
24.01.2018
08:56:59
Господа, а где-нибудь есть best practices как писать operator>> для enum типа?

Vsevolod
24.01.2018
08:59:04
да все через макросы :(
https://github.com/aantron/better-enums - что-то типа такого

Ilia
24.01.2018
09:00:09

Matwey
24.01.2018
09:01:53

Anton
24.01.2018
09:02:43
Речь про то что утверждать что WTL прям ужос ужос при этом одобрять MFC как минимум странно

Ilia
24.01.2018
09:03:25
Что странного? MFC на порядок по фукнционалу выше. Это минимум.

Anton
24.01.2018
09:04:18
winforms еще выше по функционалу

Ilia
24.01.2018
09:04:20
Ну и по сути WTL вообще не предназначен для программирования приложений.
Так, пару окошек накропать к OLE-объектам, нарисованным на ATL.
Ну, давай ещё с Oracle сравним...

Anton
24.01.2018
09:07:04
ладно, дело вкуса в общем. я к тому что сейчас wtl вполне себе норм, не заброшена и пилится потихоньку

Berkus
24.01.2018
09:51:29

Maxim
24.01.2018
10:10:08

Ilia
24.01.2018
10:16:43
Ну кстати может надо на него (на WTL) снова глянуть, версия 10 как-то должна внушать оптимизм...

Anton
24.01.2018
10:29:51
?☺️

Alexander
24.01.2018
11:58:16
https://habrahabr.ru/company/intel/blog/346822/

Google

Pavel
24.01.2018
12:02:13
как они ловко там взяли и выключили векторизацию вообще https://habrastorage.org/webt/ro/gq/dc/rogqdc6x0hr9udk8l9dr5fbjie4.png

Vsevolod
24.01.2018
12:02:22
лучше бы хеш-таблицы нормальные завезли :\

Alexander
24.01.2018
12:02:54

Vsevolod
24.01.2018
12:03:11
они по стандарту должны быть с бакетами
open hashing не удовлетворяет семантике стандарта AFAIK
ой, closed hashing, конечно
https://probablydance.com/2017/02/26/i-wrote-the-fastest-hashtable/ - навскидку

Antony
24.01.2018
12:17:22

Vsevolod
24.01.2018
12:18:13
хотя смотрю, вот, есть ext/pb_ds/cc_hash_table
closed hashing == open addressing

Antony
24.01.2018
12:20:45
open addressing быстрее, но стандарту не удовлетвояет. В open addressing другая инвалидация итераторов + не получится извлекать ноды из контейнера не меняя адресс хранимого объекта (полезная фишка С++17)

Vsevolod
24.01.2018
12:21:01
я об этом и написал выше

Vsevolod
24.01.2018
12:21:17
но скорость хеш таблиц зачастую бывает критическим моментом
https://github.com/vstakhov/jahash - я когда-то давно писал для сишки, а потом бросил, потому что тлен

Alexander
24.01.2018
12:25:18

Vsevolod
24.01.2018
12:25:37
в моих задачах встречаю такое постоянно
а вот iterators validity для unordered container даже не смотрел ни разу, ну и извлекать ноды из контейнера приходилось исчезающе редко (разве что для non-volatile коньтейнеров, но там совсем другая история)

Berkus
24.01.2018
13:27:33

Pavel
24.01.2018
13:34:46
https://godbolt.org/g/VodqEt

Admin
ERROR: S client not available

Google

Pavel
24.01.2018
13:34:48
или уже было?

Дед Пегас
24.01.2018
13:36:20
Чо за TAILCALL?

Vsevolod
24.01.2018
13:36:24
lfence

Дед Пегас
24.01.2018
13:36:25
А

Vsevolod
24.01.2018
13:37:07
типа для сброса спекулятивного исполнения always false бранча?

Berkus
24.01.2018
13:37:45
TAILCALL это хвостовая рекурсия
вместо
call func
ret
оно делает
jmp func
чтобы стек не засирать, шланг умеет такую оптимизацию

Vsevolod
24.01.2018
13:38:40
tailcall - это понятно
оно тут при чем вообще?

Berkus
24.01.2018
13:38:52
Чо за TAILCALL?
ты вопрос читал?

Vsevolod
24.01.2018
13:38:57
без retpoline он все равно так делает

Berkus
24.01.2018
13:38:59
я на него отвечаю

Vsevolod
24.01.2018
13:39:01
я про retpoline

Berkus
24.01.2018
13:39:10
я про вопрос на который я отвечаю

Vsevolod
24.01.2018
13:39:22
pause
lfence
jmp .LBB1_1
https://stackoverflow.com/questions/48089426/what-is-a-retpoline-and-how-does-it-work - ага, как обычно это уже было в Симпс^W^Wна stackoverflow
lfence, кстати, не останавливает speculative prefetch
но, видимо, speculative pipelining останавливает

Google

Vsevolod
24.01.2018
13:42:24
ага, об этом написано в update в этом ответе

Berkus
24.01.2018
13:44:04
> infinite loop that is never executed
хех

Дед Пегас
24.01.2018
13:45:50
> Naturally, protecting an indirect branch means that no prediction can occur.
КЛасс...

Vsevolod
24.01.2018
13:50:12
хм
а вот я взял туда и добавил try ... catch
и возврат из catch retpoline не стал обрабатываться
https://godbolt.org/g/C9rNBG