@ProCxx

Страница 1644 из 2477
Berkus
12.01.2018
00:07:23
secure, not safe

Anton
12.01.2018
00:07:39
Berkus
12.01.2018
00:08:57
интересно не оптимизируется ли он до memset в случае POD-ов

Google
Berkus
12.01.2018
00:10:24
ну и тогда его тоже компилер может выкинуть )

Vladislav
12.01.2018
00:10:39
да)

День Спокойного Превосходства
12.01.2018
00:37:26
чем отличается секурное обнуление от несекурного?

Berkus
12.01.2018
00:39:22
День Спокойного Превосходства
12.01.2018
00:39:49
что это означает на низком уровне?

Berkus
12.01.2018
00:39:54
чем отличается секурное обнуление от несекурного?
компилятор имеет право в некоторых случаях выкинуть memset; если ты этим мемсетом зачищал например приватный ключ, то может получиться ой

День Спокойного Превосходства
12.01.2018
00:42:09
хм

а в нативных апи интерестно в чём разница. там есть RtlSecureZeroMemory и RtlZeroMemory внутри ntdll в винде

Berkus
12.01.2018
00:48:23
std::fill_n(arr.begin(), arr.end(), 0); превратится в memset, который компилятор вполне может выкинуть

Alex Фэils?︙
12.01.2018
00:49:30
понятно, std::fill в любом случае не будет опущен
тут же выше написано было, что может в мемсет превратиться

День Спокойного Превосходства
12.01.2018
01:04:50
а

Google
День Спокойного Превосходства
12.01.2018
01:04:56
оке

День Спокойного Превосходства
12.01.2018
01:35:05
То же самое
нет, так не может быть

их можно вызввать неявно потому что например

Ioann V
12.01.2018
03:23:32
std::fill_n(arr.begin(), arr.end(), 0); превратится в memset, который компилятор вполне может выкинуть
Можно кстати прагму вписать. Вроде есть такая которой можно указать компилятору на то, чтобы код он не оптимизировал. Ну такое себе, конечно непереносимое решение

Igor
12.01.2018
07:17:04
пони в моём с++? ну уж нет.
На юзкейсе "скрестить cPegasus и cUnicorn" весьма наглядно объяснять dreaded diamond и виртуальное наследование, так что я не согласен

Vsevolod
12.01.2018
07:38:27
@zamazan4ik лучше бы pull request прислал для libucl, а то ж он у меня больше для сишечки...

Aleksey
12.01.2018
07:52:23
memset_s кому нужно гарантированно очистить память.

Alex Фэils?︙
12.01.2018
07:59:26
А его занесли в кресты?

Aidar
12.01.2018
08:01:47
А чо нельзя std::fill с volatile?

Aleksey
12.01.2018
08:10:45
http://en.cppreference.com/w/c/string/byte/memset

errno_t memset_s( void *dest, rsize_t destsz, int ch, rsize_t count ) (2) (since C11)

Matwey
12.01.2018
08:11:34
C11 же не занесли в C++11

Alex Фэils?︙
12.01.2018
08:23:19
C11 же не занесли в C++11
@antoshkka го исправим

Эдуард
12.01.2018
08:28:34
Когда @AlexFails слышит про технологию Х, которой нет, первое, что он пишет "го запилим Х" :)) Тебе уже макрос впору заводить или бота настроить на автоответ на такие сообщения :))

Эдуард
12.01.2018
08:30:08
Именно))

Matwey
12.01.2018
08:31:02
Но при чем тут го? Чатик же про плюсы

Google
Nik
12.01.2018
09:05:38
А на чем сейчас православно REST запилить в плюсах можно? Так чтоб и epoll/kqueue/iocp умело и уровнем повыше boost.asio и poco?

Anton
12.01.2018
09:07:55
poco вроде не умеет epoll/kqueue

Igor
12.01.2018
09:08:09
А, сорян, рестино на asio вроде

Пишите своё на libevent

Alexander
12.01.2018
09:09:22
@zamazan4ik лучше бы pull request прислал для libucl, а то ж он у меня больше для сишечки...
ну а чего ты не присылаешь PR? ? Для начала нужно найти тех, кто пакеты готов делать. А там уже как руки дойдут

Anton
12.01.2018
09:11:24
вот есть статейка бенчмарк https://habrahabr.ru/post/207460/

Nik
12.01.2018
09:12:51
https://bitbucket.org/sobjectizerteam/restinio-0.4
О, интересно, спасибо

Пишите своё на libevent
Его завезли в винду? Да и цель не писать свой сервер, а поднять микросервис на плюсах за 10 минут

Anton
12.01.2018
09:14:53
если быстро и не особо парит производительность то poco подойдет

Alex Фэils?︙
12.01.2018
09:16:24
Да есть в винде сервисы

Nik
12.01.2018
09:17:49
Про винду не знаю. Но свой сервис на винде? Ненене)
Щас приходится вот это использовать - вот где боль https://msdn.microsoft.com/en-us/library/windows/desktop/aa364510(v=vs.85).aspx

Igor
12.01.2018
09:19:52
Щас приходится вот это использовать - вот где боль https://msdn.microsoft.com/en-us/library/windows/desktop/aa364510(v=vs.85).aspx
Не, сорян, я в винду не умею. Под ХР писал последний раз лет 5 назад

Igor
12.01.2018
09:23:39
Согласен

Antony
12.01.2018
09:26:14
@antoshkka го исправим
Занесли в C++17

Almaz
12.01.2018
09:27:48
Привет

Google
Antony
12.01.2018
09:28:36
Хаюшки

Matwey
12.01.2018
09:32:21
Привет
Приветики

Berkus
12.01.2018
09:34:21
А чо нельзя std::fill с volatile?
volatile это вообще про другое

Alexander
12.01.2018
09:34:41
Привет
Шалом ?

Berkus
12.01.2018
09:36:07
для роутинга есть несколько мелких либ, там можно ортогонально запилить в принципе

Серж
12.01.2018
09:37:17
volatile это про то что над этим объектом компилятор не должен выполнять оптимизаций, в том числе не оптимизирует memset если после него нет использований этого объекта, разве нет?

Nik
12.01.2018
09:37:48
за 10 минут? с каким функционалом?
А это важно? Обработчики get/post, данные форм и хэдеры. Никакой магии типа tls не нужно

Egor
12.01.2018
09:38:19
нет
А про что?

Berkus
12.01.2018
09:38:32
А про что?
In computer programming, particularly in the C, C++, C#, and Java programming languages, the volatile keyword indicates that a value may change between different accesses, even if it does not appear to be modified. This keyword prevents an optimizing compiler from optimizing away subsequent reads or writes and thus incorrectly reusing a stale value or omitting writes. Volatile values primarily arise in hardware access (memory-mapped I/O), where reading from or writing to memory is used to communicate with peripheral devices, and in threading, where a different thread may have modified a value.

Egor
12.01.2018
09:38:55
Кажется, что для корректного memory-mapped I/O нам недостаточно "indicates that a value may change"?

Потому что у девайса может быть адрес, по которому надо только писать.

Alexander
12.01.2018
09:39:28
А это важно? Обработчики get/post, данные форм и хэдеры. Никакой магии типа tls не нужно
анализ cors, безопасность... работа с бд... не ну если просто файлики по get отдавать или hello world в ответ кидать, то такое можно на плюсах за 10 минут)

Berkus
12.01.2018
09:39:36
фактически специфицирует что у чтения и записи может быть сайд-эффект, даже если компилятор считает иначе

Aidar
12.01.2018
09:40:06
Ну и что?

Google
Egor
12.01.2018
09:40:14
Окей. И кажется, что из этого в частности следует запрет практически всех оптимизаций?

А с memset, судя по гуглежу, проблема лишь в том, что они принимает указатель на обычные данные, не volatile?

Berkus
12.01.2018
09:40:54
Окей. И кажется, что из этого в частности следует запрет практически всех оптимизаций?
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1381.pdf прочитай вот тут почему даже volatile не будет работать

> the MIPSpro compiler and versions 3 and later of GCC cleverly zero out only the first byte and leave the rest of the pwd array intact.

> There has been recent notice that some compilers violate the standard by not always respecting the v o l a t i l e qualifier.

Berkus
12.01.2018
09:42:42
нет

Aidar
12.01.2018
09:42:49
Серж
12.01.2018
09:42:52
>compilers violate the standard это поэтому нельзя std::fill?

Berkus
12.01.2018
09:42:53
я процитировал что там написано, для тех, кто не умеет читать

Alex Фэils?︙
12.01.2018
09:43:05
BlackAndOrange
12.01.2018
09:43:07
Насколько я помю, если сделать #define volatile ничего не изменится

Aidar
12.01.2018
09:43:19
Плевать на компиляторы которые не хотят соблюдать стандарты

BlackAndOrange
12.01.2018
09:43:30
По стандарту должно, да

Egor
12.01.2018
09:43:36
Berkus
12.01.2018
09:43:37
Плевать на компиляторы которые не хотят соблюдать стандарты
ну а им плевать на твою "безопасную" функцию

Aidar
12.01.2018
09:43:45
С++ не о компиляторах

Berkus
12.01.2018
09:43:53
Плевать на компиляторы которые не хотят соблюдать стандарты
мы про портабельный код говорим или опять "Только мой мсвц 11.5.1"?

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