Trac #16375: Typo in libGAP's spkg-install

{{{
#!sh
# location of the corresponding gap installation
# only used for the testsuite
CPPFLAGS="$CPPFLAGS"'-DSYS_DEFAULT_PATHS=\"'"$SAGE_LOCAL/gap/latest"'\"'
}}}

There's obviously a space missing, which can lead to arbitrary errors.

URL: http://trac.sagemath.org/16375
Reported by: leif
Ticket author(s): Volker Braun
Reviewer(s): Leif Leonhardy
Trac #16365: ChainComplex.betti uses wrong base_ring

The docstring for `ChainComplex.betti` says
{{{
  - ``base_ring`` -- a commutative ring (optional, default is the
          base ring for the chain complex); compute homology with
          these coefficients -- must be either the integers or a
          field
}}}
however, in fact if `base_ring` is `None` then under the hood it
defaults to QQ.  Thus the `betti` method will choke on examples where
`ChainComplex.homology` work fine:
{{{
sage: K = QuadraticField(-1, 'i')
sage: C = ChainComplex({0:matrix(K, [K.gen(),0])})
sage: C.homology()
{0: Vector space of dimension 1 over Number Field in i with defining
polynomial x^2 + 1,
 1: Vector space of dimension 0 over Number Field in i with defining
polynomial x^2 + 1}
sage: C.betti()
[...huge traceback...]
TypeError: Unable to coerce i to a rational
}}}
and moreover gives **incorrect** answers when it silently coerces the
chain complex into QQ:
{{{
sage: C = ChainComplex({0:matrix(GF(5), [[3, 1],[1, 2]])})
sage: C.homology()
{0: Vector space of dimension 1 over Finite Field of size 5,
 1: Vector space of dimension 1 over Finite Field of size 5}
sage: C.betti()
{0: 0, 1: 0}
}}}
I think the fix is just to change line 1344 of
`homology/chain_complex.py`.  I will test this and upload a patch.

URL: http://trac.sagemath.org/16365
Reported by: dunfield
Ticket author(s): Nathan Dunfield
Reviewer(s): John Palmieri
Trac #16349: Make UniqueFactory unpickling more flexible

Currently `UniqueFactory`'s unpickling protocol is to call
`generic_factory_unpickle()`, whose first argument ''must'' be an
instance of `UniqueFactory`. However we might want to change the object
in the global namespace, let's say to a function, and then we will not
be able to unpickle any  thing beforehand (`register_unpickle_override`
can not help here because the pickle info is `(UniqueFactory`,
`generic_factory_unpickle)`). Came up in #15289.

URL: http://trac.sagemath.org/16349
Reported by: tscrim
Ticket author(s): Simon King, Travis Scrimshaw
Reviewer(s): Travis Scrimshaw, Simon King
Trac #16276: fixes PolynomialElement.mod()

Before :

{{{
           sage: R.<x> = PolynomialRing(ZZ)
            sage: f = x^3 + x + 1
            sage: f.mod(x + 1)
            x^3 + x + 1
}}}

After :
{{{
           sage: R.<x> = PolynomialRing(ZZ)
            sage: f = x^3 + x + 1
            sage: f.mod(x + 1)
            -1
}}}

URL: http://trac.sagemath.org/16276
Reported by: Bouillaguet
Ticket author(s): Charles Bouillaguet
Reviewer(s): John Cremona, Jean-Pierre Flori, Peter Bruin
Trac #12046: Fix for numerator_ideal function

K(0).numerator_ideal() currently returns a Value Error, but it should
return the 0 ideal.

URL: http://trac.sagemath.org/12046
Reported by: bleveque
Ticket author(s): Ben LeVeque
Reviewer(s): Peter Bruin
Trac #15782: Increase Performance of Multiplier in Projective Morphism

Increase Performance of Multiplier in Projective Morphism

URL: http://trac.sagemath.org/15782
Reported by: drose
Ticket author(s): Dillon Rose, Ben Hutz
Reviewer(s): Ben Hutz, Dillon Rose