Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Evaluation into the closed module `Calculus` breaks incremental compilation...

オープン
#151 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
28/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
julia
領域
compilers

調査の方向性

src/symbolic.jl の 96 行目から始め、Julia 1.4-to-1.5 のインクリメンタルコンパイル動作の背後にある eval パスを調査してください。MWE が提供されていないため、まず報告されたマクロ生成式のケースを縮小してください。提案されている Main での評価を既存のテストと比較し、回帰が再現可能で解決され、テストスイートも引き続きパスすることを確認できたら、issue は完了とみなしてください。

索引モデルが issue の本文から書いたものです。

説明

I have a complex code that broke when I switched from Julia 1.4 to Julia 1.5. The breakage seems to be intertwined with the Calculus package. I have tried but failed to produce an MWE (sorry about that). The context is that my complex code is doing some code generation in a macro and then calling Calculus.simplify(ex) on some generated expressions. The error I get when running my complex code is

Evaluation into the closed module `Calculus` breaks incremental compilation because the side effects will not be permanent. This is likely due to some other module mutating `Calculus` with `eval` during precompilation - don't do this.

The stack trace leads me to this line. It seems like the eval is the source of the problem. Would there be any harm in evaling in Main rather than Calculus itself? Switching that line to

return (@static (VERSION < v"0.7.0-DEV.5149") ? eval : Core.eval)(Main, ex)

solves my problem and all the tests still pass. I'd be happy to submit a pull request, but not sure if that solution would be accepted.

主要言語
Julia
スター
285
フォーク
78
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

JuliaMath/Calculus.jl のほかの issue

JuliaMath/Calculus.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。