@rf @ru
-XStrict - лучшее расширение ghc! Не забывайте включать во всех своих проектах!

@L29Ah @rf @ru StrictData достаточно. Если везде бездумно отстреливать ленивость, то можно отстрелить себе ноги.

@dpwiz Почему? Восклицательные знаки гораздо гораздо чаще ставить нужно, чем тильды, а результаты забытия восклицательного знака обнаружить и устранить гораздо труднее, в то время как отстрел ног почти всегда виден сразу.
@ru @rf

@L29Ah @ru @rf Ты неправильно его держишь если их приходится ставить. По-хорошему они нужны раз в десять лет.

@dpwiz Они нужны всегда когда у тебя нетривиальный data flow, особенно на больших объёмах данных: без них у тебя быстро начинают накапливаться лишние санки во всяких смешных местах и забивать тебе оперативу.
@ru @rf

@L29Ah @ru @rf Скорее всего причина в другом (примитивы неправильные, рулы не отработали, инлайнер провафлил и подобное). Ковровый стрикт это симптоматическое лечение и только натягивает пружину граблей которые тебя в будещем ёбнут когда стрикта перестанет хватать.

@dpwiz Ладно, давай конкретно: вот этот модуль становится на 38% тормознее если убрать восклицательные знаки из кода (не убирая из data (который вообще просто охуителен)): github.com/l29ah/hyborg/blob/m
Проверять так, например: cabal run benchmark -- 'chunkify/default settings 1MB'
@ru @rf

Follow

@L29Ah @ru @rf Тут уже много карго-бангов. Если тебе вообще лень вникать и читать корку, то можно на один конкретный модуль влепить стрикт. Но по дефолту совать его в каждый новый проект это дурь.

@dpwiz Интерпретирую как: если не хочешь ебаться с чтением корок и сосать с производительностью по кд, ставь везде Strict: примеры где он помогает легкодоступны, примеры где он всё неожиданным образом всирает отсутствуют, даже Strict-хейтер согласен что он спасает от лишней возни.
@ru @rf

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.