gentoo.ru
Общение на окологентушные темы
gentoo@conference.gentoo.ru
Пятница, 22 января 2016< ^ >
Pinkbyte установил(а) тему: Gentoo Linux || FAQ: http://www.gentoo.ru/faq || Вставки более 3 строк → app-text/wgetpaste || Логи: http://gentoo.ru/jabber/logs/ || Языками чешут в talks@conference.gentoo.ru ||  Фортунки http://fortunes.gentoo.ru || Дерево portage Gentoo официально переехало на git!
Конфигурация комнаты
Участники комнаты

GMT+3
[00:02:37] 0xd34df00d вышел(а) из комнаты: Disconnected: closed
[00:03:53] 0xd34df00d вошёл(а) в комнату
[00:06:06] Desu вышел(а) из комнаты
[00:07:32] edgbla вошёл(а) в комнату
[00:08:04] Desu вошёл(а) в комнату
[00:33:16] bober2000 вышел(а) из комнаты: Replaced by new connection
[00:33:26] bober2000 вошёл(а) в комнату
[00:49:49] Desu вышел(а) из комнаты
[00:53:14] meow вышел(а) из комнаты: Replaced by new connection
[00:54:30] meow вошёл(а) в комнату
[01:03:21] meow вышел(а) из комнаты: Replaced by new connection
[01:03:37] meow вошёл(а) в комнату
[01:11:44] nis вышел(а) из комнаты
[01:13:08] bober2000 вышел(а) из комнаты
[01:19:33] evadim вышел(а) из комнаты
[01:58:12] edgbla вышел(а) из комнаты
[02:39:45] beelzebubbie вышел(а) из комнаты
[03:24:00] Civilian вышел(а) из комнаты
[04:50:02] krigstask вышел(а) из комнаты
[04:51:05] krigstask вошёл(а) в комнату
[05:06:30] Night Nord вышел(а) из комнаты
[05:28:40] hitecnologys вошёл(а) в комнату
[06:55:45] beelzebubbie вошёл(а) в комнату
[08:10:18] Desu вошёл(а) в комнату
[08:25:17] slepnoga вошёл(а) в комнату
[08:30:32] <j123123> 0xd34df00d: Я тут как раз по твоей части нашел
[08:30:43] <j123123> http://govnokod.ru/18748#comment311527
есть знакомый упоротый чувак и он тащит хаскилизмы в кресты:
http://bartoszmilewski.com/2013/11/13/functional-data-structures-in-c-lists/
https://www.fpcomplete.com/blog/2012/06/asynchronous-api-in-c-and-the-continuation-monad
http://bartoszmilewski.com/2015/05/25/using-monads-in-c-to-solve-constraints-4-refactoring/
и тому подобное в
https://plus.google.com/u/0/+BartoszMilewski/posts
[08:30:59] <j123123> дедфуд ведь тоже чем-то таким занимается
[08:49:05] <j123123> в своих личкрафтах
[08:52:01] <j123123> Только вот наверняка эти попытки сделать хаскель из плюсов приведут к диким тормозам т.к. компилятор плюсов просто не заточен чтобы делать нетривиальные высокоуровневые оптимизации, завязанные на всякую там функциональщину и отсутствие побочных эффектов.
[10:21:06] evadim вошёл(а) в комнату
[11:01:53] Vurtatoo_work вошёл(а) в комнату
[11:08:53] beelzebubbie вышел(а) из комнаты
[11:22:17] bober2000 вошёл(а) в комнату
[11:26:44] beelzebubbie вошёл(а) в комнату
[11:36:02] evadim вышел(а) из комнаты
[12:26:58] eegorov вышел(а) из комнаты
[12:30:22] eegorov вошёл(а) в комнату
[13:29:40] Civilian вошёл(а) в комнату
[13:34:42] slepnoga вышел(а) из комнаты
[13:45:03] Civilian вышел(а) из комнаты
[13:54:57] medvedko вошёл(а) в комнату
[14:05:36] meow вышел(а) из комнаты: Replaced by new connection
[14:06:42] meow вошёл(а) в комнату
[14:10:09] OKTAVIUS вошёл(а) в комнату
[14:22:09] meow вышел(а) из комнаты: Replaced by new connection
[14:22:29] meow вошёл(а) в комнату
[14:29:31] meow вышел(а) из комнаты: Replaced by new connection
[14:29:47] meow вошёл(а) в комнату
[14:31:03] Night Nord вошёл(а) в комнату
[14:40:30] Night Nord вышел(а) из комнаты
[14:50:36] 0xd34df00d вошёл(а) в комнату
[14:52:46] meow вышел(а) из комнаты: Replaced by new connection
[14:53:04] meow вошёл(а) в комнату
[14:54:34] Civilian вошёл(а) в комнату
[15:12:40] meow вышел(а) из комнаты
[15:14:41] 0xd34df00d вышел(а) из комнаты: Disconnected: Replaced by new connection
[15:14:51] 0xd34df00d вошёл(а) в комнату
[15:17:55] meow вошёл(а) в комнату
[15:20:03] meow вышел(а) из комнаты: Replaced by new connection
[15:20:25] meow вошёл(а) в комнату
[15:22:01] Civilian вышел(а) из комнаты
[15:28:48] intellect вышел(а) из комнаты
[15:32:12] <slepnoga> че то зима холодная
[15:32:12] Civilian вошёл(а) в комнату
[15:32:14] edgbla вошёл(а) в комнату
[15:32:19] <slepnoga> весь топик поморозило
[15:42:33] Civilian вышел(а) из комнаты
[15:52:35] <0xd34df00d> j123123: да нормально там все.
[16:11:54] medvedko вышел(а) из комнаты
[16:24:50] Civilian вошёл(а) в комнату
[16:27:05] Civilian вышел(а) из комнаты
[16:27:19] Civilian вошёл(а) в комнату
[16:27:32] Civilian вышел(а) из комнаты
[16:39:05] Desu вышел(а) из комнаты: Replaced by new connection
[16:39:15] Desu вошёл(а) в комнату
[16:57:15] Desu вышел(а) из комнаты
[16:57:36] Desu вошёл(а) в комнату
[17:01:55] meow вышел(а) из комнаты
[17:07:40] meow вошёл(а) в комнату
[17:16:55] Vurtatoo_work вышел(а) из комнаты
[17:29:02] WiseLord вышел(а) из комнаты
[17:29:58] Лёха вышел(а) из комнаты
[17:43:16] <j123123> 0xd34df00d: Нет, ненормально
[17:43:25] <j123123> я ж смотрел на твой код через ассемблер
[17:43:40] <j123123> на каждый чих делается Vtable и вообще куча какого-то мусора
[17:49:34] <0xd34df00d> Она прям в рантайме что ли строится?
[17:49:48] <0xd34df00d> Покажи влияние на производительность, а потом поговорим.
[18:00:52] krigstask вышел(а) из комнаты
[18:06:10] meow вышел(а) из комнаты
[18:06:31] meow вошёл(а) в комнату
[18:15:02] nis вошёл(а) в комнату
[18:22:57] Desu вышел(а) из комнаты
[18:23:30] Desu вошёл(а) в комнату
[18:27:28] meow вышел(а) из комнаты: Replaced by new connection
[18:27:49] meow вошёл(а) в комнату
[18:28:09] meow вышел(а) из комнаты
[18:29:02] <slepnoga> 0xd34df00d: целых полтора цикла ALU, ты чё :)
[18:29:10] meow вошёл(а) в комнату
[18:29:15] <slepnoga> это тааааакк тоормооозит
[18:29:26] <slepnoga> прям кнопки залипають
[18:31:55] 0xd34df00d вышел(а) из комнаты: Disconnected: Replaced by new connection
[18:32:05] 0xd34df00d вошёл(а) в комнату
[18:32:11] meow вышел(а) из комнаты
[18:33:09] meow вошёл(а) в комнату
[18:36:30] krigstask вошёл(а) в комнату
[18:49:35] Лёха вошёл(а) в комнату
[19:19:02] slepnoga вышел(а) из комнаты
[19:20:39] slepnoga вошёл(а) в комнату
[19:35:30] krigstask вышел(а) из комнаты
[19:36:30] krigstask вошёл(а) в комнату
[19:50:55] krigstask вышел(а) из комнаты
[19:51:26] krigstask вошёл(а) в комнату
[20:03:18] krigstask вышел(а) из комнаты
[20:03:55] <j123123> slepnoga: 0xd34df00d: Тормозит это когда мемоизация не генерируется нормальная
[20:04:33] <j123123> т.е. нет оптимизации, которая б учитывала "чистоту" чистой функции, к которой прикручена мемоизация
[20:04:45] krigstask вошёл(а) в комнату
[20:04:49] <j123123> т.е. мемоизация сама по себе вроде как не чистая т.к. меняет некий массив в памяти
[20:05:01] <j123123> но это можно "абстрагировать" и считать ее чистой
[20:05:48] <nis> j123123: ты думаешь от этого код фуда стал медленней что написан на С++?
[20:05:49] <j123123> вообще, если уж перейти на уровень ассемблера, никакой чисто-функциональщины там нет вообще и быть не может. Функциональщина она в абстракциях достигается.
[20:07:06] <j123123> nis: Я думаю что плюсы это не подходящий ЯП чтобы на нем писать функционально.
[20:07:29] <nis> j123123: для тебя или вообще?
[20:07:34] <j123123> я думаю что вообще
[20:07:45] <j123123> но для меня точно неподходящий
[20:07:52] <nis> про вообще - это спорный вопрос
[20:07:58] <j123123> насчет "вообще" у меня конечно есть сомнения
[20:08:07] <nis> так как самый лучший язык это тот который ты знаешь лучше всего
[20:08:14] <j123123> нет, неверно
[20:08:26] <j123123> самый лучший - это который подходит для конкретной задачи
[20:08:39] <j123123> А самого лучшего языка "вообще" - нет
[20:08:43] <0xd34df00d> j123123: во-первых, для мемоизации можно таскать с собой мапу, и это правильное решение.
[20:08:44] <nis> j123123: если ты его не знаешь - то задача не будет решена
[20:09:01] <nis> так что твой вариант также не верен
[20:09:16] <0xd34df00d> Во-вторых, я не понимаю, как из отсутствия автомемоизации (а ее и в хаскеле нет) ты делаешь вывод о неприменимости функционального подхода.
[20:09:28] <j123123> nis: Значит задача должна решаться не тобой, или ты должен выучить другой язык, который лучше подходит под задачи
[20:09:48] <nis> j123123: неправильный подход
[20:10:30] <nis> с любой точки зрения
[20:10:31] <j123123> 0xd34df00d: Применим, но неэффективен ввиду отсутствия механизмов, которые бы позволяли делать оптимизации. Кроме того, это избыточно
[20:10:57] <j123123> можно для частных случаев сделать более оптимально, чем тебе будет компилятор делать для общего случая
[20:11:15] <j123123> хотя преждевременная оптимизация это конечно зло
[20:11:32] <j123123> но писать код, который потом с 99% придется выкинуть - тоже как-то неокич
[20:11:34] <nis> j123123: гонятся за компилятором это неблагодарное занятие
[20:11:51] <nis> и к тому же потерявшее смысл
[20:12:03] <j123123> Нет, не потерявшее
[20:12:11] <nis> потерявшее
[20:12:19] <j123123> (19:01:04) nis: j123123: неправильный подход
Вполне правильный
[20:12:27] <j123123> DSL
[20:12:31] <j123123> и все такое
[20:12:56] <j123123> Я в компиляторах баги оптимизатора обнаруживаю и репорчу
[20:13:01] <nis> DSL тебе формирует клей на основе того что есть, но в голяке он бесполезен
[20:16:20] <j123123> DSL бывает разный
[20:16:21] <nis> j123123: а потом после всех этих весёлых патчей я беру компилятор и пытаюсь добиться стабильной работы там где требуется монотонность
[20:16:49] <j123123> в каком смысле "монотонность"?
[20:16:51] <nis> и радуюсь каждый раз разному выхлопу при изменение всего одного минора
[20:17:41] <0xd34df00d> j123123: что избыточно? О каких именно оптимизациях кроме мемоизации ты говоришь?
[20:17:47] <nis> j123123: основное правило систем нижнего уровня это предсказуемость
[20:18:15] <j123123> 0xd34df00d: О том чтоб... Мы ж уже обсуждали это. Опять по-новой?
[20:18:37] <0xd34df00d> И я удивился, как clang хорошо оптимизирует символьное дифференцирование на типах, кстати. Уровень ручного кода.
[20:19:07] <j123123> nis: Тогда писать на асме надо. Там почти 100% предсказуемость
[20:19:17] <nis> j123123: смешно
[20:19:37] <0xd34df00d> Нет.
[20:19:37] beelzebubbie вышел(а) из комнаты
[20:19:40] <0xd34df00d> Микрокод же.
[20:19:49] <j123123> писать микрокод
[20:20:00] nis представил себе 15 млн строк кода на С конвертированных в ассемблерный листинг
[20:20:04] <j123123> или собрать свой процессор из FPGA
[20:20:12] <j123123> и писать под него микрокод
[20:20:23] <j123123> и потом еще писать на ассемблере под этот процессор
[20:20:31] beelzebubbie вошёл(а) в комнату
[20:20:54] nis хочет посмотреть на это, особенно на отладку модели процессора
[20:21:04] <j123123> http://goo.gl/tEUqkr фиговый короче у шланга оптимизатор
[20:21:21] <j123123> я этот бред кстати хотел зарепортить, только все никак не соберусь
[20:21:22] <j123123> лень
[20:21:56] <j123123> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68027 gcc там тоже делает бред, но не настолько
[20:22:27] <j123123> шланг же делает зачем-то 2 cmp
[20:22:32] <j123123> глупенький
[20:23:13] <j123123> быстрее всего будет так сделать, но компиляторы не настолько умны
          cmpl    $100, %edi
         jg      a1
         jne     a2
         jmp     a3
[20:24:00] <j123123> и это, скажу я вам, достаточно простой код
[20:24:11] <nis> j123123: ну вообще до такого оптимизатору далеко
[20:24:48] <nis> так как ты раскладываешь блок условия а потом на основе его строишь граф
[20:25:26] <nis> j123123: в любом случае у тебя будут 3 джампа
[20:25:56] <j123123> зато меньше cmp будет
[20:26:06] <nis> тут да
[20:26:16] <nis> с точки зрения шланга это был глупый вариант
[20:26:38] <nis> причём настолько индусский вариант я и предположить не смог
[20:28:41] <nis> j123123: я вообще не знаю откуда эти маджики взялись
[20:28:53] <nis> точнее не могу понять как к этому надо было придти
[20:30:10] evadim вышел(а) из комнаты
[20:30:20] <nis> посмотрел по разным версиям компилятора и понял
[20:31:18] slepnoga вышел(а) из комнаты
[20:31:46] <nis> j123123: вот если взять кланг 3.0 то код получается наиболее близкий к твоему варианту
[20:32:04] <j123123> все равно там два cmp
[20:32:09] <j123123> а достаточно одного
[20:32:19] <nis> ну я говорю что это можно поправить
[20:32:28] <j123123> ближе всего интелевый компилятор
[20:32:37] <j123123> хотя там все равно лишний слой переходов
[20:32:42] <nis> ну ты сравнил
[20:32:46] <nis> а почему лишний
[20:32:59] <j123123> Ну он там меток натыкал
[20:33:03] <nis> у условных переходов ограничение на дальность
[20:33:16] <nis> тут тоже не следует это забывать
[20:33:16] <j123123> а там оно в пределах 32-битки умещается
[20:33:28] <j123123> т.е. там мемори мап такой
[20:33:38] <nis> так у условных это +-127
[20:33:44] <nis> байт
[20:34:45] <0xd34df00d> Какое-то ненужное байтосовокупление.
[20:35:02] <j123123> nis: Там и у джампа обычного будет ограничение на 32-бит адрес емнип
[20:35:19] <nis> j123123: если не near то да
[20:35:27] <nis> точнее наоборот
[20:35:44] <nis> near или классический дают ограничение в адресную плоскость
[20:35:51] <nis> но можно сделать far
[20:36:00] <j123123> короче, в обычных jmp тот же режим адресации должен быть, что и у jne jge и проч
[20:36:01] <nis> тогда будет + сегментный регистр
[20:36:26] <nis> j123123: jXX это двубайтные команды
[20:36:36] <nis> там второй байт кол-во байт в сторону
[20:36:46] <j123123> да знаю я
[20:36:56] <j123123> смещение относительно текущей позиции
[20:37:03] <nis> я про то что у тебя один фиг будет лапша
[20:37:17] <nis> 0xd34df00d: лишний оператор сравнения
[20:37:23] <nis> это да трешак
[20:37:31] <nis> + вычурная логика
[20:37:42] <nis> которая при отладке ломает мозг
[20:39:21] <j123123> nis: Короче, если можно сделать tailcall вот так "jmp     a1(int)"
то должно быть можно и делать "jg     a2(int)" "jl     a3(int)"
[20:39:27] <j123123> и прочие варианты
[20:39:54] <nis> ну если ты уложился в условия то да
[20:39:55] <j123123> они этот tailcall прикрутили только к jmp инструкции
[20:43:48] krigstask вышел(а) из комнаты
[20:44:30] krigstask вошёл(а) в комнату
[20:51:30] medvedko вошёл(а) в комнату
[21:04:35] meow вышел(а) из комнаты
[21:05:41] meow вошёл(а) в комнату
[21:18:47] edgbla вышел(а) из комнаты
[21:26:54] slepnoga вошёл(а) в комнату
[22:19:30] edgbla вошёл(а) в комнату
[22:32:19] medvedko вышел(а) из комнаты
[22:34:37] meow вышел(а) из комнаты: Replaced by new connection
[22:34:56] meow вошёл(а) в комнату
[22:46:02] Night Nord вошёл(а) в комнату
[22:48:53] meow вышел(а) из комнаты: Replaced by new connection
[22:49:09] meow вошёл(а) в комнату
[22:53:58] 0xd34df00d вышел(а) из комнаты: Disconnected: closed
[23:18:36] meow вышел(а) из комнаты: Replaced by new connection
[23:19:15] meow вошёл(а) в комнату
[23:24:59] medvedko вошёл(а) в комнату
[23:28:53] meow вышел(а) из комнаты: Replaced by new connection
[23:29:07] meow вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!