
Aidar
25.05.2018
16:29:33
там не про параллельность
там про cuncurrency

Побитый
25.05.2018
16:30:42

Spoonson
25.05.2018
16:30:49

Google

Max
25.05.2018
16:31:07
именно последовательное
r/a это уже более слабая модель памяти
для арм такая

Побитый
25.05.2018
16:38:35
там про cuncurrency
https://www.ozon.ru/context/detail/id/1919696/
А вот эту можешь оценить? Я её сейчас изучаю.

Aidar
25.05.2018
16:39:14
О уб и для уб

Побитый
25.05.2018
16:39:30
В смысле?

Aidar
25.05.2018
16:39:55
Дело в том что любой многопоточный код на плюсцах до 2011 это уб

Побитый
25.05.2018
16:40:27

Aidar
25.05.2018
16:40:31

Max
25.05.2018
16:40:33

Andrey
25.05.2018
16:41:05
Лучше Concurrency in Action

Aidar
25.05.2018
16:41:14

Google

Побитый
25.05.2018
16:42:02

Aidar
25.05.2018
16:42:09
Как писать уб?

Побитый
25.05.2018
16:42:25

/dev
25.05.2018
16:42:35

Побитый
25.05.2018
16:43:10
Ну это уб
Да не уб это, список уб фиксированный. Это не всё, чего в стандарте нет

Aidar
25.05.2018
16:43:24
Ну ващето есть гарантии от компилятора и платформы но это все равно уб с точки зрения языка

Max
25.05.2018
16:43:32
кстати в этой книге есть упоминания всяких штук интересных типа memory_order_consume и std::kill_dependency. интересно ктото их юзал?)

Aidar
25.05.2018
16:43:42
Потомучто существование гарантий не гарантировано
Существование каких-то правил ваще не гарантировано

Побитый
25.05.2018
16:44:16

Aidar
25.05.2018
16:44:37

/dev
25.05.2018
16:44:46

Побитый
25.05.2018
16:45:19

Aidar
25.05.2018
16:45:47

Побитый
25.05.2018
16:47:42
Уверен что это значит что правил 100% нет?
А то, что ты имеешь ввиду это unspecified. То есть "не указано в стандарте". Порядок вычисления аргументов unspecified. Но закладываться на него не значит получать UB. Так как всего что угодно произойти не может. Просто порядок вычисления аргуметов может быть рандомный. А UB значит, что может произойти всё что угодно, в том числе, твой компилятор может восстать и поработить мир.

Spoonson
25.05.2018
16:47:44
именно последовательное
а чеж тогда гцц в одном случае mfence впихивает, а в другом нет? https://godbolt.org/g/mPK3G6

Aidar
25.05.2018
16:48:14
Undefined - нет гарантий
Имхо, определение есть в стандарте

Google

Aidar
25.05.2018
16:49:06
Я не читал

Побитый
25.05.2018
16:49:45

Aidar
25.05.2018
16:51:30
Не, undefined это когда комитет не гарантирует и это может привести к последствиям когда дальнейшее исполнение не имеет смысла
А unspecified имеет смысл всегда
Если оно конечно не приводит к уб

Побитый
25.05.2018
16:52:55
Ну ты согласен, что undefined всегда указан явно в стандарте? Что это ограниченное множество ситуаций.

Aidar
25.05.2018
16:53:44
Я не уверен что оно ограниченое

Max
25.05.2018
16:57:13

Aidar
25.05.2018
16:57:50
Вроде неограничено

Spoonson
25.05.2018
16:58:08
который показывает, что на x86 модель памяти acq/rel, что и говорит гугл

Побитый
25.05.2018
16:58:20

Aidar
25.05.2018
16:58:27
unspecified behavior
[defns.unspecified]
behavior, for a well-formed program construct and correct data, that depends on the implementation

Max
25.05.2018
17:00:42
надо почитать

Побитый
25.05.2018
17:00:50

Max
25.05.2018
17:01:17
много раз видел, что на х86 чтение и запись в выровненные переменные атомарны

Spoonson
25.05.2018
17:01:40
модель памяти не только про атомарность

Max
25.05.2018
17:01:40
а атомик просто lock добавляет

Google

Max
25.05.2018
17:02:02
видимо в каких то случаях добавили mfence

Aidar
25.05.2018
17:02:34

Побитый
25.05.2018
17:02:53

Max
25.05.2018
17:03:07

Aidar
25.05.2018
17:05:04
Умею
Там ещё есть такое что оно либо unspecified либо implementation defied либо undefined либо defined, но это относится к тем штукам которые ОПИСАНЫ в стандарте

Побитый
25.05.2018
17:12:31

Aidar
25.05.2018
17:12:48

Побитый
25.05.2018
17:14:38
тут
Это абсурдно. Работа любой библиотеки не гарантируется стандартом. Значит ли это, что работа любой библиотеки undefined?

Aidar
25.05.2018
17:15:16
там нет понятия библиотек
да библиотеки уб, особенно динамические

Побитый
25.05.2018
17:20:47
Очень странное мнение. В моём понимании, ub это ограниченный набор ситуаций, который помечается в стандарте как ub. И только после пометки их выполнение перестает быть гарантированным. Вызов функции это не ub. А весь posix threads состоит из вызовов функций. При том поведение этих функций определяется платформой. То есть это implementation dependent behaviour.
В любом случае, я не буду продолжать далее спорить.

Scarf
25.05.2018
17:24:53

Побитый
25.05.2018
17:25:27

Aidar
25.05.2018
17:47:10
В си++ меньше 11

Valentin
25.05.2018
18:25:33
В какую сторону смотреть для парсера данных ?
Формат приходящих данных- строка переменной длины.
Список команд должен гибко расширяться при необходимости.
Ограничение- компилятор не умеет выше С++11.
Пока решение парсер-фабрика с пачкой ифов, что не есть круто

Egor
25.05.2018
18:27:59
ragel, если хватит лексера, флекс/бизон, если не хватит

Valentin
25.05.2018
18:28:57
Сильно требует памяти?

Google

Egor
25.05.2018
18:29:49
это всё сишное, память - таблицы для конечных автоматов

Ruslan
25.05.2018
18:52:39
Да, бери перл, чо :)
Гибче некуда

Valentin
25.05.2018
18:52:51
надо крайне тупо:D
AT команды разбирать

Ruslan
25.05.2018
18:53:05
Куда тупее регекспов?

Dmitry
25.05.2018
19:50:33
Список команд... Это что то вроде обработчика CLI?

Valentin
25.05.2018
19:50:52
AT команды, обычно их кидают SIM модули и прочее

Dmitry
25.05.2018
19:58:26
Они же там символьные. Никакие лексеры не нужны, они сами по себе уже набор лексем.
А парсер... Дык тоже вроде наколеночное решение должно быть.

Ruslan
25.05.2018
20:08:45
Готовое должно быть
Стопицот штук

Alex
25.05.2018
21:01:21

Valentin
25.05.2018
21:01:47
Хм, тоже вариант
Подумаю еще
Благодарю!

Некто
25.05.2018
21:02:33

Valentin
25.05.2018
21:02:51
Сейчас гляну, что такое.
да, только вход парсить
Lex уже выше подкидывали,хм