リリースノート

Sisimai 5.4.0


2025/07/01

Sisimai 5.4.0をリリースしました。 このバージョンにおける主な変更点は、MicrosoftとGoogleの新しいエラーコードの実装、 Rubyのチルド文字列(frozen string literals)対応、Go版における破壊的な変更 (Go 1.24以上が必要・sisimai.Rise()関数がポインターではなくスライスを返す) です。 Perl版Sisimaiに特有の変更はPerlが、 Ruby版Sisimaiに特有の変更はRubyが、 Go版Sisimaiに特有の変更はGoが、 それぞれ冒頭に入っています。

Sisimai 5.0.0でVersion 4系とは非互換な変更が多く入っていますので、 インストールまたはアップグレードの前に実行環境のPerlやRubyのバージョンを確認してください。

変更点

  • Go sisimai.Rise()関数はポインターではなくスライス ([]sis.Fact[]sis.NotDecoded)を返すようになりました。 Thanks to @corny #119 #145 #148
  • Go ビルドに必要なGoのバージョンは1.24以上になりました。 #112 #127
    • min()関数を使って Email.Entity.setNewLine()で発生するout of bounds エラーを回避するように修正しました。 Thanks to @VolkerLieber #110
    • strings.SplitN(v,s,2)v[n:strings.Index(v,s)]の代わりに strings.Cut()を使うようになりました。 #116 #117
    • moji.EqualsAny()の代わりにslices.Contains()を使うようになりました。 #118
    • strings.Split(v, "\n")の代わりにstrings.Lines()を使うようになりました。 #123 #128
  • Googleの新しいエラーコード:4.7.405.7.32AuthFailureとして実装しました。 #590 #591 #349 #350 #104 #152
  • マイクロソフトの新しいエラーコード:5.7.515AuthFailureとして、4.4.から 始まる一部のエラーコードをSystemErrorとして実装しました。 #107 #108 #149 #150 #151 #588 #589 #342 #345 #348
  • Ruby Rubyのチルド文字列(frozen string literals)に対応しました。 #347
  • Perl Ruby undef(Perl)およびnil(Ruby)を返していた関数において、 Goのゼロ値に従った戻り値(文字列・数値・真偽値など)を返すようになりました。 #586 #587 #343 #346
  • Go いくつかのドキュメントでスペルミスを修正しました。 #109 #115
  • Go sisimai.Rise()関数の第二引数がnilの時は sis.DecodingArgsへのポインターを代入するようになりました。 Thanks to @VolkerLieber #111 #113
  • Go 最小限のLinterでgolangci-lintを使うようになりました。 Thanks to @corny #120 #121
  • Go moji.Squeeze()mail.setNewLine()は値を返さなくなりました。 #124 #125
  • Go lhost.DeliveryStatusはHash Mapの代わりにiotaを使うようになりました。 #131 #132
  • Go 条件無しのforループとif文をswitch文に置き換えました。 #133 #134
  • Go いくつかのループでstring.Contains()の代わりにmoji.IsContained() を使うようになりました。 #135
  • Go moji.AlignedAny()関数をmoji/any.goに実装しました。 #136 #137
  • Go Hash Mapのreason.GetRetriedreason.ShouldBeRetried()関数に書き換えられました。 #139 #141
  • Go reason.IsExplicit()関数で細い改善をしました。 #140
  • Go メモリ割当を改善する為に構造体のメンバーを宣言する順序を変更しました。 #142 #143
  • Go スライスへのポインターを返していた関数の全てで直接スライスを返すようにしました。 #146 #147