Changeset: 737634ffb010 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=737634ffb010
Modified Files:
        HowToStart.rst
        clients/mapiclient/mclient.c
        clients/mapiclient/msqldump.c
        configure.ag
        monetdb5/modules/mal/mal_mapi.c
        tools/merovingian/client/monetdb.c
Branch: Jan2014
Log Message:

merge changes


diffs (truncated from 382 to 300 lines):

diff --git a/HowToStart.rst b/HowToStart.rst
--- a/HowToStart.rst
+++ b/HowToStart.rst
@@ -95,13 +95,22 @@ iconv
        On Ubuntu, you can search with `apt-file` what provides these
        files:
 
-       $ apt-file search iconv.m4
+       ``$ apt-file search iconv.m4``
        gettext: /usr/share/aclocal/iconv.m4
        gnulib: /usr/share/gnulib/m4/iconv.m4
 
        The .m4 that usually works is in gettext. Simply run,
 
-       $ sudo apt-get install gettext
+       ``$ sudo apt-get install gettext``
+
+       On Fedora, you can search with `yum`:
+
+       ``$ yum provides /usr/share/aclocal/iconv.m4``
+
+       This shows the file is provided by the gettext-devel package.
+       Run
+
+       ``$ sudo yum install gettext-devel``
 
 standard software development tools
        To compile MonetDB, you also need to have the following
@@ -109,16 +118,15 @@ standard software development tools
        use on you system:
 
        - a C compiler (e.g. GNU's ``gcc``);
-       - GNU ``make`` (``gmake``) (native ``make`` on, e.g., IRIX and Solaris
-         usually don't work).
-
-       The following are not needed when you start with the source
-       distribution:
-
-       - a C++ compiler (e.g. GNU's ``g++``);
+       - GNU ``make`` (``gmake``) (native ``make`` on, e.g., IRIX and
+         Solaris usually don't work);
        - a lexical analyzer generator (e.g., ``lex`` or ``flex``);
        - a parser generator (e.g., ``yacc`` or ``bison``).
 
+       If ``lex`` and ``flex`` are missing, you won't be able to
+       build the jaql front end.  If ``yacc`` and ``bison`` are
+       missing, you won't be able to build the SQL front end.
+
        The following are optional.  They are checked for during
        configuration and if they are missing, the feature is just
        missing:
@@ -127,21 +135,22 @@ standard software development tools
        - php
 
 libxml2
-    The XML parsing library `libxml2`__ is used by
-    the xml module of monetdb5.
+       The XML parsing library `libxml2`__ is used by the xml module
+       of monetdb5.
 
-    MonetDB5 cannot be compiled without libxml2.  Current Linux
-    distributions all come with libxml2.
+       MonetDB5 cannot be compiled without libxml2.  Current Linux
+       distributions all come with libxml2.
 
 pcre
-    The Perl Compatible Regular Expressions library `pcre`__ is used by
-    monetdb5 and sql.  Most prominently, complex SQL LIKE expressions are
-    evaluated with help of the pcre library.
+       The Perl Compatible Regular Expressions library `pcre`__ is
+       used by monetdb5 and sql.  Most prominently, complex SQL LIKE
+       expressions are evaluated with help of the pcre library.
 
 openssl
-    The `OpenSSL`__ toolkit implementing SSL v2/v3 and TLS protocols is used
-    for its with full-strength world-wide cryptography functions.  The
-    client-server login procedures make use of these functions.
+       The `OpenSSL`__ toolkit implementing SSL v2/v3 and TLS
+       protocols is used for its with full-strength world-wide
+       cryptography functions.  The client-server login procedures
+       make use of these functions.
 
 __ http://dev.monetdb.org/downloads/sources/
 __ http://www.gnu.org/software/autoconf/
@@ -194,7 +203,7 @@ development sources on your computer.
  hg clone http://dev.monetdb.org/hg/MonetDB
 
 This will create the directory MonetDB in your current working directory
-with underneath all subcomponents.  
+with underneath all subcomponents.
 
 
 Bootstrap, Configure and Make
@@ -227,7 +236,9 @@ where ``...`` is replaced with the (abso
 
 The directory where you execute ``configure`` is the place where all
 intermediate source and object files are generated during compilation
-via ``make``.
+via ``make``.  It is useful to have this be a new directory so that
+there is an easy way to remove all intermediates in case you want to
+rebuild (just empty or remove the directory).
 
 By default, MonetDB is installed in ``/usr/local``.  To choose another
 target directory, you need to call
@@ -238,10 +249,18 @@ target directory, you need to call
 
 Some other useful ``configure`` options are:
 
---enable-debug          enable full debugging default=[see `Configure defaults 
and recommendations`_ below]
---enable-optimize       enable extra optimization default=[see `Configure 
defaults and recommendations`_ below]
---enable-assert         enable assertions in the code default=[see `Configure 
defaults and recommendations`_ below]
---enable-strict         enable strict compiler flags default=[see `Configure 
defaults and recommendations`_ below]
+--enable-debug          enable full debugging
+                       default=[see `Configure defaults and
+                       recommendations`_ below]
+--enable-optimize       enable extra optimization
+                       default=[see `Configure defaults and
+                       recommendations`_ below]
+--enable-assert         enable assertions in the code
+                       default=[see `Configure defaults and
+                       recommendations`_ below]
+--enable-strict         enable strict compiler flags
+                       default=[see `Configure defaults and
+                       recommendations`_ below]
 
 You can also add options such as ``CC=<compiler>`` to specify the
 compiler and compiler flags to use.
@@ -251,35 +270,21 @@ Use ``configure --help`` to find out mor
 Configure defaults and recommendations
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-For convenience of both developers and users as well as to comply even more
-with open source standards, we now set/use the following defaults for the
-configure options
+For convenience of both developers and users, we use the following
+defaults for the configure options.
 
-::
+When compiling from Mercurial sources (as mainly done by developers)::
 
- --enable-strict, --enable-assert, --enable-debug, --enable-optimize
+ --enable-strict --enable-assert --enable-debug --disable-optimize
 
-When compiling from Mercurial sources
-(as mainly done by developers):
+When compiling from the pre-packages source distribution::
 
-::
+ --disable-strict --disable-assert --disable-debug --disable-optimize
 
- strict=yes  assert=yes  debug=yes  optimize=no (*)
+When building a binary distribution, we use::
 
-When compiling from packaged/distributed sources (i.e., tarballs)
-(as mainly done by users):
+ --disable-strict --disable-assert --disable-debug --enable-optimize
 
-::
-
- strict=no   assert=no   debug=no   optimize=no (*)
-
-For building binary distributions (RPMs):
-
-::
-
- strict=no   assert=no   debug=no   optimize=yes
-
-``(*)``
 IMPORTANT NOTE:
 
 Since ``--enable-optimize=yes`` is not the default for any case except
@@ -290,7 +295,7 @@ scratch, *explicitly configured* with
 
  --enable-debug=no --enable-assert=no --enable-optimize=yes
 
-in case you want/need to run any performance experiments with MonetDB!
+in case you want to run any performance experiments with MonetDB!
 
 Please note:
 ``--enable-X=yes`` is equivalent to ``--enable-X``, and
@@ -307,24 +312,7 @@ command
  make
 
 to compile the source code.  Please note that parallel make
-runs (e.g. ``make -j2``) are currently known to be unsuccessful.
-
-Testing the Build
-~~~~~~~~~~~~~~~~~
-
-This step is optional and only relevant for the packages clients,
-MonetDB5 and sql.
-
-If ``make`` went successfully, you can try
-
-::
-
- make check
-
-This will perform a large number of tests, some are unfortunately
-still expected to fail, but most should go successfully.  At the end
-of the output there is a reference to an HTML file which is created by
-the test process that shows the test results.
+runs (e.g. ``make -j2``) are fully supported.
 
 Install
 ~~~~~~~
@@ -343,8 +331,7 @@ privileges.
 Testing the Installation
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
-This step is optional and only relevant for the packages clients,
-MonetDB5 and sql.
+This step is optional.
 
 Make sure that *prefix*/bin is in your ``PATH``.  Then
 in the package top-level directory issue the command
@@ -363,13 +350,10 @@ using a Mercurial checkout; see
 
 for more options).
 
-This should produce much the same output as ``make check`` above, but
-uses the installed version of MonetDB.
-
 You need write permissions in part of the installation directory for
 this command: it will create subdirectories ``var/dbfarm`` and
-``Tests``.
-
+``Tests``, although there are options to ``Mtest.py`` to change the
+paths.
 
 Usage
 -----
@@ -402,8 +386,7 @@ for details.
 
 At the ``mclient`` prompt some extra commands are available.  Type
 a single question mark to get a list of options.  Note that one of the
-options is to read input from a file using ``<``.
-
+options is to read input from a file using ``\<``.
 
 Troubleshooting
 ---------------
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2002,14 +2002,12 @@ doFile(Mapi mid, const char *file, int u
                if (line == NULL) {
                        /* end of file */
                        if (hdl == NULL) {
-                               if (line != NULL)
-                                       continue;
                                /* nothing more to do */
+                               free(buf);
                                goto bailout;
                        }
 
                        /* hdl != NULL, we should finish the current query */
-                       line = NULL;
                        length = 0;
                } else
                        length = strlen(line);
diff --git a/clients/mapiclient/msqldump.c b/clients/mapiclient/msqldump.c
--- a/clients/mapiclient/msqldump.c
+++ b/clients/mapiclient/msqldump.c
@@ -182,6 +182,7 @@ main(int argc, char **argv)
                        host = optarg;
                        break;
                case 'p':
+                       assert(optarg != NULL);
                        port = atoi(optarg);
                        break;
                case 'd':
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -396,7 +396,7 @@ case "$CC_version" in
        ;;
 *clang*)
        dnl  `clang -dumpversion` reports the original/old gcc version it is 
based on
-       gcc_ver="`$CC -v 2>&1 | grep -w '[[Vv]]ersion [[0-9]]\+\.[[0-9]]\+' | 
sed 's|^.*[[Vv]]ersion \([[0-9]]\+\(\.[[0-9]]\+\)\+\).*$|\1|'`"
+       gcc_ver="`$CC -v 2>&1 | grep -w '[[Vv]]ersion [[0-9]]\+\.[[0-9]]\+' | 
sed 's|^.*[[Vv]]ersion 
\([[0-9]][[0-9]]*\(\.[[0-9]][[0-9]]*\)\(\.[[0-9]][[0-9]]*\)*\).*$|\1|'`"
        CC_ver="clang-$gcc_ver"
        ;;
 *)
@@ -591,15 +591,18 @@ yes-*-*)
        MCHECK_ADD_FLAG([-Wmissing-include-dirs])
        MCHECK_ADD_FLAG([-Wlogical-op])
 
-       dnl  With clang 2.8 & 3.3 (no other tested, yet) and gcc < 4.5
+       dnl  With clang 2.8, 3.3, 5.0 (no other tested) and gcc < 4.5
        dnl  (tested 3.4.6, 4.2.1, 4.3.2, 4.4.4, 4.4.5, 4.5.1, 4.5.2),
        dnl  "-Wunreachable-code" triggers numerous "will never be
        dnl  executed" (at least) in our stream code, mostly (if
        dnl  not all) false positives, though, as well as in
        dnl  YACC/BISON-generated code; thus, we do not use
-       dnl  "-Wunreachable-code" with clang 2.8 and gcc < 4.5 .
+       dnl  "-Wunreachable-code" with clang and gcc < 4.5 .
+       dnl  At the same time, Apple deprecated OpenSSL in favour of
+       dnl  their own CommonCrypto API.  We don't mind about that.
        case "$CC_ver" in
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to