Size: a a a

2020 April 05

r

red75prime in rust_offtopic
Компиляторов функциональных языков.
источник

DS

Doge Shibu in rust_offtopic
red75prime
Компиляторов функциональных языков.
Да, это тоже важная деталь
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Для хаскелевских задач типа компиляторов и т.п. - это не синтетический пример
Уже представляю этот компилятор который в начале компиляции кушает 6Гб оперативы
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
Уже представляю этот компилятор который в начале компиляции кушает 6Гб оперативы
У хаскеля не очень прожорливый и достаточно эффективный гц для подобных задач, кстати.

То есть он запросто без каких либо проблем способен многие гигабайты мусора в секунду обрабатывать
источник

p

polunin.ai in rust_offtopic
Doge Shibu
У хаскеля не очень прожорливый и достаточно эффективный гц для подобных задач, кстати.

То есть он запросто без каких либо проблем способен многие гигабайты мусора в секунду обрабатывать
Ага, а ещё он работает за наносекунды и сам за тебя пишет программу. И все это сделали полторы учёных в опенсорсе за полгода
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
Ага, а ещё он работает за наносекунды и сам за тебя пишет программу. И все это сделали полторы учёных в опенсорсе за полгода
Ну делали его 30 лет, если что, так что это так себе придирка.
источник

DS

Doge Shibu in rust_offtopic
Для вложенных в него человекочасов он норм себя показывает. Не идеально, а норм
источник

DS

Doge Shibu in rust_offtopic
В плане гц там как раз есть куда стремится, но для относительно коротко живущих программ типа компиляторов он вполне нормально себя показывает
источник

DS

Doge Shibu in rust_offtopic
Проблема начинаются на очень больших долго живущих хипах, но с другой стороны в этом у всех кроме джавы так себе
источник

AZ

Alex Zhukovsky in rust_offtopic
Emmanuel Goldstein
Ну есть, например, вот такой простой пример
bad :: [Int] -> Int -> Int
bad []         c = c
bad (_:others) c = bad others $ c + 1
а что не так?
источник

AZ

Alex Zhukovsky in rust_offtopic
ну кроме того что рекурсия не хвостовая
источник

EG

Emmanuel Goldstein in rust_offtopic
Alex Zhukovsky
а что не так?
Пожрёт очень много памяти на большом списке
источник

EG

Emmanuel Goldstein in rust_offtopic
Из-за лени
источник

EG

Emmanuel Goldstein in rust_offtopic
А если заменить $ на $!, то не пожрёт
источник

EG

Emmanuel Goldstein in rust_offtopic
И рекурсия как раз хвостовая, bad = bad.
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
ну если я напишу тест который просто в цикле будет прогонять миллион маллоков (пока что, смело) я ожидаю не сильно больше отставание от того же цикла который создает миллион обьектов на гц
если что аллокаторы в сишкорастах это куча логики из разряда "у нас есть списки блоков, нужно по ним ходить и искать подходящий блок чтобы его выделить". Ты правда не поинмаешЬ, что это дофига сложно?
источник

AZ

Alex Zhukovsky in rust_offtopic
Emmanuel Goldstein
И рекурсия как раз хвостовая, bad = bad.
да не очень хвостовая
источник

AZ

Alex Zhukovsky in rust_offtopic
факторил вон тоже не хвостовой, и ничо
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
если что аллокаторы в сишкорастах это куча логики из разряда "у нас есть списки блоков, нужно по ним ходить и искать подходящий блок чтобы его выделить". Ты правда не поинмаешЬ, что это дофига сложно?
почему там сложно а с гц просто - не понимаю
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
почему там сложно а с гц просто - не понимаю
потому что гц дефрагментирует память
источник