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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list