Evgeny
и в userMIME..
Evgeny
там и там можно спокойно держать ключ
Evgeny
ты хотел поле? Вот оно и есть
Влод
это реально работает всё?
Leonid 🦇
такое впечатление что автор Jose делал всё что-бы из репла было невозможно использовать его апи
Anatolii
я когда выбирал библиотечку для jwt
Anatolii
я в какой-то ад попал
Anatolii
я не понимал почему так сложно все
Anatolii
там ключи из файла вычитать уже проблема
Leonid 🦇
сраный ад
Leonid 🦇
MonadTime
Leonid 🦇
вот что мешает ему брать всё это в аргументах? Нет, сделай мне монадку
Anatolii
но я вроде выбрал что-то без MonadTime
Leonid 🦇
а та что без, не умеет мою любимую кривую эдвардса
Alexander
jose судя по jwt.io больше умеет
Alexander
а ещё его сервант его использует
Alexander
я сначала jwt использовал но как на сервант перешли, перевел все на jose
Alexander
а в ghci же IO
Alexander
для его есть инстанс MonadTime?
Anatolii
да
Anatolii
я вот тоже на jose
Anatolii
я кстати пока так и не прикрутил чтобы ключи из файлов вычитывать
Leonid 🦇
для его есть инстанс MonadTime?
А ещё инстанс JWKStore и MonadError e m, AsError e
Alexander
ну разве что тебе runEitherT надо сделать
Dmitry
А {-# INLINE somefunc #-} только на внешние функции может подействовать? На те, что в where, он же не действует? В компиляторе 8.0.2
Alexander
угу
Leonid 🦇
ну разве что тебе runEitherT надо сделать
ну а нормально можно было бы сделать verify :: JWKStore s, HasWhatever a => UTCTime -> s -> a -> ClaimSomething -> Either Error Whatever
Alexander
но это не значит, что компилятор не будет ничего инлайнить
Alexander
+
Ilya
По какому же тогда принципу раскиданы модули в Control.* и в Data.* в Haskell Hierarchical Libraries? Если выше писали, что список, Either, Maybe это control структуры, но там они всё же в Data
A64m
ни по какому, примерно аналогичные библиотеки есть и в Control и в Data, к примеру lens и data-lens, foldl и folds
Dmitry
А при помощи Template Haskell можно же сгенерировать прагмы? Например, сгенерировать someFunc и к ней {-# INLINE someFunc #-}?
Alexander
PragmaD Pragma { {-# INLINE [1] foo #-} }
Alexander
https://hackage.haskell.org/package/template-haskell-2.13.0.0/docs/Language-Haskell-TH-Syntax.html#t:Dec
Dmitry
Спасибо
Alexander
https://hackage.haskell.org/package/template-haskell-2.13.0.0/docs/Language-Haskell-TH-Syntax.html#t:Pragma
Dmitry
Да я просто с TH мало сталкивался, сейчас предстоит волнующее погружение...
Alexander
на сайте описано было где-то
Alexander
я не представляю разумного описания
Dmitry
Да ссылки с туторилами накоплены, разберусь. Мне просто надо было узнать точно, прагмы можно или нет. Теперь ясно.
Mi Shа
Подскажите, а с помощью stack можно билдить под другую платформу? А то распберри слишком долго собирает
Alexander
тут даже не в стеке вопрос, вроде с кросскомпиляцией все плохо было, но я лично с ней не сталкивался
Dmitry
Подскажите, а с помощью stack можно билдить под другую платформу? А то распберри слишком долго собирает
А эмуляторы этой архитектуры есть? Можно попробовать в них собрать на быстрой машине.
Mi Shа
А эмуляторы этой архитектуры есть? Можно попробовать в них собрать на быстрой машине.
Звучит как костыль) А что искать - эмулятор процессора или всего устройства?
A64m
Подскажите, а с помощью stack можно билдить под другую платформу? А то распберри слишком долго собирает
взять кросскомпилятор отсюда http://hackage.mobilehaskell.org/ (это все сильно экспериментально), указать стеку чтоб пользовался им
A64m
но это скорее всего не сработает
A64m
потому что там, наверное, какое-то допиливание библиотек надо, есть специальный слой хекеджа для этого
A64m
а чтоб его использовать надо new-build
IC
https://wiki.haskell.org/Raspberry_Pi (впрочем там похоже старьё совсем)
Mi Shа
А в чём проблема кросскомпиляции, если имеется есть компилятор под нужную платформу? Просто запустить его, чтобы он выдал файл с нужными для целевой платформы инструкциями
A64m
"официальные" ghc собирают для той платформы на которой работают
A64m
т.е. "официально" никакой кросскомпиляции для гхц нет
Dmitry
И за это мы порицаем
Dmitry
И негодуем
A64m
ну какие-то страдальци ее вечно пилят, может быть допилят уже наконец.
Алексей
Это: https://ro-che.info/articles/2017-01-10-nested-loop-space-leak ?
Там в poll ошибка. Его надо писать как poll = let x = return () >> x in x тогда всё это компилируется в цикл без аллокаций ну или через fix. В forever точно такая же прроблема была
Dmitry
А почему компилятор не может догадаться poll = return () >> poll в цикл превратить?
Алексей
Не знаю. Наверное он недостаточно умный
Дмитрий
А унас точно нет никакого способа поднимать значения на уровень типов?
Дмитрий
Чтобы
Дмитрий
type A 1 = Int
Дмитрий
type A 2 = Char
Дмитрий
???
Leonid 🦇
синглетонс
Alexander
можно взять в качестве 1 и 2 числа черча, сделанные из типов
Alexander
в порядке наркомании
Дмитрий
синглетонс
И я их смогу считывать динамически?
Дмитрий
A64m
для для чисел-то и singletons не надо, это из коробки есть уже
Alexander
хмммм
Alexander
GHC.TypeLits
Alexander
а сделаю ка я себе тип "число от A до B" на числах черча
Alexander
чисто поржать
Alexander
на числах черча все будет тормозить и плохо работать
Alexander
можно с Nat но это ад ещё тот и тоже неюзабельно
Alexander
проще взять LiquidHaskell там человечно все
Alexander
так ради наркомании
Дмитрий
Не ну мне нужно что-то вроде... data T where T :: C t => t -> T data T1 = T1 data T2 = T2 class C t where fromInt :: Int -> t instance C T1 instance C T2
Alexander
s/fromInt/fromNat/