Aragaer
в аутпут пробелы кидает
Dmitry
time ./a.out < ./49zGQ6Zt.txt | md5sum
分解物質
2cde09373fc92155b2902e22a2847a71
Dmitry
dmz@zen ~/tmp/bsfuck $ ./a.out < ./49zGQ6Zt.txt > x1 && ls -trahl ./x1 -rw-r--r-- 1 dmz dmz 6,8M Oct 23 14:35 ./x1
Dmitry
где-то еще гигабайт выхлопа потерялся
Alexander
я не вижу как там произведение делается
Alexander
но я наверное уже не могу на си смотреть
分解物質
я похоже не так понял что делать надо
Dmitry
dmz@zen ~/tmp/bsfuck $ time ./qnikst < ./49zGQ6Zt.txt > x1 && ls -trahl x1 real 0m4.395s user 0m1.632s sys 0m0.908s -rw-r--r-- 1 dmz dmz 1,1G Oct 23 14:36 x1
分解物質
так заканчиваться должно?
а, строки слитно же
Alexander
смотри dlxuf из правого столбца
Alexander
она должна быть в правой части слова
Dmitry
должно быть dmz@zen ~/tmp/bsfuck $ wc -l ./x1 100000000 ./x1
Alexander
3iw5j это из левого но последней строки
Aragaer
строки слитно да, но и все равно что-то маловато вывода
Alexander
право и лево перепутано
Dmitry
имеем dmz@zen ~/tmp/bsfuck $ ./a.out < ./49zGQ6Zt.txt > x1 && wc -l ./x1 591361 ./x1
кана
Я правильно понимаю, что для ввода 1 2 3 4 Нужно вернуть 12 14 32 34 ?
Alexander
fu7z2 <- последний символ его нету
Alexander
т.е. мимиум стороны перепутаны и off by one
Alexander
@kana_sama да
Aragaer
у тебя чтение неправильное
Aragaer
ты при чтении при росте буфера теряешь все, что прочитал раньше
Aragaer
и пишешь снова в нулевой байт
Alexander
а да
Alexander
buf = realloc(buf,..)
Aragaer
это нормально, но read должен идти не в buf, а в поинтер, который от начала отстоит на то, сколько уже прочитал
Alexander
ну тут offset теряется
Aragaer
https://gist.github.com/aragaer/43300249f0c4ec4f175361d753001efe - можешь отсюда взять чтение
Alexander
писать нужно в buf+offset
Alexander
или из моего
Alexander
они наверное одинаковые
Aragaer
естессно
Alexander
какая-то часть меня хочет запилить версию со своим буффером с inline строками выровнянными
Alexander
и аалокатором для невлезающих строк
Alexander
и в haskell тоже такуй Unboxed Vector
Aragaer
выходной буфер все равно будет содержать невыровненные строки
A64m
тут от анбоскед вектора строк толку особого не будет
A64m
впрочем, я понял, этап когда предпринималось что-то с особым толком уже позади
Alexander
@A64m_qb0 как мы обсуждали
Alexander
32байта на элемент
Alexander
там или инлайн строка или ссылка на то, что рядом
A64m
да я понял
A64m
все равно чтоб передать этот чанк в писатель надо сконструировать байтсроку с указателем на аррей и интервалом, да там еще вся эта обвязка для форин-пойнтера будет
A64m
не переписывать же все ио, чтоб оно эти три инта принимало и само кусок памяти вычитывало
A64m
мучаться с этим анбоксед вектром для байтстрок имеет смысл только если их долго хранить и мутороно их ГЦ обходить, а это не данный случай
A64m
я-то такой для хештаблицы задумывал
Alexander
ForeignPointer-ы не нужны 😏
Alexander
но вообще да обвязка страшноватая будет
Aragaer
про специальные олимпиады - много лет назад еще в ирк-чате была олимпиада про 100500!. Я тогда только-только начал играться с хаскелем. Программа в одну строчку на нем оказалась как-то сильно быстрее прочих
Aragaer
быстрее я смог только на си написать, но для этого пришлось брать какую-то либу для больших чисел. Тогда с -O3 она оказалась быстрее, чем -O3 хаскель
Alexander
libgmp небось?
Alexander
который haskell использует
Alexander
и питон и прочие
Aragaer
угу
A64m
Если бы у байтстринга интеракт использовал билдер, а у рантайма был дефолтный A повыше -то первая ферсия на байтстрингах бы просто работала секунд 6 и вопросов даже и не вознило бы
Alexander
а вот это очень хорошее предложение
Alexander
хотя бы interract использовать билдер
Dmitry
6 секунд это больше pypy
Dmitry
питон быстрее хаскелла 1111
A64m
но не смотря на то что бывший блейзбилдер идет с байтстрингом в комплекте теперь, внутри там все написано дедовским способом
A64m
больше, но не 60
Alexander
в blazebuilder-е кстати были клёвые функции, которых теперь нету
Alexander
типа через мутабельный buffer складывать все
Alexander
тут ещё плохо, что rewrite rules не дают эффекта особого
Alexander
позволяющие объединять чанки известных размеров
Alexander
или работает и все портит?
Anonymous
Люди, сорян, что врываюсь, а как загрузить документацию на hackage? :-)
Alexander
самый простой способ это взять neil
Anonymous
Сделал stack haddock и stack upload
Alexander
https://hackage.haskell.org/package/neil
Anonymous
Но на веб странице доков не появилось....
Alexander
либы внешние есть?
Alexander
если нету может тупо подождать немного
Anonymous
Есть ессно :-)
Alexander
сишные всмысле
Anonymous
Или что значит внешние?
Alexander
которые на системе должны стоять