Re: [sage-devel] Python 3 and flushing output from external libraries

2019-09-09 Thread Jeroen Demeyer
On Mon, Sep 9, 2019 at 7:51 PM John H Palmieri  wrote:
> I am writing to ask for help fixing a Python 3 problem. On some platforms, 
> there are Python 3 doctest failures in
>
> - libs/eclib/interface.py (#28454)

I believe that this has been fixed upstream, it has certainly been
reported by me. Are we using the latest eclib version?

> How do we fix this? Note that patching FLINT is not ideal, since it won't 
> help users who are using the system's version of the library. FLINT's most 
> recent release was in 2015, so I don't know how much we can expect from 
> upstream regarding new releases. So maybe the ideal solution would be to get 
> Python to flush the output from these external libraries. I don't know how to 
> do this; can anyone else help?

Ideally, the upstream library should properly flush when producing
output. They should use fflush (in C) or std::endl or std::flush (in
C++). I guess that Sage could also do the flushing whenever we return
from a library API call.

> I'm also curious about what's causing the problem. Is it a bug in Python 3?

It's just a completely different implementation of I/O, independent of
the C standard I/O library (Python 2 uses the  functionality)

> Why does it only appear on some platforms?

I don't think it should be platform-dependent. Let's not focus on this too much.

PS: apologies for the quick and short email, I need to sleep ;-)

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CALZ1QMq96G7RL1cRONNKSUx4KVt%2B6Ni6V%2BzC%3DN3cxyGCB1YkCA%40mail.gmail.com.


Re: [sage-devel] The opportunity of Python 3 migration

2019-09-04 Thread Jeroen Demeyer
On Sun, Sep 1, 2019 at 9:14 PM Thierry  wrote:
> It should also take into account some deep changes in the logic.

I agree in general. But in my opinion, it's mostly independent of
porting Sage to Python 3. We could do those changes now or next year,
it doesn't really matter.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CALZ1QMoCDp0_xRq%3DBcDs%3Dz9vUfrTW_OLevEkrCkCgX%3D7MkLXhA%40mail.gmail.com.


Re: [sage-devel] Re: Wrong python in Sage shell?

2019-08-29 Thread Jeroen Demeyer
On Thu, Aug 29, 2019 at 6:02 PM Samuel Lelievre
 wrote:
> Possibly somewhat related (sorry if not): after building Sage
> for Python 3, running `sage -t` lets the doctesting framework
> decide what to set `optional` to, and apparently it uses
> "python2" rather than "python3"; is this the desired behaviour?

Yes, "python2" is installed as optional package and this is simply
running tests for that optional package. There aren't any such tests,
but the test framework doesn't a priori know that.

"python3" is not optional, therefore it's not listed in the --optional options.

I agree that it's confusing, but it's not a bug.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CALZ1QMov-jyy4K2eM32_VAkCQcn6%3DnW3YmD6gNnMJ4Fch0zsSQ%40mail.gmail.com.


Re: [sage-devel] Making Integer and Rational compatible with Python Fraction

2019-08-07 Thread Jeroen Demeyer

On 2019-08-07 15:42, E. Madison Bray wrote:

What if, at some point, we just make a Sage release that breaks
backwards compatibility?


We could, but I don't think that PEP 3141 is worth breaking backwards 
compatibility for.


--
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5D4AD707.8050901%40UGent.be.


Re: [sage-devel] Making Integer and Rational compatible with Python Fraction

2019-08-07 Thread Jeroen Demeyer

On 2019-08-06 17:30, TB wrote:

sage: plot(lambda x: x.imag + 2) # Works
sage: plot(lambda x: x.imag() + 2, (x, -3, 3)) # Empty plot


That's "only" an annoyance: you need to use x.imag or x.imag() depending 
on what x is. That's not a problem of interoperability. And if you 
really want generic code, you can always write complex(x).imag (at some 
performance cost). So it's less a problem than Fraction.



To add another data point about triggering unexpected computations,
numpy.array does have .real and .imag properties.


As far as I can see, it doesn't actually use .real or .imag on the 
objects that it wraps, so again there is no problem here.


--
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5D4A9F40.9080408%40UGent.be.


Re: [sage-devel] Making Integer and Rational compatible with Python Fraction

2019-08-04 Thread Jeroen Demeyer

On 2019-07-27 18:49, 'Mark Bell' via sage-devel wrote:

During Sage Days 100, I experienced an issue with Sage's Integers and
Rational not being compatible with Python's built in Fraction class.
This made me unable to run my Python code within Sage


It would be good to explain better exactly what kind of code you were 
running and why this is an issue for you.


I mentioned this issue to the Python devs and Guido van Rossum basically 
rejected the problem. He literally said "what real-world problem does 
that solve?" when talking about letting Python fractions interoperate 
with Sage fractions, see 
https://discuss.python.org/t/pep-3141-ratio-instead-of-numerator-denominator/2037/27?u=jdemeyer


If this would be a simple bugfix, I would dismiss Guido's comment as 
irrelevant. But in this case, there is no easy fix. Every proposed fix 
is somewhat backwards incompatible and can potentially break stuff. So 
we should only apply a fix if it will actually solve a real problem that 
people are encountering.


Jeroen.

--
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5D474869.2040205%40UGent.be.


Re: [sage-devel] Apple deprecates Python

2019-06-07 Thread Jeroen Demeyer

On 2019-06-07 16:38, E. Madison Bray wrote:

While I agree it's part of an annoying trend, this is one change I
welcome:  The Python interpreter shipped in OSX has always *always*
been broken and unusable


What matters for Sage is: was it sufficiently functional to bootstrap a 
build 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5CFA7830.206%40UGent.be.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] A bug due to copying a cython object.

2019-05-17 Thread Jeroen Demeyer

On 2019-05-17 10:02, Kwankyu Lee wrote:

What is the proper way to copy a cython object with all its attributes?


Write a __copy__ method doing the copy manually. Unless I'm missing a 
Cython feature that helps with this.


--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5CDE86DA.4090107%40UGent.be.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Dependence of libgd on iconv

2019-05-13 Thread Jeroen Demeyer

On 2019-05-13 16:04, Dima Pasechnik wrote:

as Debian does not have iconv in libgd, I assume it's safe to remove
the dependence.


If that's possible, sure.

--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5CD97BAB.2050906%40UGent.be.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Dependence of libgd on iconv

2019-05-13 Thread Jeroen Demeyer

On 2019-05-13 15:51, Michael Orlitzky wrote:

It's possible to build libgd without iconv as
far as I can tell (check CMakeLists.txt)


A dependency is not the same as a requirement. If it's used by the 
package (optional or not), it's almost certainly a dependency.


--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5CD976F5.30203%40UGent.be.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] --optional=sage,optional missing build and dochtml tags

2019-05-09 Thread Jeroen Demeyer

On 2019-05-09 11:42, Sébastien Labbé wrote:

I was expecting the tag list to be the same. The missing ones are build
and dochtml.


build and dochtml have to be specified explicitly. This is working as 
intended.


--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5CD41E0A.5040602%40UGent.be.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Installation of Sage 8.7 crashes in mpc-1.1.0

2019-05-09 Thread Jeroen Demeyer
I think that your environment is too messed up. Why do you have all 
those environment variables like $CPATH and $LD_LIBRARY_PATH set? That's 
probably what's causing the breakage. Can you try to build in a clean 
environment, without setting any such environment variables?


--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5CD3EF0D.709%40UGent.be.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Installation of Sage 8.7 crashes in mpc-1.1.0

2019-05-09 Thread Jeroen Demeyer

On 2019-05-09 10:55, Vincent Delecroix wrote:

Dear Pepijn,

Your config.log mentions that you ran

   $ ./configure --prefix=/home/pwissing/sage-8.7/local
--libdir=/home/pwissing/sage-8.7/local/lib
--with-gmp=/home/pwissing/sage-8.7/local
--with-mpfr=/home/pwissing/sage-8.7/local


That's the config.log of mpc, which looks OK.

--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5CD3ED67.5070901%40UGent.be.
For more options, visit https://groups.google.com/d/optout.


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

2019-04-15 Thread Jeroen Demeyer

On 2019-04-15 13:56, Frédéric Chapoton wrote:

* An expert is required on src/sage/misc/classcall_metaclass.pyx


Is there a ticket for that?

--
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: Compilation error: 'sage/ext/interrupt.pxi' not found

2019-04-14 Thread Jeroen Demeyer

On 2019-04-14 22:42, Mark wrote:

include "cysignals/signals.pxi"


That's no longer supported. The proper way to use cysignals is

from cysignals.signals cimport sig_check   # or whatever you need from 
cysignals


--
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] ImportError: cannot import name SAGE_LOGS

2019-04-10 Thread Jeroen Demeyer

How did you notice that, i.e. why do you need SAGE_LOGS?

I'm -1 on restoring SAGE_LOGS, since it's one of those things which 
confuses build-time and run-time. There should be no need to access the 
Sage build logs at run-time. On binary installations, there might not 
even be a logs directory.


--
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] matrix equality and assumptions

2019-04-09 Thread Jeroen Demeyer

On 2019-04-09 16:29, Bill Page wrote:

Is this a known problem?


Now it is: https://trac.sagemath.org/ticket/27629

--
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] SystemError: calling remove_from_pari_stack() inside sig_on()

2019-03-30 Thread Jeroen Demeyer

See https://trac.sagemath.org/ticket/27477

--
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] Regression in Jupyter notebook (Sage 8.7.beta7)

2019-03-11 Thread Jeroen Demeyer

On 2019-03-11 16:42, Eric Gourgoulhon wrote:

Shall I open a ticket?


Yes and please include the traceback.

--
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] Error in installing Sage8.6 on linux: syntax error

2019-03-11 Thread Jeroen Demeyer

On 2019-03-11 10:42, E. Madison Bray wrote:

The spkg-install script (e.g. under
local/var/tmp/sage/build/patch-2.7.5/spkg-install) should start with a
shebang line like

#!/usr/bin/env bash

So that should already use the correct shell unless your `bash` is
actually something that is not bash-compatible.


Could it be a very old version of bash? What's the output of

bash --version

--
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] Unhandled SIGSEGV: A segmentation fault occurred.

2019-03-10 Thread Jeroen Demeyer

This is probably https://trac.sagemath.org/ticket/27374

--
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: How to deal with MACOSX_DEPLOYMENT_TARGET in Python packages

2019-03-08 Thread Jeroen Demeyer

On 2019-03-08 19:18, Volker Braun wrote:

* If  is optional then add a #warning that it is recommended


Yes, it's optional but the hard part is figuring out whether it's 
supported or not.


--
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] How to deal with MACOSX_DEPLOYMENT_TARGET in Python packages

2019-03-08 Thread Jeroen Demeyer

On 2019-03-08 10:42, Jeroen Demeyer wrote:

(*) For some reason, the analogous C header  works
regardless of MACOSX_DEPLOYMENT_TARGET. Unfortunately, this header is
not compatible with C++, so I really need .


I just realized that I tried this only with g++ on Linux. With clang++ 
on OS X,  does work. So this avoids needing to mess with 
MACOSX_DEPLOYMENT_TARGET.


I'll also try g++ on OS X (do we still support that actually?).

--
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] How to deal with MACOSX_DEPLOYMENT_TARGET in Python packages

2019-03-08 Thread Jeroen Demeyer

Hello,

While working on cysignals, I encounted an issue with 
$MACOSX_DEPLOYMENT_TARGET. I have a fix, but I don't know if it's good. 
It's not specific to Sage, but it will affect Sage since cysignals is a 
Sage package.


For cysignals, I'd really like to use MACOSX_DEPLOYMENT_TARGET >= 10.9 
since that enables the C++  header (*) which is needed to fix 
Sage ticket #24288. The tricky part is that not only cysignals itself 
should be compiled with MACOSX_DEPLOYMENT_TARGET >= 10.9 but also every 
package using cysignals.


I have a solution which adds the command-line flag 
-mmacosx-version-min=10.9 when compiling cysignals:

https://github.com/sagemath/cysignals/commit/17062a64bf5672375982cf295ed93b346b55d680
Thanks to Cython magic, this flag will be passed on to every package 
that cimports cysignals.


This solution seems to work and passes CI tests. These tests are done 
using Conda, which uses a Python compiled with 
MACOSX_DEPLOYMENT_TARGET=10.6, which is then used for every Python 
package (analogous to CFLAGS, distutils uses the value for 
MACOSX_DEPLOYMENT_TARGET which was used to compile Python).


So my question is basically: what could possibly go wrong? One thing 
which worries me is that the command-line flag -mmacosx-version-min=10.9 
overrides the environment variable MACOSX_DEPLOYMENT_TARGET. So if 
somebody really wanted a higher value for MACOSX_DEPLOYMENT_TARGET than 
10.9, it wouldn't work. But I see no solution for this.



Jeroen.


(*) For some reason, the analogous C header  works 
regardless of MACOSX_DEPLOYMENT_TARGET. Unfortunately, this header is 
not compatible with C++, so I really need .


--
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] ValueError: filedescriptor out of range in select()

2019-03-03 Thread Jeroen Demeyer

On 2019-03-03 12:46, Simon Brandhorst wrote:

Shouldn't the gp session be closed afterwards? After all it is not
used/referenced anymore?
So that the file descriptor gets freed again?
If not what is the recommended way to start computations in gp


The recommended way is not to use the GP pexpect interface at all but 
use the PARI library interface accessed by the "pari" object.


What is it that you're *actually* trying to do?

--
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] ValueError: filedescriptor out of range in select()

2019-03-03 Thread Jeroen Demeyer

On 2019-03-03 12:46, Simon Brandhorst wrote:

Shouldn't the gp session be closed afterwards? After all it is not
used/referenced anymore?


But maybe it's not closed *immediately*. It would be interesting to do 
the same experiment with a time.sleep(0.1) or a gc.collect() in the loop.


--
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] ValueError: filedescriptor out of range in select()

2019-03-03 Thread Jeroen Demeyer

On 2019-03-03 11:48, Vincent Delecroix wrote:

Is this supposed to crash Sage?


OK, I missed that part. The fact that you run out of file descriptors is 
not a bug, but the fact that it crashes Sage is a bug.


--
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] ValueError: filedescriptor out of range in select()

2019-03-03 Thread Jeroen Demeyer

On 2019-03-03 11:43, Vincent Delecroix wrote:

Could you open a trac ticket? This is definitely a bug
(most probably in `interfaces/expect.py`).


I wouldn't call it a bug. You're opening 1 independent GP sessions, 
which each need a few file descriptors. It's normal that you run out of 
file descriptors after a while.


--
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] What to do with the sys.path security patch?

2019-02-28 Thread Jeroen Demeyer
Since many years, we have patched the Python in Sage with a patch to 
mitigate some security issues related to sys.path.


The security issue is the following: if you run a Python script from a 
world-writable directory, say a script like /tmp/foo.py this is very 
insecure since Python will add /tmp as first entry in sys.path. So if 
the script starts with from __future__ import absolute_import (say) and 
some evil person creates /tmp/__future__.py then you'll run that code.


We added a patch for this in Sage in 
https://trac.sagemath.org/ticket/13579 and also reported this upstream 
to CPython at https://bugs.python.org/issue16202


As expected, upstream was not impressed by our patch because it would 
break backwards compatibility. But we never really tried to discuss it 
seriously with upstream. If anybody wants to go for that, please do. I 
won't do this, I've already picked different battles with CPython.


As a side remark, let me mention that Perl also had this issue but they 
fixed it, the current directory is no longer in the include path: 
https://metacpan.org/pod/release/XSAWYERX/perl-5.26.0/pod/perldelta.pod#Removal-of-the-current-directory-%28%22.%22%29-from-@INC


I noticed at Trac #27001 that we don't have this patch in Python 3. The 
question is: should we? It makes little sense to have it for Python 2 
and not for Python 3. So either we drop it from Python 2 or we port it 
to Python 3. The ideal situation would be that it gets accepted 
upstream, but for the sake of argument, let's assume that it doesn't get 
accepted. What should we do then?



Jeroen.

--
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] .an_element() != 0?

2019-02-27 Thread Jeroen Demeyer

On 2019-02-27 15:25, Daniel Krenn wrote:

Can I savely assume that S.an_element() of something S (within SageMath)
returns an element different from S.zero() if possible (meaning if there
are nonzero elements in S)?


Personally, I wouldn't assume anything.

--
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: During a libgap evaluation: SystemError: calling remove_from_pari_stack() inside sig_on()

2019-02-27 Thread Jeroen Demeyer

On 2019-02-27 10:31, Simon Brandhorst wrote:

Okay. But I cannot reproduce the error consistently. Post anyways?


Yes. The traceback is clear enough.

--
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] flushing stdout during doctests

2019-02-27 Thread Jeroen Demeyer

On 2019-02-26 17:52, John Cremona wrote:

I am testing a new version of the standard spkg eclib, see
https://trac.sagemath.org/ticket/27360.  I am getting doctesting
failures caused *only* because of changes in output buffering resulting
in the tail end of the output of one command appearing at the beginning
of the output of the next.


Since this is I/O related, it might make a difference if you redirect 
stdout and/or stderr to a file. For example, doing


./sage -t somefile.py 2>err.log

instead of

./sage -t somefile.py

Do you happen to have the *exact* command line that you used to run tests?

--
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: flushing stdout during doctests

2019-02-27 Thread Jeroen Demeyer

On 2019-02-27 09:58, John Cremona wrote:

The problem went away after I did "make distclean; make build".

Originally what I did after checking out a new branch was
(1) put the new tarball into upstream/
(2) edit the file build/pkgs/eclib/package-version.txt
(3) issue the magic command which updates the checksum
(4) ./sage -i eclib [causes the new eclib to be built OK]
(5) make build  [rebuilds some cython files which depend on eclib]
(6) run tests

Surely that should work, so whatever is deciding what needs doing in
step (5) is possibly not getting it quite right.


First of all, yes that should work. Technically, you don't even need 
step (4) since the build system will detect that the version changed of 
eclib.


However, I would be quite surprised if build issues would affect the 
buffering of the output.


--
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: flushing stdout during doctests

2019-02-27 Thread Jeroen Demeyer

On 2019-02-27 08:35, Frédéric Chapoton wrote:

This problem is also seen in the python3 patchbot report, as can be
found here :

https://patchbot.sagemath.org/log/0/Ubuntu/16.04/x86_64/4.4.0-141-generic/atlas/2019-02-24%2011:31:45?short


In Python 3, the situation is different because Python implements its 
own buffering for I/O. In contrast, Python 2 relies on the I/O 
implementation of the C library.


--
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] flushing stdout during doctests

2019-02-27 Thread Jeroen Demeyer

On 2019-02-26 17:52, John Cremona wrote:

I am testing a new version of the standard spkg eclib, see
https://trac.sagemath.org/ticket/27360.  I am getting doctesting
failures caused *only* because of changes in output buffering resulting
in the tail end of the output of one command appearing at the beginning
of the output of the next.


It would be helpful if you could post the branch that you tried on Trac 
such that others can reproduce this.


--
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] During a libgap evaluation: SystemError: calling remove_from_pari_stack() inside sig_on()

2019-02-27 Thread Jeroen Demeyer

Please create a Trac ticket for this.

--
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] `ModuleElement` is forced though `Element` should be enough by the category framework

2019-02-26 Thread Jeroen Demeyer

On 2019-02-26 23:44, Kwankyu Lee wrote:

It could be possible to hammer the coercion model to behave more nicely
with the category framework, at least with respect to the issue that I
raised.


By the way, why is it an issue in the first place? Is there any reason 
why you don't want to inherit from ModuleElement?


--
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] `ModuleElement` is forced though `Element` should be enough by the category framework

2019-02-26 Thread Jeroen Demeyer

On 2019-02-26 21:53, Jeroen Demeyer wrote:

I think that you are 100% right but that (as with many things) it is the
way it is for historical reasons and it hasn't bothered anyone
sufficiently much to change it.


Part of the reason why I haven't personally touched _lmul_/_rmul_ (while 
I did change many other things in the coercion model) is that I never 
really understood how _lmul_/_rmul_ are supposed to behave precisely. 
And there are some strange things, especially the "return None if not 
implemented" part. So the only way to know whether _lmul_ is implemented 
is to actually call it and look at the result, which is a bit weird.


--
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] `ModuleElement` is forced though `Element` should be enough by the category framework

2019-02-26 Thread Jeroen Demeyer

On 2019-02-26 14:44, Kwankyu Lee wrote:

My question is: why should I use `ModuleElement` instead of just `Element`?

If I use `Element`, the scalar multiplication is not detected by the
coercion system. So I am forced to use `ModuleElement`.

Since my parent is in the category of modules over QQ, then I think
elements of the parent should be automatically treated as module
elements, and using `Element` should just be ok.

What do you think?


I think that you are 100% right but that (as with many things) it is the 
way it is for historical reasons and it hasn't bothered anyone 
sufficiently much to change it.


--
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] strange error message when raising an Error in cython()

2019-02-13 Thread Jeroen Demeyer
You can ignore that "An unexpected error occurred while tokenizing 
input" message. It's IPython having trouble with the traceback, it has 
nothing to do with your Cython code.


--
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] strange error message when raising an Error in cython()

2019-02-13 Thread Jeroen Demeyer

On 2019-02-13 11:02, jonathan.kliem via sage-devel wrote:

I'm getting a strange error when raising an error in cython(), example:


I don't really understand your problem. You ask Cython to raise an 
exception and the exception is raised. It seems like Cython is doing 
exactly what it's supposed to do.


--
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] Poll: set online=True as the default for threejs viewer

2019-02-12 Thread Jeroen Demeyer

Why neither nbviewer nor binder are able to find
(or serve or ?) these javascript files?


The problem is these lines in src/sage/repl/rich_output/backend_ipython.py




These paths should be changed to take into account the base URL of the 
server (don't ask me *how* to do this precisely).


--
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] AlarmInterrupt causes Sage to crash hard

2019-02-07 Thread Jeroen Demeyer

On 2019-02-06 20:52, Nils Bruin wrote:

This is the same as in python:

 >>> import signal
 >>> signal.alarm(1)
0
 >>> Alarm clock

It looks like this is just the default signal handler for python (the
one that just prints the signal name and exits)


For the record, that message "Alarm clock" is printed by the shell (bash 
or whatever) whenever a process that it runs (python in this case) is 
killed by a signal. It's analogous to the more familiar message 
"Segmentation Fault".


--
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] AlarmInterrupt causes Sage to crash hard

2019-02-07 Thread Jeroen Demeyer

On 2019-02-07 16:45, E. Madison Bray wrote:

Apparently Jeroen argued about this with the IPython developers some
time ago: https://github.com/ipython/ipython/pull/9867


Indeed. Your post did seem familiar to me, but I actually forgot about 
that discussion.


--
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: Trac #22029: Python 3 style comparisons

2019-02-05 Thread Jeroen Demeyer
> Out of curiosity: How many existing tests fail for that reason?

We had to fix a *huge* number of issues because of comparing apples and 
oranges. It was one of the biggest porting efforts towards Python 3, that's why 
I consider it a big deal. Look at the long list of dependencies on Trac #22029 
if you want more details (that list is probably incomplete, not everybody 
working on comparisons added tickets to that list).

-- 
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] Trac #22029: Python 3 style comparisons

2019-02-05 Thread Jeroen Demeyer
Trac ticket #22029 changes the coercion model such that comparisons of 
Element instances now behave like in Python 3. This means that 
comparisons of elements with uncomparable types/parents will raise an 
error instead of returning some random answer. I believe that this is an 
important step in making Sage ready for Python 3.


We could have chosen to use Python 2 style comparisons under Python 2 
and Python 3 style comparisons under Python 3, but that would inevitably 
lead to regressions on Python 3. It's best if code behaves as much as 
possible the same under Python 2 and Python 3.


The change in the code is quite small, but the implications are big, so 
that's why I wanted to mention it here on sage-devel.



Jeroen.

--
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] Patchbot zancara: Disk quota exceeded

2019-01-30 Thread Jeroen Demeyer

There are problems with patchbot zancara:

OSError: [Errno 122] Disk quota exceeded: 
'/home/mi/kliem/.sage/temp/zancara/16740'


Full log: 
https://patchbot.sagemath.org/log/27152/debian/9.6/x86_64/4.9.0-8-amd64/zancara/2019-01-29%2021:56:24


--
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] documentation of SageMath (Python) packages

2019-01-29 Thread Jeroen Demeyer

On 2019-01-29 09:32, Vincent Delecroix wrote:

1) When a user performs `sage -pip install X`, should the documentation
 be compiled and installed?


I'm pretty sure that the answer is "no" for most Python packages. I see 
two reasons for this:


- there is no easy and obvious way to integrate this in setup.py
- it adds extra dependencies (on Sphinx for example) unrelated to the 
actual functionality of the package


--
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: problem with 8.7.beta1

2019-01-27 Thread Jeroen Demeyer

On 2019-01-28 06:18, Travis Scrimshaw wrote:

See possibly https://trac.sagemath.org/ticket/27114.


No, it's https://trac.sagemath.org/ticket/27109

--
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.


Re: [sage-devel] Re: Sage python3 doctests

2019-01-27 Thread Jeroen Demeyer

On 2019-01-27 19:23, John Cremona wrote:



On Sun, 27 Jan 2019 at 17:10, Frédéric Chapoton mailto:fchapot...@gmail.com>> wrote:

ok, then --optional=sage,py3 is ok (all doctests pass) whereas

./sage -t --optional=sage,py2 src/sage/modular/cusps_nf.py


Is there a particular reason for this file being used as an example
here?


I wasn't the original poster, but I think not. It's just a random example.

--
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] python3 status report

2019-01-27 Thread Jeroen Demeyer

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

Some good python3 changes are blocked by the long awaited ticket
https://trac.sagemath.org/ticket/23572


What do you mean with that? It's a ticket adding doctests for a book, 
how is that related to Python 3 porting?


--
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] Native Windows version

2019-01-22 Thread Jeroen Demeyer

On 2019-01-23 00:11, William Stein wrote:

I helped support somebody using the Cygwin
version of Sage on Windows at the Sage booth at the Joint Math
Meetings last week, and it typically took about 1 minute to start up
Sage, which was scary.


But mathematical computations (which do not involve syscalls) shouldn't 
be slower, right?


--
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] Build error

2019-01-20 Thread Jeroen Demeyer
The error message seems to imply that you tried to install (part of) 
Sage as a different user. Maybe the safest option is to delete your 
installation completely:


rm -rf /home/devikasugathan/sage

and then try again.

--
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] Upcoming Debian freeze

2019-01-13 Thread Jeroen Demeyer

On 2019-01-13 15:34, Dima Pasechnik wrote:

As we see, Debian is already picking up this update.


If Debian *already* has it anyway, what's the point of upgrading it in 
SageMath? Especially if it doesn't require any changes to the Sage library.


--
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] Purpose of XML_RESULTS

2019-01-11 Thread Jeroen Demeyer

Does anybody have any idea what is the purpose of

compile_result_dir = os.environ['XML_RESULTS']

in src/setup.py?

It was introduced in https://trac.sagemath.org/ticket/9828 in a ticket 
about upgrading Cython but without explanation...



Jeroen.

--
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] Import issue for Sage when using the system's Python (e.g. Debian)

2019-01-10 Thread Jeroen Demeyer

On 2019-01-10 21:51, 'Julien Puydt' via sage-devel wrote:

Didn't François mention changing SAGE_ROOT wasn't needed?


He said

SAGE_ROOT should only be needed for the packaging system
and possibly the doctests. I regard any needs for SAGE_ROOT at runtime
a bug.


In other words: it is still needed, but that's a bug. And I agree with that.

--
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] Import issue for Sage when using the system's Python (e.g. Debian)

2019-01-10 Thread Jeroen Demeyer

On 2019-01-10 20:46, 'Julien Puydt' via sage-devel wrote:



Le 10/01/2019 à 20:07, François Bissey a écrit :

I have recently made the following change in sage-on-gentoo’s env.py
_add_variable_or_fallback('SAGE_LOCAL',  sysconfig.get_config_var("prefix”))

which means SAGE_LOCAL is now pulled from the system rather than
a seeded value (as it was before).



Perhaps upstream would accept such a trivial change?


If you make a ticket for it, sure. But it won't help with SAGE_ROOT.

By the way, why sysconfig.get_config_var("prefix”) instead of sys.prefix?

--
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] libpari defaults

2019-01-04 Thread Jeroen Demeyer

On 2019-01-04 10:22, John Cremona wrote:

Some of the runs I have been doing use a large amount of RAM and some
fail


"fail" in which sense? I assume you mean a PariError saying that the 
stack overflowed but I can only guess...



One is suppose to be able to increase this using the following syntax
sage: pari.default('parisizemax', 120)
but that raises a run-time error


That error is actually a PARI "feature". It's one of the many curious 
implementation details of the PARI stack. The idea is that you shouldn't 
change the stack size during a computation. So the error forces the 
running computation to abort.


In GP this error is silenced but you can still see its effect:

gp> a=1; default(parisizemax, 10); a=2
  ***   Warning: new maximum stack size = 101536 (953.676 Mbytes).
gp> a
%2 = 1

Note that the "a=2" is not executed!

Now to solutions: I would recommend using pari.allocatemem(sizemax=N) to 
change the stack size. That is handled a lot better by cypari2.


--
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] hardcoding platform-dependent constants in cython

2018-12-22 Thread Jeroen Demeyer

On 2018-12-22 12:32, Volker Braun wrote:

Just avoid premature optimization; Nobody cares if the one-time dlopen()
takes a nanosecond longer or not...


I agree here... especially for a one-time function call.

And even if you do plan to open the GAP library thousands of times per 
second, you could just compute the filename once and store it.


--
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: Delaying 8.5 or fast-tracking 8.6?

2018-12-20 Thread Jeroen Demeyer

On 2018-12-20 00:12, Dima Pasechnik wrote:

How about trying to get this into 8.5? (or perhaps 8.5.1?)


Rushing GAP 4.10 in Sage 8.5 doesn't sound like a good idea to me. 
Ideally, it should be sufficiently tested in betas.


--
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] Delaying 8.5 or fast-tracking 8.6?

2018-12-18 Thread Jeroen Demeyer

I suggest the following:

If Sage 8.5 is ready to be released right now, I see no reason to delay 
that. Then follow up soon with Sage 8.6.


On the other hand, if Sage 8.5 is going to dragged for other reasons 
anyway, then we might as well try to get GAP-4.10 in this release.


--
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] bug in trivial case of number field isomorphism due to wrong pari/sage conversion

2018-12-13 Thread Jeroen Demeyer

On 2018-12-13 13:11, John Cremona wrote:

The problem is that t is a pari gen and Sage tries too hard to compare
that with python 0.


This has nothing to do with Sage or Python, the "problem" is that PARI 
considers [0] and 0 equal.


Personally, I think that Sage (really the package cypari2 which 
implements the PARI <-> Python interface) should follow the PARI 
semantics, even if they are dubious.


--
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: Weak references in the coercion model

2018-12-06 Thread Jeroen Demeyer

On 2018-12-06 14:07, Simon King wrote:

And if I understand correctly what you said in another post, it is
*dynamically* determined which reference is weak and which reference
is strong. When is it determined? During cyclic gc?


Yes, during GC: that's the only time where it matters. More precisely, 
it is determined during every tp_traverse loop.


With a "tp_traverse loop", I mean a loop of the form

for obj in set_of_objects:
type(obj)->tp_traverse(obj, visit, arg)

where "visit" is constant during the loop (arg does not matter).


Does that mean that
you change the innards of Python's cyclic gc?


No, nothing needs to be patched. It's just a clever way of implementing 
tp_traverse(). I am making assumptions on how GC works internally: in 
particular, I am assuming that it's OK to dynamically change the 
reference graph as long as it's consistent during every individual 
tp_traverse loop.



Hopefully it is explained in #26790; I'll have a look...


That's #26811 but that's work in progress.

--
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: Weak references in the coercion model

2018-12-06 Thread Jeroen Demeyer

On 2018-12-06 08:35, Simon King wrote:

Then what will be your reference graph? Or phrased differently:
Where/how will you store coercion maps?


The basic idea is the following (I have not worked out all the details yet):

* The coercion model only stores weak references to anything (domains, 
codomains, actions, maps).


* Coercion maps store strong references to the domain and codomain.

* The domain and codomain store MultiWeakref references to the map, 
where one of those references is weak and one is strong.


* Analogously for actions, with acting set/underlying set instead of 
domain/codomain.


It might also make sense to consider pairs of coercion maps specially, 
in cases where arithmetic with A and B gives a totally new parent C and 
we have maps A -> C and B -> C. I haven't thought about this yet.


--
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: Weak references in the coercion model

2018-12-05 Thread Jeroen Demeyer

On 2018-12-06 01:36, Nils Bruin wrote:

Because the coercion map from A to
B is also stored on A, a strong reference to B exists.


No. The map will be referenced both from A and from B with one of those 
references weak and one of those references strong, without specifying a 
priori which one is strong and which one is weak.


That's the point of MultiWeakref: as long as we're not garbage 
collecting, it doesn't matter which reference is strong and which one is 
weak: only the numbers matter, since that determines the refcount. When 
garbage collecting, the tp_traverse algorithm of MultiWeakref decides 
dynamically which reference to consider weak and which strong in a way 
to maximize the amount of garbage that can be collected.


So let's assume that it's weakly referenced from A and strongly 
referenced from B. (The map will also be referenced from the coercion 
model, but always weakly; this won't change). Then we have a strong 
reference cycle from B to the map and back, which does not prevent 
garbage collection. So, if nothing else holds a reference to B, then 
both B and the map can be deleted.


Anyway, that's the idea. I haven't worked out all the details yet...

--
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: Weak references in the coercion model

2018-12-05 Thread Jeroen Demeyer

On 2018-12-05 18:33, Nils Bruin wrote:

I think you were thinking of limiting the life span of c via referencing
it via a "MultiWeakRef" from both A and C. However, with the scenario
above, A has its life span already bounded below by C anyway, so the
"MultiWeakRef" never gets to work its magic.


With my idea, the domain and codomain would be treated exactly the same: 
my plan is to reference the map from both the domain and codomain in a 
symmetric way. In that way, the lifetime of A wouldn't depend on C the 
same way that the lifetime of B or C doesn't depend on A.


--
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: Weak references in the coercion model

2018-12-05 Thread Jeroen Demeyer

On 2018-12-05 14:54, Simon King wrote:

  o Mild problem: If there is an external strong reference to, say,
f, then it is possible that Q becomes garbage collected anyway,
and we would end up with an invalid map.


That is one of the things that I would like to fix: maps and actions 
should have strong references to their (co)domains. On the other hand, 
the coercions and actions should be sufficiently weakly referenced to 
prevent memory leaks but not too weakly referenced to keep them alive 
when needed. This will rely on #26811.


--
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: Weak references in the coercion model

2018-12-05 Thread Jeroen Demeyer

On 2018-12-05 16:50, Volker Braun wrote:

Right, automatic clearing of circular references is only in Python 3...


I would phrase that as: properly dealing with __del__ is only in Python 3.

Luckily, __del__ is used only very rarely in 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: Weak references in the coercion model

2018-12-04 Thread Jeroen Demeyer

On 2018-12-04 18:06, Nils Bruin wrote:

Tripledict does that to some extent (with its keys): if one of the key
parts gets deallocated, the weakref callback removes the strong
reference to the value.


Yes, but then we potentially end up again in the situation where things 
are *only* weakly referenced. Currently, you still need a strong 
reference in a fixed place and ideally we shouldn't.


I have a very preliminary idea at #26811 to "fix" this.

--
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: Weak references in the coercion model

2018-12-04 Thread Jeroen Demeyer

On 2018-12-03 17:21, Nils Bruin wrote:

In order to
make that possible, the coercion map (referenced strongly on the
codomain -- it needs to be strongly referenced somewhere to keep it
alive) must not hold a strong ref to the domain.


I wonder if there is a way to somehow reference an object from a pair of 
objects: have A and B reference C in such a way that, if either A or B 
get deallocated, also C gets deallocated.


--
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] Weak references in the coercion model

2018-12-03 Thread Jeroen Demeyer
I am studying the coercion model in detail, looking for optimization 
opportunities. One source of slow-down is the use of weak references.


Over time, more and more places in Sage use weak references. But I'd 
like to look at the big picture and see where weak references should be 
used and where not.


Take coercion maps for example. The coercion model stores a weak 
reference to the coercion maps and the maps also store a weak reference 
to the domain (but not the codomain).


It's not clear to me why this double weak reference is needed, but maybe 
I'm missing something. It seems more logical to use strong references in 
the coercion map but then store a weak reference to the map.


I'd like to "fix" this with action maps first, which are conceptually 
simpler.



Jeroen.

--
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] Faster coercions!

2018-12-01 Thread Jeroen Demeyer
This week I worked on the coercion model to make it faster. It turns out 
that there was some margin for micro-optimizations. There are two 
tickets in need of review: #26776 and #26790.


If you need to be convinced, run
sage: a = RR(25); b = ZZ(2)
sage: timeit('a+b', repeat=100, number=10)

*Before*:
10 loops, best of 100: 756 ns per loop

*After*:
10 loops, best of 100: 636 ns per loop

This is a very nice gain for every single coercion(!) in 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: doctest quality and patchbots

2018-11-29 Thread Jeroen Demeyer

On 2018-11-29 10:38, E. Madison Bray wrote:

But I sometimes get failures in tests depending on which order the
*files* were run in.  That's what I'm talking about.


But that's really unusual (and unrelated to --randorder). Do you have 
*any* concrete example of such a failure?


--
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: doctest quality and patchbots

2018-11-28 Thread Jeroen Demeyer

On 2018-11-28 09:17, E. Madison Bray wrote:

+1 There are several tests which, when run in an unusual order, result
in random failures.  This is obviously a failure of test isolation if
nothing else, and such cases *should* be rooted out and fixed.


It's not a failure of "test isolation" if nobody ever claimed that tests 
*are* isolated. The only way to really have test isolation is to run a 
separate process for each test. We already do that for separate files, 
but not for individual tests.


--
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] doctest quality and patchbots

2018-11-23 Thread Jeroen Demeyer

On 2018-11-22 18:45, 'Martin R' via sage-devel wrote:

1) would it be easy and desirable to make the patchbots run tests in
random order?


Easy: yes
Desirable: no, it would create a lot of doctest failures


2) concerning https://trac.sagemath.org/ticket/26586, is it desirable to
define comparison for `CartesianProduct`?


Absolutely. If you do that, you should open a new ticket.


3) at first I thought that it is good practise to sort output whose
order is essentially random


I agree.


5) would it be a good idea to have `__repr__` use a "sorted output" for
objects that are sets from a mathematical perspective?


I would say yes, but this wouldn't really solve the problem since the 
function returns a list, which is not sorted.


It's important to note that such sorting should be restricted to 
__repr__. For example, the method Poset.upper_covers() should not sort, 
for 2 reasons:


(a) not all objects can be sorted, this is in particular a problem in 
Python 3 (see graphs for a bad example)

(b) performance: most of the time, you don't care about ordering

--
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] doctest quality and patchbots

2018-11-23 Thread Jeroen Demeyer

On 2018-11-22 18:45, 'Martin R' via sage-devel wrote:

  * The tests of individual functions within a single file are ALL
executed in the same environment.


Same "environment" in the sense of same Python process (there is one 
process for each file to be tested). But global variables are reset for 
each doctest block.



  * The tests of the individual functions within a single file are
executed in random order.


This is false. Tests are run in order.

--
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] Jupyterhub kernel and SAGE_ROOT

2018-11-20 Thread Jeroen Demeyer

On 2018-11-06 19:07, François Bissey wrote:

SAGE_LOCAL is another story,
however we probably could figure it out from the python configuration rather
than a seed.


Isn't SAGE_LOCAL == sys.prefix

--
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: openssl licensing

2018-11-09 Thread Jeroen Demeyer

The license has not been updated yet in their git repo:

https://github.com/openssl/openssl/blob/master/LICENSE

I also downloaded the latest release (1.1.1) and it still contains the 
bad BSD license.


So it seems that the license change is not official yet...

--
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: refresh the banner

2018-11-06 Thread Jeroen Demeyer

On 2018-10-31 22:23, Volker Braun wrote:

With ipython/jupyter you can't run the notebook in the current Python
session, but you can just launch a completely new process.


Are you sure? Can't you just import the Jupyter application as a Python 
package and run it that way? I have not tried it though...


--
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: git fetch fails

2018-10-22 Thread Jeroen Demeyer

On 2018-10-21 11:57, Volker Braun wrote:

Try "git remote prune origin" or "git remote update origin --prune"


Thanks. The first one worked.

--
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] git fetch fails

2018-10-21 Thread Jeroen Demeyer

Any ideas?

error: cannot lock ref 
'refs/remotes/trac/u/embray/python3/sage-rings-polynomial-polydict/misc': 'refs/remotes/trac/u/embray/python3/sage-rings-polynomial-polydict' 
exists; cannot create 
'refs/remotes/trac/u/embray/python3/sage-rings-polynomial-polydict/misc'

From trac.sagemath.org:sage
 ! [new branch] 
u/embray/python3/sage-rings-polynomial-polydict/misc -> 
trac/u/embray/python3/sage-rings-polynomial-polydict/misc  (unable to 
update local ref)


--
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] Smith Normal Form over ZZ seriously slow

2018-10-11 Thread Jeroen Demeyer
Part of the problem (but certainly not all of it) is 
https://trac.sagemath.org/ticket/26463


Sage was executing "from sage.rings.integer import Integer" 100 times.

--
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: Smith Normal Form over ZZ seriously slow

2018-10-11 Thread Jeroen Demeyer
Actually, I think that it's the .sage() call which is already taking a 
long time:


sage: M = MatrixSpace(ZZ,1000,5).random_element()
sage: %time res = M.__pari__().matsnf(1)
CPU times: user 68 ms, sys: 0 ns, total: 68 ms
Wall time: 68.7 ms
sage: %time v = res.sage()
CPU times: user 4.03 s, sys: 23 ms, total: 4.05 s
Wall time: 4.05 s

--
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] snappy in Sage

2018-10-02 Thread Jeroen Demeyer

On 2018-10-02 23:01, Dima Pasechnik wrote:

So you need to ship generated C files for C99, C11, and C++ files for
c++11, c++14, c++17, blah++foo, etc etc etc?


No. You *do* need to tell Cython the language (C or C++). But beyond 
that, it generates code compatible with any version of the C/C++ standards.


--
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] snappy in Sage

2018-10-02 Thread Jeroen Demeyer

On 2018-10-02 17:53, Dima Pasechnik wrote:

Letting Cython to do necessary adjustments for the target C/C++
compiler seems like the most natural thing to do...


Cython doesn't need to do any such "necessary adjustments". It's 
completely independent of C/C++ compilers (and it should be).


--
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] snappy in Sage

2018-10-02 Thread Jeroen Demeyer

On 2018-10-02 16:50, kcrisman wrote:

Thanks, Thierry.  Sounds like we need a ticket for this.


I assume you mean a Snappy ticket since the problem with Snappy is 
completely unrelated to Sage.



Note also (in general) that

You are using pip version 9.0.3, however version 18.0 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.
though perhaps this is fixed in 8.4beta?


Yes.

--
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] snappy in Sage

2018-10-01 Thread Jeroen Demeyer

On 2018-10-01 20:19, kcrisman wrote:

 new = max(os.path.getmtime(file) for file in
glob('cython/core/*.pyx'))

 ValueError: max() arg is an empty sequence


It's bad packaging by upstream: it's running Cython but the Cython 
source files are not in the snappy source tarball.


--
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] semantics of ... in doctests

2018-09-26 Thread Jeroen Demeyer

On 2018-09-26 16:48, 'Martin R' via sage-devel wrote:

Indeed, it seems that the test is not actually being run.


You mean that it *was* not actually being run, but now it is. I don't 
know what caused the change, but it's clearly in the good sense since 
that doctest should be run.


--
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] semantics of ... in doctests

2018-09-26 Thread Jeroen Demeyer

On 2018-09-26 13:03, 'Martin R' via sage-devel wrote:

and all tests pass.


Which command are you using to run the tests? Something might have 
changed there.


--
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] sage foundation ???

2018-09-26 Thread Jeroen Demeyer

On 2018-09-24 18:00, Dima Pasechnik wrote:

Perhaps the most tricky is 2 (or perhaps not anymore, after out
infamous CoC discussion fiasco we could agree it makes sense to get
something in place; we can have a look at
https://numfocus.org/code-of-conduct
and see if we can just agree to this)


Speaking of Code of Conducts, there has recently been a CoC incident in 
the Python community where somebody was banned permanently after a 
single controversial post on a mailing list [1].


Personally, I think that this is huge overreaction (at most a warning or 
a temporary ban would have been in order) and it shows that a CoC can be 
used as an excuse to take such actions. That incident certainly makes me 
less supportive of having a CoC.


[1] 
https://mail.python.org/pipermail/python-ideas/2018-September/053602.html


--
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] semantics of ... in doctests

2018-09-26 Thread Jeroen Demeyer

On 2018-09-26 10:10, 'Martin R' via sage-devel wrote:

In https://trac.sagemath.org/ticket/26348 a doctest is failing, because
apparently the semantics of "..." has changed.


I don't think that anything has changed here. As far as I know, "..." at 
the start of a line after a "sage:" line has always been interpreted as 
a continuation.


--
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] Deprecate and remove/relocate explain_pickle module?

2018-09-21 Thread Jeroen Demeyer
It must be said that I found this tool quite valuable. When unpickling 
goes wrong, it is typically not easy to find out why and explain_pickle 
does help with that.


That being said, if nobody wants to maintain it, it has to go (with 
praise, as you said)...


--
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: Question on the features introduced by #20382

2018-09-12 Thread Jeroen Demeyer

On 2018-09-12 07:42, Simon King wrote:

However, the place in #25090/#25091 where the author uses is_package_installed,
is a Python file.


Why does a Python file care whether the normaliz library and headers are 
installed? Now I'm looking at #25091 and it seems to me (but correct me 
if I'm wrong) that you *really* care about the PyNormaliz Python module, 
for which there is a different feature test.


The whole idea of the new features framework is to make the feature test 
as close as possible to the actual usage of the feature. We don't check 
for the presence of a Sage package, we check whatever feature that you 
need from that Sage package. For example, if it's a Python module, we 
try to import it.


Another way of seeing this: ask the question what would go wrong if the 
package wasn't installed but we skipped the feature check? That thing 
where it goes wrong is what you need to test for.


--
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] Question on the features introduced by #20382

2018-09-11 Thread Jeroen Demeyer

On 2018-09-11 18:55, Simon King wrote:

Specifically, I ask because of #25090/#25091: How can one test whether
normaliz is installed?


Use Cython: see src/sage/features/bliss.py for an example for the 
"bliss" library


--
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] QQ not isomorphic to itself?!

2018-09-10 Thread Jeroen Demeyer

On 2018-09-10 21:36, John Cremona wrote:

The bug is because of this:


Since you almost fixed this bug, could you actually create a ticket to 
fix it?


--
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] Can't compile 8.4.beta3

2018-09-06 Thread Jeroen Demeyer

On 2018-09-06 08:21, Andrew wrote:

*package:pip-18.0
   log file:/usr/local/src/sage/logs/pkgs/pip-18.0.log


attach this log file please ^

--
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: Enabling Merge Requests from GitLab

2018-09-04 Thread Jeroen Demeyer
Let me make one important comment (something that I've said before 
though): a large part of what makes the current workflow work is not so 
much Trac itself but our git server and the "git trac" scripts.


For example, I very much like the fact that we have a single git repo 
where all pull requests appear. Checking out a pull request for 
reviewing is so much easier with Sage than it is with typical GitHub 
projects. If we ever move to GitLab, we really should keep this workflow.


--
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: Enabling Merge Requests from GitLab

2018-09-03 Thread Jeroen Demeyer

On 2018-09-03 15:53, Erik Bray wrote:

P.S. If anyone has additional comments, positive or negative, on
https://trac.sagemath.org/ticket/25914 they would be most appreciated


That doesn't seem the right ticket.

--
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.


  1   2   3   4   5   6   7   8   9   10   >