[03:46:02] <_valexey_> "В русскоязычном издании книги о Python все листинги выровнены по левому краю.
Да, юзернейм, ты все понял правильно: отступов нет ВООБЩЕ"
[07:37:16] <geniepro> о_О )))
[07:38:39] <geniepro> valexey: а чо на плюсах делаешь задачку, а не на окамле?????
[14:24:23] <s6> Аааа пусь на хаскелле делает
[14:28:01] <Е.Г.Ф.> понятие "ожиревшего яп"
[14:28:45] <geniepro> s6: на хаскеле он ниасилит же ))
[14:28:53] <Е.Г.Ф.> Я тож
[14:29:26] <Е.Г.Ф.> Я тут читал про сел4
[14:29:35] <geniepro> чо как?
[14:29:40] <Е.Г.Ф.> Его на хаскеле верифицировали
[14:29:44] <geniepro> ага
[14:29:51] <geniepro> потом на сишник переписали
[14:29:53] <Е.Г.Ф.> Статья википедии про L4
[14:29:58] <Е.Г.Ф.> Нене
[14:30:27] <Е.Г.Ф.> Его писали на си специальным образом чтоб провалидировать удобно
[14:31:05] <Е.Г.Ф.> А валидировали этот сишник хаскеллем
[14:31:48] <geniepro> https://github.com/seL4/seL4
[14:31:53] <Е.Г.Ф.> Потом ещё дополнительно валидировали компилятор си
[14:32:47] <Е.Г.Ф.> И теперь есть типа валидный компилятор сишечки
[14:33:30] <geniepro> ну как раз обсуждали тут CompCert C compiler -- он верифицированный компилятор почти полного подмножества си
[14:33:47] <geniepro> я пытался его собрать на выходных, но под вендой там такой гемор, что я ниасилил
[14:34:58] <geniepro> там для его сборки надо окамлевую либу Menhir собрать, она для пасринга вроде, не собралась что-то ((
[14:35:02] <Е.Г.Ф.> Дак это надо под диссер
[14:35:25] <Е.Г.Ф.> А не на выходных ≈)
[14:36:20] <Е.Г.Ф.> Охх старость не радость
[14:36:56] <Е.Г.Ф.> Читал тут про антропологию педагогики
[14:38:01] <Е.Г.Ф.> http://rusrand.ru/docconf/rossiyskoe-obrazovanie--antropologicheskoe-izmerenie
[14:38:12] <Е.Г.Ф.> Познавательно
[14:38:20] <valexey> я такие задачи решать на хаскеле не буду, я ж не псих :-)
[14:41:48] <Е.Г.Ф.> А ты брось всё и займись игрой в бисер
[14:42:25] <Е.Г.Ф.> Под старость лет
[14:43:31] <Е.Г.Ф.> И встрой юзефул имаге в хендлер - всё что не бисер будет идти в этот трап
[14:47:20] <Е.Г.Ф.> В хаскелле для этого говорят есть символ _|_
[14:52:00] <Е.Г.Ф.> Квест чистоты
[14:52:07] <geniepro> valexey: такие задачи чисто для хаскеля же ))
[14:52:37] <valexey> geniepro: отлично. значит вот ты решение на хаскеле и напишешь, которое порвет и плюсовое решение и всех остальных :-)
[14:52:57] <geniepro> Е.Г.Ф.: в хаскеле этот символ вот так выглядит: (_!_)
[14:53:07] <geniepro> valexey: чота лениво....
[14:53:18] <valexey> слиффф защитан!
[14:53:33] <geniepro> это хаскель меня ленью заразил ))
[14:53:59] <geniepro> ты лучше протестируй растовское решение прошлой задачки )
[14:54:15] <geniepro> подозреваю оно на уровне с++ ллвм будет
[14:57:44] <geniepro> Е.Г.Ф.: ⊥
[14:58:06] <valexey> с какими ключиками запускать, скинь плз
[14:58:11] <valexey> точнее компилять
[14:59:03] <valexey> и ваще, оформи в виде пул-реквеста.
[14:59:10] <valexey> на джихабе
[14:59:16] <valexey> https://github.com/valexey/bubble_test
[14:59:17] <valexey> сюда
[15:00:15] <geniepro> блин я систему переставлял, нету раста у мну на компе, надо снова ставить )
[15:00:33] <valexey> маздааай :-)
[15:05:23] <geniepro> а когда там химик успел добавить решение на фортране? о_О
[15:05:56] <valexey> 15 сентября :-)
[15:08:25] <geniepro> я там что-то добавил в твою репу -- пасмари, добавилось или нет?
[15:13:04] <valexey> форк есть, пулреквеста - нет
[15:13:19] <geniepro> о_О
[15:13:53] <valexey> это ж не svn :-)
[15:14:39] <geniepro> проверь снова
[15:15:12] <geniepro> там кнопка Close pull request -- нажать её?
[15:15:38] <valexey> есть реквест
[15:15:45] <valexey> не, не надо пока ничего жать
[15:15:56] <geniepro> а что она делает?
[15:18:07] <valexey> хез :-)
[15:18:11] <valexey> возможно отмена реквеста
[15:18:22] <valexey> применить пулреквест вроде как только йа могу
[15:19:08] <valexey> щща код проверю и зааппрувлю
[15:19:30] <geniepro> там ты ему дай опцию оптимизации какую-нить, без неё раст тормас
[15:19:42] <geniepro> -O2 кажись, не помню
[15:19:43] <valexey> йа в опциях раста не разбираюсь
[15:19:52] <geniepro> да там стандартные опции же
[15:19:55] <valexey> там еще говорили про LTO
[15:19:58] <valexey> или еще что-то
[15:20:01] <geniepro> это я хз
[15:20:14] <geniepro> проверял -- разницы большой не заметил, но я не замерял ))
[15:20:56] <valexey> o_O
[15:21:03] <valexey> мощно ты замерял ;-)
[15:21:23] <geniepro> попробуй: -O -C lto
[15:21:53] <geniepro> мне лень было разбираться с замерами времени на расте, не дошли руки всё )
[15:22:03] <geniepro> но так на взгляд оченно шустро было )
[15:29:48] <geniepro> вроде команда
rustc -O -C lto bubble.rs
годится
[15:30:16] <valexey> + let mut arr: [i32; N] = [0; N];
[15:30:24] <valexey> в расте нет int'a?
[15:30:40] <valexey> то есть нормального платформозависимого int'a
[15:31:48] <geniepro> я хз )) в примерах был i32 -- он же язык системного программирования ))
[15:32:20] <geniepro> там же в твоей задаче надо было 32-битные числа сортировать? вот я и указал явно разрядность
[15:32:31] <geniepro> вдруг просто int будет 64-битным
[15:32:57] <valexey> где было про 32битные инты в задаче? ;-)
[15:33:13] <geniepro> о_О на форуме в теме же было )
[15:35:05] <valexey> меньше фантазий, больше смотри на исходный текст описания задачи и на код на других ЯП :-)
[15:35:23] <valexey> https://github.com/valexey/bubble_test/blob/master/cpp/bubble.cpp
[15:35:28] <valexey> где ты тут 32битный инт видишь?
[15:35:41] <geniepro> Here’s a list of the different numeric types, with links to their documentation in the standard library:
i8
i16
i32
i64
u8
u16
u32
u64
isize
usize
f32
f64
[15:35:44] <valexey> https://github.com/valexey/bubble_test/blob/master/ocaml/bubble_safe.ml
[15:35:46] <valexey> а тут?
[15:36:04] <valexey> ну вот и используй isize, это вроде как единственное что платформозависимое.
[15:36:17] <valexey> хотя это больше на long похоже конечно
[15:36:22] <geniepro> isize -- это же для размеров массивов вроде
[15:36:37] <valexey> usize == size_t
[15:36:49] <valexey> isize - хз. прямого аналога нет. скорее это long
[15:37:35] <geniepro> Primitive Type isize [−]
The pointer-sized signed integer type.
[15:38:47] <valexey> ну я и говорю, скорее long
[15:41:01] <geniepro> а вроде там есть и просто int
[15:41:46] <geniepro> не, нету такого типа
[15:44:14] <valexey> т.е. фича в том, чтобы максимально комфортный для платформы тип выбрать.
[15:45:14] <geniepro> ну сейчас это дефакто 64 бита же
[15:45:34] <geniepro> 128-битные компы не скоро появятся, 32-битные уже уходят в прошлое
[15:46:35] <valexey> уходят, но ещё есть.
[15:47:17] <geniepro> если поменять на isize то в принципе компилируется
[15:47:31] <geniepro> работает вроде так же по времени
[15:48:20] <geniepro> вывод одинаковый -- багов вроде нет
[15:50:24] <geniepro> какой-то кадр пишет: Есть также usize/isize – это биты размера системы
[15:50:52] <geniepro> какой-то гуглоперевод в блоге о_О
[15:51:56] <geniepro> почему вариант на фортране не порвал сишечку? о_О
[15:52:43] <valexey> а с чего бы ему рвать - это тот же gcc
[15:52:56] <valexey> раст работает за 1.7 секунды
[15:53:10] <valexey> т.е. ллвм-раст как gcc-фортран или сишечка
[15:53:54] <geniepro> странно, может он не ллвм? ))
[15:54:23] <geniepro> у меня он меньше секунды отрабатывает явно
[15:54:59] <geniepro> попробуй с isize
[15:55:50] <valexey> попробовал c isize чуть-чуть медленнее вроде бы. Т.е. прям на грани погрешности измерений разница видна
[16:53:21] <valexey> http://oberspace.dyndns.org/index.php/topic,695.0.html
[16:53:23] <valexey> получите :-)
[16:53:35] <valexey> задачко
[16:55:13] <Kemet> АО достаотчно медленный эбо он не просто не оптимизирует, он генерит кот в стиле SSA, то есть меного-много мусора, который при оптимизации выбрасывают, но оптимизацию пока не запилили
[16:56:12] <valexey> это к задачке?
[16:56:23] <Kemet> вообще
[16:56:58] <valexey> ужель тормознее BB?
[16:57:00] <valexey> Ниварю
[16:57:03] <valexey> тьху
[16:57:05] <valexey> ниверю
[16:58:22] <Kemet> ну хз, может и не тормозней, а мож и тормозней,, я так и не смотг посмотреть код в бб, а в Ао я долго думал, что за хрень там генерится многомлоанпя, что за пересылки из пустого а порожнее, пока в ллвм и го не глянул, ну оно просто без оптимизатора пока
[18:15:03] <s6> дали http://sly2m.livejournal.com/620353.html
[18:15:09] <s6> клёвска
[18:33:31] <s6> ещё полистал вот это про хокинга http://sly2m.livejournal.com/597015.html
[19:03:48] <geniepro> https://www.facebook.com/vasartakov/posts/10211276345961317
какой-то мужик портирует seL4 на российский проц MIPS-архитектуры
[19:09:00] <geniepro> valexey> задачко
ты нашёл, конечно, когда выкладывать -- в понедельник... кто ж её до выходных решать-то будет? )))
[19:19:22] <valexey> geniepro: ну, у кого-то на работе больше времени чем дома например :-)
[19:19:41] <valexey> но я не рассчитываю что кто-то быстро решит её. задачка не из простых
[19:20:33] <geniepro> valexey: По сути, тест на профпригодность ЯП на звание системного.
то есть для раста, что ли? о_О
[19:20:47] <valexey> geniepro: ЛЮБОГО
[19:20:51] <valexey> хоть 1С :-)
[19:20:54] <vlad2> js
[19:21:03] <geniepro> так он не претендует на системность
[19:21:23] <vlad2> файлов в js нет, до свидания :)
[19:21:30] <geniepro> ладно там на хаскелле сделали операционку да микроядрышко, но всё равно -- вряд ли стоит на нём делать субд ))
[19:21:33] <valexey> но если тест пройдет, то повод задуматься о системности :-)
[19:21:41] <valexey> vlad2: у node.js ведь есть :-)
[19:21:54] <valexey> ну и в браузере же теперь тоже есть некое хранилище локальное
[19:23:20] <geniepro> в фацебооке жалуются на то, что линупсы стали похожи на венду -- чуть что перезагрузку требуют...
поставил я сёдня на виртуалку ZorinOS 12 -- и она тоже потребовала перезагрузку после установки какой-то фигни о_О
[19:26:07] <valexey> навиртуалка нинужна!
[19:26:17] <valexey> нафигачть решение на oberonjs шоле... :-)
[19:26:23] <geniepro> а как она там тормозииииит
[19:26:33] <geniepro> порви раст ))
[19:26:59] <valexey> как порвать то, чего не существует? решения на расте для этой задачи ведь нет ;-)
[19:27:10] <valexey> и на хаскиле нет!
[19:27:11] <geniepro> а ты заранее порви ))
[19:27:51] <valexey> считай уже порвал :-)
[19:28:19] <geniepro> так это чо у тебя -- файловая сортировка что ли? задачка из 60-х годов? о_О
[19:28:26] <geniepro> открой же себе Кнута ))
[19:28:35] <valexey> тогда не были в моде Super Star Destroyer'ы
[19:28:43] <valexey> а теперь такая штука есть у каждого!
[19:30:34] <geniepro> ну очевидное решение напрашивается -- двоичная сортировка (быстрая), только не в озу, а с файлами
[19:30:49] <valexey> времена меняются, знания устаревают, а всем известные истины становятся ложью.
[19:31:04] <geniepro> в этом файле числа уникальные или могут быть повторы?
[19:31:18] <valexey> глянь форум. там уже ответ есть :-)
[19:32:18] <geniepro> little endian -- это же вроде обычный формат как в x86?
[19:32:52] <valexey> да, в x86 такое вроде используется. но я бы не назвал этот формат обычным :-)
[19:33:19] <geniepro> valexey: При этом за OCaml я не поручусь.
о_О как так??? а нафига ты его столько пиарил-то? )))
[19:33:33] <valexey> у меня руки кривые же
[19:33:51] <valexey> ну и вообще камло для именно такой вот околосистемщины не выглядит лучшим вариантом
[19:35:56] <geniepro> а чо если заюзать sqlite и через него уже сортировать файло? ))))
[19:36:10] <vlad2> valexet: У тебя там по памяти ограничение? nodejs не взлетит.
[19:36:25] <valexey> 128 метров
[19:36:30] <valexey> думаешь ей не хватит?
[19:36:32] <geniepro> vlad2: значит ноджс не годится )
[19:37:47] <valexey> ну значит возьмем другой js-движог!
[19:37:58] <valexey> например Qt!
[19:41:35] <vlad2> А там oberonjs пойдет?
[19:42:09] <valexey> должен. по краней мере им скомпиленные проги
[19:47:36] <geniepro> Vladimir Abramov - 4 ч. назад
Разговаривали мы с одним Украинцем из Сумской области. Спросили у него, что если действительно Россия пойдет на Киев. Ответ был мгновенный: "Ты шо, мы сразу сдадимся. Скорей бы пошли, а то надоела эта голытьба."
[19:50:04] <geniepro> "...Таким образом, ещё пару недель назад казавшаяся безусловной победа Д. Трампа не кажется столь безусловной."
ну что я говорил? Трампу бы дожить ещё до инагурации, глядишь пересчитают голоса и Киллари запрезидентствует )))
[20:52:31] <vlad2> Этот гребанный юникс. clock() не учитывает время проведенное в sleep(). Пипец. И ничего другого под рукой.
[20:53:31] <vlad2> В бусте есть cpu_timer, но оно хочет либу отдельную линковать.
[20:56:50] <Kemet> vlad2: а там че низя узнать сколько циклов проца затратил поток?
[21:22:41] <vlad2> кроссплатформенно (OSX/Windows) - не нашел способа.
[21:24:41] <vlad2> В итоге заюзал велосипед.
[21:26:37] <vlad2> Но само открытие... Случайно в тесте поймал. В коде еще дофига мест, где boost::timer используется и у него вот такое поведение на OSX/юниксе - timer.elapsed() возвращает время, которое CPU чего-то делал, исключая sleep().
[21:31:25] <valexey> "The clock() function returns an approximation of processor time used by the program."
[21:31:35] <valexey> по моему, очевидно, что когда прога спит, она время CPU не тратит
[21:31:46] <valexey> ты там перформанс тестишь шоле?
[21:48:40] <vlad2> Нет, мне надо кэш обнулять через определенный период. В случае если прога спит кэш не обновляется. Что и поймали тесты. На винде все ОК.
[21:49:31] <vlad2> При этом конкретно в случае boost::timer::elapsed нифинга не очевидно, что elapsed относится к CPU.
[21:50:25] <vlad2> И вообще processor time можно трактовать по-разному. Напрмивер в тактовой частоте. А она одинаковая что он спит, что не спит.
[22:15:42] <valexey> vlad2: дык тебе может просто monotonic time нужно?
[22:16:42] <valexey> зачем вам clock то?
[22:19:21] <valexey> clock_gettime(CLOCK_MONOTONIC, &start)
[22:19:22] <valexey> ы?
[22:21:42] <valexey> https://www.softwariness.com/articles/monotonic-clocks-windows-and-posix/
[23:58:05] <valexey> как же в плюсцах не хватает коньцептов