Changeset: 12284012837d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=12284012837d
Modified Files:
MonetDB.spec
buildtools/ChangeLog.Jan2014
clients/mapiclient/mclient.c
configure.ag
debian/control
gdk/gdk_batop.c
gdk/gdk_private.h
gdk/gdk_system.h
gdk/gdk_utils.c
monetdb5/mal/mal_exception.c
monetdb5/mal/mal_import.c
monetdb5/mal/mal_recycle.c
monetdb5/mal/mal_resource.c
monetdb5/modules/mal/Tests/inspect05.stable.out
monetdb5/modules/mal/manifold.c
sql/backends/monet5/LSST/lsst.c
sql/backends/monet5/sql_cast.c
sql/backends/monet5/sql_optimizer.c
sql/backends/monet5/sql_result.c
sql/backends/monet5/vaults/fits.c
sql/server/rel_select.c
sql/test/leaks/Tests/check1_gsl.stable.out
sql/test/leaks/Tests/check1_nogeom.stable.out
sql/test/leaks/Tests/check2_gsl.stable.out
sql/test/leaks/Tests/check2_nogeom.stable.out
sql/test/leaks/Tests/check3_gsl.stable.out
sql/test/leaks/Tests/check3_nogeom.stable.out
sql/test/leaks/Tests/check4_gsl.stable.out
sql/test/leaks/Tests/check4_nogeom.stable.out
sql/test/leaks/Tests/check5_gsl.stable.out
sql/test/leaks/Tests/check5_nogeom.stable.out
testing/Mtest.py.in
Branch: transaction-replication
Log Message:
Merge with defautl branch
diffs (truncated from 1349 to 300 lines):
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -52,7 +52,7 @@ BuildRequires: bzip2-devel
# BuildRequires: cfitsio-devel
BuildRequires: flex
%if %{?with_geos:1}%{!?with_geos:0}
-BuildRequires: geos-devel >= 2.2.0
+BuildRequires: geos-devel >= 3.0.0
%endif
BuildRequires: gsl-devel
BuildRequires: libcurl-devel
diff --git a/buildtools/ChangeLog.Jan2014 b/buildtools/ChangeLog.Jan2014
--- a/buildtools/ChangeLog.Jan2014
+++ b/buildtools/ChangeLog.Jan2014
@@ -1,3 +1,8 @@
# ChangeLog file for buildtools
# This file is updated with Maddlog
+* Tue Jun 3 2014 Sjoerd Mullender <[email protected]>
+- Fix configure to continue without Python if the python binary is
+ too old. This instead of always aborting configure if python happens
+ to be too old.
+
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2027,7 +2027,6 @@ doFile(Mapi mid, const char *file, int u
/* test for special commands */
if (mode != MAL)
while (length > 0 &&
- (*line & ~0x7F) == 0 &&
isascii((int) *line) &&
isspace((int) *line)) {
line++;
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -281,6 +281,10 @@ case $enable_control in
*) enable_control=no;;
esac
+AC_ARG_ENABLE(static-analysis,
+ AS_HELP_STRING([--enable-static-analysis], [configure for static code
analysis (use only if you know what you are doing)]),
+ AC_DEFINE([STATIC_CODE_ANALYSIS], 1, [compiling for static code
analysis]))
+
dnl RIPEMD160 is patent free, academic and European, but unfortunately
dnl can't use it by default, as that would exclude JDBC usage (Java
dnl doesn't natively support RIPEMD160).
@@ -1220,25 +1224,22 @@ case "$have_python3" in
;;
esac
+dnl Figure out a default for PYTHON2 or PYTHON3
AC_PATH_PROG(PYTHON,python,no,$PATH)
-PYTHON_MAJ=
+PYTHON_MAJ=unknown
if test "x$PYTHON" != xno; then
AC_MSG_CHECKING([major version of $PYTHON])
case "`"$PYTHON" -V 2>&1`" in
- "Python 2."[[67]]*) # older Pythons don't get Python3 syntax
+ "Python 2."[[67]]*)
PYTHON_MAJ=2
;;
"Python 3."*)
PYTHON_MAJ=3
;;
- *)
- AC_MSG_ERROR([unknown or unsupported Python version])
- ;;
esac
AC_MSG_RESULT($PYTHON_MAJ)
fi
-
if test "x$have_python2" != xno; then
if test x$cross_compiling != xyes; then
AC_PATH_PROG(PYTHON2,$PYTHON2,no,$PATH)
@@ -1252,6 +1253,19 @@ if test "x$have_python2" != xno; then
have_python2=no
why_have_python2="(Python 2 executable not
found)"
fi
+ else
+ case "`"$PYTHON2" -V 2>&1`" in
+ "Python 2."[[67]]*)
+ ;;
+ *)
+ if test "x$have_python2" = xauto; then
+ have_python2=no
+ why_have_python2="(Python 2 executable
too old)"
+ else
+ AC_MSG_ERROR([Python 2 executable too
old])
+ fi
+ ;;
+ esac
fi
fi
fi
@@ -2355,8 +2369,7 @@ AC_ARG_WITH(geos,
have_geos="$withval")
case "$enable_geom" in
yes|auto)
- GEOS_VERSION_REQUIRED_MIN=2.2.0
- dnl GEOS_VERSION_REQUIRED_MAX=3.0.0
+ GEOS_VERSION_REQUIRED_MIN=3.0.0
GEOS_CONFIG=''
if test "x$have_geos" != xno; then
case "$have_geos" in
@@ -3307,7 +3320,7 @@ echo
echo "MonetDB is configured as follows:"
echo "* Compilation specifics:"
echo " Host: " ${ac_cv_host}
-echo " Compiler: " ${CC}
+echo " Compiler: " ${CC} "("${CC_ver}"; "${CC_version}")"
echo " CFLAGS: " ${CFLAGS}
echo " X_CFLAGS: " ${X_CFLAGS}
echo " LDFLAGS: " ${LDFLAGS}
diff --git a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Vcs-Hg: http://dev.monetdb.org/hg/MonetD
# for Build-Depends and Depends syntax, see
# http://www.debian.org/doc/debian-policy/ch-relationships.html
Build-Depends: debhelper (>= 5), autotools-dev, bison, flex, libbz2-dev,
- libcurl4-gnutls-dev, libgeos-dev, libgsl0-dev, libpcre3-dev,
+ libcurl4-gnutls-dev, libgeos-dev (>= 3.0.0), libgsl0-dev, libpcre3-dev,
libreadline-gplv2-dev | libreadline-dev, libssl-dev, libxml2-dev, perl,
ruby, rubygems | libyaml-0-2, unixodbc-dev, uuid-dev, zlib1g-dev,
python, python3
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -936,43 +936,6 @@ BATtopN(BAT *b, BUN topN)
}
/*
- * The baseline algorithm for fragment location is a two-phase
- * process. First we search on the 1st dimension and collect the
- * qualifying BUNs in a marking on the stack. In the second phase, the
- * tail is analyzed for all items already marked and qualifying
- * associations are copied into the result. An index is exploited
- * when possible.
- */
-#define restrict1(cmptype, TYPE, BUNhead) \
- do { \
- if (BAThordered(b)) { \
- BUN p1, p2; \
- \
- b = BATmirror(b); \
- SORTloop(b, p1, p2, hl, hh) { \
- *m++ = p1; \
- } \
- b = BATmirror(b); \
- } else { \
- int lval = !cmptype##_EQ(ATOMnilptr(t), hl, TYPE); \
- int hval = !cmptype##_EQ(ATOMnilptr(t), hh, TYPE); \
- \
- if (hval && lval && cmptype##_GT(hl,hh,TYPE)) { \
- GDKerror("BATrestrict: illegal head range.\n");
\
- } else { \
- BATiter bi = bat_iterator(b); \
- \
- BATloop(b, p, l) { \
- if ((!lval || cmptype##_LE(hl,
BUNhead(bi, p), TYPE)) && \
- (!hval || cmptype##_LE(BUNhead(bi,
p), hh, TYPE))) { \
- *m++ = p; \
- } \
- } \
- } \
- } \
- } while (0)
-
-/*
* BAT Sorting
* BATsort returns a sorted copy. BATorder sorts the BAT itself.
*/
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -461,7 +461,7 @@ GDKvm_cursize(void)
do { \
int _idx; \
\
- ATOMIC_ADD(GDK_mallocedbytes_estimate, _memdelta, mbyteslock,
"heapinc"); \
+ (void) ATOMIC_ADD(GDK_mallocedbytes_estimate, _memdelta,
mbyteslock, "heapinc"); \
GDKmallidx(_idx, _memdelta); \
(void) ATOMIC_INC(GDK_nmallocs[_idx], mbyteslock, "heapinc"); \
} while (0)
@@ -470,15 +470,15 @@ GDKvm_cursize(void)
ssize_t _memdelta = (ssize_t) (memdelta); \
int _idx; \
\
- ATOMIC_SUB(GDK_mallocedbytes_estimate, _memdelta, mbyteslock,
"heapdec"); \
+ (void) ATOMIC_SUB(GDK_mallocedbytes_estimate, _memdelta,
mbyteslock, "heapdec"); \
GDKmallidx(_idx, _memdelta); \
(void) ATOMIC_DEC(GDK_nmallocs[_idx], mbyteslock, "heapdec"); \
} while (0)
#else
#define heapinc(_memdelta) \
- ATOMIC_ADD(GDK_mallocedbytes_estimate, _memdelta, mbyteslock, "heapinc")
+ (void) ATOMIC_ADD(GDK_mallocedbytes_estimate, _memdelta, mbyteslock,
"heapinc")
#define heapdec(_memdelta) \
- ATOMIC_SUB(GDK_mallocedbytes_estimate, _memdelta, mbyteslock, "heapdec")
+ (void) ATOMIC_SUB(GDK_mallocedbytes_estimate, _memdelta, mbyteslock,
"heapdec")
#endif
#ifdef GDK_VM_KEEPHISTO
@@ -489,7 +489,7 @@ GDKvm_cursize(void)
\
GDKmallidx(_idx, _vmdelta); \
(void) ATOMIC_INC(GDK_vm_nallocs[_idx], mbyteslock, fcn); \
- ATOMIC_ADD(GDK_vm_cursize, _vmdelta, mbyteslock, fcn); \
+ (void) ATOMIC_ADD(GDK_vm_cursize, _vmdelta, mbyteslock, fcn); \
} while (0)
#define memdec(vmdelta, fcn) \
do { \
@@ -498,13 +498,13 @@ GDKvm_cursize(void)
\
GDKmallidx(_idx, _vmdelta); \
(void) ATOMIC_DEC(GDK_vm_nallocs[_idx], mbyteslock, fcn); \
- ATOMIC_SUB(GDK_vm_cursize, _vmdelta, mbyteslock, fcn); \
+ (void) ATOMIC_SUB(GDK_vm_cursize, _vmdelta, mbyteslock, fcn); \
} while (0)
#else
#define meminc(vmdelta, fcn) \
- ATOMIC_ADD(GDK_vm_cursize, (ssize_t) SEG_SIZE((vmdelta), MT_VMUNITLOG),
mbyteslock, fcn)
+ (void) ATOMIC_ADD(GDK_vm_cursize, (ssize_t) SEG_SIZE((vmdelta),
MT_VMUNITLOG), mbyteslock, fcn)
#define memdec(vmdelta, fcn) \
- ATOMIC_SUB(GDK_vm_cursize, (ssize_t) SEG_SIZE((vmdelta), MT_VMUNITLOG),
mbyteslock, fcn)
+ (void) ATOMIC_SUB(GDK_vm_cursize, (ssize_t) SEG_SIZE((vmdelta),
MT_VMUNITLOG), mbyteslock, fcn)
#endif
#ifndef STATIC_CODE_ANALYSIS
diff --git a/monetdb5/mal/mal_exception.c b/monetdb5/mal/mal_exception.c
--- a/monetdb5/mal/mal_exception.c
+++ b/monetdb5/mal/mal_exception.c
@@ -79,8 +79,14 @@ createExceptionInternal(enum malexceptio
len += vsnprintf(message + len, GDKMAXERRLEN - len, format, ap);
/* realloc to reduce amount of allocated memory (GDKMAXERRLEN is
* way more than what is normally needed) */
- if (len < GDKMAXERRLEN)
- message = GDKrealloc(message, len + 1);
+ if (len < GDKMAXERRLEN) {
+ /* in the extremely unlikely case that GDKrealloc fails, the
+ * original pointer is still valid, so use that and don't
+ * overwrite */
+ char *newmsg = GDKrealloc(message, len + 1);
+ if (newmsg != NULL)
+ message = newmsg;
+ }
return message;
}
diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c
--- a/monetdb5/mal/mal_import.c
+++ b/monetdb5/mal/mal_import.c
@@ -202,8 +202,10 @@ malInclude(Client c, str name, int listi
if ((s = malLoadScript(c, filename, &c->fdin)) == 0) {
parseMAL(c, c->curprg);
bstream_destroy(c->fdin);
- } else
+ } else {
GDKfree(s); // not interested in error here
+ s = MAL_SUCCEED;
+ }
if (p)
filename = p + 1;
} while (p);
diff --git a/monetdb5/modules/mal/Tests/inspect05.stable.out
b/monetdb5/modules/mal/Tests/inspect05.stable.out
--- a/monetdb5/modules/mal/Tests/inspect05.stable.out
+++ b/monetdb5/modules/mal/Tests/inspect05.stable.out
@@ -125,8 +125,6 @@ end main;
[ "setHash", "command", "bat", "(b:bat[:oid,:any_2],prop:bit):bit ",
"BKCsetHash;" ]
[ "setHot", "command", "bat", "(b:bat[:oid,:any_2]):void ",
"BKChotBAT;" ]
[ "setKey", "command", "bat",
"(b:bat[:any_1,:any_2],mode:bit):bat[:any_1,:any_2] ",
"BKCsetkey;" ]
-[ "setMemoryAdvise", "command", "bat",
"(b:bat[:oid,:any_2],mode:int):bit ", "BKCmadvise2;" ]
-[ "setMemoryAdvise", "command", "bat",
"(b:bat[:oid,:any_2],head_mode:int,tail_mode:int,hheap_mode:int,theap_mode:int):bit
", "BKCmadvise;" ]
[ "setMemoryMap", "command", "bat",
"(b:bat[:oid,:any_2],mode:int):bit ", "BKCmmap2;" ]
[ "setMemoryMap", "command", "bat",
"(b:bat[:oid,:any_2],head_mode:int,tail_mode:int,hheap_mode:int,theap_mode:int):bit
", "BKCmmap;" ]
[ "setName", "command", "bat", "(b:bat[:oid,:any_2],s:str):void ",
"BKCsetName;" ]
diff --git a/monetdb5/modules/mal/manifold.c b/monetdb5/modules/mal/manifold.c
--- a/monetdb5/modules/mal/manifold.c
+++ b/monetdb5/modules/mal/manifold.c
@@ -84,7 +84,7 @@ typedef struct{
// The target BAT tail type determines the result variable
#define Manifoldbody(...) \
switch(ATOMstorage(mut->args[0].b->T->type)){\
-case TYPE_bte: ManifoldLoop(bit,__VA_ARGS__); break;\
+case TYPE_bte: ManifoldLoop(bte,__VA_ARGS__); break;\
case TYPE_sht: ManifoldLoop(sht,__VA_ARGS__); break;\
case TYPE_int: ManifoldLoop(int,__VA_ARGS__); break;\
case TYPE_lng: ManifoldLoop(lng,__VA_ARGS__); break;\
diff --git a/sql/backends/monet5/LSST/lsst.c b/sql/backends/monet5/LSST/lsst.c
--- a/sql/backends/monet5/LSST/lsst.c
+++ b/sql/backends/monet5/LSST/lsst.c
@@ -409,7 +409,7 @@ str qserv_ptInSphPoly(MalBlkPtr mb, MalS
for (i = 3; i <pci->argc; ++i)
nv[i-3] = *(dbl*) getArgReference(stk,pci,i);
_qserv_computeEdges(edges,nv, nedges);
-
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list