Sage Days 23.5 Coding Sprint Projects

Singular Parallel Build

Doctest the Free Algebra Quotient code

The file SAGE_ROOT/devel/sage/sage/algebras/free_algebra_quotient.py has no doctests. Get it to 100% coverage. The point of this is that it is related to wrapping something like letterplace.

Letterplace

Do a very basic wrapping of letterplace for Sage. Use this to replace some of the lame old code in the SAGE_ROOT/devel/sage/sage/algebras/ directory.

error: out of memory

Relative number field arithmetic

Gröbner bases in Sage: Optional parameters

In Singular, one can use various options (redTail, e.g.) and also a degree bound (degBound) for Gröbner basis computations. Aim: Allow the same for libSingular, and also introduce a decorator that can be used for methods that use the Singular expect interface: Save the current options and set a certain value when entering the function, and reset the options when leaving. In other words: Fix #1396!!

extend polynomial rings mod 2^n to n > 30

Rings mod 2^n are limited to n <= 30, but we'd like to have n<=62 by using longs. This would be relevant for some crypto applications

big exponents

Provide an interface to use Singular monomials with big exponents (64-bit instead of 16-bit)

Simon King mentioned that sometimes his code crashes/leaks/etc. So make it so one can do:

@fork
def f(x,y,z,...):
    ...

and then f gets computed in a blocking forked process, and the result is returned via pickling. This is 100% to thwart mem leaks, segfaults, and guaranteed timeout possibility. This could be basically just a light wrapper around @parallel(1). Also, make a global flag to turn this off, so @fork does nothing.

Sage Nagbot could Doctest some tickets

The Sage Nagbot could be made able to run doctests for a ticket, say in the one obvious case where there is precisely one patch attached to the ticket, and it is set to "needs review". The nagbot code is here.