Weekly 7 #52

Feb 07, 2014 23:22

1. C++ atomics and memory ordering
Как ускорить атомики в C++ на x86 с помощью смягчения требований к последовательности обращений к памяти.

2. Haskell в продакте: Отчёт менеджера проекта
Плюсы и минусы использования Haskell в промышленной разработке. В принципе, ничего очень уж интересного там не написано, но статья подкупила ощущением ( Read more... )

weekly 7, ссылки

Leave a comment

Comments 15

archaicos February 8 2014, 09:51:45 UTC
Ещё касательно структур для текста:
http://en.wikipedia.org/wiki/Rope_%28data_structure%29

Reply

polycode February 8 2014, 19:12:49 UTC
Спасибо, интересная штука.

Reply


ex0_planet February 8 2014, 09:51:54 UTC
По шестому пункту ничего кроме мата сказать не могу.

Ибо условный архитектор условного проекта будет теперь вынужден выбирать из:

1. C++ 91 (C с классами), на самом деле используется в over 9000 контор, где средний диаметр головы программиста чуть меньше чем у всяких там гуглоидов.

2. C++ 98, возможно с tr1/tr2 и бустом (ибо могут быть ограничения компилятора на данной платформе).

3. C++ 11

4. C++ 14, который, сука, такой же как 11 но пофикшенный.

По идее, надо бы забыть C++11 как можно скорее, и сразу начать пользоваться 14, но не получится, ибо уже написана некоторая часть кода, и программистам теперь придется помнить вещи типа "а вот этот модуль/фреймворк/библиотека у нас еще под 11 стандарт написан, туда такие-то вещи не совать".

Reply

thedeemon February 8 2014, 10:25:59 UTC
Есть еще фактор "мы сидим на MSVC 2010, которая половину этого не умеет".

Reply

some41 February 8 2014, 16:17:53 UTC
Половину не умеет 2013. 2010 не умеет процентов 80.

Reply

ex0_planet February 8 2014, 18:50:11 UTC
Значит, просто проблема отодвигается лет на пять :-)

Reply


mstone February 8 2014, 17:30:33 UTC
Ironically, статья по первой ссылке является наилучшей иллюстрацией к единственному там правильному абзацу:

Any time you deviate from sequential consistency, you increase the complexity of the problem by orders of magnitude.

Orders of magnitue вовсе не гипербола, раз уж даже умница Милевский умудрился, оступив от этого правила, смешать в кучу тёплое с мягким и написать чисто вредительский пост.

Если действительно хочется разобраться с атомиками и memory ordering вообще, крайне рекомендую "atomic<> weapons" Саттера:

http://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2
http://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2

Reply

polycode February 8 2014, 19:17:09 UTC
Как появятся свободные 3 часа, обязательно посмотрю. Что, совсем всё плохо у Бартоша?

Reply

mstone February 9 2014, 06:00:37 UTC
Совсем плохо. Он и сам там в апдейте поделился что комментаторы Энтони и Дмитрий накормили его вороной. Энтони -- автор "C++ Concurrency in Action" (не читал, не знаю) и многих ответов на SO (читал, полезные). Дмитрий -- автор отличного www.1024cores.net, до недавнего времени работал в Интел, с год назад перешёл в Гугл, сейчас в числе прочего пилит race condition detector для clang.

Не пожалей времени на Саттера до того как будешь читать что-либо другое на эту тему. Can't stress that enough.

Reply

polycode February 9 2014, 18:15:14 UTC
Хорошо, спасибо.

Reply


unknown_orient February 11 2014, 14:28:44 UTC
Я про gap buffer узнал из исходников notepad++, когда выяснял куда он отжирает столько памяти :)

Reply

polycode February 11 2014, 18:34:18 UTC
Хехе :)

Reply


Leave a comment

Up