Changeset: 2e9fc4c2462b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2e9fc4c2462b
Modified Files:
MonetDB.spec
buildtools/ChangeLog.Jan2014
clients/mapiclient/mclient.c
configure.ag
debian/control
gdk/gdk_private.h
gdk/gdk_system.h
gdk/gdk_utils.c
monetdb5/mal/mal_atom.c
monetdb5/mal/mal_builder.c
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_exception.c
monetdb5/mal/mal_import.c
monetdb5/mal/mal_recycle.c
monetdb5/mal/mal_resource.c
monetdb5/modules/atoms/xml.c
monetdb5/modules/mal/Tests/inspect05.stable.out
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
tools/merovingian/daemon/argvcmds.c
tools/merovingian/daemon/client.c
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/proxy.c
tools/merovingian/utils/control.c
tools/merovingian/utils/database.c
tools/merovingian/utils/properties.c
tools/merovingian/utils/properties.h
Branch: RIntegration-default
Log Message:
merge with default
diffs (truncated from 1596 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
@@ -288,6 +288,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).
@@ -1227,25 +1231,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)
@@ -1259,6 +1260,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
@@ -2397,8 +2411,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
@@ -3349,7 +3362,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_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_atom.c b/monetdb5/mal/mal_atom.c
--- a/monetdb5/mal/mal_atom.c
+++ b/monetdb5/mal/mal_atom.c
@@ -55,7 +55,7 @@ int malAtomProperty(MalBlkPtr mb, InstrP
assert(pci != 0);
name = getFunctionId(pci);
tpe = getTypeIndex(getModuleId(pci), (int)strlen(getModuleId(pci)),
TYPE_any);
- if (tpe < 0 || tpe >= GDKatomcnt)
+ if (tpe < 0 || tpe >= GDKatomcnt || tpe >= MAXATOMS)
return 0;
assert(pci->fcn != NULL);
switch (name[0]) {
diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c
--- a/monetdb5/mal/mal_builder.c
+++ b/monetdb5/mal/mal_builder.c
@@ -437,7 +437,7 @@ pushNilType(MalBlkPtr mb, InstrPtr q, ch
if (q == NULL)
return NULL;
idx= getTypeIndex(tpe, -1, TYPE_any);
- if( idx < 0)
+ if( idx < 0 || idx >= GDKatomcnt || idx >= MAXATOMS)
return NULL;
cst.vtype=TYPE_void;
cst.val.oval= oid_nil;
diff --git a/monetdb5/mal/mal_debugger.c b/monetdb5/mal/mal_debugger.c
--- a/monetdb5/mal/mal_debugger.c
+++ b/monetdb5/mal/mal_debugger.c
@@ -1203,8 +1203,7 @@ str
runMALDebugger(Client cntxt, Symbol s)
{
cntxt->itrace = 'n';
- runMAL(cntxt, s->def, 0, 0);
- return MAL_SUCCEED;
+ return runMAL(cntxt, s->def, 0, 0);
}
/* Utilities
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);
@@ -391,8 +393,10 @@ callString(Client c, str s, int listing)
if (old != s)
GDKfree(s);
b = (buffer *) GDKmalloc(sizeof(buffer));
- if (b == NULL)
+ if (b == NULL){
+ GDKfree(qry);
return -1;
+ }
buffer_init(b, qry, len);
if (MCpushClientInput(c, bstream_create(buffer_rastream(b,
"callString"), b->len), listing, "") < 0) {
GDKfree(b);
diff --git a/monetdb5/modules/atoms/xml.c b/monetdb5/modules/atoms/xml.c
--- a/monetdb5/modules/atoms/xml.c
+++ b/monetdb5/modules/atoms/xml.c
@@ -578,7 +578,7 @@ XMLconcat(xml *ret, xml *left, xml *righ
throw(MAL, "xml.concat", MAL_MALLOC_FAIL);
snprintf(buf, len, "A%s %s", *left + 1, *right + 1);
} else if (**left == 'C') {
- len = strlen(*left) + strlen(*right);
+ len = strlen(*left) + strlen(*right) +2;
buf = GDKmalloc(len);
if (buf == NULL)
throw(MAL, "xml.concat", MAL_MALLOC_FAIL);
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/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);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list