memory
This commit is contained in:
@@ -69,6 +69,7 @@ static void *py_open(VFS_t *me, const char *name, const char *io_mode,
|
||||
}
|
||||
st->u.private_data = pystream;
|
||||
st->vfs = me;
|
||||
st->file = NULL;
|
||||
python_release_GIL(ctk);
|
||||
return st;
|
||||
}
|
||||
|
@@ -30,15 +30,15 @@ class Engine( YAPEngine ):
|
||||
args.setYapPLDIR(yap_lib_path)
|
||||
args.setSavedState(join(yap_lib_path, "startup.yss"))
|
||||
YAPEngine.__init__(self, args)
|
||||
self.goal(set_prolog_flag('verbose', 'silent'), recover=True)
|
||||
self.goal(compile(library('yapi')), recover=True)
|
||||
self.goal(set_prolog_flag('verbose', 'normal'), release=True)
|
||||
self.goal(set_prolog_flag('verbose', 'silent'),True)
|
||||
self.goal(compile(library('yapi')), True)
|
||||
self.goal(set_prolog_flag('verbose', 'normal'), True)
|
||||
|
||||
def run(self, g, m=None, release=False):
|
||||
if m:
|
||||
self.mgoal(g, m, release=release)
|
||||
self.mgoal(g, m, release)
|
||||
else:
|
||||
self.goal(release=release)
|
||||
self.goal(release)
|
||||
|
||||
|
||||
class EngineArgs( YAPEngineArgs ):
|
||||
@@ -56,6 +56,7 @@ class Predicate( YAPPredicate ):
|
||||
class Query:
|
||||
"""Goal is a predicate instantiated under a specific environment """
|
||||
def __init__(self, engine, g):
|
||||
engine.reSet();
|
||||
self.q = engine.query(g)
|
||||
if self.q:
|
||||
self.port = "call"
|
||||
@@ -79,8 +80,10 @@ class Query:
|
||||
raise StopIteration()
|
||||
|
||||
def close( self ):
|
||||
self.q.close()
|
||||
self.q = None
|
||||
engine.reSet()
|
||||
if self.q:
|
||||
self.q.close()
|
||||
self.q = None
|
||||
|
||||
|
||||
def name( name, arity):
|
||||
@@ -108,7 +111,7 @@ class YAPShell:
|
||||
|
||||
def numbervars( self ):
|
||||
Dict = {}
|
||||
self.engine.goal(show_answer( self, Dict))
|
||||
self.engine.goal(show_answer( self, Dict), True)
|
||||
return Dict
|
||||
# rc = self.q.namedVarsVector()
|
||||
# self.q.r = self.q.goal().numbervars()
|
||||
|
@@ -112,7 +112,7 @@ class YAPInputSplitter(InputSplitter):
|
||||
if not line:
|
||||
line = text.rstrip()
|
||||
self.errors = []
|
||||
engine.mgoal(errors(self, line),"user")
|
||||
engine.mgoal(errors(self, line),"user",True)
|
||||
return self.errors != []
|
||||
|
||||
|
||||
@@ -494,7 +494,7 @@ class YAPCompleter(Completer):
|
||||
ensure that each completion object will only be present once.
|
||||
"""
|
||||
self.matches = []
|
||||
prolog_res = self.shell.yapeng.mgoal(completions(text, self), "user")
|
||||
prolog_res = self.shell.yapeng.mgoal(completions(text, self), "user",True)
|
||||
if self.matches:
|
||||
return text, self.matches
|
||||
magic_res = self.magic_matches(text)
|
||||
@@ -511,7 +511,7 @@ class YAPRun:
|
||||
self.yapeng = Engine()
|
||||
global engine
|
||||
engine = self.yapeng
|
||||
self.yapeng.goal(use_module(library("jupyter")))
|
||||
self.yapeng.goal(use_module(library("jupyter")),True)
|
||||
self.query = None
|
||||
self.os = None
|
||||
self.it = None
|
||||
@@ -527,7 +527,7 @@ class YAPRun:
|
||||
return self.errors
|
||||
self.errors=[]
|
||||
(text,_,_,_) = self.clean_end(text)
|
||||
self.yapeng.mgoal(errors(self,text),"user")
|
||||
self.yapeng.mgoal(errors(self,text),"user",True)
|
||||
return self.errors
|
||||
|
||||
def jupyter_query(self, s):
|
||||
@@ -724,10 +724,10 @@ class YAPRun:
|
||||
# run the new command using the given tracer
|
||||
#
|
||||
try:
|
||||
self.yapeng.mgoal(streams(True),"user")
|
||||
self.yapeng.mgoal(streams(True),"user", True)
|
||||
#state = tracer.runfunc(f,self,cell)
|
||||
state = self.jupyter_query( cell )
|
||||
self.yapeng.mgoal(streams(False),"user")
|
||||
self.yapeng.mgoal(streams(False),"user", True)
|
||||
except Exception as e:
|
||||
has_raised = True
|
||||
self.yapeng.mgoal(streams("off"),"user")
|
||||
|
Reference in New Issue
Block a user