[sage-devel] Re: How to modularize for fun and profit, II: MONOREPO vs. MULTIREPO

2021-10-14 Thread tobia...@gmx.de
I think the discussion and the initial post mixes a few things that are not 
really related to the question of mono- vs multi-repo. In particular, the 
question of how to continue with trac is somewhat orthogonal (you can 
easily have a monorepo on github or multiple trac repos).

In the end, it is a question on how to structure and organization of the 
code.
Monorepo: everything in one git repo, each package is a subfolder (roughly 
how it is currently organized under src/sage).
Multirepo: each package has their own git repo, with maybe one central repo 
that references the other repos via git submodules.

A monorepo provide a centralized place to manage dependencies, allow for 
easier code sharing, provides a single place of entrance for new 
contributions, and uses a central CI. Admittedly, with a good 
infrastructure similar benefits can be achieved for multirepos as well 
(e.g. write a central github action that is used in each package-repo). In 
my opinion, the biggest advantage of multirepos is that they define a clear 
boundary of a module, which prevents developers to rely on internal code of 
another package. Another benefit of multirepos is that build and test times 
for the ci are much lower as only the code of that package has to be tested 
(but again, this can also be achieved by more intelligent CI configs). 
Other advantages of multirepos such as a clear code ownership 
(responsibility of code review) can also be achieved in a monorepo. 

In summary, I think a monorepo makes the most sense at the moment given the 
current structure and project philosophy. But at the same time the 
multirepo approach keeps its advantages only if a modern build and project 
management is used. Thus I also strongly agree with Dima in that trac is 
horrendous and outdated, and that one should try to switch to existing 
tools for dependency management than the home-built sage-the-distribution 
(at least for Python packages). 
On Tuesday, October 12, 2021 at 4:43:38 PM UTC+2 Nathan Dunfield wrote:

> On Sunday, October 10, 2021 at 7:17:33 PM UTC-5 Matthias Koeppe wrote:
>
>> *Recommendation:* Keep MONOREPO for all distributions that fill the 
>> sage.PAC.KAGE.MODULE namespace (= distribution packages named *sagemath-... 
>> *-- according to my recommendation in part I). 
>>
>> *Recommendation: *For distributions that do not use the 
>> sage.PAC.KAGE.MODULE namespace (= distribution packages named something 
>> other than sagemath-... -- according to my recommendation in part I), weigh 
>> the benefits vs. drawbacks of MONOREPO vs. MULTIREPO. It is also simple 
>> enough for a distribution to start out being developed inside of the Sage 
>> MONOREPO and to be split out to a separate repository later.
>>
>
> I think these are the right choices, at least for now.  Once 
> modularization is complete, perhaps MULTIREPO becomes viable, as it is for 
> scipy, but until the work is done I don't think it is clear how one would 
> want to subdivide it.
>
> Best,
>
> Nathan
>
>  
>

-- 
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/a9c981bc-2bcc-4618-8571-9e0dcab12540n%40googlegroups.com.


[sage-devel] Free Github Teams for non-profit orgs

2021-10-14 Thread tobia...@gmx.de
Github supports non-profit organizations by giving them a free team plan. 
I'm not sure about the legal status of sage, but maybe its worth trying: 
https://support.github.com/contact/nonprofit.

-- 
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/58143d1f-c2f8-423b-9483-75f35595fb6dn%40googlegroups.com.


Re: [sage-devel] [abi:cxx11] in givaro prevents linking to system givaro on Fedora 32

2021-10-14 Thread Dima Pasechnik
This is now re-surfacing in Gentoo. I see sagelib using
Givaro::Integer::operator std::__cxx11::basic_string, std::allocator >[abi:cxx11]() const

but the system Givaro only providing
Givaro::Integer::operator std::__cxx11::basic_string, std::allocator >() const



On Monday, May 10, 2021 at 10:14:09 PM UTC+1 Dima Pasechnik wrote:

>
>
> On Mon, 10 May 2021, 21:49 Volker Braun,  wrote:
>
>> "Dual" refers to libstdc++ here, i.e. you only have one standard library 
>> supporting both abi's.  
>>
>> Other libraries generally are only one or the other, this is what is 
>> controlled by the -D_GLIBCXX_USE_CXX11_ABI; Theoretically you could make 
>> your own dual-abi library but you'd have to plaster 
>> __attribute__((abi_tag("cxx11"))) everywhere, so hell no.
>>
>
> as Francois reports above, on Gentoo he has libgivaro providing two 
> interfaces, one with abi:c++11, and one without.
>
> Apparently, done by by setting a gcc option, as mentioned by Steven.
>
>
>> What I'm saying is: if you provide the same value for 
>> -D_GLIBCXX_USE_CXX11_ABI as what was used for the system givaro then you 
>> should be able to link them together.
>>
>>
>>
>> On Monday, May 10, 2021 at 2:27:44 PM UTC+2 dim...@gmail.com wrote:
>>
>>> On Sunday, May 9, 2021 at 11:24:23 AM UTC+1 Volker Braun wrote:
>>>
 This is c++11 dual abi, see 
 https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

 IMHO we just shouldn't use the system version then, but building Sage 
 with -D_GLIBCXX_USE_CXX11_ABI=0 should allow you to link with old-style 
 abi 
 libraries.

 The default value of _GLIBCXX_USE_CXX11_ABI can be changed by the 
 distro, which is probably what accounts for the differences seen in this 
 thread.

>>>
>>> Are you saying it's a bug in Fedora 32, they should have provided dual 
>>> ABI, like Gentoo does, but they don't?
>>> Or that they provide an old-style ABI, and we can use ` 
>>> -D_GLIBCXX_USE_CXX11_ABI=0` to make this work for Sage?
>>> Isn't c++11 "old" nowadays?
>>>
>>> I tried to write a short C++ code do produce this error, so that we can 
>>> put it into our gcc/spkg-configure.m4, but I cannot
>>> figure it out.  
>>>
>>>
>>>  
>>>


 On Saturday, May 8, 2021 at 7:01:13 PM UTC+2 Steven Trogdon wrote:

> Building Givaro on Gentoo I have
>
> CXXFLAGS=-O2 -pipe -march=native -O2 -pipe   -fabi-version=6   -msse 
> -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx
>
> Your Redhat has
>
> CXXFLAGS=-O2 -g -pipe -Wall -Werror=format-security 
> -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions 
> -fstack-protector-strong -grecord-gcc-switches 
> -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 
> -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic 
> -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
>
> Could the  abi-version=6 be the issue?
>
> On Saturday, May 8, 2021 at 6:01:02 AM UTC-6 dim...@gmail.com wrote:
>
>> one has 
>> https://kojipkgs.fedoraproject.org//packages/givaro/4.1.1/1.fc32/data/logs/x86_64/build.log
>> and other logs there
>>
>> On Saturday, May 8, 2021 at 12:45:07 PM UTC+1 Dima Pasechnik wrote:
>>
>>> On Saturday, May 8, 2021 at 12:34:11 PM UTC+1 François Bissey wrote:
>>>
 What compiler and flags have used to compile fedora 32 givaro? Can 
 we easily find out?
>>>
>>>
>>> the compiler used to build Sage is g++ 10.2.1
>>>
>>> $ g++ -v
>>> Using built-in specs.
>>> COLLECT_GCC=/usr/bin/g++
>>>
>>> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/10/lto-wrapper
>>> OFFLOAD_TARGET_NAMES=nvptx-none
>>> OFFLOAD_TARGET_DEFAULT=1
>>> Target: x86_64-redhat-linux
>>> Configured with: ../configure --enable-bootstrap 
>>> --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto 
>>> --prefix=/usr 
>>> --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=
>>> http://bugzilla.redhat.com/bugzilla --enable-shared 
>>> --enable-threads=posix --enable-checking=release --enable-multilib 
>>> --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions 
>>> --enable-gnu-unique-object --enable-linker-build-id 
>>> --with-gcc-major-version-only --with-linker-hash-style=gnu 
>>> --enable-plugin 
>>> --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none 
>>> --without-cuda-driver --enable-gnu-indirect-function --enable-cet 
>>> --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
>>> Thread model: posix
>>> Supported LTO compression algorithms: zlib zstd
>>> gcc version 10.2.1 20201125 (Red Hat 10.2.1-9) (GCC) 
>>>
>>>  
>>>


 > On 8/05/2021, at 23:31, Dima Pasechnik  wrote: 
 > 
 > With system Givaro, one gets 
 > 
 > [dochtml] ImportError: 
 /

Re: [sage-devel] Calling SageMath from Java

2021-10-14 Thread E. Madison Bray
Hello,

(For anyone confused about this question, it's about the Windows
release of Sage).

The command you're trying to run is not going to work.  I can see you
probably copied it from the desktop shortcut that launches Sage in a
terminal Window.  mintty.exe is the terminal emulator that comes with
Cygwin and that's used in the Windows version of Sage to provide a
UNIX-like shell terminal.  It has nothing to do with Sage itself which
runs in a Python interpreter.  If you want to control a Sage
interpreter as an interactive process, you only need to run the Python
interpreter directly, possibly with some appropriate environment
variables set.

However I must ask, what is it you are *actually* trying to build?
Wrapping an interactive session with a Python interpreter is likely
not the most effective way to get data in, and especially out.

On Tue, Oct 5, 2021 at 6:15 PM meryem afendi  wrote:
>
> Hello everyone,
> I tried to call SageMath from a java program using the Class ProcessBuilder. 
> This code success to launch SageMath but when i want to use the InputStream 
> to interact with Sage (For example a simple code 1+2) it does not work. 
> iSageMath runs without sending the result of 1+2.
> Thank you.
>
>  ProcessBuilder pb = new 
> ProcessBuilder("C:\\Users\\Meryem\\AppData\\Local\\SageMath 
> 9.2\\runtime\\bin\\mintty.exe", "-t","SageMath 9.2 Console", "-i", 
> "sagemath.ico", "/bin/bash", "--login", "-c",  "/opt/sagemath-9.2/sage");
> try
>  {
>
> Process p = pb.start();
> OutputStream stdin = p.getOutputStream();
> InputStream stdout = p.getInputStream();
>   //InputStream stderr = p.getErrorStream();
>
>
> BufferedReader reader = new BufferedReader(new 
> InputStreamReader(stdout));
> BufferedWriter writer = new BufferedWriter(new 
> OutputStreamWriter(stdin));
>
> writer.write("1+2" + "\n");
> writer.flush();
> writer.close();
> String line;
> while ((line = reader.readLine()) != null) {
> System.out.println(line);
> }
> p.waitFor();
> p.destroy();
>
> } catch (IOException e) {
> System.out.println("I/O error:" + e.getMessage());
> } catch (Exception e) {
> System.out.println("Error:" + e.getMessage());
> }
> return null;
> }
>
> --
> 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/2da50f7e-1bb6-4c4b-9dae-925683405d43n%40googlegroups.com.

-- 
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/CAOTD34YGXNSzw7uwnseCayDn0CO1KG7gBakebDJRg2EpRhWHOA%40mail.gmail.com.


[sage-devel] what is in SAGE_ROOT/pkgs/sagemath-standard ?

2021-10-14 Thread Thierry
Hi,

a new SAGE_ROOT/pkg/ appeared, and contains sagemath-standard/build/
which weights 3,2G and contains 4 directories:

cythonized/
lib.linux-x86_64-3.9/
scripts-3.9/
temp.linux-x86_64-3.9/

What is the purpose of those directory ? Which could be removed without
breaking Sage runtime ? Which could be removed without taking some time
when re-running make build ?

Ciao,
Thierry

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/20211014192818.GA15096%40metelu.net.


[sage-devel] how to benefit from spkg-configure.m4 ?

2021-10-14 Thread Thierry
Hi,

let "pack" be an optional package with a spkg-configure.m4 file, and
assume that an equivalent package is installed from the distro and that
./configure asserts that "using system package; SPKG will not be
installed".

If i do "make pack", the package is installed anyway. What would be the
make command to install pack unless the distro provided ?

Ciao,
Thierry

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/20211014193553.GB15096%40metelu.net.


Re: [sage-devel] how to benefit from spkg-configure.m4 ?

2021-10-14 Thread Dima Pasechnik
On Thu, 14 Oct 2021, 20:35 Thierry,  wrote:

> Hi,
>
> let "pack" be an optional package with a spkg-configure.m4 file, and
> assume that an equivalent package is installed from the distro and that
> ./configure asserts that "using system package; SPKG will not be
> installed".
>
> If i do "make pack", the package is installed anyway. What would be the
> make command to install pack unless the distro provided ?
>

we don't have such a make target

just run

make build



>
>
> Ciao,
> Thierry
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-devel+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sage-devel/20211014193553.GB15096%40metelu.net
> .
>

-- 
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/CAAWYfq2xeK6KQR62%2BzyEt9ude%3D111nq-1XXBpkBBZaUO3CFfuA%40mail.gmail.com.


[sage-devel] Re: how to benefit from spkg-configure.m4 ?

2021-10-14 Thread Matthias Koeppe
There's no such make target, but a ticket to add such 
targets: https://trac.sagemath.org/ticket/31501

On Thursday, October 14, 2021 at 12:35:57 PM UTC-7 Thierry 
(sage-googlesucks@xxx) wrote:

> Hi,
>
> let "pack" be an optional package with a spkg-configure.m4 file, and
> assume that an equivalent package is installed from the distro and that
> ./configure asserts that "using system package; SPKG will not be
> installed".
>
> If i do "make pack", the package is installed anyway. What would be the
> make command to install pack unless the distro provided ?
>
> Ciao,
> Thierry
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5b4c2142-c226-4f16-9715-452ff447805bn%40googlegroups.com.


[sage-devel] Re: what is in SAGE_ROOT/pkgs/sagemath-standard ?

2021-10-14 Thread Matthias Koeppe
See 
https://wiki.sagemath.org/ReleaseTours/sage-9.4#New_location_for_distribution_package_sources:_SAGE_ROOT.2Fpkgs

On Thursday, October 14, 2021 at 12:28:22 PM UTC-7 Thierry 
(sage-googlesucks@xxx) wrote:

> Hi,
>
> a new SAGE_ROOT/pkg/ appeared, and contains sagemath-standard/build/
> which weights 3,2G and contains 4 directories:
>
> cythonized/
> lib.linux-x86_64-3.9/
> scripts-3.9/
> temp.linux-x86_64-3.9/
>
> What is the purpose of those directory ? Which could be removed without
> breaking Sage runtime ? Which could be removed without taking some time
> when re-running make build ?
>
> Ciao,
> Thierry
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/12163af6-3e26-4612-b8ef-5a1f6cbb0ac2n%40googlegroups.com.


Re: [sage-devel] Re: what is in SAGE_ROOT/pkgs/sagemath-standard ?

2021-10-14 Thread Thierry
On Thu, Oct 14, 2021 at 02:02:45PM -0700, Matthias Koeppe wrote:
> See 
> https://wiki.sagemath.org/ReleaseTours/sage-9.4#New_location_for_distribution_package_sources:_SAGE_ROOT.2Fpkgs

Thanks for the pointer.

Unfortunately, it does not mention the sagemath-standard/build/ and its
4 subdirectories.

Ciao,
Thierry




> On Thursday, October 14, 2021 at 12:28:22 PM UTC-7 Thierry 
> (sage-googlesucks@xxx) wrote:
> 
> > Hi,
> >
> > a new SAGE_ROOT/pkg/ appeared, and contains sagemath-standard/build/
> > which weights 3,2G and contains 4 directories:
> >
> > cythonized/
> > lib.linux-x86_64-3.9/
> > scripts-3.9/
> > temp.linux-x86_64-3.9/
> >
> > What is the purpose of those directory ? Which could be removed without
> > breaking Sage runtime ? Which could be removed without taking some time
> > when re-running make build ?
> >
> > Ciao,
> > Thierry
> >
> >
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/12163af6-3e26-4612-b8ef-5a1f6cbb0ac2n%40googlegroups.com.

-- 
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/20211014211855.GA15499%40metelu.net.