[sage-devel] Re: How to modularize for fun and profit, II: MONOREPO vs. MULTIREPO
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
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
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
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 ?
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 ?
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 ?
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 ?
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 ?
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 ?
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.