Update of /cvsroot/monetdb/MonetDB5/src/mal
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv15857/src/mal

Modified Files:
        mal_authorize.mx mal_client.mx mal_function.mx 
        mal_interpreter.mx mal_module.mx mal_readline.mx 
        mal_sabaoth.mx mal_scenario.mx mal_session.mx mal_type.mx 
Log Message:
propagated changes of Sunday Feb 03 2008 - Friday Feb 08 2008
from the MonetDB_5-4 branch to the development trunk


Index: mal_type.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_type.mx,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -d -r1.61 -r1.62
--- mal_type.mx 11 Jan 2008 10:41:33 -0000      1.61
+++ mal_type.mx 8 Feb 2008 22:36:31 -0000       1.62
@@ -17,6 +17,7 @@
 @a M. Kersten
 @v 0.0
 @+ Type implementation
[EMAIL PROTECTED] MAL Type System
 The MAL type module overloads the atom structure managed in the GDK
 library. 
 For the time being, we assume GDK to support at most 127 different

Index: mal_scenario.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_scenario.mx,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -d -r1.115 -r1.116
--- mal_scenario.mx     11 Jan 2008 10:41:33 -0000      1.115
+++ mal_scenario.mx     8 Feb 2008 22:36:31 -0000       1.116
@@ -170,7 +170,7 @@
 mal_export void resetScenario(Client c);
 
 mal_export Scenario findScenario(str nme);
-mal_export void updateScenario(str nme, MALfcn fcn);
+mal_export void updateScenario(str scen, str nme, MALfcn fcn);
 
 #endif /* _MAL_SCENARIO_H */
 @-
@@ -190,7 +190,7 @@
        {"mal", "mal",
         0, 0,                  /* hardwired MALinit*/
         0, 0,                  /* implicit */
-        0, 0,                  /* no initClient */
+        "MALinitClient", (MALfcn) &MALinitClient,
         "MALexitClient", (MALfcn) &MALexitClient,
         "MALreader", (MALfcn) &MALreader, 0,
         "MALparser", (MALfcn) &MALparser, 0,
@@ -235,11 +235,6 @@
 }
 
 @-
[EMAIL PROTECTED] initScen
-if( @1->@2){
-       if( @1->@2Cmd == 0) @1->@2Cmd = (MALfcn)getAddress(@3,@3,@1->@2,1);
-}
[EMAIL PROTECTED]
 A scenario is initialized only once per session. 
 All other requests are silently ignored. 
 After initialization, all state functions should have been set.
@@ -251,6 +246,7 @@
 str
 initScenario(Client c, Scenario s)
 {
+       str l = s->language;
        str msg = MAL_SUCCEED;
 
        if (s->initSystemCmd)
@@ -258,26 +254,35 @@
        /* prepare for conclicts */
        mal_set_lock(mal_contextLock, "Scenario");
        if (s->initSystem && s->initSystemCmd == 0) {
-               s->initSystemCmd = (MALfcn) getAddress(s->language, 
s->language, s->initSystem,1);
+               s->initSystemCmd = (MALfcn) getAddress(l, l, s->initSystem,1);
                if (s->initSystemCmd) {
                        msg = (*s->initSystemCmd) (c);
                } else {
                        char buf[BUFSIZ];
-                       snprintf(buf,BUFSIZ,"%s.init",s->language);
+                       snprintf(buf,BUFSIZ,"%s.init", l);
                        msg = createException(MAL, buf, "Scenario not 
initialized"); 
                }
        }
        /* does the return below unset the lock? */
        if (msg)
                return msg;
-       @:initScen(s, exitSystem,s->language)@
-       @:initScen(s, initClient,s->language)@
-       @:initScen(s, exitClient,s->language)@
-       @:initScen(s, reader,s->language)@
-       @:initScen(s, parser,s->language)@
-       @:initScen(s, optimizer,s->language)@
-       @:initScen(s, tactics,s->language)@
-       @:initScen(s, engine,s->language)@
+
+       if (s->exitSystem && s->exitSystemCmd == 0) 
+               s->exitSystemCmd = (MALfcn) getAddress(l, l, s->exitSystem,1);
+       if (s->initClient && s->initClientCmd == 0) 
+               s->initClientCmd = (MALfcn) getAddress(l, l, s->initClient,1);
+       if (s->exitClient && s->exitClientCmd == 0) 
+               s->exitClientCmd = (MALfcn) getAddress(l, l, s->exitClient,1);
+       if (s->reader && s->readerCmd == 0) 
+               s->readerCmd = (MALfcn) getAddress(l, l, s->reader,1);
+       if (s->parser && s->parserCmd == 0) 
+               s->parserCmd = (MALfcn) getAddress(l, l, s->parser,1);
+       if (s->optimizer && s->optimizerCmd == 0) 
+               s->optimizerCmd = (MALfcn) getAddress(l, l, s->optimizer,1);
+       if (s->tactics && s->tacticsCmd == 0) 
+               s->tacticsCmd = (MALfcn) getAddress(l, l, s->tactics,1);
+       if (s->engine && s->engineCmd == 0) 
+               s->engineCmd = (MALfcn) getAddress(l, l, s->engine,1);
        mal_unset_lock(mal_contextLock, "Scenario");
        return(fillScenario(c, s));
 }
@@ -291,23 +296,29 @@
 @-
 The Monet debugger provides an option to inspect the scenarios currently
 defined.
[EMAIL PROTECTED] scenarioCommand
-    if( scen->@1) stream_printf(f," \"%s%s\",",scen->@1,
-        (scen->@1Cmd?"":"?"));
-    else stream_printf(f," nil,");
+
 @c
+static void
+print_scenarioCommand(stream *f, str cmd, void *funcptr)
+{
+    if (cmd) 
+       stream_printf(f," \"%s%s\",", cmd, (funcptr?"":"?"));
+    else 
+       stream_printf(f," nil,");
+}
+
 void
 showScenario(stream *f, Scenario scen)
 {
        stream_printf(f, "[ \"%s\",", scen->name);
-       @:scenarioCommand(initSystem)@
-       @:scenarioCommand(exitSystem)@
-       @:scenarioCommand(initClient)@
-       @:scenarioCommand(exitClient)@
-       @:scenarioCommand(parser)@
-       @:scenarioCommand(optimizer)@
-       @:scenarioCommand(tactics)@
-       @:scenarioCommand(engine)@
+       print_scenarioCommand(f, scen->initSystem, scen->initSystemCmd);
+       print_scenarioCommand(f, scen->exitSystem, scen->exitSystemCmd);
+       print_scenarioCommand(f, scen->initClient, scen->initClientCmd);
+       print_scenarioCommand(f, scen->exitClient, scen->exitClientCmd);
+       print_scenarioCommand(f, scen->parser, scen->parserCmd);
+       print_scenarioCommand(f, scen->optimizer, scen->optimizerCmd);
+       print_scenarioCommand(f, scen->tactics, scen->tacticsCmd);
+       print_scenarioCommand(f, scen->engine, scen->engineCmd);
        stream_printf(f, "]\n");
 }
 
@@ -329,34 +340,55 @@
 prelude code.
 Beware that after the update, we also have to adjust the client records.
 They contain a copy of the functions addresses.
[EMAIL PROTECTED] updLine
-if( scen->@1 && strcmp(scen->@1,nme) == 0){
-       Client c1;
-       scen->@1Cmd = fcn;
-    for(c1 = mal_clients; c1 < mal_clients+MAL_MAXCLIENTS; c1++) 
-    if(@2 && c1->scenario && strcmp(c1->scenario,scen->name)==0) 
-               c1->[EMAIL PROTECTED] fcn;
-       else
-    if(@2 && c1->oldscenario && strcmp(c1->oldscenario,scen->name)==0) 
-               c1->[EMAIL PROTECTED] fcn;
-}
 @c
 void
-updateScenario(str nme, MALfcn fcn)
+updateScenario(str nme, str fnme, MALfcn fcn)
 {
-       int i;
-       Scenario scen = scenarioRec;
+       int phase = -1;
+       Scenario scen = findScenario(nme);
 
-       for (i = 0; i < MAXSCEN && scen->name; i++, scen++) {
-               @:updLine(initSystem, 0)@
-               @:updLine(exitSystem, 0)@
-               @:updLine(initClient, MAL_SCENARIO_INITCLIENT)@
-               @:updLine(exitClient, MAL_SCENARIO_EXITCLIENT)@
-               @:updLine(reader, MAL_SCENARIO_READER)@
-               @:updLine(parser, MAL_SCENARIO_PARSER)@
-               @:updLine(optimizer, MAL_SCENARIO_OPTIMIZE)@
-               @:updLine(tactics, MAL_SCENARIO_SCHEDULER)@
-               @:updLine(engine, MAL_SCENARIO_ENGINE)@
+       if (scen->initSystem && strcmp(scen->initSystem, fnme) == 0) 
+               scen->initSystemCmd = fcn;
+       if (scen->exitSystem && strcmp(scen->exitSystem, fnme) == 0) 
+               scen->exitSystemCmd = fcn;
+       if (scen->initClient && strcmp(scen->initClient, fnme) == 0) {
+               scen->initClientCmd = fcn;
+               phase = MAL_SCENARIO_INITCLIENT;
+       }
+       if (scen->exitClient && strcmp(scen->exitClient, fnme) == 0) {
+               scen->exitClientCmd = fcn;
+               phase = MAL_SCENARIO_EXITCLIENT;
+       }
+       if (scen->reader && strcmp(scen->reader, fnme) == 0) {
+               scen->readerCmd = fcn;
+               phase = MAL_SCENARIO_READER;
+       }
+       if (scen->parser && strcmp(scen->parser, fnme) == 0) {
+               scen->parserCmd = fcn;
+               phase = MAL_SCENARIO_PARSER;
+       }
+       if (scen->optimizer && strcmp(scen->optimizer, fnme) == 0) {
+               scen->optimizerCmd = fcn;
+               phase = MAL_SCENARIO_OPTIMIZE;
+       }
+       if (scen->tactics && strcmp(scen->tactics, fnme) == 0) {
+               scen->tacticsCmd = fcn;
+               phase = MAL_SCENARIO_SCHEDULER;
+       }
+       if (scen->engine && strcmp(scen->engine, fnme) == 0) {
+               scen->engineCmd = fcn;
+               phase = MAL_SCENARIO_ENGINE;
+       }
+       if (phase != -1) {
+               Client c1;
+
+               for(c1 = mal_clients; c1 < mal_clients+MAL_MAXCLIENTS; c1++) 
+                       if (c1->scenario && 
+                           strcmp(c1->scenario, scen->name) == 0)
+                               c1->phase[phase] = fcn;
+                       if (c1->oldscenario && 
+                           strcmp(c1->oldscenario, scen->name) == 0)
+                               c1->oldphase[phase] = fcn;
        }
 }
 
@@ -549,25 +581,16 @@
 
 @-
 @{
[EMAIL PROTECTED] runPhase
-       c->stage= @1;
-       if(msg== MAL_SUCCEED && c->[EMAIL PROTECTED] && ((msg= (str) 
(*c->[EMAIL PROTECTED])(c)) ||  c->mode <= FINISHING)){
-               /* error occurred */
-#ifdef MAL_SCENARIO_DEBUG
-               stream_printf(GDKstdout,"Error in @1 phase\n");
-               if( /*c->mode > FINISHING &&*/ msg )
-                       stream_printf(GDKstdout,"%s",msg);
-#endif
-               if (msg) {
-                       /* FIXME: why is the error not handed back to the user 
here? */
-                       /* for later */
-                       int r= strcmp(msg,"MALException:client.quit:Server 
stopped.")==0;
-                       if( r ) break;
-                       GDKfree(msg); 
-                       msg=0;
-               }
-               continue;
-       }
[EMAIL PROTECTED]
+static str 
+runPhase(Client c, int phase)
+{
+       str msg = MAL_SUCCEED;
+       if (c->phase[c->stage = phase]) 
+           return msg = (str) (*c->phase[phase])(c); 
+       return msg;
+}
+
 @-
 Access control enforcement. Except for the server owner
 running a scenario should be explicitly permitted.
@@ -581,20 +604,30 @@
        struct tms t0,t1;
 #endif
 
-       if (c->phase[MAL_SCENARIO_INITCLIENT])
-               (*c->phase[MAL_SCENARIO_INITCLIENT]) (c);
-       while (c->mode > FINISHING) {
-               msg = MAL_SUCCEED;
-               @:runPhase(MAL_SCENARIO_READER)@
+       while (c->mode > FINISHING || msg != MAL_SUCCEED) {
+               if (!c->state[0] &&
+                   (msg = runPhase(c, MAL_SCENARIO_INITCLIENT)) != MAL_SUCCEED)
+                       continue;
+               if (c->mode <= FINISHING || 
+                   (msg = runPhase(c, MAL_SCENARIO_READER)) != MAL_SUCCEED)
+                       continue;
                c->lastcmd= time(0);
                start= GDKusec();
 #ifdef HAVE_TIMES
                times(&t0);
 #endif
-               @:runPhase(MAL_SCENARIO_PARSER)@
-               @:runPhase(MAL_SCENARIO_OPTIMIZE)@
-               @:runPhase(MAL_SCENARIO_SCHEDULER)@
-               @:runPhase(MAL_SCENARIO_ENGINE)@
+               if (c->mode <= FINISHING ||
+                   (msg = runPhase(c, MAL_SCENARIO_PARSER)) != MAL_SUCCEED)
+                       continue;
+               if (c->mode <= FINISHING || 
+                   (msg = runPhase(c, MAL_SCENARIO_OPTIMIZE)) != MAL_SUCCEED)
+                       continue;
+               if (c->mode <= FINISHING || 
+                    (msg = runPhase(c, MAL_SCENARIO_SCHEDULER)) != MAL_SUCCEED)
+                       continue;
+               if (c->mode <= FINISHING || 
+                   (msg = runPhase(c, MAL_SCENARIO_ENGINE)) != MAL_SUCCEED)
+                       continue;
                c->actions++;
                start = GDKusec()-start;
                c->totaltime += start;

Index: mal_authorize.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_authorize.mx,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- mal_authorize.mx    11 Jan 2008 10:41:31 -0000      1.56
+++ mal_authorize.mx    8 Feb 2008 22:36:31 -0000       1.57
@@ -80,6 +80,7 @@
 #endif /* _MAL_AUTHORIZE_H */
 @-
 @c
[EMAIL PROTECTED]
 #include "mal_config.h"
 #include "mal_authorize.h"
 #ifdef HAVE_UNISTD_H

Index: mal_function.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_function.mx,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -d -r1.153 -r1.154
--- mal_function.mx     14 Jan 2008 07:49:35 -0000      1.153
+++ mal_function.mx     8 Feb 2008 22:36:31 -0000       1.154
@@ -1,4 +1,3 @@
-@' The contents of this file are subject to the MonetDB Public License
 @' Version 1.1 (the "License"); you may not use this file except in
 @' compliance with the License. You may obtain a copy of the License at
 @' http://monetdb.cwi.nl/Legal/MonetDBLicense-1.1.html
@@ -31,7 +30,7 @@
     io.print(msg);
     msg:= "done";
     return msg;
-end user.hellowWorld;
+end user.helloWorld;
 @end example
 
 The module name designates the collection to which this function

Index: mal_session.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_session.mx,v
retrieving revision 1.149
retrieving revision 1.150
diff -u -d -r1.149 -r1.150
--- mal_session.mx      11 Jan 2008 10:41:33 -0000      1.149
+++ mal_session.mx      8 Feb 2008 22:36:31 -0000       1.150
@@ -23,7 +23,7 @@
 consist of include statements to load modules of general interest.
 The startup script is ran as user Admin.
 Its location is described in Monet configuration file.
-The default location is:  !!!###%%% TODO %%%###!!! <-- FIXME
+The default location is:  !!!%%% TODO %%%!!! <-- FIXME
 
 It may overwritten using a command line argument.
 
@@ -40,6 +40,7 @@
 mal_export void MSscheduleClient(str command, str challenge, bstream *fin, 
stream *fout);
 
 mal_export str MALreader(Client c);
+mal_export str MALinitClient(Client c);
 mal_export str MALexitClient(Client c);
 mal_export str MALparser(Client c);
 mal_export str MALengine(Client c);
@@ -515,6 +516,14 @@
        MSresetVariables(c->curprg->def, 0, oldstate.vtop);
 @c
 str
+MALinitClient(Client c)
+{
+       assert (c->state[0] == NULL);
+       c->state[0] = c;
+       return NULL;
+}
+
+str
 MALexitClient(Client c)
 {
        if (c->glb) {
@@ -522,7 +531,7 @@
                GDKfree(c->glb);
        }
        c->glb = 0;
-       return 0;
+       return NULL;
 }
 
 str

Index: mal_client.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_client.mx,v
retrieving revision 1.163
retrieving revision 1.164
diff -u -d -r1.163 -r1.164
--- mal_client.mx       11 Jan 2008 10:41:31 -0000      1.163
+++ mal_client.mx       8 Feb 2008 22:36:31 -0000       1.164
@@ -61,7 +61,7 @@
 @{
 The routines defined below provide management of the client
 administration. Routines dealing with serviceing requests
-are located in mal\_startup.
+are located in mal_startup.
 @h
 #ifndef _MAL_CLIENT_H_
 #define _MAL_CLIENT_H_

Index: mal_module.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_module.mx,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -d -r1.66 -r1.67
--- mal_module.mx       11 Jan 2008 10:41:32 -0000      1.66
+++ mal_module.mx       8 Feb 2008 22:36:31 -0000       1.67
@@ -624,11 +624,12 @@
 in texi format for inclusion in the documetation.
 @c
 void dumpManualOverview(stream *f, Module s, int recursive){
-       int j,z,rows;
+       int j,z,rows,cols;
        Symbol t;
        InstrPtr sig;
        Module list[256]; int k, top=0, ftop, fnd;
        InstrPtr fcn[5000];
+       int r, c, *x = NULL, x_sze = 0;
 
 
        if(s==NULL || f==NULL){
@@ -640,6 +641,7 @@
        if(top>1) qsort(list, top, sizeof(Module), 
                (int(*)(const void *, const void *))cmpModName);
 
+       cols = 4;
        stream_printf(f,"@multitable @columnfractions .24 .24 .24 .24\n");
        for(k=0;k<top;k++){
                s= list[k];
@@ -666,23 +668,47 @@
                         sig= fcn[j]; fcn[j]=fcn[z]; fcn[z]= sig;
                }
                stream_printf(f,"@" "item\n");
-               rows = ftop/4;
-               rows += (ftop %4) ?1:0;
-               for(z=0; z<rows; z++){
-                       stream_printf(f,"@" "item\n%s.%s\n",
-                               getModuleId(fcn[z]), getFunctionId(fcn[z]));
-                       if( z+rows <ftop)
-                       stream_printf(f,"@" "tab\n%s.%s\n",
-                               getModuleId(fcn[z+rows]), 
getFunctionId(fcn[z+rows]));
-                       if(z+rows*2 <ftop)
-                       stream_printf(f,"@" "tab\n%s.%s\n",
-                               getModuleId(fcn[z+rows*2]), 
getFunctionId(fcn[z+rows*2]));
-                       if(z+rows*3 <ftop)
-                       stream_printf(f,"@" "tab\n%s.%s\n",
-                               getModuleId(fcn[z+rows*3]), 
getFunctionId(fcn[z+rows*3]));
+               rows = (ftop + cols - 1) / cols;
+               if (x == NULL) {
+                       /* 2x* to allow for empty/skipped fields/columns */
+                       x_sze = 2 * cols * rows;
+                       x = (int*) GDKmalloc(x_sze * sizeof(int));
+               } else if (2 * cols * rows > x_sze) {
+                       x_sze = 2 * cols * rows;
+                       x = (int*) GDKrealloc(x, x_sze * sizeof(int));
+               }
+               assert(x != NULL);
+               for (z = 0; z < rows; z++) {
+                       x[cols * z] = z;
+               }
+               for (c = 1; c < cols; c++) {
+                       for (r = 0; r < rows; r++) {
+                               int i = (cols * r) + c - 1;
+                               if (z < ftop && 
+                                   (x[i] < 0 || strlen(getModuleId(fcn[x[i]])) 
+ strlen(getFunctionId(fcn[x[i]])) < (size_t)(80 / cols))) {
+                                       x[i+1] = z++;
+                               } else {
+                                       /* HACK to avoid long names running 
into next column in printed version */
+                                       x[i+1] = -1;
+                               }
+                       }
+               }
+               z = 0;
+               for (r = 0; r < rows; r++) {
+                       for (c = 0; c < cols; c++) {
+                               str it[] = {"item", "tab"};
+                               stream_printf(f,"@" "%s\n", it[(c > 0)]);
+                               if (x[z] != -1) {
+                                       stream_printf(f,"%s.%s\n",
+                                               getModuleId(fcn[x[z]]), 
getFunctionId(fcn[x[z]]));
+                               }
+                               z++;
+                       }
                }
        }
        stream_printf(f,"@end multitable\n");
+       if (x != NULL)
+               GDKfree(x);
 }
 @-
 The manual help overview merely lists the mod.function names
@@ -695,6 +721,8 @@
        Module list[256]; int k, ftop, fnd,top=0;
        InstrPtr fcn[5000];
        str hlp[5000],msg;
+       str hlp_texi = NULL;
+       size_t hlp_texi_len = 0;
 
 
        if(s==NULL || f==NULL){
@@ -740,11 +768,45 @@
                for(z=0; z<ftop; z++){
                        stream_printf(f,"@" "item %s.%s\n",
                                getModuleId(fcn[z]), getFunctionId(fcn[z]));
-                       if( hlp[z] )
-                               stream_printf(f,"@" "tab %s\n", hlp[z]);
+                       if( hlp[z] ) {
+                               str hlp_ = hlp[z];
+                               size_t hlp_len = 2*strlen(hlp[z]) + 1;
+                               if (hlp_texi == NULL) {
+                                       hlp_texi = (str) GDKmalloc(hlp_len);
+                                       hlp_texi_len = hlp_len;
+                               } else if (hlp_len > hlp_texi_len) {
+                                       hlp_texi = (str) GDKrealloc(hlp_texi, 
hlp_len);
+                                       hlp_texi_len = hlp_len;
+                               }
+                               if (hlp_texi != NULL) {
+                                       str i = hlp[z];
+                                       str o = hlp_texi;
+                                       char c;
+                                       while ((c = (*i++))) {
+                                               /* quote special texi 
characters with '@' */
+                                               switch (c) {
+                                               case '@':
+                                               case '{':
+                                               case '}':
+                                                       *o++ = '@';
+                                                       break;
+                                               }
+                                               *o++ = c;
+                                       }
+                                       *o++ = '\0';
+                                       hlp_ = hlp_texi;
+                               }
+                               if (strlen(getModuleId(fcn[z])) + 
strlen(getFunctionId(fcn[z])) >= 20) {
+                                       /* HACK to avoid long names running 
into help text in printed version */
+                                       stream_printf(f,"@" "item\n");
+                               }
+                               stream_printf(f,"@" "tab %s\n", hlp_);
+                       }
                }
        }
        stream_printf(f,"@end multitable\n");
+       if (hlp_texi != NULL)
+               GDKfree(hlp_texi);
 }
 @-
 Summarize the type resolution table.

Index: mal_sabaoth.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_sabaoth.mx,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- mal_sabaoth.mx      11 Jan 2008 10:41:33 -0000      1.41
+++ mal_sabaoth.mx      8 Feb 2008 22:36:31 -0000       1.42
@@ -36,6 +36,7 @@
 @-
 
 @c
[EMAIL PROTECTED]
 #include "mal_config.h"
 #include "mal_sabaoth.h"
 #include <stdio.h> /* fseek, rewind */
@@ -766,6 +767,7 @@
 
        return(MAL_SUCCEED);
 }
[EMAIL PROTECTED]
 
 @h
 #endif

Index: mal_interpreter.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_interpreter.mx,v
retrieving revision 1.210
retrieving revision 1.211
diff -u -d -r1.210 -r1.211
--- mal_interpreter.mx  7 Feb 2008 08:12:44 -0000       1.210
+++ mal_interpreter.mx  8 Feb 2008 22:36:31 -0000       1.211
@@ -462,7 +462,7 @@
 Preferrably we should introduce a itrace flag PROFILE
 We rely on optimizing compilers to remove the redundant code.
 @c
-       if( malProfileMode == 0 && cntxt->itrace==0){
+       if( malProfileMode == 0 && cntxt->itrace==0 && cntxt->flags == 0 && 
GDKdebug == 0){
                while(stkpc < mb->stop && stkpc != stoppc ){
                        pci = getInstrPtr(mb,stkpc);
                        if( malProfileMode + cntxt->itrace)

Index: mal_readline.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_readline.mx,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- mal_readline.mx     11 Jan 2008 10:41:33 -0000      1.57
+++ mal_readline.mx     8 Feb 2008 22:36:31 -0000       1.58
@@ -14,7 +14,7 @@
 @' Portions created by CWI are Copyright (C) 1997-2008 CWI.
 @' All Rights Reserved.
 @- Online help
-The textual interface @value{mclient} supports a limited
+The textual interface @sc{mclient} supports a limited
 form of online help commands.
 The argument is a (partial) operator call,
 which is looked up in the symbol table.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to