@haskellru

Страница 1377 из 1551
Alexander
28.07.2018
11:37:23
Посоветуйте либу для i18n. Желательно чтобы ключи были String а результат Text

Ринат
28.07.2018
11:38:43
https://github.com/Haskell-mouse/fp-conversion Вот текущая репа, тогда план такой - 1) Пишу ему на почту 2) Жду (неделю норм ?) 3) Пишу в кафе 4) Жду (сколько ?) 5) Пишу админам хекаджа. Это если Брайан не будет отвечать, ессно. Если успех - верну название пакета и название модулей, если неуспех - заливаю как новый пакет, таки скорость конветации выросла существенно + с таким же или большим быстродействием конвертируется не только double, но и float и любой другой RealFloat тип.

Imants
28.07.2018
11:41:24
2.1 Timetable: From time of announcement of intention to takeover to actual takeover, there will be a 2-6 week period where the admins give the maintainer a chance to respond, with the exact time in any case up to the discretion of the admins. If someone has their package taken over because they did not respond, then, for the following year, should they request it, the admins will unconditionally return it to them. https://wiki.haskell.org/Taking_over_a_package

Ринат
28.07.2018
11:42:11
Ок, сорри за невнимательность

Google
Ринат
28.07.2018
11:42:19
Тогда жду по 6 недель

Imants
28.07.2018
11:45:10
Ок, сорри за невнимательность
;) может, админы ответят раньше. Или Брайан соизволит

Alexander
28.07.2018
11:49:54
сейчас backpack - самое близкое что есть

Alexander
28.07.2018
11:50:25
что-то типа gettext?
ну да, но haskell-gettext, скажем, идет без ридеров в комплекте

хотелось бы все-таки переводить ближе к рендеру

Imants
28.07.2018
11:51:20
сейчас backpack - самое близкое что есть
https://ghc.haskell.org/trac/ghc/wiki/Backpack кажется, он?

Alexander
28.07.2018
11:52:33
ну да, но haskell-gettext, скажем, идет без ридеров в комплекте
Эх, если бы только они словарик последнм аргументом у всех фукнций сделали

Alexander
28.07.2018
11:53:26
но там юзабилити пока под вопросом

Ринат
28.07.2018
11:57:32
Тогда раз уж я иду на поклон к Брайану, лучше решить сейчас 1 вопрос (скопипастил): function with type convert :: String -> CInt -> (CDouble -> Ptr Word8 -> IO CInt) -> Double -> ByteString works twice faster then the same function with type convert :: (RealFloat a, Storable a, RealFloat b) => String -> CInt -> (a -> Ptr Word8 -> IO CInt) -> b -> ByteString That is sad, i tried to make 1 polymorphic function instead of 2 functions - one for Double and one for Float.

Тело функции не менял вообще

Перед местом использования ставил прагму: {-# SPECIALIZE CB.convert :: String -> CInt -> (CDouble -> Ptr Word8 -> IO CInt) -> Double -> B.ByteString #-} instance Convertable Double B.ByteString where <instance> {-# SPECIALIZE CB.convert :: String -> CInt -> (CFloat -> Ptr Word8 -> IO CInt) -> Float -> B.ByteString #-} instance Convertable Float B.ByteString where <instance>

Google
Ринат
28.07.2018
12:00:12
В-общем вернул 2 мономорфные функции :-(

Ибо разница в производительности ну оч существенная: 1) time 114.1 ns (111.1 ns .. 117.8 ns) 2) time 274.9 ns (271.5 ns .. 278.9 ns)

Alexander
28.07.2018
12:04:00
специализация объявлена в месте объявления convert?

там, надо, а не в месте использования

Ринат
28.07.2018
12:04:18
Нет, в месте использования

А

Спасибо, попробую

Стоп

Как в месте объявления?

Alexander
28.07.2018
12:05:27
объявил convert, после него написал SPECIALIZE

ещё и inlineable написал чтобы определение в интерфейс точно попало

Ринат
28.07.2018
12:06:23
Я думал, что суть как раз в том, что перед конкретным местом указываешь тип переменных типовых

Тогда мне написать там в качестве входной переменной - double или float?

A64m
28.07.2018
12:08:25
перед конкретным местом импользования специализируется только если развертка доступна

Ринат
28.07.2018
12:09:02
Развертка?

и то и другое
Ок, попробую так.

A64m
28.07.2018
12:09:48
Развертка?
ну, преобразованный код функции, который в hi файле сохраняется

Ринат
28.07.2018
12:10:02
А

Понял, спасибо.

Google
Alexander
28.07.2018
12:20:43
специализация работает по месту, инлайнабл добавляет развёртку в .hi файл тогда специализацию можно сделать явно или неявно по месту, inline - добавит развёртку и скажет компилятору специализировать по месту использования

оверспециализация может раздуть выполняемый файл и все будет тормозить. без inlineable в hi попадут только "маленькие" функции

специализация гарантирует что специализированная функция сделается только один раз, в не много

как-то так

A64m
28.07.2018
12:47:32
каких прагм в base больше: specialize или specialise?

Anatolii
28.07.2018
17:20:05
нельзя просто взять и форкнуть, пол хакаджа на старые зависят
А если я никсом через оверлей перепишу пакет на форк - разве у моих зависимостей оно не перепишется

?

Alexander
28.07.2018
17:27:01
так наверное можно

но это разделение инфраструктуры будет как с жавой

из этого репозитория собирается из другого нет

и все несовместимо

для своего решения норм конечно, но для общества - нет

Anatolii
28.07.2018
17:33:42
Ну, да - все обрастет хостайл форками

Ринат
28.07.2018
21:19:53
> специализация работает по месту В смысле "по месту" ?

Alexander
28.07.2018
21:47:02
в функции где используется

и.е. пишешь ты foo = ... convert ...

то если есть развертка convert, то ghc специализирует его

Alex
29.07.2018
10:25:33
Джентельмены, а почему когда я создаю проект stack new whatever у меня не создается stack.yaml?

Dmitry
29.07.2018
10:28:48
"All done" было выведено в конце?

Alex
29.07.2018
10:31:18
Нет

Google
Alex
29.07.2018
10:31:54
Сейчас когда пишу stack init выскакивают ошибки

Я так понимаю проблема в том, что стак не может скачать снапшот 12.4

Dmitry
29.07.2018
10:33:32
А интернет-соединение РКН-protected?

Alex
29.07.2018
10:34:43
Что это такое, я не могу нагуглить

Dmitry
29.07.2018
10:35:28
Шутка :)

Ну, может, некоторые хосты заблокированы или недоступны?

Alexander
29.07.2018
10:36:20
а cabal new-build работает?

если да, то может ну его этот стек?

Dmitry
29.07.2018
10:37:17
А ты хитёр ;)

Yuriy
29.07.2018
10:44:26
Сейчас когда пишу stack init выскакивают ошибки
stack init и stack new решают непересекающиеся задачи

Admin
ERROR: S client not available

Alex
29.07.2018
10:44:53
Да, я это уже понял

Yuriy
29.07.2018
10:45:05
Alex
29.07.2018
10:45:14
Удалил папку с индексами и теперь у меня все ок

Selected resolver: lts-12.4

Yuriy
29.07.2018
10:45:42
он не существует. самый свежий — 12.2
о, уже вышел 12.4, прошу прощения, вчера его не было

Alex
29.07.2018
12:18:42
Хочу сделать функци const наоборот

Подскажите пожалуйста, почему foo = const . flip

Неправильно?

Yuriy
29.07.2018
12:20:12
потому что flip действует на функцию, а не аргументы

Google
Yuriy
29.07.2018
12:20:27
Подскажите пожалуйста, почему foo = const . flip
какая вообще логика привела к этому?

Alex
29.07.2018
12:22:07
flip меняет аргументы в местами в функции

Поэтому я решил применить её на конст

Но у меня не получилось

Alexander
29.07.2018
12:24:23
:t flip const что пишет?

в ghci

Alex
29.07.2018
12:25:22
Черт

Как я вообще мог додуматься поставить там композицию

Спасибо большое

Yuriy
29.07.2018
12:43:48
очевидно, как

ты решил, что flip действует на список аргументов

но в Хаскеле нет такой сущности как список аргументов

да и аргумент — не совсем управляемая сущность

есть только функции

flip всего лишь создаёт новую функцию, принимающую аргументы немного иначе

Владислав
29.07.2018
12:48:51
Всем привет! Однажды @lightgreen мне посоветовал такую схему — менторство в обмен на развитие проекта. Где-то два месяца назад я стал участовать в проекте @cblp_su ff-notes. Юра менторил, я делал пулреквесты. Ему — помощь в развитии проекта, мне — опыт и знания. Обе стороны довольны. Растет и проект, и скиллы. И хаскельное сообщество от этого выигрывает. В общем, рабочая схема, как показал мой опыт. (Менторство заключалось в код ревью, наводящих вопросах, ответах на вопросы, обсуждении стратегии написания кода, здесь Юра больше скажет. Мой вклад был в пул реквестах по текущим задачам, иногда я находил баги или предлагал что-то улучшить, а потом брал и улучшал). К сожалению, у Юры больше нет времени продолжать в том же режиме. Но у нас родилась идея. А что если сделать некий хаб, где опытные программисты, готовые менторить, представили бы свои открытые проекты, чтобы у начинающих или продолжающих изучать Хаскель было бы где получить опыт и принести пользу. Оказалось, что подобные проекты уже существуют, например, https://github.com/lenadroid/awesome-oss-mentors Но там, похоже, нет ни одного хаскелиста. Можно было бы добавляться туда, или создать свой awesome list проектов, авторы которых готовы помогать расти своим контрибьюторам. Как вам такая идея? У кого есть свой проект и желание его развивать совместно с начинающими разработчиками в обмен на менторство?

Dmitry
29.07.2018
12:50:00
Ещё такое в gitter'е предлагали

Думаю, @qnikst может про это больше написать

Yuriy
29.07.2018
12:50:19
Андрей Мохов: Там пул-реквесты полгода висят -- не уверен, что этот список жив. Я с удовольствием помогу новичкам: мои DM/почта открыты, мои проекты -- здесь: https://t.co/MXQ7WrQrEz.

был когда-то слак с менторами, но я не помню, вроде он по другой модели работал

Alexander
29.07.2018
12:52:21
был, модель похожая, но не взлетело

Dmitry
29.07.2018
12:52:28
Предлагали сложные задачки для решения. С codewars и т.п.

Страница 1377 из 1551