といっても既に3月ですが,2月のJulia言語雑感です。と思ったのですが 更に3月にだいぶ入ったので3月も含めた雑感にしたいと思います。
といっても仕事が忙しかったこともあり,特に何も思いついていませんがどうしましょうか? と思ったら3月に入ってだいぶ動きがありました。
とりあえず今回は普段使っていての感想みたいな感じでスタートし, 3月に入って動きがあった内容について書いてみたいと思います。
JuliaTokai#21
JuliaTokai#21が2025年3月30日(日) 13:30~ 開催されるようです。
数少ないJulia言語の国内定期イベントです。
時間が融通できコミュニティ規範に同意できる方はぜひとも参加してみては?
Genieってカジュアルにエンバグするんだ…の巻
個人的にはJulia言語で数少ないちゃんとしたWebフレームワークと思っていたGenie Framework。 インストールはしていたものの全然使っていませんでした。
で毎日朝の日課となっているパッケージのアップデートすると何故か Genie関連のプリコンパイルでエラーが発生。
そのバージョンアップのdiffを見ると, ほぼ一行の更新で不具合になっているようでした。
エラーメッセージを見ると,Base.のつけ忘れっぽい。
Genieのissue 737も挙がっていました。 およそ1日後にアップデートされたけど,GenieはCIも確認せずにカジュアルにエンバグすることを知り, 今まで結構信用していたのですが考えを改める必要がありそうです。
他にカジュアルに不具合があるのがGR関係のパッケージ(Plots.jlのGRバックエンドではない)です。
こちらの方はGR_jllとのからみが多そうな気がします。
数式処理部分はmatplotlibのPythonのソースをC言語に移植する等,非常に精力的に
活動しているGRフレームワーク。Debianからバッケージに入れる打診があったり
マルチプラットフォームなフレームワークとして開発が進んでいるようです。
TikzPicturesのバージョンが3.2になりがちな件
TikzPictures.jlは他のパッケージと組み合わせるとどうも3.2になりがちで3.5.0になかなかなってくれません。
色々調べてみると,v3.5.0が指定しているjll系のパッケージは古いバージョンになっているからのようです。
v3.5.0のProject.tomlは次のような感じです。
name = "TikzPictures" uuid = "37f6aa50-8035-52d0-81c2-5a1d08754b2d" license = "MIT" version = "3.5.0" ...間省略 [compat] LaTeXStrings = "1.1" Poppler_jll = "21.9" Requires = "1.1" tectonic_jll = "0.13" julia = "1.6"
何といってもtectonic_jllのバージョンが低く,さらにPoppler_jllが低く
おまけにLaTeXStringsも低いです。
tectonic_jllの最新は0.15,Poppler_jllの最新は24.6.0,LaTeXStringsの最新は1.4です。
自分の場合バックエンドはubuntuにtexlive-fullをインストールして使うことが多く
tectonicなんてどうでもいいです。
popplerはsvg等への変換にしか使ってないので
とりあえずツールとして使えればよく
Pkg.develop("TikzPictures")をして~/.julia/dev/TikzPictures/Project.tomlをとりあえず目一杯最新にしておきます。
[compat] LaTeXStrings = "1.1, 1.2, 1.3, 1.4" Poppler_jll = "21.9, 22, 23, 24" Requires = "1.1" tectonic_jll = "0.13, 0.14, 0.15" julia = "1.8"
tectonic_jllはTeXがインストールしていなくても実行できるようにするためみたいですが,
そうすると日本語が使えなくなるので,自分にとってはあまり有難味のない部分です。
Julia言語のパッケージングのポリシーとして外部ライブラリも引っくるめて インストールするようになりがちで,自分のパッケージの中身はよく見てるけど 依存元のパッケージには注意を払っていないことが多いような気がします。
Julia Discourseでは「v1.11(or v1.10)ではパッケージを追加するとエラーになる」という話題が多数
Julia言語の場合は公式のパッケージ管理ツールがあって,気軽に使えるということもあって パッケージ間の依存関係が複雑になっています。
で,まめにパッケージをアップデートしておかないと,addした時に古いパッケージとの
依存関係が変になってエラーになるということが頻発します。
また,高速性をウリにしているようなパッケージなどJulia言語のコアな部分(LLVMとか)に 依存しているためJulia言語本体の変更に追随できないということが起こりがちです。
Pythonのパッケージと違ってJulia言語のパッケージの開発は個人の能力や努力に依存しがちな ところがあります。いやjapanize-matplotlibとかの顛末みてると 個人作成パッケージはPythonも似たようなものなのかも,とも思います。
興味が他に移るとパッケージのメンテナンスが滞るのもよくあり, 依存元のパッケージが原因の不具合とかになると,なかなか解決しないということもよくあるということですかね。
公式のレポジトリはたしか同名のフォークは登録できなかったような気がするので, 更新が止まると依存しているパッケージは詰みがちですね。
Google ColaboratoryがJulia言語を正式サポート
先日の日記にも書いた通り Google ColaboratoryでJuliaが正式にサポートされました。 といっても会社と家がほとんどで,出先がほとんどない私にとってはあまり使わないような気がします。
学生がJulia言語を初めて触るにはいいかと思います。
Julia v1.11.4,v1.10.9(LTS版)リリース
Julia言語のバージョン1.11.4,LTS版のv1.10.9がリリースされました。
前回のLTS版は数年経っても1.6.7止まりだったので,v1.10.xはかなり 更新が進んでいることになります。
v1.10系は自分も会社ではまだ使っていて,もうしばらく使うことになるかもしれません。
This month in Julia world - 2025-02
Julia DiscourseにThis month in Julia world - 2025-02 の記事がアップされています。この日記と同じ,3月に2月のことを書いています。
この記事は参考にせず,This month in Julia world - 2025-02 の内容を参考にしていただければと思います。
まとめ
今月は色々興味を持ったことがあった気がするのですが いざ書くとなると全く内容が出てきませんでした。
なるべくマメにメモをとって,来月の雑感に備えたいと思います。