Opened 7 years ago
Closed 7 years ago
#18558 closed enhancement (fixed)
Test all installed optional packages by default
Reported by:  Nathann Cohen  Owned by:  

Priority:  major  Milestone:  sage6.8 
Component:  doctest framework  Keywords:  
Cc:  Volker Braun, Jeroen Demeyer, Thierry Monteil, Sébastien Labbé  Merged in:  
Authors:  Nathann Cohen, Jeroen Demeyer  Reviewers:  Jeroen Demeyer, KarlDieter Crisman, John Palmieri 
Report Upstream:  N/A  Work issues:  
Branch:  82f3eec (Commits, GitHub, GitLab)  Commit:  82f3eec7a275f4f250b699633339bcb391b00b1e 
Dependencies:  #18456, #18124, #18559, #18563, #18579, #18581  Stopgaps: 
Description (last modified by )
With this branch, running "sage t" will automatically involve testing all installed uptodate newstyle optional Sage packages.
Change History (143)
comment:1 Changed 7 years ago by
Branch:  → u/ncohen/18558 

Commit:  → dd586b9a4ce39bc27542263c8f91d5d84780d598 
Description:  modified (diff) 
Status:  new → needs_review 
comment:3 followup: 4 Changed 7 years ago by
comment:4 followup: 6 Changed 7 years ago by
comment:5 Changed 7 years ago by
Note that tests for the cbc
package are marked # optional  Coin
so I guess this needs to be fixed.
comment:6 Changed 7 years ago by
Well, there is a patch.
It is two years old only. Which do you prefer to review, theirs or mine? :P
Note that tests for the cbc package are marked # optional  Coin so I guess this needs to be fixed.
True, I will create another ticket in a second (done: #18559)
Nathann
comment:7 Changed 7 years ago by
Status:  needs_review → needs_work 

Instead of patching sageruntests
, patch the doctest framework, and add some doctests.
comment:8 Changed 7 years ago by
And instead of naming the option sage_and_installed_packages
, I would prefer to have an option like alloptional
(all installed optional packages), so one can do optional=sage,alloptional,internet
(which is not possible with your patch).
comment:9 followups: 10 11 Changed 7 years ago by
I did not patch the doctest framework because the default value of 'optional' is systematically overwritten by sageruntests
. As for 'add some doctest', I do not understand what you mean so be more specific.
comment:10 followup: 13 Changed 7 years ago by
Replying to ncohen:
I did not patch the doctest framework because the default value of 'optional' is systematically overwritten by
sageruntests
.
What do you mean with this? The sageruntests
script is really a very thin frontend for the doctest framework in the Sage library, it doesn't parse the value of the optional
option.
comment:11 Changed 7 years ago by
Replying to ncohen:
As for 'add some doctest', I do not understand what you mean so be more specific.
I meant "add a doctest in the doctest framework", but I admit I haven't thought much about what this should be.
comment:12 Changed 7 years ago by
On the topic of the option name: make it just optional
instead of alloptional
. So the default value should be optional=sage,optional
.
comment:13 Changed 7 years ago by
What do you mean with this? The
sageruntests
script is really a very thin frontend for the doctest framework in the Sage library, it doesn't parse the value of theoptional
option.
I mean that I was surprised to find that the DocTestDefaults
class is not even instanciated when you run doctests.
comment:14 Changed 7 years ago by
Commit:  dd586b9a4ce39bc27542263c8f91d5d84780d598 → e45591ade00e925ecfb4ad08191c95add7dd5c84 

Branch pushed to git repo; I updated commit sha1. New commits:
e45591a  trac #18558: now with an 'installed_optional' keyword

comment:15 Changed 7 years ago by
Status:  needs_work → needs_review 

There is now an installed_optional
tag which gets replaced by the list of all (installed) optional packages. The replacement is done in doctest.py
.
Nathann
comment:16 Changed 7 years ago by
Dependencies:  #18456 → #18456, #18124 

comment:17 Changed 7 years ago by
Is there going to be a separate installed_experimental
keyword? If not then it would be better to shorten it; Just optional=optional
(somewhat confusing) or optional=installed
. Imho the latter is best since its obvious enough that it refers to packages installed by Sage. It would also fit nicely with autodetection on #13540, which would then be optional=auto
.
comment:18 Changed 7 years ago by
What are you going to do with all the current failing optional tests? Mark them as # known bug
, open tickets to fix them,...?
comment:19 followup: 20 Changed 7 years ago by
Imho: let them fail, its not the job of this ticket to clear that up. Also, will only fail if you actually install optional packages. And you can switch it off with optional=sage
.
comment:20 followup: 26 Changed 7 years ago by
Replying to vbraun:
its not the job of this ticket to clear that up.
No, but it's the job of every ticket to ensure that the ticket does not make doctests fail. I think it will be very confusing when we get lots of reports that make ptest
fails just somebody installed an optional package. At least, those make
targets should use optional=sage
then. Alternatively, mark failing tests as # known bug
.
comment:21 Changed 7 years ago by
Status:  needs_review → needs_work 

sage t long src/sage/geometry/triangulation/point_configuration.py ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 88, in sage.geometry.triangulation.point_configuration Failed example: regular = p.restrict_to_regular_triangulations(True).triangulations_list() # optional  TOPCOM Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.triangulation.point_configuration[19]>", line 1, in <module> regular = p.restrict_to_regular_triangulations(True).triangulations_list() # optional  TOPCOM File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 1016, in triangulations_list return list(self.triangulations(verbose)) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 983, in triangulations raise ValueError('Need TOPCOM to test for regularity.') ValueError: Need TOPCOM to test for regularity. ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 89, in sage.geometry.triangulation.point_configuration Failed example: nonregular = p.restrict_to_regular_triangulations(False).triangulations_list() # optional  TOPCOM Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.triangulation.point_configuration[20]>", line 1, in <module> nonregular = p.restrict_to_regular_triangulations(False).triangulations_list() # optional  TOPCOM File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 1016, in triangulations_list return list(self.triangulations(verbose)) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 983, in triangulations raise ValueError('Need TOPCOM to test for regularity.') ValueError: Need TOPCOM to test for regularity. ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 90, in sage.geometry.triangulation.point_configuration Failed example: len(regular) # optional  TOPCOM Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.triangulation.point_configuration[21]>", line 1, in <module> len(regular) # optional  TOPCOM NameError: name 'regular' is not defined ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 92, in sage.geometry.triangulation.point_configuration Failed example: len(nonregular) # optional  TOPCOM Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.triangulation.point_configuration[22]>", line 1, in <module> len(nonregular) # optional  TOPCOM NameError: name 'nonregular' is not defined ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 94, in sage.geometry.triangulation.point_configuration Failed example: nonregular[0].plot(aspect_ratio=1, axes=False) # optional  TOPCOM Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.triangulation.point_configuration[23]>", line 1, in <module> nonregular[Integer(0)].plot(aspect_ratio=Integer(1), axes=False) # optional  TOPCOM NameError: name 'nonregular' is not defined ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 687, in sage.geometry.triangulation.point_configuration.PointConfiguration._TOPCOM_triangulations Failed example: next(iter) # optional  TOPCOM Expected: #### TOPCOM input #### # points2triangs # [[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,1]] #### TOPCOM output #### # T[1]:=[5,3:{{0,1,2},{1,2,3},{0,2,4},{0,1,4}}]; (<0,1,2>, <0,1,4>, <0,2,4>, <1,2,3>) Got: #### TOPCOM input #### # points2triangs # [[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,1]] #### TOPCOM output #### # T[0]:=[0>5,3:{{0,1,2},{1,2,3},{0,2,4},{0,1,4}}]; (<0,1,2>, <0,1,4>, <0,2,4>, <1,2,3>) ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 783, in sage.geometry.triangulation.point_configuration.PointConfiguration.restrict_to_regular_triangulations Failed example: len(p_regular.triangulations_list()) # optional  TOPCOM Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.triangulation.point_configuration.PointConfiguration.restrict_to_regular_triangulations[4]>", line 1, in <module> len(p_regular.triangulations_list()) # optional  TOPCOM File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 1016, in triangulations_list return list(self.triangulations(verbose)) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 983, in triangulations raise ValueError('Need TOPCOM to test for regularity.') ValueError: Need TOPCOM to test for regularity. ********************************************************************** File "src/sage/geometry/triangulation/point_configuration.py", line 826, in sage.geometry.triangulation.point_configuration.PointConfiguration.restrict_to_connected_triangulations Failed example: len(p_all.triangulations_list()) # optional  TOPCOM Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.triangulation.point_configuration.PointConfiguration.restrict_to_connected_triangulations[4]>", line 1, in <module> len(p_all.triangulations_list()) # optional  TOPCOM File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 1016, in triangulations_list return list(self.triangulations(verbose)) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/geometry/triangulation/point_configuration.py", line 981, in triangulations raise ValueError('Need TOPCOM to find disconnected triangulations.') ValueError: Need TOPCOM to find disconnected triangulations. ********************************************************************** 4 items had failures: 5 of 33 in sage.geometry.triangulation.point_configuration 1 of 4 in sage.geometry.triangulation.point_configuration.PointConfiguration._TOPCOM_triangulations 1 of 7 in sage.geometry.triangulation.point_configuration.PointConfiguration.restrict_to_connected_triangulations 1 of 7 in sage.geometry.triangulation.point_configuration.PointConfiguration.restrict_to_regular_triangulations [239 tests, 8 failures, 23.36 s] sage t long src/doc/en/thematic_tutorials/sandpile.rst ********************************************************************** File "src/doc/en/thematic_tutorials/sandpile.rst", line 695, in doc.en.thematic_tutorials.sandpile Failed example: p[0] # optional  4ti2 Expected: [{0: 8, 1: 5, 2: 4, 3: 1}, Simplicial complex with vertex set (0, 1, 2, 3) and facets {(1, 2), (3,)}] Got: [{0: 8, 1: 5, 2: 4, 3: 1}, Simplicial complex with vertex set (1, 2, 3) and facets {(1, 2), (3,)}] ********************************************************************** File "src/doc/en/thematic_tutorials/sandpile.rst", line 706, in doc.en.thematic_tutorials.sandpile Failed example: D.Dcomplex() # optional  4ti2 Expected: Simplicial complex with vertex set (0, 1, 2, 3) and facets {(1, 2), (3,)} Got: Simplicial complex with vertex set (1, 2, 3) and facets {(1, 2), (3,)} ********************************************************************** File "src/doc/en/thematic_tutorials/sandpile.rst", line 1078, in doc.en.thematic_tutorials.sandpile Failed example: p[0] # optional  4ti2 Expected: [{0: 8, 1: 5, 2: 4, 3: 1}, Simplicial complex with vertex set (0, 1, 2, 3) and facets {(1, 2), (3,)}] Got: [{0: 8, 1: 5, 2: 4, 3: 1}, Simplicial complex with vertex set (1, 2, 3) and facets {(1, 2), (3,)}] ********************************************************************** File "src/doc/en/thematic_tutorials/sandpile.rst", line 3623, in doc.en.thematic_tutorials.sandpile Failed example: D.effective_div() # optional  4ti2 Expected: [{0: 1, 1: 0, 2: 0, 3: 1, 4: 0, 5: 0}, {0: 0, 1: 0, 2: 1, 3: 1, 4: 0, 5: 0}, {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 2}] Got: [{0: 0, 1: 0, 2: 1, 3: 1, 4: 0, 5: 0}, {0: 1, 1: 0, 2: 0, 3: 1, 4: 0, 5: 0}, {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 2}] ********************************************************************** File "src/doc/en/thematic_tutorials/sandpile.rst", line 3627, in doc.en.thematic_tutorials.sandpile Failed example: D.effective_div(False) # optional  4ti2 Expected: [[1, 0, 0, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 2]] Got: [[0, 0, 1, 1, 0, 0], [1, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 2]] ********************************************************************** File "src/doc/en/thematic_tutorials/sandpile.rst", line 3779, in doc.en.thematic_tutorials.sandpile Failed example: D.linear_system() # optional  4ti2 Expected: {'inhomog': [[0, 0, 1, 1, 0, 2], [0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0]], 'num_inhomog': 3, 'num_homog': 2, 'homog': [[1, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0]]} Got: {'homog': [[1, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0]], 'inhomog': [[0, 0, 0, 0, 0, 1], [0, 0, 1, 1, 0, 2], [0, 0, 0, 0, 0, 0]], 'num_homog': 2, 'num_inhomog': 3} ********************************************************************** 1 item had failures: 6 of 584 in doc.en.thematic_tutorials.sandpile [583 tests, 6 failures, 26.44 s] sage t long src/sage/symbolic/integration/integral.py ********************************************************************** File "src/sage/symbolic/integration/integral.py", line 528, in sage.symbolic.integration.integral.integrate Failed example: integrate(f(x), x, algorithm="fricas") # optional  fricas Expected: 2*sqrt(x + sqrt(x^2 + 1)) + log(sqrt(x + sqrt(x^2 + 1))  1)  log(sqrt(x + sqrt(x^2 + 1)) + 1)  2*arctan(sqrt(x + sqrt(x^2 + 1))) Got: 2*sqrt(x + sqrt(x^2 + 1))  2*arctan(sqrt(x + sqrt(x^2 + 1)))  log(sqrt(x + sqrt(x^2 + 1)) + 1) + log(sqrt(x + sqrt(x^2 + 1))  1) ********************************************************************** File "src/sage/symbolic/integration/integral.py", line 541, in sage.symbolic.integration.integral.integrate Failed example: integrate(f(x), x, 1, 2, algorithm="fricas") # optional  fricas Expected: 1/2*pi + arctan(1/2) + arctan(2) + arctan(5) + arctan(8) Got: 1/2*pi + arctan(8) + arctan(5) + arctan(2) + arctan(1/2) ********************************************************************** 1 item had failures: 2 of 118 in sage.symbolic.integration.integral.integrate [161 tests, 2 failures, 23.00 s] sage t long src/sage/graphs/graph_generators.py ********************************************************************** File "src/sage/graphs/graph_generators.py", line 1145, in sage.graphs.graph_generators.GraphGenerators.fullerenes Failed example: g.plot3d(layout='spring') # optional buckygen Expected nothing Got: Graphics3d Object ********************************************************************** 1 item had failures: 1 of 11 in sage.graphs.graph_generators.GraphGenerators.fullerenes [140 tests, 1 failure, 24.39 s] sage t long src/sage/coding/linear_code.py ********************************************************************** File "src/sage/coding/linear_code.py", line 1457, in sage.coding.linear_code.AbstractLinearCode.decode Failed example: C.decode(v, algorithm="guava") # optional  gap_packages (Guava package) Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.coding.linear_code.AbstractLinearCode.decode[20]>", line 1, in <module> C.decode(v, algorithm="guava") # optional  gap_packages (Guava package) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/coding/linear_code.py", line 1481, in decode result = gap.Decodeword(code, right_word) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 534, in __call__ return self._parent.function_call(self._name, list(args), kwds) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/gap.py", line 893, in function_call ['%s=%s'%(key,value.name()) for key, value in kwds.items()]))) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/gap.py", line 568, in eval result = Expect.eval(self, input_line, **kwds) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/expect.py", line 1221, in eval for L in code.split('\n') if L != '']) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/gap.py", line 766, in _eval_line raise RuntimeError(message) RuntimeError: Gap produced error output Error, List Element: <list>[2] must have an assigned value executing Decodeword($sage26,$sage24); ********************************************************************** File "src/sage/coding/linear_code.py", line 2356, in sage.coding.linear_code.AbstractLinearCode.permutation_automorphism_group Failed example: C.permutation_automorphism_group(algorithm="gap") # optional  gap_packages (Guava package) Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.coding.linear_code.AbstractLinearCode.permutation_automorphism_group[27]>", line 1, in <module> C.permutation_automorphism_group(algorithm="gap") # optional  gap_packages (Guava package) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/coding/linear_code.py", line 2397, in permutation_automorphism_group A = gap("MatrixAutomorphisms(matCwt)") File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 170, in __call__ return cls(self, x, name=name) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/expect.py", line 1304, in __init__ self._name = parent._create(value, name=name) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 360, in _create self.set(name, value) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/gap.py", line 1298, in set self._eval_line(cmd, allow_use_file=True) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/gap.py", line 766, in _eval_line raise RuntimeError(message) TypeError: Gap produced error output Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `MatrixAutomorphisms' on 1 arguments executing $sage30:=MatrixAutomorphisms(matCwt);; ********************************************************************** File "src/sage/coding/linear_code.py", line 2358, in sage.coding.linear_code.AbstractLinearCode.permutation_automorphism_group Failed example: C.permutation_automorphism_group(algorithm="gap") # optional  gap_packages (Guava package) Exception raised: Traceback (most recent call last): File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 496, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 858, in compile_and_execute exec(compiled, globs) File "<doctest sage.coding.linear_code.AbstractLinearCode.permutation_automorphism_group[29]>", line 1, in <module> C.permutation_automorphism_group(algorithm="gap") # optional  gap_packages (Guava package) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/coding/linear_code.py", line 2397, in permutation_automorphism_group A = gap("MatrixAutomorphisms(matCwt)") File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 170, in __call__ return cls(self, x, name=name) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/expect.py", line 1304, in __init__ self._name = parent._create(value, name=name) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 360, in _create self.set(name, value) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/gap.py", line 1298, in set self._eval_line(cmd, allow_use_file=True) File "/usr/local/src/sageconfig/local/lib/python2.7/sitepackages/sage/interfaces/gap.py", line 766, in _eval_line raise RuntimeError(message) TypeError: Gap produced error output Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `MatrixAutomorphisms' on 1 arguments executing $sage17:=MatrixAutomorphisms(matCwt);; ********************************************************************** 2 items had failures: 1 of 23 in sage.coding.linear_code.AbstractLinearCode.decode 2 of 31 in sage.coding.linear_code.AbstractLinearCode.permutation_automorphism_group [456 tests, 3 failures, 9.84 s] sage t long src/sage/rings/real_mpfr.pyx ********************************************************************** File "src/sage/rings/real_mpfr.pyx", line 3012, in sage.rings.real_mpfr.RealNumber._axiom_ Failed example: fricas(R(pi)) # optional  fricas Expected: 3.1415926535 8979323846 26433833 Got: 3.1415926535_8979323846_26433833 ********************************************************************** 1 item had failures: 1 of 4 in sage.rings.real_mpfr.RealNumber._axiom_ [957 tests, 1 failure, 2.88 s] sage t long src/sage/rings/infinity.py ********************************************************************** File "src/sage/rings/infinity.py", line 277, in sage.rings.infinity.AnInfinity._fricas_init_ Failed example: fricas(oo) # optional  fricas Expected: %minusInfinity Got:  infinity ********************************************************************** 1 item had failures: 1 of 3 in sage.rings.infinity.AnInfinity._fricas_init_ [280 tests, 1 failure, 2.42 s] sage t long src/sage/geometry/polyhedron/base_ZZ.py ********************************************************************** File "src/sage/geometry/polyhedron/base_ZZ.py", line 223, in sage.geometry.polyhedron.base_ZZ.Polyhedron_ZZ.? Failed example: p = P.ehrhart_polynomial(maxdet=5, verbose=True) # optional  latte_int Expected: This is LattE integrale 1.7.2 ... Invocation: count ehrhartpolynomial 'redundancycheck=none' 'maxdet=5' cdd ... ... Got: This is LattE integrale 1.7.3 Available from http://www.math.ucdavis.edu/~latte/ <BLANKLINE> Invocation: count ehrhartpolynomial 'redundancycheck=none' 'maxdet=5' cdd /home/jdemeyer/.sage/temp/tamiyo/6258/tmp_GWXqbS.ine Warning: Not performing check for empty polytope, because it is unimplemented for the CDDstyle input format. size = 4 x 4 Number Type = rational Ax <= b, given as (bA): ========================= [1 1 1 0] [1 2 1 0] [1 1 2 0] <BLANKLINE> Ax = b, given as (bA): ======================== [1 2 1 3] <BLANKLINE> Computing hermitean normal form. sol: [1 0 0] Particular solution: Basis: New inequalities: [0 1 3 0] [0 0 3 0] [3 3 6 0] Time for reading and preprocessing: 0 sec The polytope has 3 vertices. Time for computing vertices and supporting cones: 0 sec Time for dualizing general cones: 0 sec Dualizing all cones...All cones are now dualized. Time for dualizing general cones: 0 sec Triangulating cone... done. 0 vertex cones done. Triangulating cone... done. 1 vertex cones done. Triangulating cone... done. 2 vertex cones done. <BLANKLINE> Ehrhart polynomial: Total time: 0 sec ********************************************************************** File "src/sage/geometry/polyhedron/base_ZZ.py", line 231, in sage.geometry.polyhedron.base_ZZ.Polyhedron_ZZ.? Failed example: p = P.ehrhart_polynomial(dual=True, verbose=True) # optional  latte_int Expected: This is LattE integrale 1.7.2 ... Invocation: count ehrhartpolynomial 'redundancycheck=none' dual cdd ... ... Got: This is LattE integrale 1.7.3 Available from http://www.math.ucdavis.edu/~latte/ <BLANKLINE> Invocation: count ehrhartpolynomial 'redundancycheck=none' dual cdd /home/jdemeyer/.sage/temp/tamiyo/6258/tmp_61Y455.ine Warning: Not performing check for empty polytope, because it is unimplemented for the CDDstyle input format. size = 4 x 4 Number Type = rational Ax <= b, given as (bA): ========================= [1 1 1 0] [1 2 1 0] [1 1 2 0] <BLANKLINE> Ax = b, given as (bA): ======================== [1 2 1 3] <BLANKLINE> Computing hermitean normal form. sol: [1 0 0] Particular solution: Basis: New inequalities: [0 1 3 0] [0 0 3 0] [3 3 6 0] Time for reading and preprocessing: 0 sec The polytope has 3 vertices. Time for computing vertices and supporting cones: 0 sec Time for dualizing general cones: 0 sec Dualizing all cones...All cones are now dualized. Time for dualizing general cones: 0 sec Triangulating cone... done. 0 vertex cones done. Triangulating cone... done. 1 vertex cones done. Triangulating cone... done. 2 vertex cones done. <BLANKLINE> Ehrhart polynomial: Total time: 0 sec ********************************************************************** File "src/sage/geometry/polyhedron/base_ZZ.py", line 239, in sage.geometry.polyhedron.base_ZZ.Polyhedron_ZZ.? Failed example: p = P.ehrhart_polynomial(irrational_primal=True, verbose=True) # optional  latte_int Expected: This is LattE integrale 1.7.2 ... Invocation: count ehrhartpolynomial 'redundancycheck=none' irrationalprimal cdd ... ... Got: This is LattE integrale 1.7.3 Available from http://www.math.ucdavis.edu/~latte/ <BLANKLINE> Invocation: count ehrhartpolynomial 'redundancycheck=none' irrationalprimal cdd /home/jdemeyer/.sage/temp/tamiyo/6258/tmp_WjZNI4.ine Warning: Not performing check for empty polytope, because it is unimplemented for the CDDstyle input format. size = 4 x 4 Number Type = rational Ax <= b, given as (bA): ========================= [1 1 1 0] [1 2 1 0] [1 1 2 0] <BLANKLINE> Ax = b, given as (bA): ======================== [1 2 1 3] <BLANKLINE> Computing hermitean normal form. sol: [1 0 0] Particular solution: Basis: New inequalities: [0 1 3 0] [0 0 3 0] [3 3 6 0] Time for reading and preprocessing: 0 sec The polytope has 3 vertices. Time for computing vertices and supporting cones: 0 sec Time for dualizing general cones: 0 sec Dualizing all cones...All cones are now dualized. Time for dualizing general cones: 0 sec Triangulating cone... done. 0 vertex cones done. Triangulating cone... done. 1 vertex cones done. Triangulating cone... done. 2 vertex cones done. <BLANKLINE> Ehrhart polynomial: Total time: 0 sec ********************************************************************** File "src/sage/geometry/polyhedron/base_ZZ.py", line 247, in sage.geometry.polyhedron.base_ZZ.Polyhedron_ZZ.? Failed example: p = P.ehrhart_polynomial(irrational_all_primal=True, verbose=True) # optional  latte_int Expected: This is LattE integrale 1.7.2 ... Invocation: count ehrhartpolynomial 'redundancycheck=none' irrationalallprimal cdd ... Got: This is LattE integrale 1.7.3 Available from http://www.math.ucdavis.edu/~latte/ <BLANKLINE> Invocation: count ehrhartpolynomial 'redundancycheck=none' irrationalallprimal cdd /home/jdemeyer/.sage/temp/tamiyo/6258/tmp_Lhrv_b.ine Warning: Not performing check for empty polytope, because it is unimplemented for the CDDstyle input format. size = 4 x 4 Number Type = rational Ax <= b, given as (bA): ========================= [1 1 1 0] [1 2 1 0] [1 1 2 0] <BLANKLINE> Ax = b, given as (bA): ======================== [1 2 1 3] <BLANKLINE> Computing hermitean normal form. sol: [1 0 0] Particular solution: Basis: New inequalities: [0 1 3 0] [0 0 3 0] [3 3 6 0] Time for reading and preprocessing: 0 sec The polytope has 3 vertices. Time for computing vertices and supporting cones: 0 sec Time for dualizing general cones: 0 sec Irrationalizing polyhedral cones... (First computing their rays... Dualizing all cones...All cones are now dualized. Time for dualizing general cones: 0 sec Dualizing all cones...All cones are now dualized. Time for dualizing general cones: 0 sec done; sorry for the interruption.) Time for irrationalizing general cones: 0 sec Triangulating cone... done. 0 vertex cones done. Triangulating cone... done. 1 vertex cones done. Triangulating cone... done. 2 vertex cones done. <BLANKLINE> Ehrhart polynomial: Total time: 0 sec ********************************************************************** 1 item had failures: 4 of 27 in sage.geometry.polyhedron.base_ZZ.Polyhedron_ZZ.? [67 tests, 4 failures, 1.39 s] sage t long src/sage/symbolic/integration/external.py ********************************************************************** File "src/sage/symbolic/integration/external.py", line 86, in sage.symbolic.integration.external.fricas_integrator Failed example: fricas_integrator(1/(x^22), x, 0, 1) # optional  fricas Expected: 1/4*(log(3*sqrt(2)  4)  log(sqrt(2)))*sqrt(2) Got: 1/4*sqrt(2)*(log(3*sqrt(2)  4)  log(sqrt(2))) ********************************************************************** File "src/sage/symbolic/integration/external.py", line 88, in sage.symbolic.integration.external.fricas_integrator Failed example: fricas_integrator(1/(x^2+6), x, oo, oo) # optional  fricas Expected: 1/6*pi*sqrt(6) Got: 1/6*sqrt(6)*pi ********************************************************************** 1 item had failures: 2 of 6 in sage.symbolic.integration.external.fricas_integrator [14 tests, 2 failures, 2.28 s] sage t long src/doc/en/thematic_tutorials/algebraic_combinatorics/rsk.rst ********************************************************************** File "src/doc/en/thematic_tutorials/algebraic_combinatorics/rsk.rst", line 23, in doc.en.thematic_tutorials.algebraic_combinatorics.rsk Failed example: view(H) # optional  dot2tex Expected nothing Got: An error occurred. This is pdfTeX, Version 3.14159262.41.40.13 (TeX Live 2012) (format=pdflatex 2014.3.17) 31 MAY 2015 15:44 entering extended mode restricted \write18 enabled. %&line parsing enabled. **\nonstopmode \input{sage.tex} (./sage.tex (/usr/share/texmfdist/tex/latex/base/article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (/usr/share/texmfdist/tex/latex/base/size10.clo File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) ) \c@part=\count79 \c@section=\count80 \c@subsection=\count81 \c@subsubsection=\count82 \c@paragraph=\count83 \c@subparagraph=\count84 \c@figure=\count85 \c@table=\count86 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 ) (/usr/share/texmfdist/tex/latex/amsmath/amsmath.sty Package: amsmath 2000/07/18 v2.13 AMS math features \@mathmargin=\skip43 <BLANKLINE> For additional information on amsmath, use the `?' option. (/usr/share/texmfdist/tex/latex/amsmath/amstext.sty Package: amstext 2000/06/29 v2.01 <BLANKLINE> (/usr/share/texmfdist/tex/latex/amsmath/amsgen.sty File: amsgen.sty 1999/11/30 v2.0 \@emptytoks=\toks14 \ex@=\dimen103 )) (/usr/share/texmfdist/tex/latex/amsmath/amsbsy.sty Package: amsbsy 1999/11/29 v1.2d \pmbraise@=\dimen104 ) (/usr/share/texmfdist/tex/latex/amsmath/amsopn.sty Package: amsopn 1999/12/14 v2.01 operator names ) \inf@bad=\count87 LaTeX Info: Redefining \frac on input line 211. \uproot@=\count88 \leftroot@=\count89 LaTeX Info: Redefining \overline on input line 307. \classnum@=\count90 \DOTSCASE@=\count91 LaTeX Info: Redefining \ldots on input line 379. LaTeX Info: Redefining \dots on input line 382. LaTeX Info: Redefining \cdots on input line 467. \Mathstrutbox@=\box26 \strutbox@=\box27 \big@size=\dimen105 LaTeX Font Info: Redeclaring font encoding OML on input line 567. LaTeX Font Info: Redeclaring font encoding OMS on input line 568. \macc@depth=\count92 \c@MaxMatrixCols=\count93 \dotsspace@=\muskip10 \c@parentequation=\count94 \dspbrk@lvl=\count95 \tag@help=\toks15 \row@=\count96 \column@=\count97 \maxfields@=\count98 \andhelp@=\toks16 \eqnshift@=\dimen106 \alignsep@=\dimen107 \tagshift@=\dimen108 \tagwidth@=\dimen109 \totwidth@=\dimen110 \lineht@=\dimen111 \@envbody=\toks17 \multlinegap=\skip44 \multlinetaggap=\skip45 \mathdisplay@stack=\toks18 LaTeX Info: Redefining \[ on input line 2666. LaTeX Info: Redefining \] on input line 2667. ) (/usr/share/texmfdist/tex/latex/amsfonts/amssymb.sty Package: amssymb 2009/06/22 v3.00 <BLANKLINE> (/usr/share/texmfdist/tex/latex/amsfonts/amsfonts.sty Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support \symAMSa=\mathgroup4 \symAMSb=\mathgroup5 LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' (Font) U/euf/m/n > U/euf/b/n on input line 96. )) (/usr/share/texmfdist/tex/latex/graphics/graphicx.sty Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) <BLANKLINE> (/usr/share/texmfdist/tex/latex/graphics/keyval.sty Package: keyval 1999/03/16 v1.13 key=value parser (DPC) \KV@toks@=\toks19 ) (/usr/share/texmfdist/tex/latex/graphics/graphics.sty Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) <BLANKLINE> (/usr/share/texmfdist/tex/latex/graphics/trig.sty Package: trig 1999/03/16 v1.09 sin cos tan (DPC) ) (/usr/share/texmfdist/tex/latex/latexconfig/graphics.cfg File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live ) Package graphics Info: Driver file: pdftex.def on input line 91. <BLANKLINE> (/usr/share/texmfdist/tex/latex/pdftexdef/pdftex.def File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX <BLANKLINE> (/usr/share/texmfdist/tex/generic/oberdiek/infwarerr.sty Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) ) (/usr/share/texmfdist/tex/generic/oberdiek/ltxcmds.sty Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) ) \Gread@gobject=\count99 )) \Gin@req@height=\dimen112 \Gin@req@width=\dimen113 ) (/usr/share/texmfdist/tex/latex/jknapltx/mathrsfs.sty Package: mathrsfs 1996/01/01 Math RSFS package v1.0 (jk) \symrsfs=\mathgroup6 ) (/usr/share/texmfdist/tex/latex/base/inputenc.sty Package: inputenc 2008/03/30 v1.1d Input encoding file \inpenc@prehook=\toks20 \inpenc@posthook=\toks21 <BLANKLINE> (/usr/share/texmfdist/tex/latex/base/utf8.def File: utf8.def 2008/04/05 v1.1m UTF8 support for inputenc Now handling font encoding OML ... ... no UTF8 mapping file for font encoding OML Now handling font encoding T1 ... ... processing UTF8 mapping file for font encoding T1 <BLANKLINE> (/usr/share/texmfdist/tex/latex/base/t1enc.dfu File: t1enc.dfu 2008/04/05 v1.1m UTF8 support for inputenc defining Unicode char U+00A1 (decimal 161) defining Unicode char U+00A3 (decimal 163) defining Unicode char U+00AB (decimal 171) defining Unicode char U+00BB (decimal 187) defining Unicode char U+00BF (decimal 191) defining Unicode char U+00C0 (decimal 192) defining Unicode char U+00C1 (decimal 193) defining Unicode char U+00C2 (decimal 194) defining Unicode char U+00C3 (decimal 195) defining Unicode char U+00C4 (decimal 196) defining Unicode char U+00C5 (decimal 197) defining Unicode char U+00C6 (decimal 198) defining Unicode char U+00C7 (decimal 199) defining Unicode char U+00C8 (decimal 200) defining Unicode char U+00C9 (decimal 201) defining Unicode char U+00CA (decimal 202) defining Unicode char U+00CB (decimal 203) defining Unicode char U+00CC (decimal 204) defining Unicode char U+00CD (decimal 205) defining Unicode char U+00CE (decimal 206) defining Unicode char U+00CF (decimal 207) defining Unicode char U+00D0 (decimal 208) defining Unicode char U+00D1 (decimal 209) defining Unicode char U+00D2 (decimal 210) defining Unicode char U+00D3 (decimal 211) defining Unicode char U+00D4 (decimal 212) defining Unicode char U+00D5 (decimal 213) defining Unicode char U+00D6 (decimal 214) defining Unicode char U+00D8 (decimal 216) defining Unicode char U+00D9 (decimal 217) defining Unicode char U+00DA (decimal 218) defining Unicode char U+00DB (decimal 219) defining Unicode char U+00DC (decimal 220) defining Unicode char U+00DD (decimal 221) defining Unicode char U+00DE (decimal 222) defining Unicode char U+00DF (decimal 223) defining Unicode char U+00E0 (decimal 224) defining Unicode char U+00E1 (decimal 225) defining Unicode char U+00E2 (decimal 226) defining Unicode char U+00E3 (decimal 227) defining Unicode char U+00E4 (decimal 228) defining Unicode char U+00E5 (decimal 229) defining Unicode char U+00E6 (decimal 230) defining Unicode char U+00E7 (decimal 231) defining Unicode char U+00E8 (decimal 232) defining Unicode char U+00E9 (decimal 233) defining Unicode char U+00EA (decimal 234) defining Unicode char U+00EB (decimal 235) defining Unicode char U+00EC (decimal 236) defining Unicode char U+00ED (decimal 237) defining Unicode char U+00EE (decimal 238) defining Unicode char U+00EF (decimal 239) defining Unicode char U+00F0 (decimal 240) defining Unicode char U+00F1 (decimal 241) defining Unicode char U+00F2 (decimal 242) defining Unicode char U+00F3 (decimal 243) defining Unicode char U+00F4 (decimal 244) defining Unicode char U+00F5 (decimal 245) defining Unicode char U+00F6 (decimal 246) defining Unicode char U+00F8 (decimal 248) defining Unicode char U+00F9 (decimal 249) defining Unicode char U+00FA (decimal 250) defining Unicode char U+00FB (decimal 251) defining Unicode char U+00FC (decimal 252) defining Unicode char U+00FD (decimal 253) defining Unicode char U+00FE (decimal 254) defining Unicode char U+00FF (decimal 255) defining Unicode char U+0102 (decimal 258) defining Unicode char U+0103 (decimal 259) defining Unicode char U+0104 (decimal 260) defining Unicode char U+0105 (decimal 261) defining Unicode char U+0106 (decimal 262) defining Unicode char U+0107 (decimal 263) defining Unicode char U+010C (decimal 268) defining Unicode char U+010D (decimal 269) defining Unicode char U+010E (decimal 270) defining Unicode char U+010F (decimal 271) defining Unicode char U+0110 (decimal 272) defining Unicode char U+0111 (decimal 273) defining Unicode char U+0118 (decimal 280) defining Unicode char U+0119 (decimal 281) defining Unicode char U+011A (decimal 282) defining Unicode char U+011B (decimal 283) defining Unicode char U+011E (decimal 286) defining Unicode char U+011F (decimal 287) defining Unicode char U+0130 (decimal 304) defining Unicode char U+0131 (decimal 305) defining Unicode char U+0132 (decimal 306) defining Unicode char U+0133 (decimal 307) defining Unicode char U+0139 (decimal 313) defining Unicode char U+013A (decimal 314) defining Unicode char U+013D (decimal 317) defining Unicode char U+013E (decimal 318) defining Unicode char U+0141 (decimal 321) defining Unicode char U+0142 (decimal 322) defining Unicode char U+0143 (decimal 323) defining Unicode char U+0144 (decimal 324) defining Unicode char U+0147 (decimal 327) defining Unicode char U+0148 (decimal 328) defining Unicode char U+014A (decimal 330) defining Unicode char U+014B (decimal 331) defining Unicode char U+0150 (decimal 336) defining Unicode char U+0151 (decimal 337) defining Unicode char U+0152 (decimal 338) defining Unicode char U+0153 (decimal 339) defining Unicode char U+0154 (decimal 340) defining Unicode char U+0155 (decimal 341) defining Unicode char U+0158 (decimal 344) defining Unicode char U+0159 (decimal 345) defining Unicode char U+015A (decimal 346) defining Unicode char U+015B (decimal 347) defining Unicode char U+015E (decimal 350) defining Unicode char U+015F (decimal 351) defining Unicode char U+0160 (decimal 352) defining Unicode char U+0161 (decimal 353) defining Unicode char U+0162 (decimal 354) defining Unicode char U+0163 (decimal 355) defining Unicode char U+0164 (decimal 356) defining Unicode char U+0165 (decimal 357) defining Unicode char U+016E (decimal 366) defining Unicode char U+016F (decimal 367) defining Unicode char U+0170 (decimal 368) defining Unicode char U+0171 (decimal 369) defining Unicode char U+0178 (decimal 376) defining Unicode char U+0179 (decimal 377) defining Unicode char U+017A (decimal 378) defining Unicode char U+017B (decimal 379) defining Unicode char U+017C (decimal 380) defining Unicode char U+017D (decimal 381) defining Unicode char U+017E (decimal 382) defining Unicode char U+200C (decimal 8204) defining Unicode char U+2013 (decimal 8211) defining Unicode char U+2014 (decimal 8212) defining Unicode char U+2018 (decimal 8216) defining Unicode char U+2019 (decimal 8217) defining Unicode char U+201A (decimal 8218) defining Unicode char U+201C (decimal 8220) defining Unicode char U+201D (decimal 8221) defining Unicode char U+201E (decimal 8222) defining Unicode char U+2030 (decimal 8240) defining Unicode char U+2031 (decimal 8241) defining Unicode char U+2039 (decimal 8249) defining Unicode char U+203A (decimal 8250) defining Unicode char U+2423 (decimal 9251) ) Now handling font encoding OT1 ... ... processing UTF8 mapping file for font encoding OT1 <BLANKLINE> (/usr/share/texmfdist/tex/latex/base/ot1enc.dfu File: ot1enc.dfu 2008/04/05 v1.1m UTF8 support for inputenc defining Unicode char U+00A1 (decimal 161) defining Unicode char U+00A3 (decimal 163) defining Unicode char U+00B8 (decimal 184) defining Unicode char U+00BF (decimal 191) defining Unicode char U+00C5 (decimal 197) defining Unicode char U+00C6 (decimal 198) defining Unicode char U+00D8 (decimal 216) defining Unicode char U+00DF (decimal 223) defining Unicode char U+00E6 (decimal 230) defining Unicode char U+00EC (decimal 236) defining Unicode char U+00ED (decimal 237) defining Unicode char U+00EE (decimal 238) defining Unicode char U+00EF (decimal 239) defining Unicode char U+00F8 (decimal 248) defining Unicode char U+0131 (decimal 305) defining Unicode char U+0141 (decimal 321) defining Unicode char U+0142 (decimal 322) defining Unicode char U+0152 (decimal 338) defining Unicode char U+0153 (decimal 339) defining Unicode char U+2013 (decimal 8211) defining Unicode char U+2014 (decimal 8212) defining Unicode char U+2018 (decimal 8216) defining Unicode char U+2019 (decimal 8217) defining Unicode char U+201C (decimal 8220) defining Unicode char U+201D (decimal 8221) ) Now handling font encoding OMS ... ... processing UTF8 mapping file for font encoding OMS <BLANKLINE> (/usr/share/texmfdist/tex/latex/base/omsenc.dfu File: omsenc.dfu 2008/04/05 v1.1m UTF8 support for inputenc defining Unicode char U+00A7 (decimal 167) defining Unicode char U+00B6 (decimal 182) defining Unicode char U+00B7 (decimal 183) defining Unicode char U+2020 (decimal 8224) defining Unicode char U+2021 (decimal 8225) defining Unicode char U+2022 (decimal 8226) ) Now handling font encoding OMX ... ... no UTF8 mapping file for font encoding OMX Now handling font encoding U ... ... no UTF8 mapping file for font encoding U defining Unicode char U+00A9 (decimal 169) defining Unicode char U+00AA (decimal 170) defining Unicode char U+00AE (decimal 174) defining Unicode char U+00BA (decimal 186) defining Unicode char U+02C6 (decimal 710) defining Unicode char U+02DC (decimal 732) defining Unicode char U+200C (decimal 8204) defining Unicode char U+2026 (decimal 8230) defining Unicode char U+2122 (decimal 8482) defining Unicode char U+2423 (decimal 9251) )) (/usr/share/texmfdist/tex/latex/base/fontenc.sty Package: fontenc 2005/09/27 v1.99g Standard LaTeX package <BLANKLINE> (/usr/share/texmfdist/tex/latex/base/t1enc.def File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file LaTeX Font Info: Redeclaring font encoding T1 on input line 43. )) (/usr/share/texmfsite/tex/latex/pgf/frontendlayer/tikz.sty (/usr/share/texmfsite/tex/latex/pgf/basiclayer/pgf.sty (/usr/share/texmfsite/tex/latex/pgf/utilities/pgfrcs.sty (/usr/share/texmfsite/tex/generic/pgf/utilities/pgfutilcommon.tex \pgfutil@everybye=\toks22 ) (/usr/share/texmfsite/tex/generic/pgf/utilities/pgfutillatex.def \pgfutil@abb=\box28 <BLANKLINE> (/usr/share/texmfdist/tex/latex/ms/everyshi.sty Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) )) (/usr/share/texmfsite/tex/generic/pgf/utilities/pgfrcs.code.tex Package: pgfrcs 2010/10/25 v2.10 (rcsrevision 1.24) )) Package: pgf 2008/01/15 v2.10 (rcsrevision 1.12) <BLANKLINE> (/usr/share/texmfsite/tex/latex/pgf/basiclayer/pgfcore.sty (/usr/share/texmfsite/tex/latex/pgf/systemlayer/pgfsys.sty (/usr/share/texmfsite/tex/generic/pgf/systemlayer/pgfsys.code.tex Package: pgfsys 2010/06/30 v2.10 (rcsrevision 1.37) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/utilities/pgfkeys.code.tex \pgfkeys@pathtoks=\toks23 \pgfkeys@temptoks=\toks24 <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex \pgfkeys@tmptoks=\toks25 )) \pgf@x=\dimen114 \pgf@y=\dimen115 \pgf@xa=\dimen116 \pgf@ya=\dimen117 \pgf@xb=\dimen118 \pgf@yb=\dimen119 \pgf@xc=\dimen120 \pgf@yc=\dimen121 \w@pgf@writea=\write3 \r@pgf@reada=\read1 \c@pgf@counta=\count100 \c@pgf@countb=\count101 \c@pgf@countc=\count102 \c@pgf@countd=\count103 <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/systemlayer/pgf.cfg File: pgf.cfg 2008/05/14 (rcsrevision 1.7) ) Package pgfsys Info: Driver file for pgf: pgfsyspdftex.def on input line 900. <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/systemlayer/pgfsyspdftex.def File: pgfsyspdftex.def 2009/05/22 (rcsrevision 1.26) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/systemlayer/pgfsyscommonpdf.def File: pgfsyscommonpdf.def 2008/05/19 (rcsrevision 1.10) ))) (/usr/share/texmfsite/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex File: pgfsyssoftpath.code.tex 2008/07/18 (rcsrevision 1.7) \pgfsyssoftpath@smallbuffer@items=\count104 \pgfsyssoftpath@bigbuffer@items=\count105 ) (/usr/share/texmfsite/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex File: pgfsysprotocol.code.tex 2006/10/16 (rcsrevision 1.4) )) (/usr/share/texmfsite/tex/latex/xcolor/xcolor.sty Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) <BLANKLINE> (/usr/share/texmfdist/tex/latex/latexconfig/color.cfg File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive ) Package xcolor Info: Driver file: pdftex.def on input line 225. Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. Package xcolor Info: Model `RGB' extended on input line 1353. Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcore.code.tex Package: pgfcore 2010/04/11 v2.10 (rcsrevision 1.7) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/math/pgfmath.code.tex (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathcalc.code.tex (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathutil.code.tex) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathparser.code.tex \pgfmath@dimen=\dimen122 \pgfmath@count=\count106 \pgfmath@box=\box29 \pgfmath@toks=\toks26 \pgfmath@stack@operand=\toks27 \pgfmath@stack@operation=\toks28 ) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.code.tex (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code .tex) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.random.code.tex) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.comparison.code.te x) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.base.code.tex) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.round.code.tex) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex))) (/usr/share/texmfsite/tex/generic/pgf/math/pgfmathfloat.code.tex \c@pgfmathroundto@lastzeros=\count107 )) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex File: pgfcorepoints.code.tex 2010/04/09 (rcsrevision 1.20) \pgf@picminx=\dimen123 \pgf@picmaxx=\dimen124 \pgf@picminy=\dimen125 \pgf@picmaxy=\dimen126 \pgf@pathminx=\dimen127 \pgf@pathmaxx=\dimen128 \pgf@pathminy=\dimen129 \pgf@pathmaxy=\dimen130 \pgf@xx=\dimen131 \pgf@xy=\dimen132 \pgf@yx=\dimen133 \pgf@yy=\dimen134 \pgf@zx=\dimen135 \pgf@zy=\dimen136 ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex File: pgfcorepathconstruct.code.tex 2010/08/03 (rcsrevision 1.24) \pgf@path@lastx=\dimen137 \pgf@path@lasty=\dimen138 ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex File: pgfcorepathusage.code.tex 2008/04/22 (rcsrevision 1.12) \pgf@shorten@end@additional=\dimen139 \pgf@shorten@start@additional=\dimen140 ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex File: pgfcorescopes.code.tex 2010/09/08 (rcsrevision 1.34) \pgfpic=\box30 \pgf@hbox=\box31 \pgf@layerbox@main=\box32 \pgf@picture@serial@count=\count108 ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex File: pgfcoregraphicstate.code.tex 2008/04/22 (rcsrevision 1.9) \pgflinewidth=\dimen141 ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcoretransformations.code.t ex File: pgfcoretransformations.code.tex 2009/06/10 (rcsrevision 1.11) \pgf@pt@x=\dimen142 \pgf@pt@y=\dimen143 \pgf@pt@temp=\dimen144 ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorequick.code.tex File: pgfcorequick.code.tex 2008/10/09 (rcsrevision 1.3) ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex File: pgfcoreobjects.code.tex 2006/10/11 (rcsrevision 1.2) ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.te x File: pgfcorepathprocessing.code.tex 2008/10/09 (rcsrevision 1.8) ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex File: pgfcorearrows.code.tex 2008/04/23 (rcsrevision 1.11) ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex File: pgfcoreshade.code.tex 2008/11/23 (rcsrevision 1.13) \pgf@max=\dimen145 \pgf@sys@shading@range@num=\count109 ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex File: pgfcoreimage.code.tex 2010/03/25 (rcsrevision 1.16) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex File: pgfcoreexternal.code.tex 2010/09/01 (rcsrevision 1.17) \pgfexternal@startupbox=\box33 )) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex File: pgfcorelayers.code.tex 2010/08/27 (rcsrevision 1.2) ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex File: pgfcoretransparency.code.tex 2008/01/17 (rcsrevision 1.2) ) (/usr/share/texmfsite/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex File: pgfcorepatterns.code.tex 2009/07/02 (rcsrevision 1.3) ))) (/usr/share/texmfsite/tex/generic/pgf/modules/pgfmoduleshapes.code.tex File: pgfmoduleshapes.code.tex 2010/09/09 (rcsrevision 1.13) \pgfnodeparttextbox=\box34 ) (/usr/share/texmfsite/tex/generic/pgf/modules/pgfmoduleplot.code.tex File: pgfmoduleplot.code.tex 2010/10/22 (rcsrevision 1.8) ) (/usr/share/texmfsite/tex/latex/pgf/compatibility/pgfcompversion065.sty Package: pgfcompversion065 2007/07/03 v2.10 (rcsrevision 1.7) \pgf@nodesepstart=\dimen146 \pgf@nodesepend=\dimen147 ) (/usr/share/texmfsite/tex/latex/pgf/compatibility/pgfcompversion118.sty Package: pgfcompversion118 2007/07/23 v2.10 (rcsrevision 1.1) )) (/usr/share/texmfsite/tex/latex/pgf/utilities/pgffor.sty (/usr/share/texmfsite/tex/latex/pgf/utilities/pgfkeys.sty (/usr/share/texmfsite/tex/generic/pgf/utilities/pgfkeys.code.tex)) (/usr/share/texmfsite/tex/generic/pgf/utilities/pgffor.code.tex Package: pgffor 2010/03/23 v2.10 (rcsrevision 1.18) \pgffor@iter=\dimen148 \pgffor@skip=\dimen149 \pgffor@stack=\toks29 \pgffor@toks=\toks30 )) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex Package: tikz 2010/10/13 v2.10 (rcsrevision 1.76) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/libraries/pgflibraryplothandlers.code.te x File: pgflibraryplothandlers.code.tex 2010/05/31 v2.10 (rcsrevision 1.15) \pgf@plot@mark@count=\count110 \pgfplotmarksize=\dimen150 ) \tikz@lastx=\dimen151 \tikz@lasty=\dimen152 \tikz@lastxsaved=\dimen153 \tikz@lastysaved=\dimen154 \tikzleveldistance=\dimen155 \tikzsiblingdistance=\dimen156 \tikz@figbox=\box35 \tikz@tempbox=\box36 \tikztreelevel=\count111 \tikznumberofchildren=\count112 \tikznumberofcurrentchild=\count113 \tikz@fig@count=\count114 (/usr/share/texmfsite/tex/generic/pgf/modules/pgfmodulematrix.code.tex File: pgfmodulematrix.code.tex 2010/08/24 (rcsrevision 1.4) \pgfmatrixcurrentrow=\count115 \pgfmatrixcurrentcolumn=\count116 \pgf@matrix@numberofcolumns=\count117 ) \tikz@expandcount=\count118 <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary topaths.code.tex File: tikzlibrarytopaths.code.tex 2008/06/17 v2.10 (rcsrevision 1.2) ))) (/usr/share/texmfdist/tex/latex/tkzgraph/tkzgraph.sty Package: tkzgraph 2011/06/01 ctan v 1.00 base for graphs <BLANKLINE> (/usr/share/texmfdist/tex/latex/etexpkg/etex.sty Package: etex 1998/03/26 v2.0 eTeX basic definition package (PEB) \et@xins=\count119 ) (/usr/share/texmfdist/tex/latex/base/ifthen.sty Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) ) (/usr/share/texmfdist/tex/latex/xkeyval/xkeyval.sty Package: xkeyval 2008/08/13 v2.6a package option processing (HA) <BLANKLINE> (/usr/share/texmfdist/tex/generic/xkeyval/xkeyval.tex \XKV@toks=\toks31 \XKV@tempa@toks=\toks32 \XKV@depth=\count120 File: xkeyval.tex 2008/08/13 v2.6a key=value parser (HA) )) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary arrows.code.tex File: tikzlibraryarrows.code.tex 2008/01/09 v2.10 (rcsrevision 1.1) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/libraries/pgflibraryarrows.code.tex File: pgflibraryarrows.code.tex 2008/10/27 v2.10 (rcsrevision 1.9) \arrowsize=\dimen157 )) \c@tkz@gr@a=\count121 \c@tkz@gr@b=\count122 \c@tkz@gr@c=\count123 \c@tkz@gr@e=\count124 \c@tkz@gr@d=\count125 \c@tkz@gr@p=\count126 \c@tkz@gr@i=\count127 \c@tkz@gr@n=\count128 \c@tkz@gr@ta=\count129 \c@tkz@gr@tb=\count130 ) (/usr/share/texmfdist/tex/latex/tkzberge/tkzberge.sty Package: tkzberge 2011/06/01 1.00 c tkzberge for named graphs <BLANKLINE> (/usr/share/texmfdist/tex/latex/tkzberge/tkzarith.sty Package: tkzarith 2011/02/28 v 1.00 c integers numbers <BLANKLINE> (/usr/share/texmfdist/tex/latex/tkzbase/tkztoolsarith.tex File: tkztoolarith.tex tkztoolarith 1.161 c )) \c@tkz@bg@cnt=\count131 \c@tkza@tmp=\count132 ) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary shapes.code.tex File: tikzlibraryshapes.code.tex 2008/01/09 v2.10 (rcsrevision 1.1) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary shapes.geometric.code.tex File: tikzlibraryshapes.geometric.code.tex 2008/01/09 v2.10 (rcsrevision 1.1) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geomet ric.code.tex File: pgflibraryshapes.geometric.code.tex 2008/06/26 v2.10 (rcsrevision 1.1) )) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary shapes.misc.code.tex File: tikzlibraryshapes.misc.code.tex 2008/01/09 v2.10 (rcsrevision 1.1) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.c ode.tex File: pgflibraryshapes.misc.code.tex 2008/10/07 v2.10 (rcsrevision 1.3) )) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary shapes.symbols.code.tex File: tikzlibraryshapes.symbols.code.tex 2008/01/09 v2.10 (rcsrevision 1.1) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbol s.code.tex File: pgflibraryshapes.symbols.code.tex 2009/10/27 v2.10 (rcsrevision 1.3) )) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary shapes.arrows.code.tex File: tikzlibraryshapes.arrows.code.tex 2008/01/09 v2.10 (rcsrevision 1.1) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows .code.tex File: pgflibraryshapes.arrows.code.tex 2008/06/26 v2.10 (rcsrevision 1.1) )) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary shapes.callouts.code.tex (/usr/share/texmfsite/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callou ts.code.tex)) (/usr/share/texmfsite/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary shapes.multipart.code.tex File: tikzlibraryshapes.multipart.code.tex 2008/01/09 v2.10 (rcsrevision 1.1) <BLANKLINE> (/usr/share/texmfsite/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multip art.code.tex File: pgflibraryshapes.multipart.code.tex 2010/01/07 v2.10 (rcsrevision 1.2) \pgfnodepartlowerbox=\box37 \pgfnodeparttwobox=\box38 \pgfnodepartthreebox=\box39 \pgfnodepartfourbox=\box40 \pgfnodeparttwentybox=\box41 \pgfnodepartnineteenbox=\box42 \pgfnodeparteighteenbox=\box43 \pgfnodepartseventeenbox=\box44 \pgfnodepartsixteenbox=\box45 \pgfnodepartfifteenbox=\box46 \pgfnodepartfourteenbox=\box47 \pgfnodepartthirteenbox=\box48 \pgfnodeparttwelvebox=\box49 \pgfnodepartelevenbox=\box50 \pgfnodeparttenbox=\box51 \pgfnodepartninebox=\box52 \pgfnodeparteightbox=\box53 \pgfnodepartsevenbox=\box54 \pgfnodepartsixbox=\box55 \pgfnodepartfivebox=\box56 ))) No file sage.aux. \openout1 = `sage.aux'. <BLANKLINE> LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 41. LaTeX Font Info: ... okay on input line 41. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 41. LaTeX Font Info: ... okay on input line 41. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 41. LaTeX Font Info: ... okay on input line 41. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 41. LaTeX Font Info: ... okay on input line 41. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 41. LaTeX Font Info: ... okay on input line 41. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 41. LaTeX Font Info: ... okay on input line 41. (/usr/share/texmfdist/tex/context/base/supppdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] \scratchcounter=\count133 \scratchdimen=\dimen158 \scratchbox=\box57 \nofMPsegments=\count134 \nofMParguments=\count135 \everyMPshowfont=\toks33 \MPscratchCnt=\count136 \MPscratchDim=\dimen159 \MPnumerator=\count137 \makeMPintoPDFobject=\count138 \everyMPtoPDFconversion=\toks34 ) (/usr/share/texmfdist/tex/generic/oberdiek/pdftexcmds.sty Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO ) <BLANKLINE> (/usr/share/texmfdist/tex/generic/oberdiek/ifluatex.sty Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) Package ifluatex Info: LuaTeX not detected. ) (/usr/share/texmfdist/tex/generic/oberdiek/ifpdf.sty Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) Package ifpdf Info: pdfTeX in PDF mode is detected. ) Package pdftexcmds Info: LuaTeX not detected. Package pdftexcmds Info: \pdf@primitive is available. Package pdftexcmds Info: \pdf@ifprimitive is available. Package pdftexcmds Info: \pdfdraftmode found. ) (/usr/share/texmfdist/tex/latex/oberdiek/epstopdfbase.sty Package: epstopdfbase 2010/02/09 v2.5 Base part for package epstopdf <BLANKLINE> (/usr/share/texmfdist/tex/latex/oberdiek/grfext.sty Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) <BLANKLINE> (/usr/share/texmfdist/tex/generic/oberdiek/kvdefinekeys.sty Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) )) (/usr/share/texmfdist/tex/latex/oberdiek/kvoptions.sty Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) <BLANKLINE> (/usr/share/texmfdist/tex/generic/oberdiek/kvsetkeys.sty Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) <BLANKLINE> (/usr/share/texmfdist/tex/generic/oberdiek/etexcmds.sty Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with eTeX commands (HO) Package etexcmds Info: Could not find \expanded. (etexcmds) That can mean that you are not using pdfTeX 1.50 or (etexcmds) that some package has redefined \expanded. (etexcmds) In the latter case, load this package earlier. ))) Package grfext Info: Graphics extension search list: (grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE G,.JBIG2,.JB2,.eps] (grfext) \AppendGraphicsExtensions on input line 452. <BLANKLINE> (/usr/share/texmfdist/tex/latex/latexconfig/epstopdfsys.cfg File: epstopdfsys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv e )) ABD: EveryShipout initializing macros LaTeX Font Info: Try loading font information for U+msa on input line 43. <BLANKLINE> (/usr/share/texmfdist/tex/latex/amsfonts/umsa.fd File: umsa.fd 2009/06/22 v3.00 AMS symbols A ) LaTeX Font Info: Try loading font information for U+msb on input line 43. <BLANKLINE> (/usr/share/texmfdist/tex/latex/amsfonts/umsb.fd File: umsb.fd 2009/06/22 v3.00 AMS symbols B ) LaTeX Font Info: Try loading font information for U+rsfs on input line 43. <BLANKLINE> (/usr/share/texmfdist/tex/latex/jknapltx/ursfs.fd File: ursfs.fd 1998/03/24 rsfs font definition file (jk) ) ! Illegal parameter number in definition of \cmdGR@vertex@L. <to be read again> 1 l.136 }$},x=3.9835cm,y=3.3045cm]{v1} <BLANKLINE> You meant to type ## instead of #, right? Or maybe a } was forgotten somewhere earlier, and things are all screwed up? I'm going to assume that you meant ##. <BLANKLINE> ! Illegal parameter number in definition of \cmdGR@vertex@L. <to be read again> 1 l.136 }$},x=3.9835cm,y=3.3045cm]{v1} <BLANKLINE> You meant to type ## instead of #, right? Or maybe a } was forgotten somewhere earlier, and things are all screwed up? I'm going to assume that you meant ##. <BLANKLINE> ! Undefined control sequence. \cmdGR@vertex@L >\hbox {${\def \lr ##1{\multicolumn {1}{@{\hspace {.6ex}}c... l.136 }$},x=3.9835cm,y=3.3045cm]{v1} <BLANKLINE> The control sequence at the end of the top line of your error message was never \def'ed. If you have misspelled it (e.g., `\hobx'), type `I' and the correct spelling (e.g., `I\hbox'). Otherwise just continue, and I'll forget about whatever was undefined. <BLANKLINE> ! Illegal parameter number in definition of \@gtempa. <to be read again> 1 l.136 }$},x=3.9835cm,y=3.3045cm]{v1} <BLANKLINE> You meant to type ## instead of #, right? Or maybe a } was forgotten somewhere earlier, and things are all screwed up? I'm going to assume that you meant ##. <BLANKLINE> ! Undefined control sequence. l.137 ...=circle},LabelOut=false,L=\hbox{${\def\lr #1{\multicolumn{1}{@{\hsp... The control sequence at the end of the top line of your error message was never \def'ed. If you have misspelled it (e.g., `\hobx'), type `I' and the correct spelling (e.g., `I\hbox'). Otherwise just continue, and I'll forget about whatever was undefined. <BLANKLINE> ! Illegal parameter number in definition of \@gtempa. <to be read again> 1 l.137 ...ircle},LabelOut=false,L=\hbox{${\def\lr#1 {\multicolumn{1}{@{\hspac... You meant to type ## instead of #, right? Or maybe a } was forgotten somewhere earlier, and things are all screwed up? I'm going to assume that you meant ##. <BLANKLINE> ) ! Incomplete \iffalse; all text was ignored after line 137. <inserted text> \fi <*> \nonstopmode \input{sage.tex} <BLANKLINE> The file ended while I was skipping conditional text. This kind of error happens when you say `\if...' and forget the matching `\fi'. I've inserted a `\fi'; this might work. <BLANKLINE> ! Emergency stop. <*> \nonstopmode \input{sage.tex} <BLANKLINE> *** (job aborted, no legal \end found) <BLANKLINE> <BLANKLINE> Here is how much of TeX's memory you used: 14162 strings out of 494769 271297 string characters out of 3177877 359551 words of memory out of 3000000 17043 multiletter control sequences out of 15000+200000 8140 words of font info for 28 fonts, out of 3000000 for 9000 238 hyphenation exceptions out of 8191 57i,7n,63p,437b,808s stack positions out of 5000i,500n,10000p,200000b,50000s ! ==> Fatal error occurred, no output PDF file produced! <BLANKLINE> Latex error **********************************************************************
comment:22 followup: 23 Changed 7 years ago by
Well I'm happy to let you work on this ticket. But if nobody steps up to fix the failures: its better to fail and show an error (=this ticket) than to silently fail (without this ticket).
comment:23 followup: 29 Changed 7 years ago by
Well I'm happy to let you work on this ticket. But if nobody steps up to fix the failures: its better to fail and show an error (=this ticket) than to silently fail (without this ticket).
Amen to that.
Technically, this ticket does not break doctests. It just reports doctests which were already broken. And of course you can run sage t optional=sage
as before (all doctests will pass), the same way that you can run sage t optional=<your_packages>
in the latest beta to see all broken doctests.
I cannot fix all broken doctests of all optional packages in Sage, and I doubt that anybody can. If you set this ticket to needs_work
until this is done you will just kill the ticket, and achieve nothing. If this ticket is merged, we will at last see the bugs that we missed until now, and fix them progressively. We cannot keep hiding bugs, and pretend that they do not exist just because we never run the optional doctests.
Nathann
comment:24 Changed 7 years ago by
Commit:  e45591ade00e925ecfb4ad08191c95add7dd5c84 → 1ffc3c1a7a909b1d75653f9951da869371cc1039 

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
1ffc3c1  trac #18558: now with an 'installed' keyword

comment:25 followup: 33 Changed 7 years ago by
(changed the keyword from installed_optional
to installed
. It now includes all installed packages. Even the standard ones, but that does not matter much.)
comment:26 followup: 30 Changed 7 years ago by
Replying to jdemeyer:
Replying to vbraun:
its not the job of this ticket to clear that up.
+1
No, but it's the job of every ticket to ensure that the ticket does not make doctests fail. I think it will be very confusing when we get lots of reports that
make ptest
fails just somebody installed an optional package. At least, thosemake
targets should useoptional=sage
then.
1
, don't shoot the messenger. The ticket does not make doctests fail, but it makes them being executed.
Alternatively, mark failing tests as
# known bug
.
That might be in the scope of this ticket.
On the other hand: Detecting failing tests (so that they can be marked) would require running make ptest
on a Sage installation with all optional packages. Or perhaps even one Sage installation for each subset of optional packages, since I could imagine that optional package A makes tests fail that work fine if additionally optional package B is installed. That doesn't seem feasible.
comment:27 Changed 7 years ago by
Description:  modified (diff) 

Summary:  Test all (installed) optional packages by default → Test all installed packages by default 
comment:28 Changed 7 years ago by
Status:  needs_work → needs_review 

comment:29 followup: 31 Changed 7 years ago by
Replying to ncohen:
If you set this ticket to
needs_work
until this is done you will just kill the ticket
...for good reasons. Merging this ticket asis will massively decrease the usefulness of make ptest(long)
. That's what I'm worried about.
I believe very strongly that no ticket should be merged if it is known to make make ptestlong
fail on systems where it used to pass. I am willing to shoot the messenger if needed, that's why # known bug
exists.
I'm not setting this to needs_work because it seems I am alone with this opinion, but please think of the consequences of doing this.
comment:30 Changed 7 years ago by
comment:31 followup: 32 Changed 7 years ago by
...for good reasons. Merging this ticket asis will massively decrease the usefulness of
make ptest(long)
. That's what I'm worried about.
My hope is that it will only last momentarily. That whoever sees broken doctests will fix them, and that eventually we will fix those bugs instead of hiding them.
The only guys who run doctests (well, except bots) are developers. They are assumed to know that a beta release is "experimental" to some extent (big red warning on our website, and when you run sage).
Then there is the advertisement: we should probably wait for a beta0 release to merge this ticket (it can be reviewed before :P
), and when we do add a message (on sagerelease, and why not in sagebanner) explaining a bit what happens. A "fixoptionaldoctests" release, so that less persons have to wonder why doctests break all of a sudden. And help us fix them.
I'm not setting this to needs_work because it seems I am alone with this opinion, but please think of the consequences of doing this.
Well, it will be messy at first, I can't deny that. Then it will be less and less, until the problems are solved, and also we will not add more to the existing ones. Among the consequences, I also see that in the long run Sage will be tested better than it is today.
Nathann
comment:32 Changed 7 years ago by
Intentionally releasing something with known failures is not a good strategy to have those failures fixed.
comment:33 followup: 34 Changed 7 years ago by
Replying to ncohen:
It now includes all installed packages.
Even worse. Now you just killed all experimental packages. I think there should be a place in Sage for things that are known to be broken but that people still care about.
Actually, a good compromise for this ticket might be: test only optional packages, move the knownbroken packages (like 4ti2
) to experimental.
If you want, you can create tickets for each of these broken packages and advertise them on sagedevel. If people care, they can fix the package and move it back to optional. If people don't care, there is nothing lost either.
comment:34 followups: 35 37 Changed 7 years ago by
Even worse. Now you just killed all experimental packages.
Hey, don't you think you are going a bit far? I "killed all experimental packages"? Seriously?
I think there should be a place in Sage for things that are known to be broken but that people still care about.
Experimental packages are *advertised* as broken [1]. Why would you expect them to pass tests? Addtionally, doctests can be removed if we need to. We can do that during the release cycle that will merge this branch.
Actually, a good compromise for this ticket might be: test only optional packages
This is what the first version of this branch did. This change was requested in 17.
If you want, you can create tickets for each of these broken packages and advertise them on sagedevel.
I don't believe in opening tickets. I believe in written code. Advertising the bugs to the developers who use the package is what this branch does.
Nathann
[1] http://mirror.switch.ch/mirror/sagemath/spkg/experimental/
comment:35 Changed 7 years ago by
While this ticket is a good step towards a more tested system, i understand Jeroen's concerns that it might lead to a less tested one. I can witness that recurrent failing doctest lead to not caring anymore. For example, when i build a massive amount of binaries, i frequently randomly have broken unreproducible doctest for src/sage/interfaces/expect.py
, the consequence is that i stopped to double check them, so if some real problem appears on this file, i will not see it because it will look like the random one. With a huge list of broken doctests, people won't check if some new bugs are reported within the list, and the effect of the ticket will be the opposite of it aim.
Replying to jdemeyer:
Actually, a good compromise for this ticket might be: test only optional packages, move the knownbroken packages (like
4ti2
) to experimental.
+1, this is the difference between optional and experimental packages, and we keep the best of both points of views. I will add : "propose a way to test all installed (experimental) packages as well".
Replying to ncohen:
Experimental packages are *advertised* as broken [1]. Why would you expect them to pass tests?
This will be a requirement to let them enter the optional list.
Advertising the bugs to whoever uses the packages is the whole point of this branch.
You claimed yourself that "The only guys who run doctests (well, except bots) are developers", hence if we want to advertize those bugs to users, this is not the appropriate way, we should write stopgaps instead.
comment:36 followup: 38 Changed 7 years ago by
Okay guys, let's do something. You either ask me something *doable* and *reasonable* or you kill this ticket. All you are achieving now is blocking an attempt to improve this software's quality. I will not fight for weeks here, and I will not spend my weekends or night on it either. Either you start being constructive, or you keep arguing until everybody's energy is wasted. And it will not happen again, because there is only so much you can do when you know that all you will get when you are done implementing an improvement are endless complaints against *change*.
Nathann
comment:37 followup: 39 Changed 7 years ago by
Replying to ncohen:
Even worse. Now you just killed all experimental packages.
Hey, don't you think you are going a bit far? I "killed all experimental packages"?
I only used that wording because you said that I was killing your ticket.
Experimental packages are *advertised* as broken [1]. Why would you expect them to pass tests?
I don't expect them to pass tests. In fact, that was the whole point of my argument. They are known to fail tests, but so be it. Just don't force everybody to see those failures.
Addtionally, doctests can be removed if we need to.
They should not be removed, unless the doctest itself (not the code that it tests or the result) is somehow bad. That's what # known bug
is for: to be able to keep the doctest but not see the failure in every make ptest
run. My idea with experimental packages is that marking a package as "experimental" acts like adding # known bug
to every optional doctest of that package.
comment:38 Changed 7 years ago by
Replying to ncohen:
Okay guys, let's do something. You either ask me something *doable* and *reasonable* or you kill this ticket. All you are achieving now is blocking an attempt to improve this software's quality. I will not fight for weeks here, and I will not spend my weekends or night on it either. Either you start being constructive, or you keep arguing until everybody's energy is wasted.
I am trying to solve this in a constructive way. I proposed several alternative solutions (such as marking tests as # known bug
or testing only optional packages) which would make this ticket acceptable for me and which are "*doable* and *reasonable*".
comment:39 followup: 42 Changed 7 years ago by
I don't expect them to pass tests. In fact, that was the whole point of my argument. They are known to fail tests, but so be it. Just don't force everybody to see those failures.
Everybody wil not. Only the *developers* who *run the doctests* and *have the expermental package installed* will see them. And that's precisely the guys who should fix it.
They should not be removed, unless the doctest itself (not the code that it tests or the result) is somehow bad. That's what
# known bug
is for: to be able to keep the doctest but not see the failure in everymake ptest
run.
Fine. You are allowed to flag a doctest as "known bug" whenever you want. This branch does not change that.
My idea with experimental packages is that marking a package as "experimental" acts like adding
# known bug
to every optional doctest of that package.
What is the point of doctests then? O_o
(edit: see next comment>you cannot 'detect' experimental packages without internet access)
I am trying to solve this in a constructive way. I proposed several alternative solutions (such as marking tests as # known bug or testing only optional packages) which would make this ticket acceptable for me and which are "*doable* and *reasonable*".
Marking all tests as known bug is dangerous: we want to find the bugs, and we want to fix them. Testing optional packages only is what this branch did at first, until I was asked to make it otherwise. Agree with yourselves, and I will update the ticket, but I don't want to keep changing branches forever.
Addtionally, I cannot by myself go over all optional/experimental packages and make changes to all of them. You can't ask me that, this is not *reasonable*. That's why I mentionned merged this branch in a beta0, so that everybody can participate to the effort until the next release. This, on the other hand, is a good outcome, and will ensure that the job is done properly.
Nathann
comment:40 followup: 44 Changed 7 years ago by
Another precision: one advantage of 'installed' over 'installed_optional' and 'installed_experimental' is that it is currently impossible to get (without internet access) the list of all optional/experimental packages.
What can be listed 'locally':
 All installed packages
 All newstyle packages filtered by type (standard/optional)
Thus, I can only write a branch which test all newstyle optional packages (there are no experimental newstyle packages). If an oldstyle spkg is installed, I have no way to 'detect' its category.
It can be either 'installed' or 'newstyle optional'.
Nathann
comment:41 Changed 7 years ago by
Dependencies:  #18456, #18124 → #18456, #18124, #18559 

comment:42 followup: 43 Changed 7 years ago by
Replying to ncohen:
I don't expect them to pass tests. In fact, that was the whole point of my argument. They are known to fail tests, but so be it. Just don't force everybody to see those failures.
Everybody wil not. Only the *developers* who *run the doctests* and *have the expermental package installed* will see them. And that's precisely the guys who should fix it.
Nobody should fix anything. The fact that I am a Sage developer who happens to have some experimental package installed does not mean that I should fix it.
comment:43 followup: 45 Changed 7 years ago by
Nobody should fix anything. The fact that I am a Sage developer who happens to have some experimental package installed does not mean that I should fix it.
Agreed. In fact you have many options: 1) not care 2) remove the doctest 3) flag it as 'known bug'
comment:44 followup: 46 Changed 7 years ago by
Replying to ncohen:
It can be either 'installed' or 'newstyle optional'.
OK, then I prefer 'newstyle optional' like in the first version of this ticket.
Addtionally, I cannot by myself go over all optional/experimental packages and make changes to all of them. You can't ask me that, this is not *reasonable*.
I'm willing to do that (for optional packages), if you agree that it's a good idea to do that.
comment:45 Changed 7 years ago by
Replying to ncohen:
Nobody should fix anything. The fact that I am a Sage developer who happens to have some experimental package installed does not mean that I should fix it.
Agreed. In fact you have many options: 1) not care 2) remove the doctest 3) flag it as 'known bug'
No, this ticket removes option 1) in practice.
comment:46 followup: 47 Changed 7 years ago by
OK, then I prefer 'newstyle optional' like in the first version of this ticket.
Okay, I will reupdate the commit shortly.
I'm willing to do that (for optional packages), if you agree that it's a good idea to do that.
What is it exactly that you want to do?
Nathann
comment:47 followup: 50 Changed 7 years ago by
Dependencies:  #18456, #18124, #18559 → #18456, #18124, #18559, #18563 

comment:48 Changed 7 years ago by
Commit:  1ffc3c1a7a909b1d75653f9951da869371cc1039 → 5954ba919ef1e504bd8c09ee18cac62094f06db0 

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
5954ba9  trac #18558: 'optional' keyword

comment:50 followup: 51 Changed 7 years ago by
See #18563.
Just change their type? Okay, no problem. When do you think it will be ready for review?
comment:51 followup: 53 Changed 7 years ago by
comment:52 Changed 7 years ago by
Status:  needs_review → needs_work 

Should
if 'installed' in options.optional:
actually be
if 'optional' in options.optional:
comment:53 followup: 57 Changed 7 years ago by
Well, I need to actually install all newstyle optional packages and test with #18558.
Okay, shouldn't take long.
You can get the list of those packages with sage optional local noversion
comment:54 Changed 7 years ago by
Commit:  5954ba919ef1e504bd8c09ee18cac62094f06db0 → 374a17f4d1e344d3befbd72cb44bf9acc41bc659 

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
374a17f  trac #18558: 'optional' keyword

comment:55 Changed 7 years ago by
Status:  needs_work → needs_review 

comment:56 Changed 7 years ago by
Summary:  Test all installed packages by default → Test all installed optional packages by default 

comment:57 followup: 58 Changed 7 years ago by
comment:58 Changed 7 years ago by
I guess you never tried to install all optional packages...
Ahahahah. Well, surely none is worse than atlas? :P
I was thinking 'one day at most'. But I expect that it can take time indeed ^^;
Nathann
comment:59 followup: 127 Changed 7 years ago by
For information, this is a list of all optional tags with count (assuming #18124 and #18559):
302 59 4ti2 622 arb 114 axiom 7 benzene 31 bliss 10 buckygen 209 cbc 25 chevie 33 CHomP 383 coxeter3 185 CPLEX 185 cryptominisat 1 CryptoMiniSat 4 cunningham 11 CVXOPT 24 database_cremona_ellcurve 112 database_gap 14 database_jones_numfield 2 database_kohel 3 database_odlyzko_zeta 8 database_pari 28 database_stein_watkins 13 database_symbolic_data 1 debug 3 dot2tex 31 dot2tex graphviz 43 FES 8 ffmpeg 65 fricas 51 frobby 115 gambit 93 gap3 2 gap3chevie 67 gap_packages 5 gdb 142 giac 2 ginv 1 gnuplot 19 gperftools 201 Gurobi 6 GUROBI 1 Hmisc R package 72 ImageMagick 272 internet 2 java 2 java internet 109 kash 8 latex 29 latte_int 1 libjpeg 96 lie 9 long time 30 lrs 2 M2 15 macaulay2 660 magma 151 maple 2 Maple 119 mathematica 59 matlab 4 mcqd 10 modular_decomposition 79 mupad 2 MuPAD 20 nauty 157 Nonexistent_LP_solver 61 octave 69 phc 35 plantri 15 polymake 5 polytopes_db_4d 180 qepcad 1 random 2 requires maple 11 rgraphics 2 runsnake 98 scilab 5 sloane_database 16 souvigner 3 surf 4 tides 8 time 40 TOPCOM 3 webbrowser
comment:62 Changed 7 years ago by
Replying to ncohen:
It seems that you missed
mupadCombinat
No, I did not because # optional  mupadCombinat
is really parsed as # optional mupad # Combinat
.
comment:63 Changed 7 years ago by
Branch:  u/ncohen/18558 → u/jdemeyer/18558 

comment:64 followup: 79 Changed 7 years ago by
Commit:  374a17f4d1e344d3befbd72cb44bf9acc41bc659 → 732f2f8fd2e1b7dac4eea6ee2b52d491b5518261 

New commits:
732f2f8  Show optional tags in the doctest log

comment:65 followup: 80 Changed 7 years ago by
Commit:  732f2f8fd2e1b7dac4eea6ee2b52d491b5518261 → 59af6983b05b6581ef1282cdec41d6e63ad82459 

Branch pushed to git repo; I updated commit sha1. New commits:
59af698  Fix passing optional tags to gdb/valgrind doctesting

comment:66 followup: 67 Changed 7 years ago by
Jeroen, please move this commit to another ticket. And the previous one as well, if you think that the two are tied together.
comment:67 followup: 68 Changed 7 years ago by
Replying to ncohen:
Jeroen, please move this commit to another ticket.
Why? If I do that, there will surely be merge conflicts.
comment:68 followup: 69 Changed 7 years ago by
Why? If I do that, there will surely be merge conflicts.
Why? Just make your other ticket depend on this one.
comment:69 followup: 70 Changed 7 years ago by
Replying to ncohen:
Why? Just make your other ticket depend on this one.
That's the wrong way. This ticket would need the bugfix of the "other ticket".
Please, these two tickets belong together, let's not make things more complicated.
comment:70 followup: 73 Changed 7 years ago by
That's the wrong way. This ticket would need the bugfix of the "other ticket".
Please, these two tickets belong together, let's not make things more complicated.
If you cared to explain what you do and why, perhaps we could talk about it. You have been pushing commits here without a single word.
comment:71 followup: 76 Changed 7 years ago by
And I really feel that you behave a bit boldly here. As the ticket's author I have to answer any request made by a reviewer if I want to get my ticket reviewed. At the same time, you just push things without asking for my opinion, and as a result I am forced to agree with whatever you do here if I want my code to pass.
Nathann
comment:72 Changed 7 years ago by
Let me also mention that you consider anything related to this ticket as a dependency of it, which you thus add as a dependency of this ticket. Forcing me to review them. This, without reviewing this ticket's main dependency: #18456.
comment:73 followup: 74 Changed 7 years ago by
Replying to ncohen:
If you cared to explain what you do and why, perhaps we could talk about it. You have been pushing commits here without a single word.
Well, you can start by reading the commit message or looking at the commits. I felt that the message Fix passing optional tags to gdb/valgrind doctesting
would make it clear that your patch broke doctesting under gdb
or valgrind
. I can explain later if you want, I'll answer your other complaints first.
comment:74 followup: 75 Changed 7 years ago by
Well, you can start by reading the commit message or looking at the commits. I felt that the message
Fix passing optional tags to gdb/valgrind doctesting
would make it clear that your patch broke doctesting undergdb
orvalgrind
.
I fail to see how, so please illustrate it.
Nathann
comment:75 followups: 77 78 Changed 7 years ago by
Well, you can start by reading the commit message or looking at the commits. I felt that the message
Fix passing optional tags to gdb/valgrind doctesting
would make it clear that your patch broke doctesting undergdb
orvalgrind
.I fail to see how, so please illustrate it.
Valgrind can have relatively systemdependent output, or so I've been led to believe.
Sorry for butting in, I was just wondering if this all had a way to check whether someone had the most recent version of an optional package. Especially for some that are quite independent of Sage it could be possible someone didn't notice that the optional package had been updated and then got an error that's really because of their version, not an actual failure. If this is answered somewhere above I apologize  there are a lot of comments but I didn't see it, nor when searching the page for relevant terms like 'version'.
comment:76 followup: 82 Changed 7 years ago by
Authors:  Nathann Cohen → Nathann Cohen, Jeroen Demeyer 

Replying to ncohen:
At the same time, you just push things without asking for my opinion
That's true, but you can still give your opinion after seeing the commit. I am currently testing this ticket. It's easier for me to fix bugs right away instead of first explaining the problem on the ticket and then waiting for you to fix it before I can continue testing.
and as a result I am forced to agree with whatever you do here if I want my code to pass.
You're not forced to agree with anything. I you don't agree, you tell me or you change it. No problem.
you consider anything related to this ticket as a dependency of it
 About #18124 and #18563: those are needed because otherwise all doctests would not pass.
 About #18559: I added that as a dependency only after it got positive_review (and you're the author so I assume you agree with that ticket), so it won't slow down this ticket.
This, without reviewing this ticket's main dependency: #18456.
It seems that there are already other reviewers on that ticket. In any case, it's not because I help you with this ticket, that I should be forced to review its dependencies.
comment:77 followup: 87 Changed 7 years ago by
Replying to kcrisman:
Especially for some that are quite independent of Sage it could be possible someone didn't notice that the optional package had been updated and then got an error that's really because of their version, not an actual failure.
I say it would be an actual failure. If upgrading the optional package would make the failure go away, then the user should upgrade to the newest version.
comment:78 Changed 7 years ago by
Sorry for butting in, I was just wondering if this all had a way to check whether someone had the most recent version of an optional package.
You should ask about this in #18456 (needs review) which is more related. If you apply and type sage optional
you will see on your screen the installed version of each package, and the latest 'online' version. There is no tool to tell you which ones should be upgraded, but that can be added rather easily.
There is something to be aware of, hwoever: you may be surprised to find that the 'online' version of a package is older than the one installed on your computer. This is because the distant list of packages can contain the *same* package as an upstream (newstyle) package and as an old spkg. When the mirrors will be updated, that will be reliable again.
Nathann
comment:79 Changed 7 years ago by
Replying to jdemeyer:
732f2f8 Show optional tags in the doctest log
This is just useful information for logging. When running the tests, it shows the optional tags in the log:
Running doctests with ID 20150601163629dcf185f8. Git branch: HEAD Optional tags: arb,autotools,benzene,bliss,buckygen,cbc,compilerwrapper,cryptominisat,d3js,database_cremona_ellcurve,database_gap,database_odlyzko_zeta,database_pari,database_stein_watkins,database_stein_watkins_mini,database_symbolic_data,dot2tex,gambit,gcc,gdb,git_trac,libogg,libtheora,lidia,mcqd,modular_decomposition,mpir,nauty,normaliz,nose,openssl,plantri,python2,sage,sage_mode,termcap,threejs,tides Doctesting 2 files.
comment:80 Changed 7 years ago by
Replying to git:
59af698 Fix passing optional tags to gdb/valgrind doctesting
This is needed because ./sage t gdb optional=sage,otherpackage
has always been broken. I know you didn't introduce this bug, but you made it visible because now there are more optional tags enabled by default.
I also added some cosmetic changes, like making ./sage t optional=all,something,else
equivalent to ./sage t optional=all
and deprecating ./sage t optional=true
.
comment:81 Changed 7 years ago by
I finished testing this (and its dependencies) and my Linux laptop with all newstyle optional packages installed and all tests pass. I am also doing the same on OS X 10.10, but that will take some more time.
comment:82 followups: 83 84 Changed 7 years ago by
That's true, but you can still give your opinion after seeing the commit. I am currently testing this ticket. It's easier for me to fix bugs right away instead of first explaining the problem on the ticket and then waiting for you to fix it before I can continue testing.
Of course. It would be more pleasant (for me at last) if you could say exactly what you are doing when you push commits (especially when the branch's name is not public/...).
You're not forced to agree with anything. I you don't agree, you tell me or you change it. No problem.
I would like to know what exactly you fix. I would like to understand why you consider it as a dependency of this ticket.
It seems that there are already other reviewers on that ticket.
I have many tickets on which many people come to make me change a lot of things, but nobody ends up taking the time to review it completely.
In any case, it's not because I help you with this ticket, that I should be forced to review its dependencies.
You are under no obligation to, it is true. I am also free to find that behaviour unpleasant.
Nathann
comment:83 Changed 7 years ago by
Replying to ncohen:
Of course. It would be more pleasant (for me at last) if you could say exactly what you are doing when you push commits (especially when the branch's name is not public/...).
Maybe you're just a bit too impatient. My first priority was to have a functioning branch without doctest failures. Now that this is the case on at least one system, we can discuss.
comment:84 followup: 85 Changed 7 years ago by
Replying to ncohen:
I would like to know what exactly you fix. I would like to understand why you consider it as a dependency of this ticket.
Is that now cleared up by the comments above?
comment:85 Changed 7 years ago by
Is that now cleared up by the comments above?
Granted. Do you notice, however, that you ended up forcing this ticket to only be merged if all tests pass when all optional packages are installed? I did not agree with this 'dependency' at first, and neither did others.
No doubt that the result is better now. But I felt forced, at every step, to follow with what you were doing if I wanted my ticket reviewed.
Nathann
comment:87 followup: 88 Changed 7 years ago by
Especially for some that are quite independent of Sage it could be possible someone didn't notice that the optional package had been updated and then got an error that's really because of their version, not an actual failure.
I say it would be an actual failure. If upgrading the optional package would make the failure go away, then the user should upgrade to the newest version.
Right, except would the user actually know that the solution to the failure was upgrading? In principle we don't want a sagerelease or other email to come in unless there is an actual failure. If this gives a clear message to that effect (upgrade package soandso) then it's no problem.
comment:88 followup: 89 Changed 7 years ago by
Right, except would the user actually know that the solution to the failure was upgrading?
This is an interesting discussion, but this is not the place. There is still work going on here. I will answer by email.
Nathann
comment:89 followup: 90 Changed 7 years ago by
Right, except would the user actually know that the solution to the failure was upgrading?
This is an interesting discussion, but this is not the place.
I disagree, because this means that the (old) default behavior of not getting doctest failures will be replaced (possibly) by lots of perhapsveryconfusing doctest errors, with this branch.
But I don't have any specific ideas on how to solve the problem, just wondering how it is/will be dealt with.
comment:90 followup: 91 Changed 7 years ago by
I disagree, because this means that the (old) default behavior of not getting doctest failures will be replaced (possibly) by lots of perhapsveryconfusing doctest errors, with this branch.
Okay. So let us have this conversation here. For a start, do we agree that we are talking about users running doctests with optional packages installed? If so, we cannot call them beginners.
Since you insist on having this conversation here, I also wonder why you think that it is doctestrelated. If you are thinking of users running an old version of a package, which would thus break Sage code, then clearly it is a problem of a much wider scope than doctest testing, isn't it ?
In particular, I do not believe that there is anything related to that which can be dealt with at the level of doctest. What you request is a way to detect that the installed package is too old to be used for this or that feature, and such a feature cannot be implemented without knowing each package individually.
If such a thing should be implemented, then we would need the is_package_installed
function to be able to deal with version numbers, and thus be able to check whether the current version is sufficiently new.
But I don't have any specific ideas on how to solve the problem, just wondering how it is/will be dealt with.
It is a question for sagedevel, unless you have strong reasons to believe that it should be addressed by this ticket.
Nathann
comment:91 followup: 92 Changed 7 years ago by
I disagree, because this means that the (old) default behavior of not getting doctest failures will be replaced (possibly) by lots of perhapsveryconfusing doctest errors, with this branch.
Okay. So let us have this conversation here. For a start, do we agree that we are talking about users running doctests with optional packages installed? If so, we cannot call them beginners.
Disagree already. There are lots of places it warns people to run doctests to check that Sage works, and likewise there are a number of optional packages that people "just need". In R certainly optional packages are pretty much the whole point of using the system  not so much in Sage, but for instance I can very easily imagine someone using #18536 installing gambit
brainlessly for the sole purpose of solving noncooperative games.
Since you insist on having this conversation here, I also wonder why you think that it is doctestrelated. If you are thinking of users running an old version of a package, which would thus break Sage code, then clearly it is a problem of a much wider scope than doctest testing, isn't it ?
?? Not at all; using an old version of a package might not at all break any existing Sage code. It might only change something like (again using the game example) the example decimal representation of a specific answer, for instance, and one that would only be noted if one were using that optional package.
In particular, I do not believe that there is anything related to that which can be dealt with at the level of doctest. What you request is a way to detect that the installed package is too old to be used for this or that feature, and such a feature cannot be implemented without knowing each package individually.
Maybe... I think instead I am imagining that Sage could detect whether the latest version (for a given version of Sage) was installed. R does this all the time. But maybe that is too hard now because we don't really have a concept of "version of Sage required for this version of optional package X" or vice versa.
If such a thing should be implemented, then we would need the
is_package_installed
function to be able to deal with version numbers, and thus be able to check whether the current version is sufficiently new.
Yes, or something analogous to that. After all, aren't the current package numbers already in build/pkgs/pkg_name/version
or something? It could just check that the packages which are installed match. (Not necessarily for oldstyle, but that is presumably yet another snag.)
It is a question for sagedevel, unless you have strong reasons to believe that it should be addressed by this ticket.
The only reason I think it belongs on this ticket is because this ticket would expose the problem. I would say it would do so rather dramatically except I don't have any evidence for it. But again, here is what I anticipate:
 User occasionally runs doctests because is told it's a good idea to make sure their Sage works.
 User updates Sage but not some package they use, because that wasn't announced somewhere they saw it (git logs are not announcements)
 User runs doctests and gets mysterious failures that seem to be related to updating Sage, but are actually related to not updating package.
 User sends email to sagedevel or sagerelease or sagesupport or ask.sagemath or whatever.
 Someone whose time is better spent on real bugs has to figure out what the heck happened.
Without this ticket, that is much less likely to happen, since the person would have to be running optional doctests  and I would agree that such a person is not so likely to be a beginner. But that's not what would happen here.
Anyway, if two people (e.g. you and Jeroen) feel like it's not worth dealing with here (and it probably would be a big change) I won't complain further, except to say "I told you so" if it happens and to be very happy if it turns out it doesn't. I did want to make sure it got raised, though.
comment:92 followup: 93 Changed 7 years ago by
Maybe... I think instead I am imagining that Sage could detect whether the latest version (for a given version of Sage) was installed. R does this all the time.
Detecting whether "the local version of a package" is the latest available can be done easily from the output of sagelistpackage
(see #18456).
If what you want is to automatically detect, in doctests or when running Sage, that some errors are caused by an old version of a package, then it is a more complicated problem and you could help make this conversation more constructive by describing a specific behaviour that you would like. It is my belief that it is also, in this case, unrelated to this ticket.
Yes, or something analogous to that. After all, aren't the current package numbers already in
build/pkgs/pkg_name/version
or something? It could just check that the packages which are installed match. (Not necessarily for oldstyle, but that is presumably yet another snag.)
We can know the version of any installed packaged, be it new or old. See output of sage installed
in #18456. Detecting this is not a problem.
The only reason I think it belongs on this ticket is because this ticket would expose the problem.
This ticket cannot fix all the preexisting bugs that it exposes. If everybody comes and say "this bug existed before, you must fix it or your code will not pass" I will give up very quickly.
 User occasionally runs doctests because is told it's a good idea to make sure their Sage works.
Jeroen made sure that all tests will pass. So that's not a problem.
 User updates Sage but not some package they use, because that wasn't announced somewhere they saw it (git logs are not announcements)
For newstyle packages this is already done automatically.
 User runs doctests and gets mysterious failures that seem to be related to updating Sage, but are actually related to not updating package.
Again, only happens for oldstyle packages. Convert them to newstyle to avoid this problem.
Without this ticket, that is much less likely to happen, since the person would have to be running optional doctests  and I would agree that such a person is not so likely to be a beginner. But that's not what would happen here.
Anyway, if two people (e.g. you and Jeroen) feel like it's not worth dealing with here (and it probably would be a big change) I won't complain further, except to say "I told you so" if it happens and to be very happy if it turns out it doesn't. I did want to make sure it got raised, though.
Thank you for your contribution. As you will see from looking at the logs, Jeroen installed all optional doctests to make sure that all tests will pass.
Nathann
comment:93 followups: 94 98 99 Changed 7 years ago by
The only reason I think it belongs on this ticket is because this ticket would expose the problem.
This ticket cannot fix all the preexisting bugs that it exposes. If everybody comes and say "this bug existed before, you must fix it or your code will not pass" I will give up very quickly.
Well, except it wasn't a preexisting bug, really. It was just not exposed to anyone except "experts".
 User occasionally runs doctests because is told it's a good idea to make sure their Sage works.
Jeroen made sure that all tests will pass. So that's not a problem.
But the tests won't pass, will they, in my scenario?
 User updates Sage but not some package they use, because that wasn't announced somewhere they saw it (git logs are not announcements)
For newstyle packages this is already done automatically.
And the optional packages are also automatically upgraded? Or just the metainfo in build/pkgs
? (That is, does make
not just make what's brought in, but also any currently installed optional packages?) If they are autoupgraded, I think that would suffice for me, as for sure treating the oldstyle/newstyle issue is separate from this ticket.
Thank you for your contribution.
Not sure if that was sarcastic but I will be generous and assume not.
As you will see from looking at the logs, Jeroen installed all optional doctests to make sure that all tests will pass.
That is not what I was asking about, however.
On a related note (certainly not to be dealt with here) would there be something that would auto test optional interfaces, which are also marked with # optional
? Like Maple or Mma. That would be very useful for keeping those interfaces uptodate.
comment:94 followup: 95 Changed 7 years ago by
But the tests won't pass, will they, in my scenario?
Please state your scenario precisely, and I will try to answer. Right now, I simply do not understand what you are thinking about.
And the optional packages are also automatically upgraded?
My mistake. Indeed, they are not. This would be a nice improvement, which you are welcome to implement on another ticket.
Or just the metainfo in
build/pkgs
?
Indeed, this gets updated.
I think that would suffice for me, as for sure treating the oldstyle/newstyle issue is separate from this ticket.
Autoupgrading optional packages is, I assure you, totally unrelated from adding some keyword to "optional" automatically when running doctests.
On a related note (certainly not to be dealt with here) would there be something that would auto test optional interfaces, which are also marked with
# optional
? Like Maple or Mma. That would be very useful for keeping those interfaces uptodate.
Not that I know. I have the same problem with the LP solvers Gurobi and CPLEX, which have no associated packages.
Nathann
comment:95 Changed 7 years ago by
Please state your scenario precisely, and I will try to answer. Right now, I simply do not understand what you are thinking about. Autoupgrading optional packages is, I assure you, totally unrelated from adding some keyword to "optional" automatically when running doctests.
I feel like you must be willfully misreading or something. I give five exact steps that lead to confusing doctest failure (again, in principle only at this point) in comment:91. Anyway, neither of us should waste any more time arguing about this until Jeroen or someone else weighs in, as we are clearly talking past each other, unfortunately.
comment:96 Changed 7 years ago by
I should apologize first: I didn't have the energy to read all of the comments here. Nonetheless, I feel like some of the issues would be avoided if the doctest framework were changed regarding the reporting of results: if we are testing optional packages and there are failures, doctesting could report:
All standard tests pass! Failures related to optional packages: blah blah blah Failures related to experimental packages: blah blah blah
With reporting like that, users could understand why there were failures and also the relative importance of those failures.
comment:97 Changed 7 years ago by
Boom, great solution.
Or, given things like # optional  Maple
or gurobi
maybe "Failures related to optional tag foo" works better?
comment:98 Changed 7 years ago by
Replying to kcrisman:
On a related note (certainly not to be dealt with here) would there be something that would auto test optional interfaces, which are also marked with
# optional
? Like Maple or Mma. That would be very useful for keeping those interfaces uptodate.
There is some code at #13540 doing this, but it's not quite ready to use.
comment:99 Changed 7 years ago by
Replying to kcrisman:
And the optional packages are also automatically upgraded? Or just the metainfo in
build/pkgs
?
Just to confirm what Nathann said: the metainfo in $SAGE_ROOT/build
is updated, but the optional packages are not reinstalled.
comment:100 Changed 7 years ago by
To solve the issue of nonuptodate optional packages: here is a solution which is probably easy to actually implement: make optional=optional
only run tests for uptodate optional packages.
This would need a change to #18456 to properly support version=True
for old installed packages.
comment:101 Changed 7 years ago by
Dependencies:  #18456, #18124, #18559, #18563 → #18456, #18124, #18559, #18563, #18579 

comment:102 Changed 7 years ago by
Results of testing on OS X: after adding a few more fixes (#18579), all tests pass except two optional  gdb
tests in src/sage/doctest/test.py
I don't really want to move gdb
to experimental, since it's very useful on Linux where it passes all optional doctests. One solution would be to add a warning (analogous to #18566) to build/pkgs/gdb/spkginstall
on OS X. Comments?
comment:103 Changed 7 years ago by
Dependencies:  #18456, #18124, #18559, #18563, #18579 → #18456, #18124, #18559, #18563, #18579, #18581 

comment:105 followup: 107 Changed 7 years ago by
#18579 is entitled "Minor latexrelated optional doctest fixes". You added it as a dependency.
comment:106 Changed 7 years ago by
Okay man I am tired of this game.
I am trying to improve Sage's reliability, and you treat me like a slave, adding dependency after dependency that I am forced to review if I want this to pass, and none of which I consider a real one.
You are on your own, bye.
Nathann
comment:107 followup: 108 Changed 7 years ago by
comment:108 followup: 109 Changed 7 years ago by
In 102 I explained it was needed to fix a few more doctest failures I found while testing.
Because you insisted all along on making it a dependency of this ticket that Sage should pass all tests with all packages installed. I do not agree with this, and neither did others. You never cared, and kept on doing it.
Either way that does not concern me anymore.
Nathann
comment:109 Changed 7 years ago by
Replying to ncohen:
Because you insisted all along on making it a dependency of this ticket that Sage should pass all tests with all packages installed.
Yes, and I am willing to work to make that happen!
I don't understand why you feel that I am working against you when I feel that we are working together. You say you want to improve Sage's reliability and that's exactly what I also want.
The usual way to develop Sage is to merge only tickets which work properly (which includes make ptestlong
passing). I don't like the philosophy of "let's just merge this and then fix whatever breaks" that you propose and I cannot recall that ever been done in Sage in recent years.
I think you are mostly being too impatient. Even if this ticket takes a while to get merged, that's not a disaster. You are proposing a very important change to Sage in this ticket, you cannot expect it to get merged in just a day.
comment:110 followup: 111 Changed 7 years ago by
I added #18581 as dependency to address kcrisman's concerns about outdated optional packages. We should only run optional tests for uptodate optional packages.
comment:111 followup: 112 Changed 7 years ago by
I added #18581 as dependency to address kcrisman's concerns about outdated optional packages. We should only run optional tests for uptodate optional packages.
I may not have said this enough times: you add dependencies which I do not consider dependencies, and you do this without asking first, without caring in any way.
I am not saying that it is not a good improvement. I am saying that I do not think it should be a dependency of this ticket. I also say that by adding them as a dependency of a ticket I created I cannot see my branch merged in Sage unless I also spend a lot of time on the dependencies, and for this reason I feel used and ignored.
So I give up, because the slave's whipping has lasted sufficiently.
Nathann
comment:112 Changed 7 years ago by
I may not have said this enough times: you add dependencies which I do not consider dependencies, and you do this without asking first, without caring in any way.
This is just part of the development process. It is very natural that sometimes developers and reviewers will disagree on what is required for review. This is orthogonal to caring  I'd say it even shows care, because others might just say "needs work" and then not have a possible approach.
So I give up, because the slave's whipping has lasted sufficiently.
That is also part of the open development process; certainly there are plenty of times I've given up on either writing or reviewing because I either didn't understand or couldn't satisfy others. I don't think that anyone is saying you are required to work on any of the dependencies, or indeed required to work on this ticket! Perhaps the person who suggests the change is necessary can take the responsibility, or they may choose not to. That's the point of a volunteer project. Perhaps another reviewer would also have different standards or expectations, and they may come along and decide that adding some of these dependencies was in error.
Anyway, it sounds like #18456 is the most important one, and I don't think this or its dependency list is standing in the way, thankfully!
comment:113 Changed 7 years ago by
Now that #18581 is essentially done (it's needs_work but just trivial issues), we can look at this again and check versions of installed packages.
comment:114 Changed 7 years ago by
Commit:  59af6983b05b6581ef1282cdec41d6e63ad82459 → 24db9dc2556b7da256e5ef7e0a127e460ad83979 

Branch pushed to git repo; I updated commit sha1. New commits:
17bc8fa  trac 18581: _package_lists_from_sage_output should output the

e9f2500  trac 18581: new function package_versions

9178afc  trac 18581: return None rather than 'not_installed' for version of uninstalled packages

3d04e05  Merge commit '9178afcfa4e2b9288aa862dcfd84bc77b33ecabc' into t/18558/18558

24db9dc  Check versions of optional packages

comment:115 Changed 7 years ago by
Commit:  24db9dc2556b7da256e5ef7e0a127e460ad83979 → e3f463d32d4d05a55f8cee4315bb01d9c5de2da2 

Branch pushed to git repo; I updated commit sha1. New commits:
e3f463d  Merge tag '6.8.beta3' into t/18558/18558

comment:117 Changed 7 years ago by
Reviewers:  → Jeroen Demeyer, KarlDieter Crisman 

Trying this out on my development Sage, which only has a couple optional packages.
Optional tags: cbc,database_odlyzko_zeta,gambit,gcc,mpir,python2,sage,scons
Hmm. I think not all of these are exactly optional.
Also, the individual commands it runs look like
sage t src/sage/combinat/crystals/alcove_path.py
so it's not evident that they are running the optional ones  will that be clear if and when it hits a file that has optional tests it can run? I guess I will wait and see.
comment:118 Changed 7 years ago by
Cc:  Sébastien Labbé added 

comment:119 followups: 120 122 124 Changed 7 years ago by
Status:  needs_review → needs_work 

I think we should find a way to remove optional tags that aren't actually optional (scons
? python2
?). It's just confusing.
The following doesn't provide me any way to tell that the problem was with a gambit
optional test (it's not broken, I just broke it to test this.
sage t src/sage/game_theory/gambit_docs.py ********************************************************************** File "src/sage/game_theory/gambit_docs.py", line 124, in sage.game_theory.gambit_docs Failed example: g[int(2), int(0)][int(0)] = int(0) # optional  gambit Exception raised: <snip> IndexError: Provided strategy index 2 out of range for player 0 ********************************************************************** 1 item had failures: 1 of 13 in sage.game_theory.gambit_docs [12 tests, 1 failure, 0.14 s]  sage t src/sage/game_theory/gambit_docs.py # 1 doctest failed 
I'm saying that this works, apparently, but doesn't give any indication that it failed due to an optional test. 'Needs work' or at least 'needs info'.
Do you have a suggestion for how to test http://git.sagemath.org/sage.git/commit/?id=24db9dc2556b7da256e5ef7e0a127e460ad83979 by the way? Do you have an optional package I could test that isn't uptodate? I hate to regress to a previous Sage, install the package, then tediously build Sage back up to develop
to try this...
comment:120 Changed 7 years ago by
Replying to kcrisman:
Do you have a suggestion for how to test http://git.sagemath.org/sage.git/commit/?id=24db9dc2556b7da256e5ef7e0a127e460ad83979 by the way? Do you have an optional package I could test that isn't uptodate? I hate to regress to a previous Sage, install the package, then tediously build Sage back up to
develop
to try this...
If I understand what you're asking, maybe you could just modify build/pkgs/gambit/packageversion.txt
(for example) so that Sage now thinks the installed version is not uptodate.
comment:121 Changed 7 years ago by
If that is how it's found, then yes, I guess that would work. Okay, I'll give that a spin.
comment:122 Changed 7 years ago by
comment:123 Changed 7 years ago by
Status:  needs_work → needs_review 

This seems to work very nicely in that way. I think this is certainly doing what I was hoping for.
Then, from my point of view, the question is just how to deal with alerting the user that it's an optional test. Or is that necessary, since the test itself says # optional  gambit
. Maybe that's enough? At least it's enough to send to sagedevel or somewhere and then there is sufficient info for them  I changed my mind.
comment:124 followup: 125 Changed 7 years ago by
Replying to kcrisman:
I think we should find a way to remove optional tags that aren't actually optional (
scons
?python2
?). It's just confusing.
On the other hand, it allows tests only on python2
or python3
, that might be actually useful. And scons
was made optional just because the Python 3 porting people asked for that. I would just live with this, it's not really a problem anyway. It's only shown in the beginning of the doctest log.
The following doesn't provide me any way to tell that the problem was with a
gambit
optional test (it's not broken, I just broke it to test this.sage t src/sage/game_theory/gambit_docs.py ********************************************************************** File "src/sage/game_theory/gambit_docs.py", line 124, in sage.game_theory.gambit_docs Failed example: g[int(2), int(0)][int(0)] = int(0) # optional  gambit Exception raised: <snip> IndexError: Provided strategy index 2 out of range for player 0 ********************************************************************** 1 item had failures: 1 of 13 in sage.game_theory.gambit_docs [12 tests, 1 failure, 0.14 s]  sage t src/sage/game_theory/gambit_docs.py # 1 doctest failed I'm saying that this works, apparently, but doesn't give any indication that it failed due to an optional test. 'Needs work' or at least 'needs info'.
The "Failed example" shows # optional  gambit
. Is that not clear enough?
comment:125 Changed 7 years ago by
The "Failed example" shows
# optional  gambit
. Is that not clear enough?
See comment:123, where I realized that.
comment:127 Changed 7 years ago by
Replying to jdemeyer:
For information, this is a list of all optional tags with count (assuming #18124 and #18559):
302 59 4ti2 622 arb 114 axiom 7 benzene 31 bliss 10 buckygen 209 cbc 25 chevie 33 CHomP 383 coxeter3 185 CPLEX 185 cryptominisat 1 CryptoMiniSat 4 cunningham 11 CVXOPT 24 database_cremona_ellcurve 112 database_gap 14 database_jones_numfield 2 database_kohel 3 database_odlyzko_zeta 8 database_pari 28 database_stein_watkins 13 database_symbolic_data 1 debug 3 dot2tex 31 dot2tex graphviz 43 FES 8 ffmpeg 65 fricas 51 frobby 115 gambit 93 gap3 2 gap3chevie 67 gap_packages 5 gdb 142 giac 2 ginv 1 gnuplot 19 gperftools 201 Gurobi 6 GUROBI 1 Hmisc R package 72 ImageMagick 272 internet 2 java 2 java internet 109 kash 8 latex 29 latte_int 1 libjpeg 96 lie 9 long time 30 lrs 2 M2 15 macaulay2 660 magma 151 maple 2 Maple 119 mathematica 59 matlab 4 mcqd 10 modular_decomposition 79 mupad 2 MuPAD 20 nauty 157 Nonexistent_LP_solver 61 octave 69 phc 35 plantri 15 polymake 5 polytopes_db_4d 180 qepcad 1 random 2 requires maple 11 rgraphics 2 runsnake 98 scilab 5 sloane_database 16 souvigner 3 surf 4 tides 8 time 40 TOPCOM 3 webbrowser
I am fixing most mistakes in the above list in #18621 and #18637.
comment:128 followup: 129 Changed 7 years ago by
An interesting thing that comes up with #18637's fixes is that I don't think the internet
optional doctests were tested in my run. It that something that your changes (or something) could also automatically assess? Those tests constantly are breaking, and it would be wonderful if that could be done here.
However, I recognize that may be orthogonal enough (or difficult enough) to not bother with here, and instead better to deal with elsewhere.
comment:129 Changed 7 years ago by
Replying to kcrisman:
An interesting thing that comes up with #18637's fixes is that I don't think the
internet
optional doctests were tested in my run.
They are not run automatically run. This ticket is only about optional Sage packages.
However, I recognize that may be orthogonal enough (or difficult enough) to not bother with here, and instead better to deal with elsewhere.
Yes, see #13540
comment:130 Changed 7 years ago by
I think it's easy to automatically run the internet tests. I don't actually know if that's a good idea: how often will someone start doctesting with internet access (at which point the tag will get added to the list) and then lose it during doctesting (they lose their internet connection, they take their laptop outside, etc.)?
Adapted from #13540:

src/sage/doctest/control.py
diff git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index ce846b2..7b07f2d 100644
a b class DocTestController(SageObject): 256 256 for pkg, versions in optional_pkgs.items(): 257 257 if versions[0] == versions[1]: 258 258 options.optional.add(pkg) 259 # If there is an internet connection, add 260 # 'internet' to the list of optional tags. 261 try: 262 import urllib2 263 urllib2.urlopen('http://sagemath.org/') 264 options.optional.add('internet') 265 except urllib2.URLError: 266 pass 259 267 260 268 # Check that all tags are valid 261 269 for o in options.optional:
I also expect lots of failing internet doctests, and I don't know how to fix all of them. For example, I don't understand the doctesting structure for the files in sage/dev
in the first place.
Of course this all belongs on another ticket, either #13540 or a piece of it.
comment:131 Changed 7 years ago by
Actually, for reasons I really don't understand, my previous code with urllib2
gave me a ton of segfaults when doctesting Sage (?!). In fact I was getting segfaults just from inserting the lines
import urllib2 urllib2.urlopen('http://sagemath.org/')
without the line options.optional.add('internet')
. I must be doing something wrong, but I don't know what.
Anyway, the following doesn't produce segfaults (taken from stackoverflow):

src/sage/doctest/control.py
diff git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index ce846b2..ff365dd 100644
a b class DocTestController(SageObject): 256 256 for pkg, versions in optional_pkgs.items(): 257 257 if versions[0] == versions[1]: 258 258 options.optional.add(pkg) 259 # If there is an internet connection, add 260 # 'internet' to the list of optional tags. 261 try: 262 import socket 263 host = socket.gethostbyname('sagemath.org') 264 socket.create_connection((host, 80), 2) 265 options.optional.add('internet') 266 except: 267 pass 259 268 260 269 # Check that all tags are valid 261 270 for o in options.optional:
comment:132 Changed 7 years ago by
Finally, for the actual ticket under discussion, I am happy with it. Anyone have any remaining objections?
comment:133 Changed 7 years ago by
My brain is not quite working today. I am almost happy with the current ticket. I am not sure about the message Optional tags: gcc,mpir,python2,sage,scons
: I think this is open to misinterpretation. Maybe it could say instead something like Doctesting using 'optional=gcc,mpir,python2,sage,scons'
?
comment:134 Changed 7 years ago by
Reviewers:  Jeroen Demeyer, KarlDieter Crisman → Jeroen Demeyer, KarlDieter Crisman, John Palmieri 

That would suffice to address my very similar concern in comment:117 as well.
comment:135 followup: 139 Changed 7 years ago by
How about
Using optional=gcc,mpir,python2,sage,scons
comment:136 followup: 137 Changed 7 years ago by
Status:  needs_review → needs_work 

Optional packages that are outside of sage (like graphviz and mathematica) are currently not detected as tags. With mathematica 10.0 and sage 6.8.beta3 and graphviz and this ticket I get:
$ sage t src/sage/interfaces/mathematica.py  All tests passed! 
but
sage t optional=mathematica src/sage/interfaces/mathematica.py  sage t src/sage/interfaces/mathematica.py # 50 doctests failed 
Similarly, less tests are done because the tag graphviz is not detected:
$ sage t src/sage/graphs/graph_latex.py Git branch: t/18558 Optional tags: dot2tex,gcc,mpir,python2,sage,scons Doctesting 1 file. sage t src/sage/graphs/graph_latex.py [186 tests, 0.17 s]  All tests passed! 
compared to
$ sage t optional=graphviz,sage,dot2tex src/sage/graphs/graph_latex.py Git branch: t/18558 Optional tags: dot2tex,graphviz,sage Doctesting 1 file. sage t src/sage/graphs/graph_latex.py [190 tests, 2.48 s]  All tests passed! 
comment:137 Changed 7 years ago by
Description:  modified (diff) 

Status:  needs_work → needs_review 
Replying to slabbe:
Optional packages that are outside of sage (like graphviz and mathematica) are currently not detected as tags.
I know, but that's outside the scope of this ticket.
comment:138 followup: 142 Changed 7 years ago by
Okay. I just installed as many optional packages that I could. Below is the list of my optional tags:
Optional tags: arb,benzene,bliss,buckygen,cbc,cryptominisat, database_cremona_ellcurve,database_gap,database_odlyzko_zeta,database_pari, database_stein_watkins,database_symbolic_data,dot2tex,gambit,gcc,gdb,mcqd, modular_decomposition,mpir,nauty,plantri,python2,sage,scons,tides
I am starting a make ptestlong
now and I will tell you tomorrow the result.
comment:139 Changed 7 years ago by
comment:140 Changed 7 years ago by
Commit:  e3f463d32d4d05a55f8cee4315bb01d9c5de2da2 → 82f3eec7a275f4f250b699633339bcb391b00b1e 

Branch pushed to git repo; I updated commit sha1. New commits:
82f3eec  Change "Using optional" message

comment:141 Changed 7 years ago by
Status:  needs_review → positive_review 

comment:142 Changed 7 years ago by
Replying to slabbe:
I am starting a
make ptestlong
now and I will tell you tomorrow the result.
Running doctests with ID 2015060916254544c48cbc. Git branch: t/18558 Optional tags: arb,benzene,bliss,buckygen,cbc,cryptominisat, database_cremona_ellcurve,database_gap,database_odlyzko_zeta, database_pari,database_stein_watkins,database_symbolic_data, dot2tex,gambit,gcc,gdb,mcqd,modular_decomposition, mpir,nauty,plantri,python2,sage,scons,tides Doctesting entire Sage library. Sorting sources by runtime so that slower doctests are run first.... Doctesting 3135 files using 4 threads. [...]  All tests passed! 
comment:143 Changed 7 years ago by
Branch:  u/jdemeyer/18558 → 82f3eec7a275f4f250b699633339bcb391b00b1e 

Resolution:  → fixed 
Status:  positive_review → closed 
New commits:
trac #18456: ReFix standard_packages(), optional_packages(), and experimental_packages()
trac #18558: Test all (installed) optional packages by default