Opened 4 years ago

Last modified 30 hours ago

#23712 new enhancement

Upgrade to Tachyon 0.99b6

Reported by: dimpase Owned by:
Priority: major Milestone:
Component: packages: standard Keywords: upgrade, tachyon
Cc: slelievre, mjo Merged in:
Authors: Dima Pasechnik Reviewers:
Report Upstream: N/A Work issues:
Branch: public/23712 (Commits, GitHub, GitLab) Commit: 8138ccf1ee71785c44efe9df9e87eab7210425d9
Dependencies: Stopgaps:

Status badges

Description (last modified by slelievre)

We currently are shipping a 7 years old tachyon (0.98). 0.99b6 is from 2013, and is de facto stable version, e.g. in debian or gentoo.

This is also needed to make Sage work on arm64/aarch64, see #23687.

In Debian:

Change History (15)

comment:1 Changed 4 years ago by chapoton

  • Branch set to public/23712
  • Commit set to 8138ccf1ee71785c44efe9df9e87eab7210425d9

None of our 4 patches does apply. I do not know if they should be removed or rebased.


New commits:

8138ccfnew tachyon 99b6

comment:2 follow-up: Changed 4 years ago by dimpase

there are quite a few doctests failing with this branch. Presumably the interface might have changed a bit.

comment:3 in reply to: ↑ 2 Changed 4 years ago by fbissey

Replying to dimpase:

there are quite a few doctests failing with this branch. Presumably the interface might have changed a bit.

That's what I remember. Are all the failing doctests in doc? I realised yesterday that I have lost the ability to test those in sage-on-gentoo recently (for some reason .rst files get installed as .rst.txt and then they are not tested). So I miss all broken doctests from rst files at the moment.

For the record I don't seem to have any (repeatable) failures on the stuff I doctest in sage-on-gentoo.

comment:4 Changed 4 years ago by dimpase

This is what I get with ptestlong:

sage -t --long --warn-long 45.7 src/sage/plot/plot3d/parametric_plot3d.py  # 1 doctest failed
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/implicit_plot3d.py  # 6 doctests failed
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/platonic.py  # 1 doctest failed
sage -t --long --warn-long 45.7 src/sage/graphs/generic_graph.py  # 9 doctests failed
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/parametric_surface.pyx  # 3 doctests failed
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/implicit_surface.pyx  # 1 doctest failed
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/tachyon.py  # 21 doctests failed
sage -t --long --warn-long 45.7 src/sage/combinat/tiling.py  # 1 doctest failed
sage -t --long --warn-long 45.7 src/sage/numerical/sdp.pyx  # 9 doctests failed
sage -t --long --warn-long 45.7 src/sage/numerical/backends/cvxopt_sdp_backend.pyx  # 7 doctests failed
sage -t --long --warn-long 45.7 src/sage/geometry/polyhedron/backend_normaliz.py  # 2 doctests failed
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/index_face_set.pyx  # 1 doctest failed
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/base.pyx  # 1 doctest failed

Typically it's something about PNG interface:

Using --optional=ccache,cmake,database_gap,gap_packages,mpir,normaliz,pynormaliz,python2,qhull,sage
Doctesting entire Sage library.
Sorting sources by runtime so that slower doctests are run first....
Doctesting 3578 files using 4 threads.
sage -t --long --warn-long 45.7 src/sage/plot/plot3d/parametric_plot3d.py
**********************************************************************
File "src/sage/plot/plot3d/parametric_plot3d.py", line 172, in sage.plot.plot3d.parametric_plot3d.?
Failed example:
    P.show(viewer='tachyon')
Exception raised:
    Traceback (most recent call last):
      File "/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 515, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 885, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.plot.plot3d.parametric_plot3d.?[13]>", line 1, in <module>
        P.show(viewer='tachyon')
      File "sage/plot/plot3d/base.pyx", line 1478, in sage.plot.plot3d.base.Graphics3d.show (build/cythonized/sage/plot/plot3d/base.c
:21367)
        dm.display_immediately(self, **kwds)
      File "/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 834, in displa
y_immediately
        self._backend.display_immediately(plain_text, rich_output)
      File "/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/repl/rich_output/backend_doctest.py", line 209, in displa
y_immediately
        self.validate(rich_output)
      File "/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/repl/rich_output/backend_doctest.py", line 270, in valida
te
        assert rich_output.png.get().startswith('\x89PNG')
    AssertionError

Running the corresponding lines at the Sage prompt works and shows a meaningful plot. However, it's not stored in a PNG file, it's stored in TGA file:

$ file tmp_ZccmzF.png 
tmp_ZccmzF.png: Targa image data - RGB 500 x 500 x 24 - top Targa image data - RGB 500 x 500 x 24 - top

comment:5 Changed 4 years ago by dimpase

In fact, ldd says that tachyon is not linked to libpng - no wonder it cannot do PNG.

comment:6 Changed 4 years ago by dimpase

I see that Debian has a set of patches to this version, including autotoolisation! https://packages.debian.org/source/sid/tachyon

Should we use them, rather than keep wrestling with patches to Makefiles?

comment:7 Changed 4 years ago by fbissey

Probably. The linking problem would also explain why I don't see those failures in s-o-g.

comment:8 follow-up: Changed 4 years ago by fbissey

That's a lot of patches https://anonscm.debian.org/cgit/debian-science/packages/tachyon.git/tree/debian/patches but most of them will probably be handy. Are you up to write a spkg-src?

comment:9 in reply to: ↑ 8 Changed 4 years ago by dimpase

Replying to fbissey:

That's a lot of patches https://anonscm.debian.org/cgit/debian-science/packages/tachyon.git/tree/debian/patches but most of them will probably be handy. Are you up to write a spkg-src?

I have a problem with them at the moment: namely, applying these patches and invoking autoreconf -i -f leads to

src/Makefile.am:33: error: HAVE_LD_VERSION_SCRIPT does not appear in AM_CONDITIONAL

Note that src/Makefile.am has the following lines around line 33:

libtachyon_la_LD_VERSION_SCRIPT=
if HAVE_LD_VERSION_SCRIPT
libtachyon_la_LD_VERSION_SCRIPT+= -Wl,--version-script=$(top_srcdir)/src/tachyon.map
endif

This can be remedied by adding to configure.ac the following:

AM_CONDITIONAL([HAVE_LD_VERSION_SCRIPT],   [blah...])

but I don't quite see what blah... should be. (I put in some random shell call just to see if it helps, and it does, but that's of course not a proper fix).

So this looks like a bug in Debian patches (namely in upstream-rationalization-autotools.patch), which only manifests itself in non-Debian setting.

comment:10 Changed 4 years ago by dimpase

And I also don't get how to configure and run make to create a tachyon executable. All what make install does, it installs headers and various dynamic libs, such as libtachyon-mt-thr.so.0.0.0.

comment:11 Changed 3 years ago by slelievre

  • Cc slelievre added
  • Description modified (diff)
  • Keywords upgrade tachyon added
  • Milestone changed from sage-8.1 to sage-8.7
  • Summary changed from update tachyon to 0.99 to Upgrade to Tachyon 0.99b6

comment:12 Changed 3 years ago by embray

  • Milestone changed from sage-8.7 to sage-8.8

Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually)

comment:13 Changed 3 years ago by embray

  • Milestone sage-8.8 deleted

As the Sage-8.8 release milestone is pending, we should delete the sage-8.8 milestone for tickets that are not actively being worked on or that still require significant work to move forward. If you feel that this ticket should be included in the next Sage release at the soonest please set its milestone to the next release milestone (sage-8.9).

comment:14 Changed 2 years ago by gh-timokau

For what it's worth I'm just fixing up aarch64 sage on nixos and I get no doctest failures with tachyon 0.99b2 (the version we ship).

There are some transient timeout failures, but that's it. Probably not related to tachyon.

comment:15 Changed 30 hours ago by mjo

  • Cc mjo added

There's officially a new release, v0.99.2:

http://jedi.ks.uiuc.edu/~johns/raytracer/

Note: See TracTickets for help on using tickets.