Re: [sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-21 Thread Volker Braun
On Saturday, April 20, 2019 at 8:41:34 PM UTC+2, vdelecroix wrote:
>
> Shouldn't we implement that only as a IPython hook as well then? 
>

The displayhook override is really just a hack since the plain python 
output can't be changed, whereas Sage can generate nice output by default. 
So IMHO no, just do the right thing in _repr_.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-21 Thread Andrew
See https://trac.sagemath.org/ticket/27710 for a python3 fix to 
combinat/tutorial.py

On Sunday, 21 April 2019 09:26:11 UTC+10, Andrew wrote:
>
> Fixing this problem properly as Martin or Volker suggests is probably the 
> best option but `# random print order` is a good option too, which I was 
> not aware of -- or is this really `# random` with additional explanation?
>
> Is there a complete list of the doc-test modifiers anywhere? I just looked 
> and couldn't find one.I guess that I could just grep through all of the 
> documentation...
>
> Andrew
>
> On Saturday, 20 April 2019 12:14:53 UTC+10, Nils Bruin wrote:
>>
>> On Friday, April 19, 2019 at 5:25:13 PM UTC-7, John H Palmieri wrote:
>>>
>>> What does
>>>
>>> sage: C
>>> Set partitions of {'a', 'c', 'b'}
>>>
>>>
>>> reveal? Is it helpful, or can it be omitted?
>>>
>>> Adding to that: perhaps it reveals something for the documentation 
>> reader. But in that case the output doesn't need to be tested. The test 
>> comes later by showing that further methods on C have the desired effect. 
>> In that case,
>>
>> sage: C # random print order
>> Set partitions of {'a', 'c', 'b'}
>> sage: C.cardinality()
>> 5
>>
>> does the trick AND we keep the output displayed for documentation 
>> purposes.
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-20 Thread Nils Bruin
On Saturday, April 20, 2019 at 4:26:11 PM UTC-7, Andrew wrote:
>
> Fixing this problem properly as Martin or Volker suggests is probably the 
> best option but `# random print order` is a good option too, which I was 
> not aware of -- or is this really `# random` with additional explanation?
>

I intended it to just be "random" with additional explanation. But the 
system accepts it. So it IS a supported comment :-). I think it's better 
than a bare random, otherwise a reader might get confused about what is 
random about a set of partitions.
 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-20 Thread Andrew
Fixing this problem properly as Martin or Volker suggests is probably the 
best option but `# random print order` is a good option too, which I was 
not aware of -- or is this really `# random` with additional explanation?

Is there a complete list of the doc-test modifiers anywhere? I just looked 
and couldn't find one.I guess that I could just grep through all of the 
documentation...

Andrew

On Saturday, 20 April 2019 12:14:53 UTC+10, Nils Bruin wrote:
>
> On Friday, April 19, 2019 at 5:25:13 PM UTC-7, John H Palmieri wrote:
>>
>> What does
>>
>> sage: C
>> Set partitions of {'a', 'c', 'b'}
>>
>>
>> reveal? Is it helpful, or can it be omitted?
>>
>> Adding to that: perhaps it reveals something for the documentation 
> reader. But in that case the output doesn't need to be tested. The test 
> comes later by showing that further methods on C have the desired effect. 
> In that case,
>
> sage: C # random print order
> Set partitions of {'a', 'c', 'b'}
> sage: C.cardinality()
> 5
>
> does the trick AND we keep the output displayed for documentation purposes.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-20 Thread Vincent Delecroix

Le 20/04/2019 à 09:43, Volker Braun a écrit :

On Saturday, April 20, 2019 at 1:10:28 AM UTC+2, Andrew wrote:


Set(['a', 'b', 'c'])
gives different output with each sage session, at least when `sage` is
compiled with python3.



Ideally Set._repr_ would try to sort the set members (falling back to
alphabetical order if the elements can't be compared). This is how the
plain-python set() works; The set members are unordered but the IPython
displayhook will sort them to obtain nicer output:

$ python
[...]

set([1,2,320,6,210])

{320, 1, 2, 6, 210}
$ ipython
[...]
In [1]: set([1,2,320,6,210])
Out[1]: {1, 2, 6, 210, 320}



Shouldn't we implement that only as a IPython hook as well then?

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-20 Thread Volker Braun
On Saturday, April 20, 2019 at 1:10:28 AM UTC+2, Andrew wrote:
>
> Set(['a', 'b', 'c'])
> gives different output with each sage session, at least when `sage` is 
> compiled with python3.
>

Ideally Set._repr_ would try to sort the set members (falling back to 
alphabetical order if the elements can't be compared). This is how the 
plain-python set() works; The set members are unordered but the IPython 
displayhook will sort them to obtain nicer output:

$ python
[...]
>>> set([1,2,320,6,210])
{320, 1, 2, 6, 210}
$ ipython
[...]
In [1]: set([1,2,320,6,210])
Out[1]: {1, 2, 6, 210, 320}

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-19 Thread 'Martin R' via sage-devel
Sorry: "Should we do this?" should be "Should I do this?"

Martin

Am Samstag, 20. April 2019 06:31:20 UTC+2 schrieb Martin R:
>
> In my opinion, `Set` should not be used in library code.  It is slow, 
> unnecessary, and can hide subtle bugs when the underlying object is not 
> hashable. (https://trac.sagemath.org/ticket/23324)
>
> For the concrete issue at hand, the use of `Set` could be easily removed 
> in all methods except `SetPartition.base_set` and 
> `SetPartitions_set.base_set`, because in these two cases calling code might 
> expect a `Set`.
>
> Should we do this?
>
> I should add that this (probably) doesn't solve the underlying issue, and 
> moreover may affect a lot of doctests, because it might change the ordering 
> of the parts returned in _repr_.
>
> Martin
>
>
> Am Samstag, 20. April 2019 04:14:53 UTC+2 schrieb Nils Bruin:
>>
>> On Friday, April 19, 2019 at 5:25:13 PM UTC-7, John H Palmieri wrote:
>>>
>>> What does
>>>
>>> sage: C
>>> Set partitions of {'a', 'c', 'b'}
>>>
>>>
>>> reveal? Is it helpful, or can it be omitted?
>>>
>>> Adding to that: perhaps it reveals something for the documentation 
>> reader. But in that case the output doesn't need to be tested. The test 
>> comes later by showing that further methods on C have the desired effect. 
>> In that case,
>>
>> sage: C # random print order
>> Set partitions of {'a', 'c', 'b'}
>> sage: C.cardinality()
>> 5
>>
>> does the trick AND we keep the output displayed for documentation 
>> purposes.
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-19 Thread 'Martin R' via sage-devel
In my opinion, `Set` should not be used in library code.  It is slow, 
unnecessary, and can hide subtle bugs when the underlying object is not 
hashable. (https://trac.sagemath.org/ticket/23324)

For the concrete issue at hand, the use of `Set` could be easily removed in 
all methods except `SetPartition.base_set` and 
`SetPartitions_set.base_set`, because in these two cases calling code might 
expect a `Set`.

Should we do this?

I should add that this (probably) doesn't solve the underlying issue, and 
moreover may affect a lot of doctests, because it might change the ordering 
of the parts returned in _repr_.

Martin


Am Samstag, 20. April 2019 04:14:53 UTC+2 schrieb Nils Bruin:
>
> On Friday, April 19, 2019 at 5:25:13 PM UTC-7, John H Palmieri wrote:
>>
>> What does
>>
>> sage: C
>> Set partitions of {'a', 'c', 'b'}
>>
>>
>> reveal? Is it helpful, or can it be omitted?
>>
>> Adding to that: perhaps it reveals something for the documentation 
> reader. But in that case the output doesn't need to be tested. The test 
> comes later by showing that further methods on C have the desired effect. 
> In that case,
>
> sage: C # random print order
> Set partitions of {'a', 'c', 'b'}
> sage: C.cardinality()
> 5
>
> does the trick AND we keep the output displayed for documentation purposes.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-19 Thread Nils Bruin
On Friday, April 19, 2019 at 5:25:13 PM UTC-7, John H Palmieri wrote:
>
> What does
>
> sage: C
> Set partitions of {'a', 'c', 'b'}
>
>
> reveal? Is it helpful, or can it be omitted?
>
> Adding to that: perhaps it reveals something for the documentation reader. 
But in that case the output doesn't need to be tested. The test comes later 
by showing that further methods on C have the desired effect. In that case,

sage: C # random print order
Set partitions of {'a', 'c', 'b'}
sage: C.cardinality()
5

does the trick AND we keep the output displayed for documentation purposes.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-19 Thread John H Palmieri
What does

sage: C
Set partitions of {'a', 'c', 'b'}


reveal? Is it helpful, or can it be omitted? Maybe it's good enough to do

sage: C = SetPartitions(["a", "b", "c"])
sage: C.cardinality()
5
sage: sorted(C)
[{{'a'}, {'b'}, {'c'}},
 {{'a'}, {'b', 'c'}},
 {{'a', 'b'}, {'c'}},
 {{'a', 'b', 'c'}},
 {{'a', 'c'}, {'b'}}]

You should use your judgment about whether the doctest prints useful output 
for a reader, for example. If it needs different cases for py2 and py3, is 
it more helpful to print it or is it more confusing?



On Friday, April 19, 2019 at 4:10:28 PM UTC-7, Andrew wrote:
>
> What the accepted best practice for fixing the failing python3 doc-tests? 
> For example, in `combinat/tutorial.py` I can fix one of the failing 
> doc-tests with:
>
> sage: C = SetPartitions(["a", "b", "c"])
> sage: C #py2
> Set partitions of {'a', 'c', 'b'}
> sage: C #py3
> Set partitions of {'a', 'b', 'c'}
>
> but this does not address the underlying problem. At first sight this 
> looks like an issue with `SetPartitions` and, indeed, 
> `combinat/setpartition.py` has several failing doc-tests but as far as I 
> can see this is actually an issue with `Set` even though `sets/set.py` 
> passes all doc-tests. You can see this because 
>
> Set(['a', 'b', 'c'])
>
> gives different output with each sage session, at least when `sage` is 
> compiled with python3.
>
> On Monday, 15 April 2019 21:56:54 UTC+10, Frédéric Chapoton wrote:
>>
>> Hello,
>>
>> sage-with-python3 (now using python 3.7.3) has now *less than 100 files* 
>> (94 precisely) with failing doctests, for a total of *324 failing 
>> doctests*. Among these, 34 files have a single failing doctest.
>>
>> A detailed summary can be found here : 
>> https://trac.sagemath.org/ticket/26212
>>
>> There remains many hard-to-fix issues. Please help if you can.
>>
>> * Matroid, dynamics and combinat people should care for their code. The 
>> cluster code needs particular work.
>>
>> * We should also strive to make all tests pass in rings/
>>
>> * An expert is required on src/sage/misc/classcall_metaclass.pyx
>>
>> Frédéric
>>
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report (mi-april of last python2 year)

2019-04-19 Thread Andrew
What the accepted best practice for fixing the failing python3 doc-tests? 
For example, in `combinat/tutorial.py` I can fix one of the failing 
doc-tests with:

sage: C = SetPartitions(["a", "b", "c"])
sage: C #py2
Set partitions of {'a', 'c', 'b'}
sage: C #py3
Set partitions of {'a', 'b', 'c'}

but this does not address the underlying problem. At first sight this looks 
like an issue with `SetPartitions` and, indeed, `combinat/setpartition.py` 
has several failing doc-tests but as far as I can see this is actually an 
issue with `Set` even though `sets/set.py` passes all doc-tests. You can 
see this because 

Set(['a', 'b', 'c'])

gives different output with each sage session, at least when `sage` is 
compiled with python3.

On Monday, 15 April 2019 21:56:54 UTC+10, Frédéric Chapoton wrote:
>
> Hello,
>
> sage-with-python3 (now using python 3.7.3) has now *less than 100 files* 
> (94 precisely) with failing doctests, for a total of *324 failing 
> doctests*. Among these, 34 files have a single failing doctest.
>
> A detailed summary can be found here : 
> https://trac.sagemath.org/ticket/26212
>
> There remains many hard-to-fix issues. Please help if you can.
>
> * Matroid, dynamics and combinat people should care for their code. The 
> cluster code needs particular work.
>
> * We should also strive to make all tests pass in rings/
>
> * An expert is required on src/sage/misc/classcall_metaclass.pyx
>
> Frédéric
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-02-27 Thread John Cremona
On Sun, 27 Jan 2019, 13:39 Vincent Delecroix, <20100.delecr...@gmail.com>
wrote:

> Le 27/01/2019 à 14:32, Simon King a écrit :
> > Hi Frédéric,
> >
> > On 2019-01-27, Frédéric Chapoton  wrote:
> >> (2) the most badly failing file is "explain_pickle" with 70 failing
> >> doctests. Hopefully, this will be treated very carefully by Erik M. Bray
> >>
> >> (3) after that, we still have problems with graph, where
> generic_graph.py
> >> has 50 failing doctests. But good progress was made by David Coudert,
> >
> > Is there an apparent common reason for most of these failing tests? Such
> > as code that makes assumptions on sorting (which, IIRC, is different in
> > Python 2 and Python 3)?
> >
> >> *STATEMENT *: I would to advocate that **every developer switch to
> python3
> >> NOW**.
> >
> > How?
> >
> > To make my question more precise: For production I would like to
> > keep a python 2 installation of Sage. So, given my existing Sage
> > installation, what would be the easiest way to create a second
> > installation with python 3 that is automatically configured to work
> > well with "git trac"? I guess it is some kind of git clone. Also I
> > don't know what make target is needed.
>
> You need a different clone of your git repo, let say sage-py3. In that
> clone, do
>
>  $ make configure
>  $ ./configure --with-python=3
>
> Then, unless you rerun configure, every call to make will take care
> of the Python 3 switch automatically.
>

Not quite: doing make distclean will take you back to the python2 default
and you'll need to run configure again.  This just happened to me. (I have
a bad habit of doing make distclean; make whenever anything mysterious
happens).



> See also https://wiki.sagemath.org/Python3-compatible%20code
>
> Vincent
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-02-11 Thread Thierry
Hi,

On Mon, Feb 11, 2019 at 11:14:35AM +0100, Jeroen Demeyer wrote:
> On 2019-02-11 11:12, David Coudert wrote:
> > 
> > 
> > Le mardi 29 janvier 2019 23:19:12 UTC+1, Thierry (sage-googlesucks@xxx)
> > a écrit :
[...]
> > 
> > That said, regarding the .edges() method, i think that returning a list
> > of pairs is a very wrong approach (though this is what is done for
> > years). Indeed, a list is not only an iterator, but also a
> > container. In
> > particular:
> > 
> >  (a,b) in G.edges()
> > 
> > is a syntaxially correct statement, but it is far from equivalent to:
> > 
> >  G.has_edge(a,b)
> > 
> > Which is extremely misleading and can lead to silent mistakes
> > (personally, i used lot of hand-made reorderings in my pyograms
> > before i
> > discovered has_edge).
> > 
> > Here i would advocate that G.edges() returns a *view* on G, with a
> > dedicated __iter__ method corresponding to the edge_iterator method and
> > a __contains__ method corresponding to the has_edge method. By having a
> > view, you will save a lot of time and memory, and have the benefit that
> > it will follow the graph's mutations.
> > 
> > 
> > This is an interesting idea, although I'm not sure how to implement that
> > efficiently.
> 
> I don't see why it should be inefficient (assuming you implement it in
> Cython of course).

Actually, a view is somehow pointing to an existing object, so it is
O(1), to be compared to contstructing a list which is O(|E|).

Ciao,
Thierry

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-02-11 Thread Jeroen Demeyer

On 2019-02-11 11:12, David Coudert wrote:



Le mardi 29 janvier 2019 23:19:12 UTC+1, Thierry (sage-googlesucks@xxx)
a écrit :

Hi,

On Sun, Jan 27, 2019 at 11:21:21AM -0800, David Coudert wrote:
[...]
 > The most complicated issue is certainly edges of Graph: we sort the
 > vertices of an edge before returning it... I have no solution for
this
 > issue. We can decide to stop ordering the vertices, but then we
will have
 > to update a very large number of algorithms. We could also design
a method
 > to compare object of different types.
 > In fact, the main issue is that we use and compare vertices by id
instead
 > of mapping vertices to integer and work only with these integers.
That
 > would ease our life, but it's not easy to change that.

We discussed the difference between mathematical and algorithmic level
various times (for equality, comparison, etc).

Here, at the "algorithmic" level, the vertices are of course
comparable,
and most algorithms in graph theory rely on this (starting by the most
fundamental such as DFS, BFS, etc). Trying to avoid comparison of
vertices would be suicidary, and trying to do that with Sage will just
lead to unreadable artificially complicated code.

If you want an integer label for each vertex, why not just ask to the
backend:

sage: G = graphs.WorldMap()
sage: G
World Map: Graph on 251 vertices
sage: G.vertices()[0]
'Afghanistan'

sage: GG = G._backend.c_graph()[0]
sage: GG

sage: GG.verts()[0]
0

So, somehow, you do not have to map Sage objects back to integers,
since
we already have a map from integers to Sage objects.

I did not check the implementations, but though it is kind of too late
given the size of Sage, i would advocate to have two explicit layers
for
combinatorial objects such as words, graphs, permutations, etc, one
"algorithmic" where the atoms are integers, with all the good
properties, and a "label" dictionary, where we could attach any Sage
object to them for "mathematical" questions. And it would be amazing if
they were an specified way to do that uniformly.


In fact we already have methods to do that, but changing the code to use
these methods is not an easy task...

sage: G = graphs.PetersenGraph()
sage: G.set_vertex(0, 'abc')
sage: G.set_vertex(1, graphs.CycleGraph(3))
sage: print(G.get_vertices())
{0: 'abc', 1: Cycle graph: Graph on 3 vertices, 2: None, 3: None, 4:
None, 5: None, 6: None, 7: None, 8: None, 9: None}


That said, regarding the .edges() method, i think that returning a list
of pairs is a very wrong approach (though this is what is done for
years). Indeed, a list is not only an iterator, but also a
container. In
particular:

 (a,b) in G.edges()

is a syntaxially correct statement, but it is far from equivalent to:

 G.has_edge(a,b)

Which is extremely misleading and can lead to silent mistakes
(personally, i used lot of hand-made reorderings in my pyograms
before i
discovered has_edge).

Here i would advocate that G.edges() returns a *view* on G, with a
dedicated __iter__ method corresponding to the edge_iterator method and
a __contains__ method corresponding to the has_edge method. By having a
view, you will save a lot of time and memory, and have the benefit that
it will follow the graph's mutations.


This is an interesting idea, although I'm not sure how to implement that
efficiently.


I don't see why it should be inefficient (assuming you implement it in 
Cython of course).


--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-02-11 Thread David Coudert


Le mardi 29 janvier 2019 23:19:12 UTC+1, Thierry (sage-googlesucks@xxx) a 
écrit :
>
> Hi, 
>
> On Sun, Jan 27, 2019 at 11:21:21AM -0800, David Coudert wrote: 
> [...] 
> > The most complicated issue is certainly edges of Graph: we sort the 
> > vertices of an edge before returning it... I have no solution for this 
> > issue. We can decide to stop ordering the vertices, but then we will 
> have 
> > to update a very large number of algorithms. We could also design a 
> method 
> > to compare object of different types. 
> > In fact, the main issue is that we use and compare vertices by id 
> instead 
> > of mapping vertices to integer and work only with these integers. That 
> > would ease our life, but it's not easy to change that. 
>
> We discussed the difference between mathematical and algorithmic level 
> various times (for equality, comparison, etc). 
>
> Here, at the "algorithmic" level, the vertices are of course comparable, 
> and most algorithms in graph theory rely on this (starting by the most 
> fundamental such as DFS, BFS, etc). Trying to avoid comparison of 
> vertices would be suicidary, and trying to do that with Sage will just 
> lead to unreadable artificially complicated code. 
>
> If you want an integer label for each vertex, why not just ask to the 
> backend: 
>
> sage: G = graphs.WorldMap() 
> sage: G 
> World Map: Graph on 251 vertices 
> sage: G.vertices()[0] 
> 'Afghanistan' 
>
> sage: GG = G._backend.c_graph()[0] 
> sage: GG 
>  
> sage: GG.verts()[0] 
> 0 
>
> So, somehow, you do not have to map Sage objects back to integers, since 
> we already have a map from integers to Sage objects. 
>
> I did not check the implementations, but though it is kind of too late 
> given the size of Sage, i would advocate to have two explicit layers for 
> combinatorial objects such as words, graphs, permutations, etc, one 
> "algorithmic" where the atoms are integers, with all the good 
> properties, and a "label" dictionary, where we could attach any Sage 
> object to them for "mathematical" questions. And it would be amazing if 
> they were an specified way to do that uniformly. 
>

In fact we already have methods to do that, but changing the code to use 
these methods is not an easy task...

sage: G = graphs.PetersenGraph()
sage: G.set_vertex(0, 'abc')
sage: G.set_vertex(1, graphs.CycleGraph(3))
sage: print(G.get_vertices())
{0: 'abc', 1: Cycle graph: Graph on 3 vertices, 2: None, 3: None, 4: None, 
5: None, 6: None, 7: None, 8: None, 9: None}


That said, regarding the .edges() method, i think that returning a list 
> of pairs is a very wrong approach (though this is what is done for 
> years). Indeed, a list is not only an iterator, but also a container. In 
> particular: 
>
> (a,b) in G.edges() 
>
> is a syntaxially correct statement, but it is far from equivalent to: 
>
> G.has_edge(a,b) 
>
> Which is extremely misleading and can lead to silent mistakes 
> (personally, i used lot of hand-made reorderings in my pyograms before i 
> discovered has_edge). 
>
> Here i would advocate that G.edges() returns a *view* on G, with a 
> dedicated __iter__ method corresponding to the edge_iterator method and 
> a __contains__ method corresponding to the has_edge method. By having a 
> view, you will save a lot of time and memory, and have the benefit that 
> it will follow the graph's mutations. 
>
>
This is an interesting idea, although I'm not sure how to implement that 
efficiently.

David.

PS: when all currently in "needs review" tickets will be closed, the number 
of py3 failing doctests in the graph module will be small (HELP welcome 
here to review tickets and fix remaining doctests). It will then become 
easier to see the effect of changes like not sorting end vertices of edges 
(we could try that), implement a *view* on G, etc.



 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-30 Thread Volker Braun
Also, I have now set up a Python3 buildbot to catch regressions!

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-29 Thread Thierry
Hi,

On Sun, Jan 27, 2019 at 11:21:21AM -0800, David Coudert wrote:
[...]
> The most complicated issue is certainly edges of Graph: we sort the 
> vertices of an edge before returning it... I have no solution for this 
> issue. We can decide to stop ordering the vertices, but then we will have 
> to update a very large number of algorithms. We could also design a method 
> to compare object of different types. 
> In fact, the main issue is that we use and compare vertices by id instead 
> of mapping vertices to integer and work only with these integers. That 
> would ease our life, but it's not easy to change that.

We discussed the difference between mathematical and algorithmic level
various times (for equality, comparison, etc).

Here, at the "algorithmic" level, the vertices are of course comparable,
and most algorithms in graph theory rely on this (starting by the most
fundamental such as DFS, BFS, etc). Trying to avoid comparison of
vertices would be suicidary, and trying to do that with Sage will just
lead to unreadable artificially complicated code.

If you want an integer label for each vertex, why not just ask to the
backend:

sage: G = graphs.WorldMap()
sage: G
World Map: Graph on 251 vertices
sage: G.vertices()[0]
'Afghanistan'

sage: GG = G._backend.c_graph()[0]
sage: GG

sage: GG.verts()[0]
0

So, somehow, you do not have to map Sage objects back to integers, since
we already have a map from integers to Sage objects.

I did not check the implementations, but though it is kind of too late
given the size of Sage, i would advocate to have two explicit layers for
combinatorial objects such as words, graphs, permutations, etc, one
"algorithmic" where the atoms are integers, with all the good
properties, and a "label" dictionary, where we could attach any Sage
object to them for "mathematical" questions. And it would be amazing if
they were an specified way to do that uniformly.


That said, regarding the .edges() method, i think that returning a list
of pairs is a very wrong approach (though this is what is done for
years). Indeed, a list is not only an iterator, but also a container. In
particular:

(a,b) in G.edges()

is a syntaxially correct statement, but it is far from equivalent to:

G.has_edge(a,b)

Which is extremely misleading and can lead to silent mistakes
(personally, i used lot of hand-made reorderings in my pyograms before i
discovered has_edge).

Here i would advocate that G.edges() returns a *view* on G, with a
dedicated __iter__ method corresponding to the edge_iterator method and
a __contains__ method corresponding to the has_edge method. By having a
view, you will save a lot of time and memory, and have the benefit that
it will follow the graph's mutations.

Ciao,
Thierry



> David.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-29 Thread Daniel Krenn
On 2019-01-27 14:50, Simon King wrote:
> How to do so most easily, so that "git pull" etc. still referes to trac?
> That was part of my question. Doing "git pull
> /path/to/my/old/installation" would mean that I need to go to my old
> installation, "git pull" (pulls develop from trac), go to the new
> installation, and to "git pull" again (pulling develop from my old
> installation, but NOT directly from trac).

I use `git worktree` a lot and might be helpful for you as well

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-29 Thread Eric Gourgoulhon
Le mardi 29 janvier 2019 10:29:43 UTC+1, Samuel Lelievre a écrit :
>
> Sun 2019-01-27 14:23:08 UTC+1, Frédéric Chapoton:
> >
> >
> > STATEMENT: I would to advocate that *every developer switch to python3 
> NOW*.
> >
> >
> > Please vote!
>
> Strong +1 from me.
>
>
+1 from me too.

Many, many thanks to you Frédéric, and the small team who got involved,
> for your efforts on getting Sage Python 3 ready. 
>


A big +1 !

I have been using the
> Python 3 version exclusively for a while now and enjoying it a lot.
>


+1 
As a side note, let me point that the manifold examples posted at 
https://sagemanifolds.obspm.fr/examples.html
work like a charm with Python 3 (I've tested a selected sample and they all 
work, including those involving SymPy, without any modification).


> I would also encourage all developers (and users) to use their `init.sage`
> to help use Python3 habits even whey working with Python2-based Sage.
>
> Here is my `init.sage`, suggestions welcome:
>
> 
> https://github.com/slel/sagemath-tips/blob/master/init-dot-sage/init.sage
>
> In particular it forces me to always use Python3-style print!
>


Thanks for sharing.

Eric.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-29 Thread Samuel Lelievre
Sun 2019-01-27 14:23:08 UTC+1, Frédéric Chapoton:
>
> here is a small progress report on porting sage to python3.
> Good, but still too slow for my taste. The sooner we can
> catch up with jupyter, the better..
>
> (1) with the latest beta (8.7.b1), there are now exactly 200 files
> having failing doctests, and a total of 866 failing doctests.
> Among those, 74 files have 1 failing doctest.
>
> (2) the most badly failing file is "explain_pickle" with 70 failing
> doctests. Hopefully, this will be treated very carefully by Erik M. Bray
>
> (3) after that, we still have problems with graph, where generic_graph.py
> has 50 failing doctests. But good progress was made by David Coudert,
>
> (4) then, various small issues, such as sorting sets and dictionaries,
> etc. Some good python3 changes are blocked by the long awaited ticket
> https://trac.sagemath.org/ticket/23572
>
> STATEMENT: I would to advocate that *every developer switch to python3 
NOW*.
>
> This will help to prevent regressions, as the one that happened recently
> in elliptic curves. This will also motivate people to fix the part of the
> code base that they use and that still fails.
>
> Please vote!

Strong +1 from me.

Many, many thanks to you Frédéric, and the small team who got involved,
for your efforts on getting Sage Python 3 ready. I have been using the
Python 3 version exclusively for a while now and enjoying it a lot.

I would also encourage all developers (and users) to use their `init.sage`
to help use Python3 habits even whey working with Python2-based Sage.

Here is my `init.sage`, suggestions welcome:


https://github.com/slel/sagemath-tips/blob/master/init-dot-sage/init.sage

In particular it forces me to always use Python3-style print!

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-28 Thread E. Madison Bray
On Sun, Jan 27, 2019 at 2:55 PM Simon King  wrote:
>
> Hi Frédéric,
>
> On 2019-01-27, Frédéric Chapoton  wrote:
> > I am pretty sure you would be rather happy working only with python3.
>
> That's too early. For teaching, I need to know that I have a working
> Sage installation, and for research I also have to have a working
> installation of my group cohomology spkg.

Although I do think Frédéric is jumping the gun *slightly*, he did
explicitly write "every developer switch to Python 3", which I took to
mean, use `./configure --with-python=3` in any Sage you use for
development of Sage itself.

If you are both developing Sage and using Sage for teaching you should
have separate installations anyways.  You should be using a stable
version for teaching and research (unless actively doing development
for said research).

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Jeroen,

On 2019-01-27, Jeroen Demeyer  wrote:
> On 2019-01-27 22:36, Simon King wrote:
>> But do py3 experts agree that to transform os.path.join(...) to char*
>> (which is not in pickling but in module initialisation), I need
>> PyString_...?
>
> No! Please see src/sage/cpython/string.pyx

Thank you for the pointer!

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Jeroen Demeyer

On 2019-01-27 22:36, Simon King wrote:

But do py3 experts agree that to transform os.path.join(...) to char*
(which is not in pickling but in module initialisation), I need
PyString_...?


No! Please see src/sage/cpython/string.pyx

(sorry no time now to answer more)

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
PS:

On 2019-01-27, Simon King  wrote:
> The funny thing is that 2 years ago, I was told by Jeroen:
> """
>   For Python 3 compatibility, you should use bytes instead of str for
>   pickling.
>   
>   This means changing the PyString_... functions to PyBytes_...
> """

To be fair, Jeroen talked about pickling, where PyBytes probably still
is the way to go.

But do py3 experts agree that to transform os.path.join(...) to char*
(which is not in pickling but in module initialisation), I need
PyString_...?

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi,

On 2019-01-27, Simon King  wrote:
> Is there a ticket for meataxe on python 3 already? I guess not. So,
> unless someone stops me in the next hour or so, I'll open one...

I created https://trac.sagemath.org/ticket/27152.

First problem: In py2,
PyBytes_AsString(os.path.join(DOT_SAGE,'meataxe')) works. In py3 it
doesn't, since os.path.join returns str not bytes.

The funny thing is that 2 years ago, I was told by Jeroen:
"""
  For Python 3 compatibility, you should use bytes instead of str for
  pickling.
  
  This means changing the PyString_... functions to PyBytes_...
"""

So, I guess for Python 3 compatibility, I need to revert the change and
return to PyString_..., as os.path.join returns str.

Cheers,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Dear all,

using "git worktree", I now have both python 2 and python 3 versions of
Sage on my computer. Thank you!

Of course, I started to check packages that I care about --- and
immediately found a problem with the "meataxe" optional package.

When trying to create a matrix of type Matrix_gfpn_dense, I get a
TypeError: expected bytes, str found.

Is there a ticket for meataxe on python 3 already? I guess not. So,
unless someone stops me in the next hour or so, I'll open one...

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread David Coudert


> Is there an apparent common reason for most of these failing tests? Such 
> as code that makes assumptions on sorting (which, IIRC, is different in 
> Python 2 and Python 3)? 
>

Many many methods were relying on sorted list of vertices and edges. We 
have done significant progresses to reduce that.

Another source of problems is that the order of keys of dictionary, i.e., 
list(mydict.keys()) or list(myset), might be different in py2 and py3. This 
breaks many doctests, but may be more complicated, it changes the order in 
which the neighbors of a vertex are visited (check 
G._backend.iterator_nbrs??). Consequently, the returned solution of some 
algorithms might be differents (but still correct). A solution is to tag 
doctests with py2 and py3.

The most complicated issue is certainly edges of Graph: we sort the 
vertices of an edge before returning it... I have no solution for this 
issue. We can decide to stop ordering the vertices, but then we will have 
to update a very large number of algorithms. We could also design a method 
to compare object of different types. 
In fact, the main issue is that we use and compare vertices by id instead 
of mapping vertices to integer and work only with these integers. That 
would ease our life, but it's not easy to change that.

David.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Frédéric,

On 2019-01-27, Frédéric Chapoton  wrote:
> Does this mean that everything dependent on python will have to be 
> recompiled when you switch ?

My original worktree was ~/Sage/git/sage. I added a new worktree
~/Sage/git/py3 using "git worktree add". The fact that
~/Sage/git/sage/local and ~/Sage/git/py3/local are not the same probably
means that no recompilation will be needed.

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Frédéric Chapoton
Does this mean that everything dependent on python will have to be 
recompiled when you switch ?

F

Le dimanche 27 janvier 2019 16:26:17 UTC+1, Timo Kaufmann a écrit :
>
>
>
> Am Sonntag, 27. Januar 2019 14:32:16 UTC+1 schrieb Simon King:
>
>> > *STATEMENT *: I would to advocate that **every developer switch to 
>> python3 
>> > NOW**. 
>>
>> How? 
>>
>
> Git worktrees would be a solution. Essentially you keep one git 
> repository, but check out two branches at the same time in different 
> directories. From your main repo do this:
>
> $ git worktree add /path/to/the/new/checkout branch-to-checkout
>
> You'll keep your python2 checkout and the new directory will be part of 
> the same repo. That means that remotes are set up as before and you have 
> access to the same branches. You can also create a new branch and 
> immediately create a worktree for that:
>
> $ git worktree add -b my-feature-branch /path/to/the/new/checkout 
> branch-to-checkout
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Timo,

On 2019-01-27, Timo Kaufmann  wrote:
> Git worktrees would be a solution. Essentially you keep one git repository, 
> but check out two branches at the same time in different directories. From 
> your main repo do this:
>
> $ git worktree add /path/to/the/new/checkout branch-to-checkout

Thank you! I am trying this, also having a symlink to the original
worktree's "upstream" directory.

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Timo Kaufmann


Am Sonntag, 27. Januar 2019 14:32:16 UTC+1 schrieb Simon King:

> > *STATEMENT *: I would to advocate that **every developer switch to 
> python3 
> > NOW**. 
>
> How? 
>

Git worktrees would be a solution. Essentially you keep one git repository, 
but check out two branches at the same time in different directories. From 
your main repo do this:

$ git worktree add /path/to/the/new/checkout branch-to-checkout

You'll keep your python2 checkout and the new directory will be part of the 
same repo. That means that remotes are set up as before and you have access 
to the same branches. You can also create a new branch and immediately 
create a worktree for that:

$ git worktree add -b my-feature-branch /path/to/the/new/checkout 
branch-to-checkout


-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Vincent Delecroix

Le 27/01/2019 à 15:56, Simon King a écrit :

Hi Vincent,

On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:

king@klap:~/Sage/py3/sage$ git remote add trac g...@trac.sagemath.org:sage.git


After that, you should see "trac" among your remotes

   $ git remote -v

And "origin" should be your local repo.


Correct!

king@klap:~/Sage/py3/sage$ git remote -v
origin  /home/king/Sage/py3/../git/sage (fetch)
origin  /home/king/Sage/py3/../git/sage (push)
tracg...@trac.sagemath.org:sage.git (fetch)
trac	g...@trac.sagemath.org:sage.git (push) 


$ git branch --set-upstream-to trac/develop


king@klap:~/Sage/py3/sage$ git branch
* develop
   t/13447/make_libsingular_multivariate_polynomial_rings_collectable

So, indeed we are talking about "develop", but:

king@klap:~/Sage/py3/sage$ git branch --set-upstream-to trac/develop
error: the requested upstream branch 'trac/develop' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.


git has no clue what is on trac (of course) but apparently does not
want to find out automatically. Do

 $ git fetch trac develop

so that it knows. And then

 $ git branch --set-upstream-to trac/develop

(I tried and it worked). Though "git pull" is not a so good idea
since that would pull *all* branches from trac. You would better run

 $ git pull trac develop

Vincent

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Vincent,

On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:
>> king@klap:~/Sage/py3/sage$ git remote add trac 
>> g...@trac.sagemath.org:sage.git
>
> After that, you should see "trac" among your remotes
>
>   $ git remote -v
>
> And "origin" should be your local repo.

Correct!

king@klap:~/Sage/py3/sage$ git remote -v
origin  /home/king/Sage/py3/../git/sage (fetch)
origin  /home/king/Sage/py3/../git/sage (push)
tracg...@trac.sagemath.org:sage.git (fetch)
tracg...@trac.sagemath.org:sage.git (push)


>$ git branch --set-upstream-to trac/develop

king@klap:~/Sage/py3/sage$ git branch
* develop
  t/13447/make_libsingular_multivariate_polynomial_rings_collectable

So, indeed we are talking about "develop", but:

king@klap:~/Sage/py3/sage$ git branch --set-upstream-to trac/develop
error: the requested upstream branch 'trac/develop' does not exist
hint: 
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint: 
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.

So, still something is wrong.

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Vincent Delecroix

Hi Simon,

Le 27/01/2019 à 15:19, Simon King a écrit :

On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:

This has nothing to do with python 3.


Sure.


You only need to set up
properly your remote and branches.


Exactly. And that's already more than what I can do in git without
reading tons of documentation.


After

$ git clone sage-original sage-py3

The default remote in sage-py3 will be the sage-original local
folder. First step, add the remote for trac

   (sage-py3) $ git remote add trac g...@trac.sagemath.org:sage.git

Second step set trac to be the default upstream

   (sage-py3) $ git branch --set-upstream-to trac


Doesn't work for me.


My bad.


king@klap:~/Sage/py3/sage$ git remote add trac g...@trac.sagemath.org:sage.git


After that, you should see "trac" among your remotes

 $ git remote -v

And "origin" should be your local repo.


king@klap:~/Sage/py3/sage$ git branch --set-upstream-to trac


This was an erroneous command. It is

  $ git branch --set-upstream-to trac/develop

(or trac/mater if you cloned the master branch)

Note that this will only take care of the current
branch (develop).

Vincent

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Dima Pasechnik
I believe it was added by
What I am unsure about now (too hard to dig using a phone :-)) is how to
switch between different SAGE_LOCAL.
Probably by setting an env. variable.

https://trac.sagemath.org/ticket/21479


On Sun, 27 Jan 2019 14:12 Vincent Delecroix <20100.delecr...@gmail.com
wrote:

> Please tell us how. None of us claimed that two clones were needed.
>
> Le 27/01/2019 à 15:03, Dima Pasechnik a écrit :
> > Why does one need two clones? We have functionality to allow a custom
> build
> > location. It should be possible to give it to configure as a parameter...
> >
> > On Sun, 27 Jan 2019 13:58 Vincent Delecroix <20100.delecr...@gmail.com
> > wrote:
> >
> >>
> >>
> >> Le 27/01/2019 à 14:50, Simon King a écrit :
> >>> Hi Vincent,
> >>>
> >>> On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:
>  You need a different clone of your git repo, let say sage-py3.
> >>>
> >>> How to do so most easily, so that "git pull" etc. still referes to
> trac?
> >>> That was part of my question. Doing "git pull
> >>> /path/to/my/old/installation" would mean that I need to go to my old
> >>> installation, "git pull" (pulls develop from trac), go to the new
> >>> installation, and to "git pull" again (pulling develop from my old
> >>> installation, but NOT directly from trac).
> >>
> >> This has nothing to do with python 3. You only need to set up
> >> properly your remote and branches.
> >>
> >> After
> >>
> >> $ git clone sage-original sage-py3
> >>
> >> The default remote in sage-py3 will be the sage-original local
> >> folder. First step, add the remote for trac
> >>
> >>(sage-py3) $ git remote add trac g...@trac.sagemath.org:sage.git
> >>
> >> Second step set trac to be the default upstream
> >>
> >>(sage-py3) $ git branch --set-upstream-to trac
> >>
> >> For all this, the best is to read the git documentation.
> >>
> >> Vincent
> >>
> >> PS: the Frederic version is less trouble but more bandwidth!
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "sage-devel" group.
> >> To unsubscribe from this group and stop receiving emails from it, send
> an
> >> email to sage-devel+unsubscr...@googlegroups.com.
> >> To post to this group, send email to sage-devel@googlegroups.com.
> >> Visit this group at https://groups.google.com/group/sage-devel.
> >> For more options, visit https://groups.google.com/d/optout.
> >>
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Vincent,

On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:
> This has nothing to do with python 3.

Sure.

> You only need to set up
> properly your remote and branches.

Exactly. And that's already more than what I can do in git without
reading tons of documentation.

> After
>
>$ git clone sage-original sage-py3
>
> The default remote in sage-py3 will be the sage-original local
> folder. First step, add the remote for trac
>
>   (sage-py3) $ git remote add trac g...@trac.sagemath.org:sage.git
>
> Second step set trac to be the default upstream
>
>   (sage-py3) $ git branch --set-upstream-to trac

Doesn't work for me.

king@klap:~/Sage/py3/sage$ git remote add trac g...@trac.sagemath.org:sage.git
king@klap:~/Sage/py3/sage$ git branch --set-upstream-to trac
error: the requested upstream branch 'trac' does not exist
hint: 
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint: 
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.

> PS: the Frederic version is less trouble but more bandwidth!

Exactly. I thought a local copy would be both faster and easier to
obtain.

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Vincent Delecroix

Please tell us how. None of us claimed that two clones were needed.

Le 27/01/2019 à 15:03, Dima Pasechnik a écrit :

Why does one need two clones? We have functionality to allow a custom build
location. It should be possible to give it to configure as a parameter...

On Sun, 27 Jan 2019 13:58 Vincent Delecroix <20100.delecr...@gmail.com
wrote:




Le 27/01/2019 à 14:50, Simon King a écrit :

Hi Vincent,

On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:

You need a different clone of your git repo, let say sage-py3.


How to do so most easily, so that "git pull" etc. still referes to trac?
That was part of my question. Doing "git pull
/path/to/my/old/installation" would mean that I need to go to my old
installation, "git pull" (pulls develop from trac), go to the new
installation, and to "git pull" again (pulling develop from my old
installation, but NOT directly from trac).


This has nothing to do with python 3. You only need to set up
properly your remote and branches.

After

$ git clone sage-original sage-py3

The default remote in sage-py3 will be the sage-original local
folder. First step, add the remote for trac

   (sage-py3) $ git remote add trac g...@trac.sagemath.org:sage.git

Second step set trac to be the default upstream

   (sage-py3) $ git branch --set-upstream-to trac

For all this, the best is to read the git documentation.

Vincent

PS: the Frederic version is less trouble but more bandwidth!

--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.





--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Dima Pasechnik
Why does one need two clones? We have functionality to allow a custom build
location. It should be possible to give it to configure as a parameter...

On Sun, 27 Jan 2019 13:58 Vincent Delecroix <20100.delecr...@gmail.com
wrote:

>
>
> Le 27/01/2019 à 14:50, Simon King a écrit :
> > Hi Vincent,
> >
> > On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:
> >> You need a different clone of your git repo, let say sage-py3.
> >
> > How to do so most easily, so that "git pull" etc. still referes to trac?
> > That was part of my question. Doing "git pull
> > /path/to/my/old/installation" would mean that I need to go to my old
> > installation, "git pull" (pulls develop from trac), go to the new
> > installation, and to "git pull" again (pulling develop from my old
> > installation, but NOT directly from trac).
>
> This has nothing to do with python 3. You only need to set up
> properly your remote and branches.
>
> After
>
>$ git clone sage-original sage-py3
>
> The default remote in sage-py3 will be the sage-original local
> folder. First step, add the remote for trac
>
>   (sage-py3) $ git remote add trac g...@trac.sagemath.org:sage.git
>
> Second step set trac to be the default upstream
>
>   (sage-py3) $ git branch --set-upstream-to trac
>
> For all this, the best is to read the git documentation.
>
> Vincent
>
> PS: the Frederic version is less trouble but more bandwidth!
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Vincent Delecroix

PPS: if you intend to have a py2 and py3 installation it is a good
idea to have a shared $SAGE_ROOT/upstream/ repository (where
package tarballs are downloaded). This can be done via a simple
simlink in the py3 installation.

Maybe we could create a configure option --with-upstream=PATH for
this?

Vincent

Le 27/01/2019 à 14:56, Frédéric Chapoton a écrit :

git clone git://github.com/sagemath/sage.git sage3

Le dimanche 27 janvier 2019 14:50:22 UTC+1, Simon King a écrit :


Hi Vincent,

On 2019-01-27, Vincent Delecroix <20100.d...@gmail.com >
wrote:

You need a different clone of your git repo, let say sage-py3.


How to do so most easily, so that "git pull" etc. still referes to trac?
That was part of my question. Doing "git pull
/path/to/my/old/installation" would mean that I need to go to my old
installation, "git pull" (pulls develop from trac), go to the new
installation, and to "git pull" again (pulling develop from my old
installation, but NOT directly from trac).

That's awkward and could certainly be done better.


In that
clone, do

  $ make configure
  $ ./configure --with-python=3


Thank you!

Best regards,
Simon






--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Vincent Delecroix




Le 27/01/2019 à 14:50, Simon King a écrit :

Hi Vincent,

On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:

You need a different clone of your git repo, let say sage-py3.


How to do so most easily, so that "git pull" etc. still referes to trac?
That was part of my question. Doing "git pull
/path/to/my/old/installation" would mean that I need to go to my old
installation, "git pull" (pulls develop from trac), go to the new
installation, and to "git pull" again (pulling develop from my old
installation, but NOT directly from trac).


This has nothing to do with python 3. You only need to set up
properly your remote and branches.

After

  $ git clone sage-original sage-py3

The default remote in sage-py3 will be the sage-original local
folder. First step, add the remote for trac

 (sage-py3) $ git remote add trac g...@trac.sagemath.org:sage.git

Second step set trac to be the default upstream

 (sage-py3) $ git branch --set-upstream-to trac

For all this, the best is to read the git documentation.

Vincent

PS: the Frederic version is less trouble but more bandwidth!

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Frédéric Chapoton
git clone git://github.com/sagemath/sage.git sage3

Le dimanche 27 janvier 2019 14:50:22 UTC+1, Simon King a écrit :
>
> Hi Vincent, 
>
> On 2019-01-27, Vincent Delecroix <20100.d...@gmail.com > 
> wrote: 
> > You need a different clone of your git repo, let say sage-py3. 
>
> How to do so most easily, so that "git pull" etc. still referes to trac? 
> That was part of my question. Doing "git pull 
> /path/to/my/old/installation" would mean that I need to go to my old 
> installation, "git pull" (pulls develop from trac), go to the new 
> installation, and to "git pull" again (pulling develop from my old 
> installation, but NOT directly from trac). 
>
> That's awkward and could certainly be done better. 
>
> >In that 
> > clone, do 
> > 
> >  $ make configure 
> >  $ ./configure --with-python=3 
>
> Thank you! 
>
> Best regards, 
> Simon 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Frédéric,

On 2019-01-27, Frédéric Chapoton  wrote:
> I am pretty sure you would be rather happy working only with python3.

That's too early. For teaching, I need to know that I have a working
Sage installation, and for research I also have to have a working
installation of my group cohomology spkg.

So far, there is no way for me to be sure that python3 would work for
me. Also, there is a high probability that I need to refactor my group
cohomology spkg so that it works in python3. So, FOR NOW, I won't
immediately drop python2.

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Vincent,

On 2019-01-27, Vincent Delecroix <20100.delecr...@gmail.com> wrote:
> You need a different clone of your git repo, let say sage-py3.

How to do so most easily, so that "git pull" etc. still referes to trac?
That was part of my question. Doing "git pull
/path/to/my/old/installation" would mean that I need to go to my old
installation, "git pull" (pulls develop from trac), go to the new
installation, and to "git pull" again (pulling develop from my old
installation, but NOT directly from trac).

That's awkward and could certainly be done better.

>In that
> clone, do
>
>  $ make configure
>  $ ./configure --with-python=3

Thank you!

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Frédéric Chapoton

>
>
> > *STATEMENT *: I would to advocate that **every developer switch to 
> python3 
> > NOW**. 
>
> How? 
>
> To make my question more precise: For production I would like to 
> keep a python 2 installation of Sage.


I am pretty sure you would be rather happy working only with python3.
 

> So, given my existing Sage 
> installation, what would be the easiest way to create a second 
> installation with python 3 that is automatically configured to work 
> well with "git trac"? I guess it is some kind of git clone. Also I 
> don't know what make target is needed. 
>
> How to build sage with python3:

first "git clone" into another dir, say "sage3" then inside this dir:
make configure
./configure --with-python=3
make build

The first two lines need only be used once and for all.

concerning the tests, there is currently a partial test target that ensure 
that thing know to pass still pass

if you want to run all tests, then all course, you will meet failures in 
some parts of sage

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: python3 status report

2019-01-27 Thread Vincent Delecroix

Le 27/01/2019 à 14:32, Simon King a écrit :

Hi Frédéric,

On 2019-01-27, Frédéric Chapoton  wrote:

(2) the most badly failing file is "explain_pickle" with 70 failing
doctests. Hopefully, this will be treated very carefully by Erik M. Bray

(3) after that, we still have problems with graph, where generic_graph.py
has 50 failing doctests. But good progress was made by David Coudert,


Is there an apparent common reason for most of these failing tests? Such
as code that makes assumptions on sorting (which, IIRC, is different in
Python 2 and Python 3)?


*STATEMENT *: I would to advocate that **every developer switch to python3
NOW**.


How?

To make my question more precise: For production I would like to
keep a python 2 installation of Sage. So, given my existing Sage
installation, what would be the easiest way to create a second
installation with python 3 that is automatically configured to work
well with "git trac"? I guess it is some kind of git clone. Also I
don't know what make target is needed.


You need a different clone of your git repo, let say sage-py3. In that
clone, do

$ make configure
$ ./configure --with-python=3

Then, unless you rerun configure, every call to make will take care
of the Python 3 switch automatically.

See also https://wiki.sagemath.org/Python3-compatible%20code

Vincent

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2019-01-27 Thread Simon King
Hi Frédéric,

On 2019-01-27, Frédéric Chapoton  wrote:
> (2) the most badly failing file is "explain_pickle" with 70 failing 
> doctests. Hopefully, this will be treated very carefully by Erik M. Bray
>
> (3) after that, we still have problems with graph, where generic_graph.py 
> has 50 failing doctests. But good progress was made by David Coudert,

Is there an apparent common reason for most of these failing tests? Such
as code that makes assumptions on sorting (which, IIRC, is different in
Python 2 and Python 3)?

> *STATEMENT *: I would to advocate that **every developer switch to python3 
> NOW**.

How?

To make my question more precise: For production I would like to
keep a python 2 installation of Sage. So, given my existing Sage
installation, what would be the easiest way to create a second
installation with python 3 that is automatically configured to work
well with "git trac"? I guess it is some kind of git clone. Also I
don't know what make target is needed.

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-30 Thread Kwankyu Lee


On Wednesday, October 31, 2018 at 2:34:59 AM UTC+9, John H Palmieri wrote:
>
>
>
> On Monday, October 29, 2018 at 9:36:33 PM UTC-7, Kwankyu Lee wrote:
>>
>> Or run 'make distclean' before switching Python versions.
>>>
>>
>> For me, "make distclean" did not work.
>>
>
> What didn't work about it? "make distclean" followed by "./configure 
> --with-python=3" and then "make" works for me.
>

I followed exactly the same steps, but somehow sage building failed 
somewhere in middle. I don't remember exactly what failed. I think we 
should recommend building from new clone... 
 

>
> -- 
> John
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-30 Thread John H Palmieri


On Monday, October 29, 2018 at 9:36:33 PM UTC-7, Kwankyu Lee wrote:
>
> Or run 'make distclean' before switching Python versions.
>>
>
> For me, "make distclean" did not work.
>

What didn't work about it? "make distclean" followed by "./configure 
--with-python=3" and then "make" works for me.

-- 
John

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-29 Thread Kwankyu Lee

>
> Or run 'make distclean' before switching Python versions.
>

For me, "make distclean" did not work.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-29 Thread John H Palmieri


On Sunday, October 28, 2018 at 10:15:21 PM UTC-7, Kwankyu Lee wrote:
>
> How did your tentative fail ?
>>
>
> It was incremental build from sage with python2. 
>
> So I tried to build in a freshly-cloned repository, and sage with python3 
> was built successfully on my mac. 
>
> Thanks!
>

This is a good point: Python 2 and Python 3 builds cannot really coexist 
within the same Sage installation: you need separate installations for 
each. (Or run 'make distclean' before switching Python versions.)

-- 
John

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-28 Thread Kwankyu Lee

>
> How did your tentative fail ?
>

It was incremental build from sage with python2. 

So I tried to build in a freshly-cloned repository, and sage with python3 
was built successfully on my mac. 

Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-28 Thread John H Palmieri
I regularly build with Python 3 on a mac. Well, not the documentation, but 
everything else.


On Sunday, October 28, 2018 at 5:07:12 AM UTC-7, Frédéric Chapoton wrote:
>
> No idea. Did some other people manage or fail to build sage with python3 
> on mac ?
>
> How did your tentative fail ?
>
> Le dimanche 28 octobre 2018 12:03:01 UTC+1, Kwankyu Lee a écrit :
>>
>> Is the status the same also for mac? I recently tried to build sage for 
>> python 3 on mac, but only to fail...
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-28 Thread Frédéric Chapoton
No idea. Did some other people manage or fail to build sage with python3 on 
mac ?

How did your tentative fail ?

Le dimanche 28 octobre 2018 12:03:01 UTC+1, Kwankyu Lee a écrit :
>
> Is the status the same also for mac? I recently tried to build sage for 
> python 3 on mac, but only to fail...
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-28 Thread Kwankyu Lee
Is the status the same also for mac? I recently tried to build sage for 
python 3 on mac, but only to fail...

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-27 Thread Frédéric Chapoton
There is already a python3-specific make target (since 
https://trac.sagemath.org/ticket/24706) but nobody ever told me if this is 
used or not. I do not have the technical knowledge to setup my own buildbot.

The idea could be to modify this make target, for example : maybe one could 
test only the folders where all doctests are known to pass. I maintain such 
a list in the ticket #26212 (and I just had to remove the folder 
'"manifolds", where some doctests were broken in the latest release).

Le samedi 27 octobre 2018 20:15:47 UTC+2, Volker Braun a écrit :
>
> Wonderful news!
>
> I can add a python 3 build to the buildbot, but without running tests its 
> probably not going to be super useful. What would be great is if there were 
> a way to run the known-good doctests on python3, e.g. "make ptestlong" 
> could just have a blacklist of those 414 files that are known failures. Any 
> thoughts on that one?
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: python3 status report

2018-10-27 Thread Volker Braun
Wonderful news!

I can add a python 3 build to the buildbot, but without running tests its 
probably not going to be super useful. What would be great is if there were 
a way to run the known-good doctests on python3, e.g. "make ptestlong" 
could just have a blacklist of those 414 files that are known failures. Any 
thoughts on that one?


-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.