wartremoverに独自の簡易的なprofile機能入れた

以下の説明 https://github.com/wartremover/wartremover/commit/0b2a271dc23119a17c78c9d9e85b2d3a8557bc23 https://github.com/wartremover/wartremover/commit/941767998cea53ba55c4cee9e6bb496abef87ce5

sbt 2におけるtransientアノテーションとDef.uncachedの違い

sbt

sbt 2でbuild.sbtに以下のように書いて、sbtのshellでそれぞれのtaskを2回呼び出した場合、どう表示されるか?(どれがcacheされるか?) というクイズ > aaa ; bbb ; ccc ; ddd ; aaa ; bbb ; ccc ; ddd

scala.util.Tryが大嫌いだという話

"使うな" とか "駄目" という言い方ではなく "大嫌い" という言い方にしたのは、細かい部分に関しては、どうしても好みの部分が出てくるというか、どちらでもいいというか「チーム内でスタイル統一するのが大事でしょ!」的な話に行き着くと思うのですが、 …

Scala 3.8.0のfor式はバグっているので気をつけてください

このblogを書いてる時点でScala 3.8.0のRCではないversionがリリース作業中のはずで、もうmaven centralにはあるはずです。 1ヶ月少し前(2025-12-05)にScala 3.8.0のRCの時点で試し発見したので、bugを報告済みなのですが、それの修正がされないままリリース…

Scala 3でcoverage有効にしてcompileするとすごく遅い

以下の解説 github.com

Scala 3のmatch typeでchudnovskyの式を使ってcompile時に円周率を40桁計算した

昔書いた以下の続き、発展の話 xuwei-k.hatenablog.com

scalafix実行時にdialectを直接細かく指定したい

scalafmtのconfigにはdialectOverrideという仕組みがあって、細かく色々指定できます https://github.com/scalameta/scalafmt/blob/563f4ae766f65dd49a0610fdbbbf326ddd7ae592/docs/configuration.md#runnerdialectoverride それscalafixにないな・・・?と…

tibdex/github-app-tokenがアーカイブされたのでactions/create-github-app-tokenを使おう

https://github.com/tibdex/github-app-token/commit/a3da042061e3b5d09ad01f41d2328f429d8d1c62 タイトルで言いたいこと言い切ってるけど簡単に解説を書く記事

-Xfatal-warningsは非推奨になるので-Werrorを使いましょう

アドベントカレンダーあいてたので今日も書くぞ!(N日連続M回目) https://qiita.com/advent-calendar/2025/scala

JDK 11からのString.repeatの方がscala.collection.StringOpsのメソッドより何倍も速い

アドベントカレンダーあいてたので今日も書くぞ!(N日ぶりM回目) https://qiita.com/advent-calendar/2025/scala

Scala 3.8新機能紹介 SIP-70 Flexible Varargsあるいはmulti spreads

アドベントカレンダーあいてたので今日も書くぞ!(N日連続M回目) https://qiita.com/advent-calendar/2025/scala

sbtにおけるUnix Domain Socket

アドベントカレンダーあいてたので今日も書くぞ!(N日連続M回目) https://qiita.com/advent-calendar/2025/scala

Scala 3.8からのREPLの変更

アドベントカレンダーあいてたので今日も書くぞ!(N日連続M回目) https://qiita.com/advent-calendar/2025/scala

Scala 3.8からの標準ライブラリのbuild変更について

アドベントカレンダーあいてたのでまた書くぞ!(N日連続M回目) https://qiita.com/advent-calendar/2025/scala

lazy valの簡単な歴史やScala 3.8からの実装変更と今後

アドベントカレンダーあいてたのでまた書くぞ! https://qiita.com/advent-calendar/2025/scala

今までScala 3に送ってmergeされたpull reqまとめ

https://qiita.com/advent-calendar/2025/scala アドベントカレンダーが空いてるのでついでに書いて振り返ってみる記事

最近自分がsbtに報告したbugまとめ

sbt

最近というか、1年数ヶ月前にsbt 2に関してblogを書いた後に報告したものをざっくり振り返ってみます xuwei-k.hatenablog.com これは2025のScalaアドベントカレンダーの記事です。 qiita.com sbt 1も2も両方含みます。25個もありますね。 bug扱いではなかっ…

ScalaにおけるStringConcatFactoryの説明とベンチマーク

JDKには9からStringConcatFactoryというclassが追加されています。 2025年12月現在の最新はJDK 25なので、9なんて今更な話なので、特に新しい話でもないのですが、個人的に真面目にベンチマーク取ったことなかったので、アドベントカレンダーついでにベンチ…

自作scalafix ruleの説明その6

以下の続き https://xuwei-k.hatenablog.com/entry/2022/02/11/160802 https://xuwei-k.hatenablog.com/entry/2022/09/03/110341 https://xuwei-k.hatenablog.com/entry/2024/03/17/112342 https://xuwei-k.hatenablog.com/entry/2025/04/29/094201 https://…

sbtで警告を全部再度表示するprintWarningsというtask

sbt

アドベントカレンダー空いてたのと、以前tweetしたけど便利な割にあまり知られてない気がするので、blogにも書いておきます。 qiita.com

wartremoverのOrTypeLeastUpperBoundとscalacOptionsの-Wconfを組み合わせる例

数年前に作った以下のwartremoverの話 xuwei-k.hatenablog.com

Scalaわいわい勉強会でsbt 2の発表をした

https://xuwei-k.github.io/slides/sbt-2-waiwai-2025/#1 https://scala-tokyo.connpass.com/event/371493/ speakerdeck.com

Scala 3のIArrayはJavaから見たらただの配列なのでArrayStoreException発生させることが可能

タイトルでほぼ全部言い切ってるシリーズ。 以下、それ用のコード

Scala 3のopaque typeとgeneralized type constraints

これを組み合わせてる例を雑にググっても見つけられなかったのですが、よく考えたら組み合わせたらそれなりに便利というか、劣化版HaskellのCoercibleと言えなくもないのでは???と今更気がついたので、それについて書きます。

GitHub Actionsにおけるsbtでの依存ライブラリの最適なcache方法

5年半前(!?)にCircleCIで書いたことがあるのですが、それのGitHub Actions版として書き直す的なもの。 xuwei-k.hatenablog.com

IntelliJ IDEAでScala 3を開発する時の設定

普段は割とデフォルトの設定で十分なのですが、Scala 3の開発かつ特に大きめのprojectの場合、設定を変えないと厳しい場合があるので、それの話を書きます。 versionは 2025.2.4 (Community Edition) としますが、割と最近のversionならあまり変わらないと思…

java.lang.StableValueはScalaのlazy valより10万倍くらい速い場合がある

以下の話 https://openjdk.org/jeps/526 https://openjdk.org/jeps/502 xuwei-k.hatenablog.com

mavenにおけるRELEASEやLATESTという特別なversionとsbt

以下の話 https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes#Maven3.xCompatibilityNotes-PluginMetaversionResolution Internally, Maven 2.x used the special version markers RELEASE and LATEST to support automatic …

sbt-jol pluginをforkしてメンテしていくぞ

10年以上前(!?)に以下のようなものを書いたことがあり xuwei-k.hatenablog.com jolはその後何度か自分のblog記事に登場してるはずです。 そして、おそらく自分のその記事のほうが先ですが、同じようなものをsbt pluginにした人がいたのですが https://github…

json4sのserializeとdeserializeのbenchmark

Scala 3部分でserializeとdeserializeに対応したけれど、全然仕組みが違うので速度大幅に劣化してるのか、思ったより変わらないのか?を調べた https://xuwei-k.hatenablog.com/entry/2025/11/01/100903 https://xuwei-k.hatenablog.com/entry/2024/06/17/09…