← All posts tagged PureScript

в общем, недолго думая, я принёс тем из вас, кто часто путешествует, тулу для упрощения подсчёта оставшихся или доступных в будущем дней по визе/нерезиденству/безвизу с ограничениями (X за Y).

an-pro.org

Самое простое.
— Шенгенская виза: 30 дней в течение 90.
— Эквадорский безвиз: 90 дней за 180.
— Нерезиденство: 183 за 365 дней.

Чистый клиент, родного общения с сервером лишён by design, из запросов во внешний мир — лишь аналитика от гугла. В первый раз долго грузицца, я знаю и работаю над тем, чтобы pulp browserify взлетел. Ну и плашки всякие, да, они тоже скоро появятся.

#2905635 тут хотелось очень странного + код писался бессонной ночью. в результате пришлось переписать его с третьей попытки с рекурсивным обсчётом, получилось o(n^2 — n + n), т.е. o(n^2). да и хрен с ним. оптимизировать лениво уже. на после релиза отложу. если тест выстрелит.

Вроде всё есть, а сериализации-десериализации массивов/списков днём с огнём не сыщешь. Чуть дальше примитивных типов уйдёшь — Generic не шуршит. Nested types — тоже ни в какую. Пошёл в код посмотрел purescript-foreign. А там всё общение через FFI. Ну зашибись, приехали. Причем без посредника — никак. Напрямую — жесть.

instance Decode (Array MyAwesomeType) не указан, вывести не могу.
Заводишь инстанс на Array — сиротка, вай-вай-вай, пошёл вон.

Придётся юзать FFI: github.com

Не, так, конечно, бывает. Вместе с компилятором рекомендуется ставить `pulp`, а-ля `ghcid`, только покруче.

Делаем 1.
pulp init # OK
pulp build

/usr/bin/env node not found.
ок, сделал симлинку, поехали.

Делаем 2.
pulp build

Error found: in module Control.Monad.Eff
bower_components/purescript-eff/src/Control/Monad/Eff.purs line 36, column 1 — line 36, column 52

reddit.com чувак говорит, ставьте новый purescript, там все починено!

Делаем 3
npm install -g purescript@next

Нода говорит, я старая, не панимат.
искаропки недостаточно хипсторская шла. скачали, перебили, да, симлинка не нужна, поехали.

Делаем 4.
pulp build

psc not found
В том же треде чувак пишет, я тут переименовал утилиту, psc там, и другие старые выкинул на мороз, юзайте пацаны новую, purs. пока чиню поломанное API с pulp, юзайте обертыши из директории scripts, все работает. Ок, пошёл, сделал симлинков, выдал доступ юзеру своему.

Делаем 5.
pulp build

Invalid option `--ffi'

В том же веткой ниже другой чувак говорит, всё тлен, пацаны, в гуглогруппе разрулили.
Ломать не строить. Откатывайтесь обратно на старый, пока, вот вам зависимости, вот вам счастье. Ок, поправил зависимости.

Делаем 6.
bower i
pulp build.

* Build successful