
Alexey
07.07.2017
05:48:10
юзабельно только в vim
идея нихрена не видит

Nick
07.07.2017
05:53:41
печальненько)
@odomontois а ты что скажешь?

Google

Oleg
07.07.2017
06:33:30

Alex
07.07.2017
06:42:23
так глубоко копать в эту сторону не приходилось до этого

Oleg
07.07.2017
06:43:32

Alexey
07.07.2017
06:43:50

Nick
07.07.2017
06:44:34
на самом деле я так понял, что они сделают поддержку идеи

Oleg
07.07.2017
06:45:03

Nick
07.07.2017
06:45:40
кароч ребзя делают правильный спринг

Oleg
07.07.2017
06:54:17

Nick
07.07.2017
06:54:46
пойду принесу в проект новое

Oleg
07.07.2017
06:55:13
правда, если гонять всё через копродукты фримонад, перфоманс в жёпу

Nick
07.07.2017
06:56:10
они типа эт оптимизируют

Google

Oleg
07.07.2017
06:56:26
ну правильнее сказать фримонады копродуктов алгебр

A
07.07.2017
06:57:15
А это не компилятор должен делать?
Почему перформанс в жопу ?

Nick
07.07.2017
06:57:59

Oleg
07.07.2017
06:59:36
Лично я думаю, что @module можно было бы соптимайзить в AnyRef
Но опять же только если это модуль чистых алгебр, вот этот
@module trait App {
val interaction: Interaction.StackSafe
val validation: Validation.StackSafe
val log: LoggingM
}в рантайме наверняка же обёрка из Evalов
ну и главное, что эта вся фигня только для ровно одного специфичного случая
Algebra[F[_]]
т.е. чуть влево, чуть вправо - пиши всё сам

A
07.07.2017
07:04:41
Акка лучше?)

Oleg
07.07.2017
07:06:06
Акка лучше?)
akka stream, как представитель Generalized Arrow лучше, но swave ещё круче

A
07.07.2017
07:11:45
О, узнал что-то новое

Oleg
07.07.2017
07:39:35
@notxcain расскажешь за скаламету в гиттере?
Как генерить тайп-параметры, пробую так
val name = Type.Name ("foo")
tparam"$name :Foo"
получаю
end of file expected but : found

Evgeniy
07.07.2017
07:42:21
нет, не оптимизируют
ну не то чтобы совсем нет, вот у них там https://www.47deg.com/blog/iota-v0-1-0-release/
с графиками что не совсем все плохо

Denis
07.07.2017
07:43:36
@odomontois я бы рад но сейчас не у компа и иду на посадку в самолет и может только в воскресение будет время. Самый луший варик если в лоб не работает, это сначала распарсить кусок кода посмотреть как он выглядит в скаламета аст, а потом собрать нечто похожее из аст и лишь потом через квазиквоты
Ну я так делал когда разбирался
Просто println dat shit

Oleg
07.07.2017
07:47:56
ну я смог сделать вот так
tparam"T :TypeDefiner".copy(name = Type.Name(c.toString))

Google

Oleg
07.07.2017
07:48:07
а как нормально это имя в интерполяцию засунуть - не пойму

Mikhail
07.07.2017
07:48:15

Oleg
07.07.2017
07:48:31
Если очень очень очень конкретно нужно, я генерю инстансы для
туплов
у меня есть
val alphabet = 'A' to 'Z'
val tparams = alphabet.take(t).map {
c => tparam"T :TypeDefiner".copy(name = Type.Name(c.toString))
}

Mikhail
07.07.2017
07:49:49

Oleg
07.07.2017
07:50:13
def method[..$tparams]

Mikhail
07.07.2017
07:50:26
во. ща

Mikhail
07.07.2017
07:51:26
val typ = Type.Name(p.decltpe.get.syntax)
после этого можно использовать там где тип нужен
val sss = q"def method[${typ} : ${typ}]
Type.Name - там стринг просто принимает

Oleg
07.07.2017
07:52:11
зачем мне это?
у меня не макрос

Mikhail
07.07.2017
07:52:27
это скаламета)

Oleg
07.07.2017
07:52:28
у меня нет p.decltpe

Mikhail
07.07.2017
07:52:57
p.declttpe - тебе не нужен - это просто я кусок у себя взял. там просто стринг в Type.Name идет

Google

Oleg
07.07.2017
07:52:59
короче, есть имя строкой, как сгенерить тайп-параметр с этим именем
список их
поэтому, как я сразу написал я использую tparam""

Mikhail
07.07.2017
07:54:14
список их
сейчас посмотрю как для списка, недавно с этим игрался
у меня много тайп-параметров
что-то не могу найти, где-то было, а где не помню( Попробую сейчас заново собрать, самому все равно пригодится. Лень в читшит заносить, как за мету сажусь - как в первый раз всегда ?

Oleg
07.07.2017
08:13:31
Ну т.е. странно, что интерполяция не принимает Type.Name, вроде он экстендит Type.Param.Name и всё должно быть ок

Mikhail
07.07.2017
08:14:28

Oleg
07.07.2017
08:14:55

Admin
ERROR: S client not available

Mikhail
07.07.2017
08:15:25
да, мир несовершенен. по крайней мере с ним компилится. не смотрел во что развернется, но похоже на правду

Oleg
07.07.2017
08:17:46
лал, вот так работает tparam"..$Nil $name :TypeDefiner"

Mikhail
07.07.2017
08:18:56

Oleg
07.07.2017
08:19:44
да, просто смешно выглядит

Mikhail
07.07.2017
08:22:00
#scalameta , чтобы потом в хистори найти. а то я постоянно эту ерунду заново прохожу)

Nick
07.07.2017
08:22:15
@odomontois а ты про iota чтот сказал?

Oleksandr
07.07.2017
08:22:36
запилите ишью в парсере — такую фигню можно на его уровне исправить
(про необходимый список модификаторов)

Oleg
07.07.2017
08:23:28

Nick
07.07.2017
08:24:24
Я прост не видел

Google

Oleg
07.07.2017
08:25:59
но мне нравится название вот этого объекта
https://github.com/frees-io/iota/blob/master/modules/core/src/main/scala/iota/internal/catryoshka.scala
догадываюсь, что это маленький клон slamdata/matryoshka
ну да
/** A gross oversimplification/hack of Matryoshka, but for Cats
* instead of Scalaz, and also tailored to the specific needs
* of Iota.

Nick
07.07.2017
08:38:05
Картешка лель
Картошка
Нужны было
Создай им баг

A
07.07.2017
08:46:30
>> Создай им баг
?

Mikhail
07.07.2017
08:52:18

Nick
07.07.2017
08:52:54
Я лично поставлю палец вверх, если создадите

Mikhail
07.07.2017
08:53:01

A
07.07.2017
08:53:03
жили ребята жили, а потом им баг создали

Oleksandr
07.07.2017
08:54:52

Oleg
07.07.2017
08:54:54

Oleksandr
07.07.2017
08:55:39
https://github.com/scalameta/scalameta/blob/1af15eb96c30c437d1b4aa57aca1740a36ed44a4/scalameta/parsers/shared/src/main/scala/scala/meta/internal/parsers/ScalametaParser.scala#L2614-L2654

Mikhail
07.07.2017
08:55:44

Oleksandr
07.07.2017
08:55:50
если совсем скучно, можно тут поправить)

Oleg
07.07.2017
08:58:45
type mismatch when unquoting;
[error] found : Seq[scala.meta.Mod] (in scala.collection)
[error] required: Seq[scala.meta.Mod] (in scala.collection.immutable)
[error] name => tparam"..${Seq.empty[Mod]} $name :TypeDefiner"

Mikhail
07.07.2017
09:00:05


Oleg
07.07.2017
09:03:39
Кстати, в шаплеззе тоже задумываются об ускорении
Miles Sabin @milessabin июль 03 16:33
@/all someone was talking to me recently about an hlist implementation which was backed by an array. Embarrassingly I've completely forgotten who that was and I can't track down the conversation. IIRC I suggested that they look at the smc branch to see if if their implementation might fit into that approach.
Olivier Blanvillain @OlivierBlanvillain июль 03 17:36
@milessabin There is this lampepfl/dotty#2199 (still wip), and Szeiger's work on HArray, if anyone has something else no the subject please ping me as well!
т.е. возможно у нас всюду будут HList ы на арраях и копродукты на int tag ах