Note : for once, this is a cross-post from ask.sagemath.org, for ticket advice…
Exploring this ask.sagemath
question led me to discover what I think is a serious bug : it seems that latex
ing an expression containing a held (= unevaluated) integral triggers the latter’s evaluation ; ditto for view
ing or show
ing…
Minimal case:
sage: Ig=sin(x)
sage: It=Ig.integrate(x,-pi,pi,hold=True)
sage: Cs=1/(2*pi)
sage: latex(It)
\int_{-\pi}^{\pi} \sin\left(x\right)\,{d x}
So far, so good. But :
sage: Ex=Cs*It
sage: Ex
1/2*integrate(sin(x), x, -pi, pi)/pi
sage: latex(Ex)
\frac{0}{2 \, \pi}
Aaaarghh ! And, of course :
sage: show(Ex)
\newcommand{\Bold}[1]{\mathbf{#1}}\frac{0}{2 \, \pi}
And view(Ex)
proudly displays this crap…
IMHO, this is a serious bug, entailing a risk of inadvertently triggering long, impossible or never ending computations.
Unless someone points me to the direction and magnitude of my stupidity, I intend to file this as a critical (maybe blocker) ticket; however, the target is not clear to me : I do not thoink that the rendering system is the only culprit (nor even the main one…) ; there may be a more fundamental problem in the evaluation system.
Advice ?
On Cocalc, I have checked that the problem can be reproduced on all available Sage kernels back to 8.2.
Looks more like an error from me, rather than a bug…
Suggestions most welcome !
One more data point: calling latex
(or show
or view
) on such an expression containing a held integral in a hold
context gives a RecursionError
.
HTH,
This is now Trac#30326 (with priority major
, but not critical
, notwithstanding the potential for session/notebook crash or stalling).
HTH,