Cheese
https://github.com/ruHaskell/ruhaskell/issues/100
Cheese
гет
Cheese
если руки дойдут, сегодня сделаю
Cheese
если никто не опередит
Тык
Как мне сказали, пакеты Брайна О Салливана можно считать мертвыми в плане рассмотрения им пулл реквестов, поэтому сделаю свой пакет "fp-conversion".
Оригинальный пакет:
http://hackage.haskell.org/package/double-conversion
Cheese
Тык
Ну, я отправил ему PR некоторое время назад
Dmitrii
почему бы не попытаться пуллреквестировать для начала?
Это бесполезно в почти каждом случае. Уже был опыт, когда пулл-реквест в double-conversion с простейшим и элементарным но полезным фиксом для Windows два года просто висел и пришлось напрягать коммитет Haskell, чтобы замёржили этот пулл-реквест. Типа, в некоторых его либах, которые сейчас некоторые используют, последний коммит был 3 года назад. И нет, это не значит, что там всё настолько хорошо сделано и что больше нет улучшений\фиксов.
Cheese
пусть тогда снимает полномаочия, если не справляется
Cheese
по этому поводу эфпико написали Guide to open source maintenance?
Dmitrii
пусть тогда снимает полномаочия, если не справляется
Частично из-за этой цели я и создал организацию и перенёс все свои личные проекты туда, чтобы если вдруг меня сбил автобус или мне бы надоело их поддерживать, другие люди могли продолжить дело:
https://github.com/kowainik
Думаю, что среди своих личных репозиториев имеет смысл хранить либо древний мусор вроде универских домашек, либо личные конфигурационные файлы (типа dotfiles).
Alexander
Брайан не хочет передавать свои пакеты и права
Anatolii
Я знаю библиотеки саливана, они очень важны в экосистеме хаскеля
Anatolii
И от этого ещё хуже
Anatolii
Вон ребята пытались в конекшен пуле пофиксить багу
Anatolii
@qnikst получилось кстати пофиксить?
Anatolii
Он вроде тоже не пускает
Тык
:-(
Alexander
Тык
Окей, тогда я все таки оформляю, как отдельный пакет. Да, чтобы не создалось такой же ситуации, стоит кого-то сразу сделать комейнтейнером?
Alexander
я честно не знаю как делать правильно
Alexander
я все ещё не решился форкнуть пакеты, скорее всего скоро этот вопрос опять поднимется и надо будет как-то решить раз и насовсем
Alexander
комеинтейнеры - всегда хорошо
Тык
Ну, в данном случае, видимо только форк.
Я это не от чсв делаю (
Кого? :-)
Тык
В смысле что собираешься формате пакеты Брайана. И кого сделать комейнтейнером?
Cheese
Тык
Нет, просто не охота плодить пакеты там, где реально было бы естественней улучшить существующие
Anonymous
по идее можно написать в кафе:
хочу перенять Пакет А от редиски Брайана
Тык
Где?
Тык
И почему это не работало раньше?)
Anonymous
ну вот например:
https://mail.haskell.org/pipermail/haskell-cafe/2018-July/129561.html
Anonymous
вот тут подробно:
https://wiki.haskell.org/Taking_over_a_package
Alexander
Брайн достаточно известный в комьюнити человек, поэтому аргументировать нужно очень хорошо и осторожно
Anonymous
можно начать с публичного обращения к Брайану через рассылку:
пжлста, найдите минутку для рассмотрения ..
Тык
Странно - если он известен, то по идее также известно должно быть его поведение в отношении своих пакетов.
A64m
оно и известно
kake
Alexander
@haskell_blah
kake
спасиб
Тык
оно и известно
Если так, то почему "аргументировать нужно очень хорошо и осторожно" ?
Тык
Ведь по идее тогда получается, что Брайан, как мейнтейнер почти равен его отсуствию.
Anonymous
а в принципе, что тут плохого, что плодятся пакеты?
надо поработать над поиском по hackage и категоризацией. сайтов вон ведь сколько. и ничего, посещаем те, которые нашли
какими-то пакетами пользуются, другими - нет. жизнь, понимаешь..
Тык
Плохо то, что
1) Распыляется аудитория
2) Часть пользователей старых пакетов просто не знают о существовании улучшенных форков.
3) Если есть библиотека, которой пользуются 10 пакетов, то при запиливании улучшенного форка нужно будет уговаривать их мейнтейнеров использовать этот форк.
Тык
Ну и с поиском будет проблематичней
Alexander
пока нету нормальных модулей это печаль
Тык
м ?
Alexander
нельзя просто взять и форкнуть, пол хакаджа на старые зависят
Alexander
и.е. нельзя сказать, что пакет зависит от чего-угодно, что реализует интерфейс
Тык
Ну вот о чем и речь
Тык
Ладно, попробую выбить мейнтейнерство, к кому идти писать челобитную ?)
Тык
Собственно начнать и правда лучше с публичной просьбы к Брайану рассмотреть реквест ? Или лучше сразу просить руководство пакетом ?
Anonymous
Тык
о, спасибо
Alexander
Посоветуйте либу для i18n. Желательно чтобы ключи были String а результат Text
Тык
https://github.com/Haskell-mouse/fp-conversion
Вот текущая репа, тогда план такой -
1) Пишу ему на почту
2) Жду (неделю норм ?)
3) Пишу в кафе
4) Жду (сколько ?)
5) Пишу админам хекаджа.
Это если Брайан не будет отвечать, ессно.
Если успех - верну название пакета и название модулей, если неуспех - заливаю как новый пакет, таки скорость конветации выросла существенно + с таким же или большим быстродействием конвертируется не только double, но и float и любой другой RealFloat тип.
Anonymous
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
Тык
Ок, сорри за невнимательность
Тык
Тогда жду по 6 недель
Cheese
Alexander
Alexander
сейчас backpack - самое близкое что есть
Alexander
хотелось бы все-таки переводить ближе к рендеру
Alexander
но там юзабилити пока под вопросом
Тык
Тогда раз уж я иду на поклон к Брайану, лучше решить сейчас 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>
Тык
В-общем вернул 2 мономорфные функции :-(
Тык
Ибо разница в производительности ну оч существенная:
1) time 114.1 ns (111.1 ns .. 117.8 ns)
2) time 274.9 ns (271.5 ns .. 278.9 ns)
Alexander
специализация объявлена в месте объявления convert?
Alexander
там, надо, а не в месте использования
Тык
Нет, в месте использования
Тык
А