2025-03-01から1ヶ月間の記事一覧

shapeless.Genericをmacro annoationでcompanion objectに自動生成するライブラリ作った

これ ↓ 作りました。 https://github.com/xuwei-k/shapeless-annotation 以下の記事の続きでもあります

Scala 2におけるshapeless.Genericの導出を数える君を作った

https://github.com/xuwei-k/shapeless-generic-counter shapeless.Generic というのは、case classなどをHListなどと相互変換し、それによってgeneric programmingを実現するためのするためのものです。 結構昔に作られて以来、色々なライブラリの裏側で使…

shapeless.Lazyは本当にby name implicitで置き換え可能なのか?

shapeless.Lazy という、とにかくすごいもの(語集力皆無)があるのですが、それの話をします。 内部実装まで含めるとだいぶ難しく、自分も本当のshapeless.Lazyの力や使い方を完璧に把握してないことに今更ながら気がついたので、この記事を書いているわけで…

Scala 2を切り捨ててScala 3のみにした場合にやることの例としてのatnos-org/eff

以下のライブラリの以下のコミットの解説 github.com

Scalaでcats.syntax.allは個別にimportするのと比較してどの程度compile速度に影響があるのか

この人またcompile速度の話してる・・・

Scalaでcirceのautoのような再帰的に全自動で導出するものはcompile速度が爆発するので絶対に使うな作るな、という話

前回に引き続いて、なぜかcompile速度関連の話題を詳細に解説する回。

sbtでのsub project分割とcompile速度の具体的な解説

2024年のScala祭でbuild速度の話をしましたが https://xuwei-k.github.io/slides/matsuri-2024/#1 その中の一部を多少詳細に解説する、というものです。

独自scalafixのruleを同じsbt project内部に置く際の設定方法の説明その2

以前に以下のような記事を書いたのですが xuwei-k.hatenablog.com scalaのversionの関連の解説やsbt-projectmatrixの紹介をして、それはそれで現状では一番わかりづらいと思われる箇所なのですごく重要なのですが、 sbt詳しくない人にとってはよく考えたら上…

Scala 3でimplicitlyとsummonのcompile速度の違いを調べてみた

Scala 2の標準ライブラリには、大昔から以下のようなimplicitlyという、初心者にとっては一見謎なメソッドが存在します。 def implicitly[T](implicit e: T): T = e https://github.com/scala/scala/blob/3548afcd51d3a60365f8c068d54a8d95c2e45b04/src/libr…

Scala 3.8くらいからJDK 17以上が必須になるぞ!

ほぼ中身がないですが、すごく重大ニュースなので、日本語で検索したときに引っかかりやすい的な理由により、雑に書いておくだけのエントリ。 www.scala-lang.org

tasty inspectorによるreflectionでScalaのannotationをparseしてOpenAPIを生成するためのサンプル

「生成するためのサンプル」 というのは、某所でこれをそれなりに完璧にしたものを作ったことがあるのですが、全てを公開するか謎というかおそらく公開しない可能性が高いし、 いずれにせよそれがどうなるのか?に関わらず 「tasty inspectorによるreflectio…