← All posts tagged yesod

Снойман в октябре мегахаки в йесоде наколбасил, в итоге он ломает возможность в генте иметь пакеты из ghc новее чем идут с компилятором (e.g. Cabal, binary), cabal-dev справляется (с даунгрейдом конфликтов), но как-то логичней чтоб пакетный менеджер разруливал ситуацию

По ходу что-то hdaemonize и yesod не могут поделить. Вот простейший вариант — gist.github.com При запуске демон остаётся под рутом, и pid-файл не записывает, если его убить и запустить заново, то вебсервер подымается вполне корректно. Причём даже после ребута системы. То же самое на warp (поверх которого yesod является обёрткой) работает без проблем. Интересно, чтож там такое за мутабельные переменные уровня OS намутил Снойман.

Снойман и сотоварищи (по йесоду) предлагают (точней реализуют) пихать в конфиг сразу настройки 4 окружений — dev, test, stage и prod. С учётом того, что настройким могут переопределяться (разные базы, порты и т.п.). По-моему это понятно с т.зр. разработчика, но не очень логично с т.зр. админа. Причём самое нелогичное, что по умолчанию сервер пускается в режиме dev и чтоб запустить в рабочем режиме надо задать это через "-e production" (в ком. строке ес-но). Буду рад любым комментариям по поводу

не, чот я в упор не понимаю — йесодские бенчмарки показывают 40k rps для warp и 600 rps для yesod, хотя разница там лишь в нескольких промежуточных вызовах (а весь "смысловой" код — отдача стат. строчки из памяти)

А никто не в курсе как haskell-mode приучить к наличию .cabal-файла? Йесод в исходной конфигурации держит исходники в руте и папке config. Пока что халявно воткнул '(haskell-program-name "ghci -i.:config")

книжка по Yesod реально доставляет тем, что рекламирует типобезопасные урлы и при этом содержит кривые линки (по ходу на какие-то промежуточные версии глав)