R 4.2のWindowsの文字コード関連にちょっとだけコントリビュートした話

R 4.2がいよいよ4月22日にリリースされます。

数か月前に見たときは、「ほんとに出るのか...?」という感じでしたが、出るみたいです。すごい。 まあ実際、ここ数か月はWindowsでR-develを使ってるんですが、特に深刻なバグとか出くわしたことないので大丈夫そうな感じします。

続きを読む

メモ:WindowsでのRのクラッシュをgdbを使って調べる

前回はWinDbgを使ったけど、今回はうまく見れなかったのでgdbを使ってみる。 (gdbなので、Windows以外でも似たような感じでデバッグできるはず)

続きを読む

メモ:WindowsでのRのクラッシュをWinDbg Previewを使って解析する

原因がよくわからないけどWindowsでだけRがクラッシュする、ということがあって、地道なprintデバッグで調べた結果、問題はR本体側で起こっているということが分かった。 R本体側なのでprintデバッグを仕込めないし(Rをビルドしなおせばいいという話はあるけど)、仕方ないのでいろいろやり方を調べた時のメモ。

続きを読む

メモ:WindowsでR-develをビルドする方法、あるいは混沌について(2022年初頭版)

なぜわざわざタイトルに「(2022年初頭版)」とつけたかというと、今われわれは混沌のさなかにいるからです。明日はどっちだ。

めちゃくちゃややこしいことに、現時点でRtoolsはRtools40とRtools42の2種類が存在します。 そして、細かいことを言ってさらにややこしくすれば、Rtools40には2つのバージョンが存在します。

  • Rtools40: MSYS2をベースにいくつかパッチをあてたもの
    • v1: R 4.0~4.1用のツールチェーン(GCC 8 64bit: ${RTOOLS40_HOME}/mingw64GCC 8 32bit: ${RTOOLS40_HOME}/mingw32)を含む
    • v2: R 4.0~4.1用のツールチェーン(GCC 8 64bit、32bit)に加えて、R 4.2用のツールチェーン(GCC 10 64bit: ${RTOOLS40_HOME}/ucrt64)を含む
  • Rtools42: MXEというツールチェーンそのまま
    • R 4.2用のツールチェーン(GCC 10 64bit: ${RTOOLS42_HOME}/x86_64-w64-mingw32.static.posix)と依存ライブラリを含む(ので重い。3GB越え...)

ということで、今のR-develをビルドできるツールには、Rtools40v2とRtools42の2種類があります。 Rのバグを検証するために開発版をビルドしようとしたらそれぞれ微妙にビルド方法が違ったのでメモ。

続きを読む