This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
on some platforms that lacked shared library support in the past. The
list hasn't been maintained at all and the gain is very limited, so just
get rid of it.
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
another "final release"
changes:
-__array_data__, __array_struct__ support
-some bugfixes
-Support array interface in objecttype function
-build system improvements
inofficial note:
The default indices of diagonal() and trace() changed, this causes
a selftest to fail. The default indices behaviour is documented, so
it seems that just the selftest is wrong. This only affects arrays with
more than 2 dimensions.
changes:
Version 23.1 August 2003
[unreported] fixed assignment to matrix.
[unreported] added check so that non-character array cannot be interpreted
as a character buffer.
[unreported] array([m,m,m]) when m is a rank-0 array now works as expected.
Patches:
[ 782001 ] Add true and floor divide to MA
[ 781215 ] true_divide bug
[ 776991 ] multiplying small UINT values gives random results
[ 776467 ] remove string exceptions
Important notice:
Two packages have been removed from optional ones: PropertiedClasses, kinds.
MA has been rewritten to use standard property and will not work for
ancient Pythons. (Pre 2.1, I think). Use the MA / Propertied Classes
from Numeric 22 if you can't use this one.
The kinds package (subject of PEP-0242) will be released as a separate
package shortly. PEP-0242 was withdrawn because this facility did not seem
to be worth putting in the standard library, but kinds is correct as is.
Other changes are bugfixes.
Fixed bugs:
[ #482603 ] Memory leak in MA/Numeric/Python
Reported by Reggie Dugard. Turned out to be
*two* memory leaks in one case in a routine in Numeric,
array_objectype. (Dubois)
[ none ] if vals was a null-array array([]) putmask and put would
crash. Fixed with check.
[ #469951 ] n = n1[0] gives array which shares dimension of n1 array.
This causes bugs if shape of n1 is changed (n didn't used
to have it's own dimensions array (Travis Oliphant)
[ #514588 ] MLab.cov(x,x) != MLab.cov(x) (Travis Oliphant)
[ #518702 ] segfault when invalid typecode for asarray (Travis Oliphant)
[ #497530 ] MA __getitem__ prevents 0 len arrays (Reggie Duggard)
[ #508363 ] outerproduct of noncontiguous arrays (Martin Wiechert)
[ #513010 ] memory leak in comparisons (Byran Nollett)
[ #512223 ] Character typecode not defined (Jochen Kupper)
[ #500784 ] MLab.py diff error (anonymous, fixed by Dubois)
[ #503741 ] accuracy of MLab.std(x) (Katsunori Waragai)
[ #507568 ] overlapping copy a[2:5] = a[3:6]
Change uses of memcpy to memmove which allows overlaps.
[ numpy-Patches-499722 ] size of buffer created from array is bad (Michel Sanner).
[ #502186 ] a BUG in RandomArray.normal (introduced by last bug fix in 20.3)
(Katsunori Waragai).
Fixed errors for Mac (Jack Jensen).
Make rpm's properly, better Windows installers. (Gerard Vermeulen)
Added files setup.cfg; setup calculates rpm_install.sh to use current Python.
New setup.py, eliminate setup_all.py. Use os.path.join everywhere. Revision
in b6 added file README.RPM, further improvements.
Implement true division operations for Python 2.2. (Bruce Sherwood)
Note: true division of all integer types results in an array of floats,
not doubles. This decision is arbitrary and there are arguments either way,
so users of this new feature should be aware that the decision may
change in the future.
New functions in Numeric; they work on any sequence a that can be converted to a
Numeric array. Similar change to average in MA. (Dubois)
def rank (a):
"Get the rank of a (the number of dimensions, not a matrix rank)"
def shape (a):
"Get the shape of a"
def size (a, axis=None):
"Get the number of elements in a, or along a certain axis."
def average (a, axis=0, weights=None, returned = 0):
Computes average along indicated axis.
extension Makefile fragments, because they really don't have anything to
do with the buildlink[12] frameworks. Change all the Makefiles that use
application.buildlink.mk and extension.buildlink.mk to use application.mk
and extension.mk instead.