Changeset: 38ff580ace6f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=38ff580ace6f
Modified Files:
        clients/Tests/exports.stable.out
        monetdb5/mal/Tests/tst120a.malC
        monetdb5/mal/Tests/tst120a.stable.out
        monetdb5/mal/Tests/tst120b.malC
        monetdb5/mal/Tests/tst120b.stable.out
        monetdb5/mal/Tests/tst804.stable.err
        monetdb5/mal/mal.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_private.h
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_scenario.c
        monetdb5/optimizer/opt_mergetable.c
        sql/backends/monet5/Tests/All
        sql/backends/monet5/sql_execute.c
        sql/test/Dependencies/Tests/Dependencies.stable.out
        sql/test/Dependencies/Tests/Dependencies.stable.out.int128
        testing/Mtest.py.in
        tools/mserver/mserver5.c
Branch: jit
Log Message:

Merged with default branch.


diffs (truncated from 461 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -2224,7 +2224,6 @@ str mal_quote(const char *msg, size_t si
 MT_Lock mal_remoteLock;
 void mal_resource_reset(void) __attribute__((__visibility__("hidden")));
 void mal_runtime_reset(void) __attribute__((__visibility__("hidden")));
-void mal_scenario_reset(void) __attribute__((__visibility__("hidden")));
 int mal_trace;
 void mal_unquote(char *msg);
 str manifoldRef;
diff --git a/monetdb5/mal/Tests/tst120a.malC b/monetdb5/mal/Tests/tst120a.malC
--- a/monetdb5/mal/Tests/tst120a.malC
+++ b/monetdb5/mal/Tests/tst120a.malC
@@ -1,2 +1,5 @@
 module top;
-function first(i:sht):sht; return first:= 0:sht; end first;
+function first(i:int):int; return first:= 0:int; end first;
+i:=first(1);
+i:=top.first(1);
+io.print(i);
diff --git a/monetdb5/mal/Tests/tst120a.stable.out 
b/monetdb5/mal/Tests/tst120a.stable.out
--- a/monetdb5/mal/Tests/tst120a.stable.out
+++ b/monetdb5/mal/Tests/tst120a.stable.out
@@ -29,6 +29,7 @@ Ready.
 # 15:36:13 >  "mclient" "-lmal" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-16148" "--port=33827"
 # 15:36:13 >  
 
+[ 0    ]
 
 # 15:36:13 >  
 # 15:36:13 >  "Done."
diff --git a/monetdb5/mal/Tests/tst120b.malC b/monetdb5/mal/Tests/tst120b.malC
--- a/monetdb5/mal/Tests/tst120b.malC
+++ b/monetdb5/mal/Tests/tst120b.malC
@@ -1,3 +1,9 @@
 module bottom;
 function first(i:str):int; c:=1; return c; end first;
 function second(i:str):int; return second:=1; end second;
+
+i:= bottom.first("");
+io.print(i);
+
+i:= bottom.second("");
+io.print(i);
diff --git a/monetdb5/mal/Tests/tst120b.stable.out 
b/monetdb5/mal/Tests/tst120b.stable.out
--- a/monetdb5/mal/Tests/tst120b.stable.out
+++ b/monetdb5/mal/Tests/tst120b.stable.out
@@ -29,6 +29,8 @@ Ready.
 # 15:36:13 >  "mclient" "-lmal" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-16148" "--port=33827"
 # 15:36:13 >  
 
+[ 1    ]
+[ 1    ]
 
 # 15:36:14 >  
 # 15:36:14 >  "Done."
diff --git a/monetdb5/mal/Tests/tst804.stable.err 
b/monetdb5/mal/Tests/tst804.stable.err
--- a/monetdb5/mal/Tests/tst804.stable.err
+++ b/monetdb5/mal/Tests/tst804.stable.err
@@ -42,8 +42,6 @@ QUERY = # test definiton of a function i
         end foo;
 ERROR = !SyntaxException:parseError:function wrong.message():void;
         !SyntaxException:parseError:                      ^<module> name not 
defined
-        !SyntaxException:parseError:   io.print("shouldn't come here");
-        !SyntaxException:parseError:^';' expected
         !SyntaxException:parseError:end message;
         !SyntaxException:parseError:   ^non matching end label
         !TypeException:user.foo[1]:'wrong.message' undefined in:     
wrong.message();
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -141,14 +141,11 @@ void mserver_reset(void)
        mal_factory_reset();
        mal_dataflow_reset();
        THRdel(mal_clients->mythread);
-       GDKreset(0);    // terminate all other threads
        mal_client_reset();
-       mal_module_reset();
-       mal_module_reset();
        mal_linker_reset();
        mal_resource_reset();
        mal_runtime_reset();
-       mal_scenario_reset();
+       mal_module_reset();
 
        memset((char*)monet_cwd,0, sizeof(monet_cwd));
        monet_memory = 0;
@@ -156,6 +153,7 @@ void mserver_reset(void)
        mal_trace = 0;
        /* No need to clean up the namespace, it will simply be extended
         * upon restart mal_namespace_reset(); */
+       GDKreset(0);    // terminate all other threads
 }
 
 
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -1066,6 +1066,11 @@ fcnHeader(Client cntxt, int kind)
        if (currChar(cntxt) == '.') {
                nextChar(cntxt); /* skip '.' */
                modnme = fnme;
+               if (isModuleDefined(cntxt->nspace, modnme) == FALSE) {
+                       parseError(cntxt, "<module> name not defined\n");
+                       skipToEnd(cntxt);
+                       return curBlk;
+               }
                l = operatorLength(cntxt);
                if (l == 0)
                        l = idLength(cntxt);
@@ -1076,7 +1081,8 @@ fcnHeader(Client cntxt, int kind)
                }
                fnme = putNameLen(((char *) CURRENT(cntxt)), l);
                advance(cntxt, l);
-       }
+       } else 
+               modnme= cntxt->nspace->name;
 
        /* temporary suspend capturing statements in main block */
        if (cntxt->backup){
@@ -1084,38 +1090,20 @@ fcnHeader(Client cntxt, int kind)
                skipToEnd(cntxt);
                return 0;
        }
-       cntxt->backup = cntxt->curprg;
-       cntxt->curprg = newFunction(putName("user"), fnme, kind);
-       curPrg = cntxt->curprg;
-       curBlk = curPrg->def;
-       curBlk->flowfixed = 0;
-       curBlk->typefixed = 0;
-       curInstr = getInstrPtr(curBlk, 0);
-
        if (currChar(cntxt) != '('){
-               if (cntxt->backup) {
-                       freeSymbol(cntxt->curprg);
-                       cntxt->curprg = cntxt->backup;
-                       cntxt->backup = 0;
-               }
                parseError(cntxt, "function header '(' expected\n");
                skipToEnd(cntxt);
                return curBlk;
        }
        advance(cntxt, 1);
 
-       setModuleId(curInstr, modnme ? putName(modnme) :
-                       putName(cntxt->nspace->name));
-
-       if (isModuleDefined(cntxt->nspace, getModuleId(curInstr)) == FALSE) {
-               if (cntxt->backup) {
-                       freeSymbol(cntxt->curprg);
-                       cntxt->curprg = cntxt->backup;
-                       cntxt->backup = 0;
-               }
-               parseError(cntxt, "<module> name not defined\n");
-               return curBlk;
-       }
+       cntxt->backup = cntxt->curprg;
+       cntxt->curprg = newFunction( modnme, fnme, kind);
+       curPrg = cntxt->curprg;
+       curBlk = curPrg->def;
+       curBlk->flowfixed = 0;
+       curBlk->typefixed = 0;
+       curInstr = getInstrPtr(curBlk, 0);
 
        /* get calling parameters */
        ch = currChar(cntxt);
diff --git a/monetdb5/mal/mal_private.h b/monetdb5/mal/mal_private.h
--- a/monetdb5/mal/mal_private.h
+++ b/monetdb5/mal/mal_private.h
@@ -112,9 +112,6 @@
 __hidden mal_export void mal_runtime_reset(void)
        __attribute__((__visibility__("hidden")));
 
-__hidden mal_export void mal_scenario_reset(void)
-       __attribute__((__visibility__("hidden")));
-
 extern volatile ATOMIC_TYPE mal_running;
 #ifdef ATOMIC_LOCK
 extern MT_Lock mal_runningLock;
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -775,6 +775,7 @@ clearTrace(void)
        MT_lock_set(&mal_contextLock);
        if (TRACE_init == 0) {
                MT_lock_unset(&mal_contextLock);
+               initTrace();
                return;     /* not initialized */
        }
        /* drop all trace tables */
diff --git a/monetdb5/mal/mal_scenario.c b/monetdb5/mal/mal_scenario.c
--- a/monetdb5/mal/mal_scenario.c
+++ b/monetdb5/mal/mal_scenario.c
@@ -145,12 +145,7 @@ static str fillScenario(Client c, Scenar
 static MT_Lock scenarioLock MT_LOCK_INITIALIZER("scenarioLock");
 
 
-void
-mal_scenario_reset(void)
-{
-}
 /*
- * @-
  * Currently each user can define a new scenario, provided we have a free slot.
  * Scenarios not hardwired can always be dropped.
  */
@@ -175,7 +170,6 @@ getFreeScenario(void)
 }
 
 /*
- * @-
  * A scenario is initialized only once per session.
  * All other requests are silently ignored.
  * After initialization, all state functions should have been set.
@@ -240,7 +234,6 @@ defaultScenario(Client c)
 }
 
 /*
- * @-
  * The Monet debugger provides an option to inspect the scenarios currently
  * defined.
  *
@@ -282,7 +275,6 @@ findScenario(str nme)
 }
 
 /*
- * @-
  * Functions may become resolved only after the corresponding module
  * has been loaded. This should be announced as part of the module
  * prelude code.
@@ -366,7 +358,6 @@ str getScenarioLanguage(Client c){
        return "mal";
 }
 /*
- * @-
  * Changing the scenario for a particular client invalidates the
  * state maintained for the previous scenario. The old scenario is
  * retained in the client record to facilitate propagation of
@@ -377,7 +368,6 @@ str getScenarioLanguage(Client c){
  * has been processed, the scenario phases are replaced with the
  * proper ones.
  *
- * @-
  * All client records should be initialized with a default
  * scenario, i.e. the first described in the scenario table.
  */
@@ -404,7 +394,6 @@ fillScenario(Client c, Scenario scen)
 }
 
 /*
- * @-
  * Setting a new scenario calls for saving the previous state
  * and execution of the initClientScenario routine.
  */
@@ -446,7 +435,6 @@ setScenario(Client c, str nme)
 }
 
 /*
- * @-
  * After finishing a session in a scenario, we should reset the
  * state of the previous one. But also call the exitClient
  * to garbage collect any scenario specific structures.
@@ -494,7 +482,6 @@ exitScenario(Client c)
 }
 
 /*
- * @-
  * The building blocks of scenarios are routines obeying a strict
  * name signature. They require exclusive access to the client
  * record. Any specific information should be accessible from
@@ -521,7 +508,6 @@ exitScenario(Client c)
  * The default is the MAL interpreter, which provides good balance
  * between speed and ability to analysis its behavior.
  *
- * @-
  */
 static str
 runPhase(Client c, int phase)
@@ -533,7 +519,6 @@ runPhase(Client c, int phase)
 }
 
 /*
- * @-
  * Access control enforcement. Except for the server owner
  * running a scenario should be explicitly permitted.
  */
diff --git a/monetdb5/optimizer/opt_mergetable.c 
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -632,18 +632,20 @@ mat_join2(MalBlkPtr mb, InstrPtr p, matl
 static int
 subjoin_split(Client cntxt, InstrPtr p, int args)
 {
-       char *name;
-       size_t len; 
+       char *name = NULL;
+       size_t len;
        int i, res = 0;
        Symbol sym;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to