Merge ssh://ssh.dcc.fc.up.pt:31064/home/vsc/github/yap-6.3
This commit is contained in:
commit
24d895d100
22
C/absmi.c
22
C/absmi.c
@ -917,6 +917,7 @@ static int interrupt_dexecute(USES_REGS1) {
|
|||||||
static void undef_goal(USES_REGS1) {
|
static void undef_goal(USES_REGS1) {
|
||||||
PredEntry *pe = PredFromDefCode(P);
|
PredEntry *pe = PredFromDefCode(P);
|
||||||
CELL *b;
|
CELL *b;
|
||||||
|
CELL *b0;
|
||||||
|
|
||||||
BEGD(d0);
|
BEGD(d0);
|
||||||
/* avoid trouble with undefined dynamic procedures */
|
/* avoid trouble with undefined dynamic procedures */
|
||||||
@ -955,14 +956,23 @@ static void undef_goal(USES_REGS1) {
|
|||||||
PP = NULL;
|
PP = NULL;
|
||||||
#endif
|
#endif
|
||||||
d0 = pe->ArityOfPE;
|
d0 = pe->ArityOfPE;
|
||||||
|
if (pe->ModuleOfPred == PROLOG_MODULE) {
|
||||||
|
if (CurrentModule == PROLOG_MODULE)
|
||||||
|
HR[0] = MkAtomTerm(Yap_LookupAtom("prolog"));
|
||||||
|
else
|
||||||
|
HR[0] = CurrentModule;
|
||||||
|
} else {
|
||||||
HR[0] = Yap_Module_Name(pe);
|
HR[0] = Yap_Module_Name(pe);
|
||||||
b = HR;
|
}
|
||||||
|
b = b0 = HR;
|
||||||
HR += 2;
|
HR += 2;
|
||||||
if (d0 == 0) {
|
if (d0 == 0) {
|
||||||
b[1] = MkAtomTerm((Atom)(pe->FunctorOfPred));
|
b[1] = MkAtomTerm((Atom)(pe->FunctorOfPred));
|
||||||
} else {
|
} else {
|
||||||
b[1] = AbsAppl(HR);
|
b[1] = AbsAppl(b+2);
|
||||||
*HR++ = (CELL)pe->FunctorOfPred;
|
*HR++ = (CELL)pe->FunctorOfPred;
|
||||||
|
b += 3;
|
||||||
|
HR += d0;
|
||||||
BEGP(pt1);
|
BEGP(pt1);
|
||||||
pt1 = XREGS + 1;
|
pt1 = XREGS + 1;
|
||||||
for (; d0 > 0; --d0) {
|
for (; d0 > 0; --d0) {
|
||||||
@ -973,13 +983,13 @@ static void undef_goal(USES_REGS1) {
|
|||||||
deref_head(d1, undef_unk);
|
deref_head(d1, undef_unk);
|
||||||
undef_nonvar:
|
undef_nonvar:
|
||||||
/* just copy it to the heap */
|
/* just copy it to the heap */
|
||||||
*HR++ = d1;
|
*b++ = d1;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
derefa_body(d1, pt0, undef_unk, undef_nonvar);
|
derefa_body(d1, pt0, undef_unk, undef_nonvar);
|
||||||
if (pt0 <= HR) {
|
if (pt0 <= HR) {
|
||||||
/* variable is safe */
|
/* variable is safe */
|
||||||
*HR++ = (CELL)pt0;
|
*b++ = (CELL)pt0;
|
||||||
} else {
|
} else {
|
||||||
/* bind it, in case it is a local variable */
|
/* bind it, in case it is a local variable */
|
||||||
d1 = Unsigned(HR);
|
d1 = Unsigned(HR);
|
||||||
@ -993,8 +1003,8 @@ static void undef_goal(USES_REGS1) {
|
|||||||
ENDP(pt1);
|
ENDP(pt1);
|
||||||
}
|
}
|
||||||
ENDD(d0);
|
ENDD(d0);
|
||||||
ARG2 = Yap_getUnknownModule(Yap_GetModuleEntry(b[0]));
|
ARG1 = AbsPair(b0);
|
||||||
ARG1 = AbsPair(b);
|
ARG2 = Yap_getUnknownModule(Yap_GetModuleEntry(b0[0]));
|
||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
if (Yap_do_low_level_trace)
|
if (Yap_do_low_level_trace)
|
||||||
low_level_trace(enter_pred, UndefCode, XREGS + 1);
|
low_level_trace(enter_pred, UndefCode, XREGS + 1);
|
||||||
|
34
C/exec.c
34
C/exec.c
@ -269,7 +269,7 @@ static bool CommaCall(Term t, Term mod) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline static bool do_execute(Term t, Term mod USES_REGS) {
|
inline static bool do_execute(Term t, Term mod USES_REGS) {
|
||||||
Term t0 = t;
|
Term t0 = t, mod0 = mod;
|
||||||
t = Yap_YapStripModule(t, &mod);
|
t = Yap_YapStripModule(t, &mod);
|
||||||
/* first do predicate expansion, even before you process signals.
|
/* first do predicate expansion, even before you process signals.
|
||||||
This way you don't get to spy goal_expansion(). */
|
This way you don't get to spy goal_expansion(). */
|
||||||
@ -278,7 +278,7 @@ inline static bool do_execute(Term t, Term mod USES_REGS) {
|
|||||||
return EnterCreepMode(t, mod PASS_REGS);
|
return EnterCreepMode(t, mod PASS_REGS);
|
||||||
}
|
}
|
||||||
if (IsVarTerm(t) || IsVarTerm(mod)) {
|
if (IsVarTerm(t) || IsVarTerm(mod)) {
|
||||||
return CallError(INSTANTIATION_ERROR, t0, mod PASS_REGS);
|
return CallError(INSTANTIATION_ERROR, t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
if (IsApplTerm(t)) {
|
if (IsApplTerm(t)) {
|
||||||
register Functor f = FunctorOfTerm(t);
|
register Functor f = FunctorOfTerm(t);
|
||||||
@ -290,9 +290,9 @@ inline static bool do_execute(Term t, Term mod USES_REGS) {
|
|||||||
if (f == FunctorComma && false) {
|
if (f == FunctorComma && false) {
|
||||||
Term t2 = ArgOfTerm(2, t);
|
Term t2 = ArgOfTerm(2, t);
|
||||||
if (IsVarTerm(t2))
|
if (IsVarTerm(t2))
|
||||||
return CallMetaCall(t, mod PASS_REGS);
|
return CallMetaCall(t0, mod0 PASS_REGS);
|
||||||
if (1 || !CommaCall(t2, mod))
|
if (1 || !CommaCall(t2, mod))
|
||||||
return CallMetaCall(t, mod PASS_REGS);
|
return CallMetaCall(t0, mod0 PASS_REGS);
|
||||||
Term t1 = ArgOfTerm(1, t);
|
Term t1 = ArgOfTerm(1, t);
|
||||||
|
|
||||||
t = t1;
|
t = t1;
|
||||||
@ -301,11 +301,11 @@ inline static bool do_execute(Term t, Term mod USES_REGS) {
|
|||||||
return do_execute(t, mod);
|
return do_execute(t, mod);
|
||||||
}
|
}
|
||||||
} else if (IsExtensionFunctor(f)) {
|
} else if (IsExtensionFunctor(f)) {
|
||||||
return CallError(TYPE_ERROR_CALLABLE, t, mod PASS_REGS);
|
return CallError(TYPE_ERROR_CALLABLE, t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
arity = ArityOfFunctor(f);
|
arity = ArityOfFunctor(f);
|
||||||
if (arity > MaxTemps) {
|
if (arity > MaxTemps) {
|
||||||
return CallError(TYPE_ERROR_CALLABLE, t, mod PASS_REGS);
|
return CallError(TYPE_ERROR_CALLABLE, t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
pen = RepPredProp(PredPropByFunc(f, mod));
|
pen = RepPredProp(PredPropByFunc(f, mod));
|
||||||
/* You thought we would be over by now */
|
/* You thought we would be over by now */
|
||||||
@ -315,7 +315,7 @@ inline static bool do_execute(Term t, Term mod USES_REGS) {
|
|||||||
otherwise I would dereference the argument and
|
otherwise I would dereference the argument and
|
||||||
might skip a svar */
|
might skip a svar */
|
||||||
if (pen->PredFlags & (MetaPredFlag | UndefPredFlag)) {
|
if (pen->PredFlags & (MetaPredFlag | UndefPredFlag)) {
|
||||||
return CallMetaCall(t, mod PASS_REGS);
|
return CallMetaCall(t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
pt = RepAppl(t) + 1;
|
pt = RepAppl(t) + 1;
|
||||||
for (i = 1; i <= arity; i++) {
|
for (i = 1; i <= arity; i++) {
|
||||||
@ -346,7 +346,7 @@ inline static bool do_execute(Term t, Term mod USES_REGS) {
|
|||||||
pe = RepPredProp(PredPropByAtom(a, mod));
|
pe = RepPredProp(PredPropByAtom(a, mod));
|
||||||
return (CallPredicate(pe, B, pe->CodeOfPred PASS_REGS));
|
return (CallPredicate(pe, B, pe->CodeOfPred PASS_REGS));
|
||||||
}
|
}
|
||||||
return CallMetaCall(t, mod PASS_REGS);
|
return CallMetaCall(t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Term copy_execn_to_heap(Functor f, CELL *pt, unsigned int n,
|
static Term copy_execn_to_heap(Functor f, CELL *pt, unsigned int n,
|
||||||
@ -390,17 +390,17 @@ inline static bool do_execute_n(Term t, Term mod, unsigned int n USES_REGS) {
|
|||||||
PredEntry *pen;
|
PredEntry *pen;
|
||||||
unsigned int i, arity;
|
unsigned int i, arity;
|
||||||
int j = -n;
|
int j = -n;
|
||||||
Term t0 = t;
|
Term t0 = t, mod0 = mod;
|
||||||
|
|
||||||
restart_exec:
|
restart_exec:
|
||||||
if (IsVarTerm(t)) {
|
if (IsVarTerm(t)) {
|
||||||
return CallError(INSTANTIATION_ERROR, t0, mod PASS_REGS);
|
return CallError(INSTANTIATION_ERROR, t0, mod0 PASS_REGS);
|
||||||
} else if (IsAtomTerm(t)) {
|
} else if (IsAtomTerm(t)) {
|
||||||
arity = n;
|
arity = n;
|
||||||
Name = AtomOfTerm(t);
|
Name = AtomOfTerm(t);
|
||||||
pt = NULL;
|
pt = NULL;
|
||||||
} else if (IsIntTerm(t)) {
|
} else if (IsIntTerm(t)) {
|
||||||
return CallError(TYPE_ERROR_CALLABLE, t, mod PASS_REGS);
|
return CallError(TYPE_ERROR_CALLABLE, t, mod0 PASS_REGS);
|
||||||
} else if (IsPairTerm(t)) {
|
} else if (IsPairTerm(t)) {
|
||||||
arity = n + 2;
|
arity = n + 2;
|
||||||
pt = RepPair(t);
|
pt = RepPair(t);
|
||||||
@ -415,9 +415,9 @@ restart_exec:
|
|||||||
goto restart_exec;
|
goto restart_exec;
|
||||||
} else {
|
} else {
|
||||||
if (IsVarTerm(tmod)) {
|
if (IsVarTerm(tmod)) {
|
||||||
return CallError(INSTANTIATION_ERROR, t0, tmod PASS_REGS);
|
return CallError(INSTANTIATION_ERROR, t0, mod0 PASS_REGS);
|
||||||
} else {
|
} else {
|
||||||
return CallError(TYPE_ERROR_ATOM, t0, tmod PASS_REGS);
|
return CallError(TYPE_ERROR_ATOM, t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -427,7 +427,7 @@ restart_exec:
|
|||||||
}
|
}
|
||||||
f = Yap_MkFunctor(Name, arity);
|
f = Yap_MkFunctor(Name, arity);
|
||||||
if (IsExtensionFunctor(f)) {
|
if (IsExtensionFunctor(f)) {
|
||||||
return CallError(TYPE_ERROR_CALLABLE, t, mod PASS_REGS);
|
return CallError(TYPE_ERROR_CALLABLE, t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
if (Yap_has_a_signal() && !LOCAL_InterruptsDisabled) {
|
if (Yap_has_a_signal() && !LOCAL_InterruptsDisabled) {
|
||||||
return EnterCreepMode(
|
return EnterCreepMode(
|
||||||
@ -435,14 +435,14 @@ restart_exec:
|
|||||||
mod PASS_REGS);
|
mod PASS_REGS);
|
||||||
}
|
}
|
||||||
if (arity > MaxTemps) {
|
if (arity > MaxTemps) {
|
||||||
return CallError(TYPE_ERROR_CALLABLE, t, mod PASS_REGS);
|
return CallError(TYPE_ERROR_CALLABLE, t0, mod0 PASS_REGS);
|
||||||
}
|
}
|
||||||
pen = RepPredProp(PredPropByFunc(f, mod));
|
pen = RepPredProp(PredPropByFunc(f, mod));
|
||||||
/* You thought we would be over by now */
|
/* You thought we would be over by now */
|
||||||
/* but no meta calls require special preprocessing */
|
/* but no meta calls require special preprocessing */
|
||||||
if (pen->PredFlags & (MetaPredFlag | UndefPredFlag)) {
|
if (pen->PredFlags & (MetaPredFlag | UndefPredFlag)) {
|
||||||
Term t = copy_execn_to_heap(f, pt, n, arity, mod PASS_REGS);
|
// Term t = copy_execn_to_heap(f, pt, n, arity, mod PASS_REGS);
|
||||||
return (CallMetaCall(t, mod PASS_REGS));
|
return (CallMetaCall(t0, mod0 PASS_REGS));
|
||||||
}
|
}
|
||||||
/* now let us do what we wanted to do from the beginning !! */
|
/* now let us do what we wanted to do from the beginning !! */
|
||||||
/* I cannot use the standard macro here because
|
/* I cannot use the standard macro here because
|
||||||
|
19
os/charsio.c
19
os/charsio.c
@ -77,7 +77,6 @@ static Int put_code(USES_REGS1);
|
|||||||
static Int put_byte(USES_REGS1);
|
static Int put_byte(USES_REGS1);
|
||||||
static Int skip(USES_REGS1);
|
static Int skip(USES_REGS1);
|
||||||
static Int flush_output(USES_REGS1);
|
static Int flush_output(USES_REGS1);
|
||||||
static Int flush_all_streams(USES_REGS1);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CharOfAtom: convert an atom into a single character.
|
* CharOfAtom: convert an atom into a single character.
|
||||||
@ -96,7 +95,7 @@ INLINE_ONLY inline EXTERN Int CharOfAtom(Atom at) {
|
|||||||
int Yap_peekWideWithGetwc(int sno) {
|
int Yap_peekWideWithGetwc(int sno) {
|
||||||
StreamDesc *s;
|
StreamDesc *s;
|
||||||
s = GLOBAL_Stream + sno;
|
s = GLOBAL_Stream + sno;
|
||||||
int ch = getwc(s->file);
|
int ch = fgetwc(s->file);
|
||||||
ungetwc(ch, s->file);
|
ungetwc(ch, s->file);
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
@ -104,7 +103,7 @@ int Yap_peekWideWithGetwc(int sno) {
|
|||||||
int Yap_peekWithGetc(int sno) {
|
int Yap_peekWithGetc(int sno) {
|
||||||
StreamDesc *s;
|
StreamDesc *s;
|
||||||
s = GLOBAL_Stream + sno;
|
s = GLOBAL_Stream + sno;
|
||||||
int ch = getc(s->file);
|
int ch = fgetc(s->file);
|
||||||
ungetc(ch, s->file);
|
ungetc(ch, s->file);
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
@ -181,9 +180,13 @@ int Yap_peekWide(int sno) {
|
|||||||
s->charcount = pos;
|
s->charcount = pos;
|
||||||
s->linecount = line;
|
s->linecount = line;
|
||||||
s->linepos = lpos;
|
s->linepos = lpos;
|
||||||
|
s->stream_wgetc = Yap_popChar;
|
||||||
|
s->stream_getc = NULL;
|
||||||
|
s->stream_peek= NULL;
|
||||||
|
s->stream_wpeek= NULL;
|
||||||
s->stream_getc = Yap_popChar;
|
s->stream_getc = Yap_popChar;
|
||||||
s->stream_wgetc = Yap_popChar;
|
s->stream_wgetc = Yap_popChar;
|
||||||
Yap_SetCurInpPos(sno, pos);
|
// Yap_SetCurInpPos(sno, pos);
|
||||||
}
|
}
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
@ -209,15 +212,17 @@ int Yap_peekChar(int sno) {
|
|||||||
s->linecount = line;
|
s->linecount = line;
|
||||||
s->linepos = lpos;
|
s->linepos = lpos;
|
||||||
s->stream_getc = Yap_popChar;
|
s->stream_getc = Yap_popChar;
|
||||||
s->stream_wgetc = Yap_popChar;
|
s->stream_wgetc = NULL;
|
||||||
Yap_SetCurInpPos(sno, pos);
|
s->stream_peek= NULL;
|
||||||
|
s->stream_wpeek= NULL;
|
||||||
|
//Yap_SetCurInpPos(sno, pos);
|
||||||
}
|
}
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Yap_peek(int sno) { return GLOBAL_Stream[sno].stream_wpeek(sno); }
|
int Yap_peek(int sno) { return GLOBAL_Stream[sno].stream_wpeek(sno); }
|
||||||
|
|
||||||
static int dopeek_byte(int sno) { return GLOBAL_Stream[sno].stream_wpeek(sno); }
|
static int dopeek_byte(int sno) { return GLOBAL_Stream[sno].stream_peek(sno); }
|
||||||
|
|
||||||
bool store_code(int ch, Term t USES_REGS) {
|
bool store_code(int ch, Term t USES_REGS) {
|
||||||
Term t2 = Deref(t);
|
Term t2 = Deref(t);
|
||||||
|
@ -350,18 +350,19 @@ void Yap_DefaultStreamOps(StreamDesc *st) {
|
|||||||
st->stream_getc = Yap_popChar;
|
st->stream_getc = Yap_popChar;
|
||||||
st->stream_wgetc = Yap_popChar;
|
st->stream_wgetc = Yap_popChar;
|
||||||
}
|
}
|
||||||
if (st->file) {
|
|
||||||
if (st->status & Readline_Stream_f) {
|
if (st->status & Readline_Stream_f) {
|
||||||
st->stream_peek = Yap_ReadlinePeekChar;
|
st->stream_peek = Yap_ReadlinePeekChar;
|
||||||
st->stream_wpeek = Yap_ReadlinePeekChar;
|
st->stream_wpeek = Yap_ReadlinePeekChar;
|
||||||
} else {
|
}
|
||||||
|
/* else {
|
||||||
st->stream_peek = Yap_peekWithGetc;
|
st->stream_peek = Yap_peekWithGetc;
|
||||||
st->stream_wpeek = Yap_peekWideWithGetwc;
|
st->stream_wpeek = Yap_peekWideWithGetwc;
|
||||||
}
|
}
|
||||||
} else if (st->status & Seekable_Stream_f) {
|
} else if (st->status & Seekable_Stream_f) {
|
||||||
st->stream_peek = Yap_peekWithSeek;
|
st->stream_peek = Yap_peekWithSeek;
|
||||||
st->stream_wpeek = Yap_peekWideWithSeek;
|
st->stream_wpeek = Yap_peekWideWithSeek;
|
||||||
} else {
|
} */
|
||||||
|
else {
|
||||||
st->stream_peek = Yap_peekChar;
|
st->stream_peek = Yap_peekChar;
|
||||||
st->stream_wpeek = Yap_peekWide;
|
st->stream_wpeek = Yap_peekWide;
|
||||||
}
|
}
|
||||||
|
@ -337,6 +337,7 @@ static Term syntax_error(TokEntry *errtok, int sno, Term cmod, Int newpos) {
|
|||||||
else {
|
else {
|
||||||
tm = MkStringTerm("syntax error");
|
tm = MkStringTerm("syntax error");
|
||||||
}
|
}
|
||||||
|
if (GLOBAL_Stream[sno].status & Seekable_Stream_f) {
|
||||||
if (errpos && newpos >= 0) {
|
if (errpos && newpos >= 0) {
|
||||||
char o[128 + 1];
|
char o[128 + 1];
|
||||||
diff = errpos - startpos;
|
diff = errpos - startpos;
|
||||||
@ -359,6 +360,7 @@ static Term syntax_error(TokEntry *errtok, int sno, Term cmod, Int newpos) {
|
|||||||
#endif
|
#endif
|
||||||
o[diff] = '\0';
|
o[diff] = '\0';
|
||||||
tf[3] = MkStringTerm(o);
|
tf[3] = MkStringTerm(o);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
while (tok) {
|
while (tok) {
|
||||||
|
|
||||||
|
@ -2,10 +2,6 @@
|
|||||||
%% @brief support yap shell
|
%% @brief support yap shell
|
||||||
%%
|
%%
|
||||||
|
|
||||||
:- yap_flag(verbose, verbose).
|
|
||||||
|
|
||||||
:- use_module( library(python) ).
|
|
||||||
|
|
||||||
:- module(yapi, [
|
:- module(yapi, [
|
||||||
python_ouput/0,
|
python_ouput/0,
|
||||||
show_answer/2,
|
show_answer/2,
|
||||||
@ -15,12 +11,16 @@
|
|||||||
yapi_query/2
|
yapi_query/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
|
||||||
|
:- yap_flag(verbose, verbose).
|
||||||
|
|
||||||
|
|
||||||
:- use_module( library(lists) ).
|
:- use_module( library(lists) ).
|
||||||
:- use_module( library(maplist) ).
|
:- use_module( library(maplist) ).
|
||||||
:- use_module( library(rbtrees) ).
|
:- use_module( library(rbtrees) ).
|
||||||
:- use_module( library(terms) ).
|
:- use_module( library(terms) ).
|
||||||
:- reexport( library(python) ).
|
:- reexport( library(python) ).
|
||||||
|
w
|
||||||
:- python_import(yap4py.yapi).
|
:- python_import(yap4py.yapi).
|
||||||
|
|
||||||
%:- start_low_level_trace.
|
%:- start_low_level_trace.
|
||||||
|
@ -68,7 +68,7 @@ elif platform.system() == 'Darwin':
|
|||||||
win_libs = []
|
win_libs = []
|
||||||
local_libs = ['Py4YAP']
|
local_libs = ['Py4YAP']
|
||||||
elif platform.system() == 'Linux':
|
elif platform.system() == 'Linux':
|
||||||
my_extra_link_args = ['-L','..']
|
my_extra_link_args = ['-L','..','-Wl,-rpath','-Wl,${CMAKE_INSTALL_FULL_LIBDIR}']
|
||||||
win_libs = []
|
win_libs = []
|
||||||
local_libs = ['Py4YAP']
|
local_libs = ['Py4YAP']
|
||||||
|
|
||||||
|
@ -1,54 +1,363 @@
|
|||||||
|
|
||||||
set (PYTHON_SOURCES
|
set (PYTHON_SOURCES
|
||||||
yap_ipython/core/getipython.py
|
yap_kernel_launcher.py
|
||||||
yap_ipython/core/__init__.py
|
docs/conf.py
|
||||||
yap_ipython/core/interactiveshell.py
|
yap_kernel/serialize.py
|
||||||
# yap_ipython/core/modulefind.py
|
yap_kernel/_eventloop_macos.py
|
||||||
yap_ipython/core/oinspect.py
|
yap_kernel/jsonutil.py
|
||||||
yap_ipython/core/release.py
|
yap_kernel/pickleutil.py
|
||||||
yap_ipython/core/shellapp.py
|
yap_kernel/pylab/backend_inline.py
|
||||||
yap_ipython/display.py
|
yap_kernel/pylab/config.py
|
||||||
yap_ipython/__init__.py
|
yap_kernel/pylab/__init__.py
|
||||||
yap_ipython/shellapp.py
|
yap_kernel/displayhook.py
|
||||||
yap_kernel_launcher.py
|
yap_kernel/__main__.py
|
||||||
yap_kernel/__init__.py
|
yap_kernel/gui/gtk3embed.py
|
||||||
yap_kernel/__main__.py
|
yap_kernel/gui/gtkembed.py
|
||||||
yap_kernel/_version.py
|
yap_kernel/gui/__init__.py
|
||||||
yap_kernel/codeutil.py
|
yap_kernel/parentpoller.py
|
||||||
yap_kernel/connect.py
|
yap_kernel/_version.py
|
||||||
yap_kernel/datapub.py
|
yap_kernel/eventloops.py
|
||||||
yap_kernel/displayhook.py
|
yap_kernel/connect.py
|
||||||
yap_kernel/embed.py
|
yap_kernel/comm/comm.py
|
||||||
yap_kernel/eventloops.py
|
yap_kernel/comm/__init__.py
|
||||||
yap_kernel/heartbeat.py
|
yap_kernel/comm/manager.py
|
||||||
yap_kernel/interactiveshell.py
|
yap_kernel/kernelspec.py
|
||||||
yap_kernel/iostream.py
|
yap_kernel/iostream.py
|
||||||
yap_kernel/jsonutil.py
|
yap_kernel/zmqshell.py
|
||||||
yap_kernel/kernelapp.py
|
yap_kernel/kernelbase.py
|
||||||
yap_kernel/kernelbase.py
|
yap_kernel/heartbeat.py
|
||||||
yap_kernel/kernelspec.py
|
yap_kernel/log.py
|
||||||
yap_kernel/log.py
|
yap_kernel/datapub.py
|
||||||
yap_kernel/parentpoller.py
|
yap_kernel/codeutil.py
|
||||||
yap_kernel/pickleutil.py
|
yap_kernel/kernelapp.py
|
||||||
yap_kernel/serialize.py
|
yap_kernel/embed.py
|
||||||
yap_kernel/yapkernel.py
|
yap_kernel/tests/test_embed_kernel.py
|
||||||
yap_kernel/zmqshell.py
|
yap_kernel/tests/test_kernelspec.py
|
||||||
yap_kernel/comm/__init__.py
|
yap_kernel/tests/_asyncio.py
|
||||||
yap_kernel/comm/comm.py
|
yap_kernel/tests/test_serialize.py
|
||||||
yap_kernel/comm/manager.py
|
yap_kernel/tests/test_pickleutil.py
|
||||||
yap_kernel/gui/__init__.py
|
yap_kernel/tests/test_eventloop.py
|
||||||
yap_kernel/gui/gtk3embed.py
|
yap_kernel/tests/utils.py
|
||||||
yap_kernel/gui/gtkembed.py
|
yap_kernel/tests/test_kernel.py
|
||||||
yap_kernel/inprocess/__init__.py
|
yap_kernel/tests/test_io.py
|
||||||
yap_kernel/inprocess/blocking.py
|
yap_kernel/tests/test_jsonutil.py
|
||||||
yap_kernel/inprocess/channels.py
|
yap_kernel/tests/test_connect.py
|
||||||
yap_kernel/inprocess/client.py
|
yap_kernel/tests/test_message_spec.py
|
||||||
yap_kernel/inprocess/ipkernel.py
|
yap_kernel/tests/__init__.py
|
||||||
yap_kernel/inprocess/manager.py
|
yap_kernel/tests/test_start_kernel.py
|
||||||
yap_kernel/inprocess/socket.py
|
yap_kernel/tests/test_zmq_shell.py
|
||||||
yap_kernel/pylab/__init__.py
|
yap_kernel/__init__.py
|
||||||
yap_kernel/pylab/backend_inline.py
|
yap_kernel/inprocess/blocking.py
|
||||||
yap_kernel/pylab/config.py
|
yap_kernel/inprocess/socket.py
|
||||||
|
yap_kernel/inprocess/constants.py
|
||||||
|
yap_kernel/inprocess/channels.py
|
||||||
|
yap_kernel/inprocess/tests/test_kernelmanager.py
|
||||||
|
yap_kernel/inprocess/tests/test_kernel.py
|
||||||
|
yap_kernel/inprocess/tests/__init__.py
|
||||||
|
yap_kernel/inprocess/__init__.py
|
||||||
|
yap_kernel/inprocess/manager.py
|
||||||
|
yap_kernel/inprocess/client.py
|
||||||
|
yap_kernel/inprocess/ipkernel.py
|
||||||
|
yap_kernel/ipkernel.py
|
||||||
|
yap_ipython/display.py
|
||||||
|
yap_ipython/frontend.py
|
||||||
|
yap_ipython/parallel.py
|
||||||
|
yap_ipython/html.py
|
||||||
|
yap_ipython/__main__.py
|
||||||
|
yap_ipython/testing/iptest.py
|
||||||
|
yap_ipython/testing/skipdoctest.py
|
||||||
|
yap_ipython/testing/tools.py
|
||||||
|
yap_ipython/testing/iptestcontroller.py
|
||||||
|
yap_ipython/testing/__main__.py
|
||||||
|
yap_ipython/testing/decorators.py
|
||||||
|
yap_ipython/testing/ipunittest.py
|
||||||
|
yap_ipython/testing/tests/test_tools.py
|
||||||
|
yap_ipython/testing/tests/test_ipunittest.py
|
||||||
|
yap_ipython/testing/tests/test_decorators.py
|
||||||
|
yap_ipython/testing/tests/__init__.py
|
||||||
|
yap_ipython/testing/__init__.py
|
||||||
|
yap_ipython/testing/globalipapp.py
|
||||||
|
yap_ipython/testing/plugin/iptest.py
|
||||||
|
yap_ipython/testing/plugin/show_refs.py
|
||||||
|
yap_ipython/testing/plugin/simplevars.py
|
||||||
|
yap_ipython/testing/plugin/simple.py
|
||||||
|
yap_ipython/testing/plugin/ipdoctest.py
|
||||||
|
yap_ipython/testing/plugin/test_ipdoctest.py
|
||||||
|
yap_ipython/testing/plugin/setup.py
|
||||||
|
yap_ipython/testing/plugin/__init__.py
|
||||||
|
yap_ipython/testing/plugin/dtexample.py
|
||||||
|
yap_ipython/testing/plugin/test_refs.py
|
||||||
|
yap_ipython/terminal/ptutils.py
|
||||||
|
yap_ipython/terminal/shortcuts.py
|
||||||
|
yap_ipython/terminal/ipapp.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/wx.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/pyglet.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/osx.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/gtk.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/tk.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/glut.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/gtk3.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/__init__.py
|
||||||
|
yap_ipython/terminal/pt_inputhooks/qt.py
|
||||||
|
yap_ipython/terminal/console.py
|
||||||
|
yap_ipython/terminal/prompts.py
|
||||||
|
yap_ipython/terminal/ptshell.py
|
||||||
|
yap_ipython/terminal/embed.py
|
||||||
|
yap_ipython/terminal/tests/test_help.py
|
||||||
|
yap_ipython/terminal/tests/test_embed.py
|
||||||
|
yap_ipython/terminal/tests/test_interactivshell.py
|
||||||
|
yap_ipython/terminal/tests/__init__.py
|
||||||
|
yap_ipython/terminal/__init__.py
|
||||||
|
yap_ipython/terminal/interactiveshell.py
|
||||||
|
yap_ipython/terminal/debugger.py
|
||||||
|
yap_ipython/terminal/magics.py
|
||||||
|
yap_ipython/consoleapp.py
|
||||||
|
yap_ipython/core/display.py
|
||||||
|
yap_ipython/core/application.py
|
||||||
|
yap_ipython/core/builtin_trap.py
|
||||||
|
yap_ipython/core/formatters.py
|
||||||
|
yap_ipython/core/prefilter.py
|
||||||
|
yap_ipython/core/getipython.py
|
||||||
|
yap_ipython/core/usage.py
|
||||||
|
yap_ipython/core/oinspect.py
|
||||||
|
yap_ipython/core/displayhook.py
|
||||||
|
yap_ipython/core/hooks.py
|
||||||
|
yap_ipython/core/splitinput.py
|
||||||
|
yap_ipython/core/page.py
|
||||||
|
yap_ipython/core/history.py
|
||||||
|
yap_ipython/core/displaypub.py
|
||||||
|
yap_ipython/core/profiledir.py
|
||||||
|
yap_ipython/core/shellapp.py
|
||||||
|
yap_ipython/core/extensions.py
|
||||||
|
yap_ipython/core/compilerop.py
|
||||||
|
yap_ipython/core/events.py
|
||||||
|
yap_ipython/core/pylabtools.py
|
||||||
|
yap_ipython/core/completer.py
|
||||||
|
yap_ipython/core/prompts.py
|
||||||
|
yap_ipython/core/latex_symbols.py
|
||||||
|
yap_ipython/core/macro.py
|
||||||
|
yap_ipython/core/inputsplitter.py
|
||||||
|
yap_ipython/core/error.py
|
||||||
|
yap_ipython/core/profileapp.py
|
||||||
|
yap_ipython/core/magic_arguments.py
|
||||||
|
yap_ipython/core/logger.py
|
||||||
|
yap_ipython/core/inputtransformer.py
|
||||||
|
yap_ipython/core/payloadpage.py
|
||||||
|
yap_ipython/core/crashhandler.py
|
||||||
|
yap_ipython/core/magics/display.py
|
||||||
|
yap_ipython/core/magics/execution.py
|
||||||
|
yap_ipython/core/magics/namespace.py
|
||||||
|
yap_ipython/core/magics/basic.py
|
||||||
|
yap_ipython/core/magics/extension.py
|
||||||
|
yap_ipython/core/magics/history.py
|
||||||
|
yap_ipython/core/magics/pylab.py
|
||||||
|
yap_ipython/core/magics/config.py
|
||||||
|
yap_ipython/core/magics/osm.py
|
||||||
|
yap_ipython/core/magics/script.py
|
||||||
|
yap_ipython/core/magics/__init__.py
|
||||||
|
yap_ipython/core/magics/auto.py
|
||||||
|
yap_ipython/core/magics/logging.py
|
||||||
|
yap_ipython/core/magics/code.py
|
||||||
|
yap_ipython/core/ultratb.py
|
||||||
|
yap_ipython/core/tests/test_application.py
|
||||||
|
yap_ipython/core/tests/simpleerr.py
|
||||||
|
yap_ipython/core/tests/test_paths.py
|
||||||
|
yap_ipython/core/tests/bad_all.py
|
||||||
|
yap_ipython/core/tests/test_prefilter.py
|
||||||
|
yap_ipython/core/tests/test_logger.py
|
||||||
|
yap_ipython/core/tests/test_interactiveshell.py
|
||||||
|
yap_ipython/core/tests/test_events.py
|
||||||
|
yap_ipython/core/tests/test_display.py
|
||||||
|
yap_ipython/core/tests/test_autocall.py
|
||||||
|
yap_ipython/core/tests/test_formatters.py
|
||||||
|
yap_ipython/core/tests/test_alias.py
|
||||||
|
yap_ipython/core/tests/nonascii.py
|
||||||
|
yap_ipython/core/tests/test_displayhook.py
|
||||||
|
yap_ipython/core/tests/test_profile.py
|
||||||
|
yap_ipython/core/tests/test_imports.py
|
||||||
|
yap_ipython/core/tests/test_oinspect.py
|
||||||
|
yap_ipython/core/tests/test_inputtransformer.py
|
||||||
|
yap_ipython/core/tests/test_magic_arguments.py
|
||||||
|
yap_ipython/core/tests/test_debugger.py
|
||||||
|
yap_ipython/core/tests/test_hooks.py
|
||||||
|
yap_ipython/core/tests/test_run.py
|
||||||
|
yap_ipython/core/tests/test_pylabtools.py
|
||||||
|
yap_ipython/core/tests/print_argv.py
|
||||||
|
yap_ipython/core/tests/test_page.py
|
||||||
|
yap_ipython/core/tests/test_compilerop.py
|
||||||
|
yap_ipython/core/tests/test_prompts.py
|
||||||
|
yap_ipython/core/tests/test_magic_terminal.py
|
||||||
|
yap_ipython/core/tests/__init__.py
|
||||||
|
yap_ipython/core/tests/test_ultratb.py
|
||||||
|
yap_ipython/core/tests/test_magic.py
|
||||||
|
yap_ipython/core/tests/test_iplib.py
|
||||||
|
yap_ipython/core/tests/test_completer.py
|
||||||
|
yap_ipython/core/tests/test_shellapp.py
|
||||||
|
yap_ipython/core/tests/daft_extension/daft_extension.py
|
||||||
|
yap_ipython/core/tests/refbug.py
|
||||||
|
yap_ipython/core/tests/tclass.py
|
||||||
|
yap_ipython/core/tests/test_extension.py
|
||||||
|
yap_ipython/core/tests/test_splitinput.py
|
||||||
|
yap_ipython/core/tests/test_completerlib.py
|
||||||
|
yap_ipython/core/tests/nonascii2.py
|
||||||
|
yap_ipython/core/tests/test_inputsplitter.py
|
||||||
|
yap_ipython/core/tests/test_handlers.py
|
||||||
|
yap_ipython/core/tests/test_history.py
|
||||||
|
yap_ipython/core/__init__.py
|
||||||
|
yap_ipython/core/autocall.py
|
||||||
|
yap_ipython/core/alias.py
|
||||||
|
yap_ipython/core/completerlib.py
|
||||||
|
yap_ipython/core/magic.py
|
||||||
|
yap_ipython/core/interactiveshell.py
|
||||||
|
yap_ipython/core/excolors.py
|
||||||
|
yap_ipython/core/release.py
|
||||||
|
yap_ipython/core/display_trap.py
|
||||||
|
yap_ipython/core/debugger.py
|
||||||
|
yap_ipython/core/historyapp.py
|
||||||
|
yap_ipython/core/payload.py
|
||||||
|
yap_ipython/config.py
|
||||||
|
yap_ipython/utils/frame.py
|
||||||
|
yap_ipython/utils/ipstruct.py
|
||||||
|
yap_ipython/utils/module_paths.py
|
||||||
|
yap_ipython/utils/jsonutil.py
|
||||||
|
yap_ipython/utils/PyColorize.py
|
||||||
|
yap_ipython/utils/pickleutil.py
|
||||||
|
yap_ipython/utils/eventful.py
|
||||||
|
yap_ipython/utils/ulinecache.py
|
||||||
|
yap_ipython/utils/generics.py
|
||||||
|
yap_ipython/utils/version.py
|
||||||
|
yap_ipython/utils/tz.py
|
||||||
|
yap_ipython/utils/_process_cli.py
|
||||||
|
yap_ipython/utils/wildcard.py
|
||||||
|
yap_ipython/utils/dir2.py
|
||||||
|
yap_ipython/utils/strdispatch.py
|
||||||
|
yap_ipython/utils/sysinfo.py
|
||||||
|
yap_ipython/utils/io.py
|
||||||
|
yap_ipython/utils/decorators.py
|
||||||
|
yap_ipython/utils/contexts.py
|
||||||
|
yap_ipython/utils/data.py
|
||||||
|
yap_ipython/utils/terminal.py
|
||||||
|
yap_ipython/utils/syspathcontext.py
|
||||||
|
yap_ipython/utils/tokenize2.py
|
||||||
|
yap_ipython/utils/localinterfaces.py
|
||||||
|
yap_ipython/utils/_process_win32_controller.py
|
||||||
|
yap_ipython/utils/py3compat.py
|
||||||
|
yap_ipython/utils/sentinel.py
|
||||||
|
yap_ipython/utils/colorable.py
|
||||||
|
yap_ipython/utils/_sysinfo.py
|
||||||
|
yap_ipython/utils/importstring.py
|
||||||
|
yap_ipython/utils/tokenutil.py
|
||||||
|
yap_ipython/utils/traitlets.py
|
||||||
|
yap_ipython/utils/path.py
|
||||||
|
yap_ipython/utils/daemonize.py
|
||||||
|
yap_ipython/utils/log.py
|
||||||
|
yap_ipython/utils/openpy.py
|
||||||
|
yap_ipython/utils/tempdir.py
|
||||||
|
yap_ipython/utils/_process_common.py
|
||||||
|
yap_ipython/utils/tests/test_openpy.py
|
||||||
|
yap_ipython/utils/tests/test_path.py
|
||||||
|
yap_ipython/utils/tests/test_shimmodule.py
|
||||||
|
yap_ipython/utils/tests/test_sysinfo.py
|
||||||
|
yap_ipython/utils/tests/test_pycolorize.py
|
||||||
|
yap_ipython/utils/tests/test_wildcard.py
|
||||||
|
yap_ipython/utils/tests/test_imports.py
|
||||||
|
yap_ipython/utils/tests/test_importstring.py
|
||||||
|
yap_ipython/utils/tests/test_module_paths.py
|
||||||
|
yap_ipython/utils/tests/test_io.py
|
||||||
|
yap_ipython/utils/tests/test_text.py
|
||||||
|
yap_ipython/utils/tests/test_decorators.py
|
||||||
|
yap_ipython/utils/tests/test_tokenutil.py
|
||||||
|
yap_ipython/utils/tests/test_process.py
|
||||||
|
yap_ipython/utils/tests/test_dir2.py
|
||||||
|
yap_ipython/utils/tests/__init__.py
|
||||||
|
yap_ipython/utils/tests/test_capture.py
|
||||||
|
yap_ipython/utils/tests/test_tempdir.py
|
||||||
|
yap_ipython/utils/encoding.py
|
||||||
|
yap_ipython/utils/__init__.py
|
||||||
|
yap_ipython/utils/signatures.py
|
||||||
|
yap_ipython/utils/_process_win32.py
|
||||||
|
yap_ipython/utils/coloransi.py
|
||||||
|
yap_ipython/utils/_process_posix.py
|
||||||
|
yap_ipython/utils/shimmodule.py
|
||||||
|
yap_ipython/utils/timing.py
|
||||||
|
yap_ipython/utils/text.py
|
||||||
|
yap_ipython/utils/process.py
|
||||||
|
yap_ipython/utils/capture.py
|
||||||
|
yap_ipython/paths.py
|
||||||
|
yap_ipython/nbconvert.py
|
||||||
|
yap_ipython/external/mathjax.py
|
||||||
|
yap_ipython/external/qt_for_kernel.py
|
||||||
|
yap_ipython/external/decorators/_numpy_testing_noseclasses.py
|
||||||
|
yap_ipython/external/decorators/_decorators.py
|
||||||
|
yap_ipython/external/decorators/__init__.py
|
||||||
|
yap_ipython/external/__init__.py
|
||||||
|
yap_ipython/external/qt_loaders.py
|
||||||
|
yap_ipython/__init__.py
|
||||||
|
yap_ipython/sphinxext/ipython_console_highlighting.py
|
||||||
|
yap_ipython/sphinxext/ipython_directive.py
|
||||||
|
yap_ipython/sphinxext/custom_doctests.py
|
||||||
|
yap_ipython/sphinxext/__init__.py
|
||||||
|
yap_ipython/kernel/adapter.py
|
||||||
|
yap_ipython/kernel/channelsabc.py
|
||||||
|
yap_ipython/kernel/__main__.py
|
||||||
|
yap_ipython/kernel/launcher.py
|
||||||
|
yap_ipython/kernel/multikernelmanager.py
|
||||||
|
yap_ipython/kernel/restarter.py
|
||||||
|
yap_ipython/kernel/managerabc.py
|
||||||
|
yap_ipython/kernel/threaded.py
|
||||||
|
yap_ipython/kernel/clientabc.py
|
||||||
|
yap_ipython/kernel/connect.py
|
||||||
|
yap_ipython/kernel/kernelspecapp.py
|
||||||
|
yap_ipython/kernel/kernelspec.py
|
||||||
|
yap_ipython/kernel/channels.py
|
||||||
|
yap_ipython/kernel/__init__.py
|
||||||
|
yap_ipython/kernel/manager.py
|
||||||
|
yap_ipython/kernel/client.py
|
||||||
|
yap_ipython/nbformat.py
|
||||||
|
yap_ipython/extensions/cythonmagic.py
|
||||||
|
yap_ipython/extensions/storemagic.py
|
||||||
|
yap_ipython/extensions/tests/test_autoreload.py
|
||||||
|
yap_ipython/extensions/tests/test_storemagic.py
|
||||||
|
yap_ipython/extensions/tests/__init__.py
|
||||||
|
yap_ipython/extensions/__init__.py
|
||||||
|
yap_ipython/extensions/rmagic.py
|
||||||
|
yap_ipython/extensions/sympyprinting.py
|
||||||
|
yap_ipython/extensions/autoreload.py
|
||||||
|
yap_ipython/yapi.py
|
||||||
|
yap_ipython/qt.py
|
||||||
|
yap_ipython/lib/display.py
|
||||||
|
yap_ipython/lib/pretty.py
|
||||||
|
yap_ipython/lib/inputhookgtk.py
|
||||||
|
yap_ipython/lib/inputhookwx.py
|
||||||
|
yap_ipython/lib/lexers.py
|
||||||
|
yap_ipython/lib/demo.py
|
||||||
|
yap_ipython/lib/inputhookgtk3.py
|
||||||
|
yap_ipython/lib/kernel.py
|
||||||
|
yap_ipython/lib/inputhookpyglet.py
|
||||||
|
yap_ipython/lib/editorhooks.py
|
||||||
|
yap_ipython/lib/inputhook.py
|
||||||
|
yap_ipython/lib/backgroundjobs.py
|
||||||
|
yap_ipython/lib/latextools.py
|
||||||
|
yap_ipython/lib/deepreload.py
|
||||||
|
yap_ipython/lib/tests/test_editorhooks.py
|
||||||
|
yap_ipython/lib/tests/test_backgroundjobs.py
|
||||||
|
yap_ipython/lib/tests/test_display.py
|
||||||
|
yap_ipython/lib/tests/test_pretty.py
|
||||||
|
yap_ipython/lib/tests/test_imports.py
|
||||||
|
yap_ipython/lib/tests/test_clipboard.py
|
||||||
|
yap_ipython/lib/tests/test_lexers.py
|
||||||
|
yap_ipython/lib/tests/test_deepreload.py
|
||||||
|
yap_ipython/lib/tests/test_security.py
|
||||||
|
yap_ipython/lib/tests/__init__.py
|
||||||
|
yap_ipython/lib/tests/test_latextools.py
|
||||||
|
yap_ipython/lib/__init__.py
|
||||||
|
yap_ipython/lib/guisupport.py
|
||||||
|
yap_ipython/lib/security.py
|
||||||
|
yap_ipython/lib/inputhookglut.py
|
||||||
|
yap_ipython/lib/clipboard.py
|
||||||
|
yap_ipython/lib/inputhookqt4.py
|
||||||
|
__init__.py
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set (EXTRAS
|
set (EXTRAS
|
||||||
@ -60,15 +369,13 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
set (RESOURCES
|
set (RESOURCES
|
||||||
resources/custom.js
|
#yap_kernel/resources/logo-32x32.png
|
||||||
resources/prolog.js
|
#yap_kernel/resourcess/logo-64x64.png
|
||||||
#resources/logo-32x32.png
|
|
||||||
#resources/logo-64x64.png
|
|
||||||
)
|
)
|
||||||
set (RENAMED_RESOURCES
|
set (RENAMED_RESOURCES
|
||||||
resources/logo-32x32.png
|
yap_kernel/resources/logo-32x32.png
|
||||||
resources/logo-64x64.png
|
yap_kernel/resources/logo-64x64.png
|
||||||
# resources/codemirror/mode/prolog/prolog.js
|
# yap_kernel/resources/codemirror/mode/prolog/prolog.js
|
||||||
)
|
)
|
||||||
|
|
||||||
set (PL_SOURCES
|
set (PL_SOURCES
|
||||||
@ -79,29 +386,44 @@ set(FILES ${PYTHON_SOURCES} ${PL_SOURCES} ${EXTRAS} ${RESOURCES})
|
|||||||
|
|
||||||
set(SETUP_PY ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
|
set(SETUP_PY ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${i}
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap.tgz
|
||||||
COMMAND ${CMAKE_COMMAND} -E tar cvf ${CMAKE_CURRENT_BINARY_DIR}/yap.tgz ${FILESi}
|
COMMAND ${CMAKE_COMMAND} -E tar cf ${CMAKE_CURRENT_BINARY_DIR}/yap.tgz ${FILES}
|
||||||
|
|
||||||
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
DEPENDS ${FILES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-32x32.png
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-32x32.png
|
||||||
COMMAND ${CMAKE_COMMAND} -E tar xvf yap.tgz
|
COMMAND ${CMAKE_COMMAND} -E make_directory yap_kernel/resources
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_changed ${CMAKE_SOURCE_DIR}/docs/icons/yap_32z32x32.png ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-32x32.png
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/docs/icons/yap_32x32x32.png ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-32x32.png
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/docs/icons/yap_32x32x32.png
|
DEPENDS ${CMAKE_SOURCE_DIR}/docs/icons/yap_32x32x32.png
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-64x64.png
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-64x64.png
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_changed ${CMAKE_SOURCE_DIR}/docs/icons/yap_64x64x32.png ${CMAKE_CURRENT_BINARY_DIR}/resources/logo-64x64.png
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/docs/icons/yap_64x64x32.png ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-64x64.png
|
||||||
|
DEPENDS ${CMAKE_SOURCE_DIR}/docs/icons/yap_64x64x32.png
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(YAP_KERNEL
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E tar xvf yap.tgz
|
|
||||||
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/kernel.js
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/kernel.js ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kernel.js
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/prolog.js
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/misc/editors/yap.js ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/prolog.js
|
||||||
|
DEPENDS ${CMAKE_SOURCE_DIR}/misc/editors/yap.js
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(YAP_KERNEL ALL
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E tar xzf yap.tgz
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} build sdist bdist
|
COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} build sdist bdist
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-32x32.png ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/logo-64x64.png yap.tgz ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/kernel.js ${CMAKE_CURRENT_BINARY_DIR}/yap_kernel/resources/prolog.js
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,42 +1,18 @@
|
|||||||
|
|
||||||
;(function(window_CodeMirror){
|
define([
|
||||||
"use strict";
|
"/kernelspecs/yap_kernel/prolog.js"],function(CodeMirror){
|
||||||
|
|
||||||
// the `require` namespace for codemirror
|
var onload = function(){
|
||||||
CM_PATH = "components/codemirror/";
|
console.log("I am being loaded");
|
||||||
|
var cell = Jupyter.notebook.get_selected_cell();
|
||||||
define(
|
var cm = cell.config;
|
||||||
[
|
var patch = {
|
||||||
"underscore",
|
CodeCell:{
|
||||||
"jquery",
|
cm_config:{mode: "prolog"} // only change here.
|
||||||
CM_PATH + "lib/codemirror",
|
}
|
||||||
"base/js/namespace",
|
};
|
||||||
// silent upgrades
|
config.update(patch);
|
||||||
"./jshint.js",
|
return {onload:onload};
|
||||||
CM_PATH + "addon/lint/javascript-lint",
|
|
||||||
CM_PATH + "addon/hint/javascript-hint",
|
|
||||||
CM_PATH + "addon/lint/lint",
|
|
||||||
CM_PATH + "addon/hint/show-hint",
|
|
||||||
"./prolog.js"
|
|
||||||
],
|
|
||||||
function(_, $, CodeMirror, Jupyter){
|
|
||||||
|
|
||||||
// the main function
|
|
||||||
cm_tweak_js = function(cell){
|
|
||||||
var editor = cell.code_mirror,
|
|
||||||
opts = {},
|
|
||||||
meta = ensure_ns(cell),
|
|
||||||
keys = editor.getOption("extraKeys") || {},
|
|
||||||
mode = editor.getMode();
|
|
||||||
|
|
||||||
// only update editors we care about, reset ones we might have messed
|
|
||||||
if(!editor){
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
editor.setOption("mode", "x-text/prolog");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
);
|
||||||
} // the `define` callback
|
|
||||||
); // the `define`
|
|
||||||
).call(this, window.CodeMirror);
|
|
||||||
|
@ -37,12 +37,15 @@ from distutils.core import setup
|
|||||||
|
|
||||||
pjoin = os.path.join
|
pjoin = os.path.join
|
||||||
here = os.path.abspath(os.path.dirname(__file__))
|
here = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
packages = []
|
||||||
# pkg_root = pjoin(here, name)
|
# pkg_root = pjoin(here, name)
|
||||||
|
|
||||||
packages = setuptools.find_packages(here)
|
for d, _, _ in os.walk(pjoin(here, 'yap_kernel')):
|
||||||
# for d, _, _ in os.walk(pjoin(here, name)):
|
if os.path.exists(pjoin(d, '__init__.py')):
|
||||||
# if os.path.exists(pjoin(d, '__init__.py')):
|
packages.append(d[len(here)+1:].replace(os.path.sep, '.'))
|
||||||
# packages.append(d[len(here)+1:].replace(os.path.sep, '.'))
|
for d, _, _ in os.walk(pjoin(here, 'yap_ipython')):
|
||||||
|
if os.path.exists(pjoin(d, '__init__.py')):
|
||||||
|
packages.append(d[len(here)+1:].replace(os.path.sep, '.'))
|
||||||
|
|
||||||
sys.path.insert(0, here)
|
sys.path.insert(0, here)
|
||||||
package_data = {
|
package_data = {
|
||||||
@ -50,13 +53,14 @@ package_data = {
|
|||||||
'yap_kernel': ['resources/*.*']
|
'yap_kernel': ['resources/*.*']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
version_ns = {}
|
||||||
version_ns = {here, name, '_version.py')) as f:
|
with open(pjoin(here, name, '_version.py')) as f:
|
||||||
exec(f.read(), {}, version_ns)
|
exec(f.read(), {}, version_ns)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setup_args = dict(
|
setup_args = dict(
|
||||||
name = name,
|
name = name,
|
||||||
version = version_ns['__version__'],
|
version = version_ns['__version__'],
|
||||||
@ -64,10 +68,10 @@ setup_args = dict(
|
|||||||
packages = packages,
|
packages = packages,
|
||||||
py_modules = ['yap_kernel_launcher'],
|
py_modules = ['yap_kernel_launcher'],
|
||||||
package_data = package_data,
|
package_data = package_data,
|
||||||
package_dir = {'':here},
|
#package_dir = {'':here},
|
||||||
description = "YAP Kernel for Jupyter",
|
description = "YAP Kernel for Jupyter",
|
||||||
author = 'YAP Development Team',
|
author = 'YAP Development Team',
|
||||||
author_email = 'YAP-dev@scipy.org',
|
author_email = 'yap-dev@scipy.org',
|
||||||
url = 'http://ipython.org',
|
url = 'http://ipython.org',
|
||||||
license = 'BSD',
|
license = 'BSD',
|
||||||
platforms = "Linux, Mac OS X, Windows",
|
platforms = "Linux, Mac OS X, Windows",
|
||||||
@ -95,7 +99,7 @@ if any(a.startswith(('bdist', 'build', 'install')) for a in sys.argv):
|
|||||||
|
|
||||||
|
|
||||||
argv = make_yap_kernel_cmd(executable=sys.executable)
|
argv = make_yap_kernel_cmd(executable=sys.executable)
|
||||||
dest = os.path.join(here, 'resources')
|
dest = os.path.join(here, 'yap_kernel', 'resources')
|
||||||
try:
|
try:
|
||||||
write_kernel_spec(dest, overrides={'argv': argv})
|
write_kernel_spec(dest, overrides={'argv': argv})
|
||||||
except:
|
except:
|
||||||
@ -104,14 +108,14 @@ if any(a.startswith(('bdist', 'build', 'install')) for a in sys.argv):
|
|||||||
#setup_args['data_files'] = [(pjoin('share', 'jupyter', 'kernels', KERNEL_NAME), glob(pjoin(dest, '*')))]
|
#setup_args['data_files'] = [(pjoin('share', 'jupyter', 'kernels', KERNEL_NAME), glob(pjoin(dest, '*')))]
|
||||||
mode_loc = pjoin( sysconfig.get_path('platlib'), 'notebook', 'static', 'components', 'codemirror', 'mode', 'prolog')
|
mode_loc = pjoin( sysconfig.get_path('platlib'), 'notebook', 'static', 'components', 'codemirror', 'mode', 'prolog')
|
||||||
custom_loc = pjoin( sysconfig.get_path('platlib'), 'notebook', 'static', 'custom')
|
custom_loc = pjoin( sysconfig.get_path('platlib'), 'notebook', 'static', 'custom')
|
||||||
try:
|
# try:
|
||||||
shutil.copy( pjoin( custom_loc, "custom.js") , pjoin( custom_loc, "custom.js.orig"))
|
# shutil.copy( pjoin( custom_loc, "custom.js") , pjoin( custom_loc, "custom.js.orig"))
|
||||||
shutil.copy( pjoin( "resources", "custom.js") , pjoin( custom_loc, "custom.js"))
|
# shutil.copy( pjoin( "resources", "custom.js") , pjoin( custom_loc, "custom.js"))
|
||||||
if not os.path.exists(mode_loc):
|
# if not os.path.exists(mode_loc):
|
||||||
os.makedirs(mode_loc)
|
# os.makedirs(mode_loc)
|
||||||
shutil.copy( pjoin( "resources","prolog.js") , mode_loc)
|
# shutil.copy( pjoin( "resources","prolog.js") , mode_loc)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
extras_require = setuptools_args['extras_require'] = {
|
extras_require = setuptools_args['extras_require'] = {
|
||||||
'test:python_version=="2.7"': ['mock'],
|
'test:python_version=="2.7"': ['mock'],
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
#nothing here
|
@ -61,7 +61,7 @@ class YAPInputSplitter(InputSplitter):
|
|||||||
def __init__(self, line_input_checker=True, physical_line_transforms=None,
|
def __init__(self, line_input_checker=True, physical_line_transforms=None,
|
||||||
logical_line_transforms=None):
|
logical_line_transforms=None):
|
||||||
self._buffer_raw = []
|
self._buffer_raw = []
|
||||||
v self._validate = True
|
self._validate = True
|
||||||
self.yapeng = None
|
self.yapeng = None
|
||||||
|
|
||||||
if physical_line_transforms is not None:
|
if physical_line_transforms is not None:
|
||||||
@ -524,7 +524,6 @@ class YAPRun:
|
|||||||
return self.errors
|
return self.errors
|
||||||
|
|
||||||
def jupyter_query(self, s):
|
def jupyter_query(self, s):
|
||||||
import pdb; pdb.set_trace()
|
|
||||||
#
|
#
|
||||||
# construct a self.query from a one-line string
|
# construct a self.query from a one-line string
|
||||||
# self.q is opaque to Python
|
# self.q is opaque to Python
|
||||||
@ -551,7 +550,7 @@ class YAPRun:
|
|||||||
# variable names should match strings
|
# variable names should match strings
|
||||||
#for eq in vs:
|
#for eq in vs:
|
||||||
# if not isinstance(eq[0],str):x
|
# if not isinstance(eq[0],str):x
|
||||||
xf # print( "Error: Variable Name matches a Python Symbol")
|
# print( "Error: Variable Name matches a Python Symbol")
|
||||||
# return
|
# return
|
||||||
# ask = True
|
# ask = True
|
||||||
# launch the query
|
# launch the query
|
||||||
@ -677,7 +676,7 @@ xf # print( "Error: Variable Name matches a Python Symbol")
|
|||||||
# preprocessing_exc_tuple = sys.exc_info()
|
# preprocessing_exc_tuple = sys.exc_info()
|
||||||
|
|
||||||
|
|
||||||
e for i in self.syntaxErrors(raw_cell):
|
for i in self.syntaxErrors(raw_cell):
|
||||||
try:
|
try:
|
||||||
(what,lin,_,text) = i
|
(what,lin,_,text) = i
|
||||||
e = SyntaxError(what, ("<string>", lin, 1, text))
|
e = SyntaxError(what, ("<string>", lin, 1, text))
|
||||||
|
11
pl/boot.yap
11
pl/boot.yap
@ -165,8 +165,6 @@ print_message(L,E) :-
|
|||||||
% This is the YAP init file
|
% This is the YAP init file
|
||||||
% should be consulted first step after booting
|
% should be consulted first step after booting
|
||||||
|
|
||||||
:- '$mk_dynamic'(term_expansion/2).
|
|
||||||
|
|
||||||
:- c_compile('top.yap').
|
:- c_compile('top.yap').
|
||||||
|
|
||||||
% These are pseudo declarations
|
% These are pseudo declarations
|
||||||
@ -214,14 +212,12 @@ print_message(L,E) :-
|
|||||||
C == end_of_file
|
C == end_of_file
|
||||||
).
|
).
|
||||||
|
|
||||||
:- '$init_system'.
|
|
||||||
|
|
||||||
:- c_compile('arith.yap').
|
:- c_compile('arith.yap').
|
||||||
:- c_compile('builtins.yap').
|
|
||||||
%:- stop_low_level_trace.
|
%:- stop_low_level_trace.
|
||||||
|
|
||||||
:- '$all_current_modules'(M), yap_flag(M:unknown, error) ; true.
|
:- '$init_prolog'.
|
||||||
|
|
||||||
|
:- '$all_current_modules'(M), yap_flag(M:unknown, error) ; true.
|
||||||
|
|
||||||
:- compile_expressions.
|
:- compile_expressions.
|
||||||
|
|
||||||
@ -233,14 +229,13 @@ print_message(L,E) :-
|
|||||||
:- c_compile('preddecls.yap').
|
:- c_compile('preddecls.yap').
|
||||||
:- c_compile('preddyns.yap').
|
:- c_compile('preddyns.yap').
|
||||||
:- c_compile('meta.yap').
|
:- c_compile('meta.yap').
|
||||||
|
:- c_compile('builtins.yap').
|
||||||
:- c_compile('newmod.yap').
|
:- c_compile('newmod.yap').
|
||||||
|
|
||||||
:- c_compile('atoms.yap').
|
:- c_compile('atoms.yap').
|
||||||
:- c_compile('os.yap').
|
:- c_compile('os.yap').
|
||||||
:- c_compile('errors.yap').
|
:- c_compile('errors.yap').
|
||||||
|
|
||||||
:- '$init_prolog'.
|
|
||||||
|
|
||||||
initialize_prolog :-
|
initialize_prolog :-
|
||||||
'$init_prolog'.
|
'$init_prolog'.
|
||||||
|
|
||||||
|
@ -156,8 +156,7 @@ considered.
|
|||||||
'$exec_directive'(module(N,P,Op), Status, _, _, _) :-
|
'$exec_directive'(module(N,P,Op), Status, _, _, _) :-
|
||||||
'$module'(Status,N,P,Op).
|
'$module'(Status,N,P,Op).
|
||||||
'$exec_directive'(meta_predicate(P), _, M, _, _) :-
|
'$exec_directive'(meta_predicate(P), _, M, _, _) :-
|
||||||
'$yap_strip_module'(M:P,M0,P0),
|
'$meta_predicate'(P,M).
|
||||||
'$meta_predicate'(P0,M0).
|
|
||||||
'$exec_directive'(module_transparent(P), _, M, _, _) :-
|
'$exec_directive'(module_transparent(P), _, M, _, _) :-
|
||||||
'$module_transparent'(P, M).
|
'$module_transparent'(P, M).
|
||||||
'$exec_directive'(noprofile(P), _, M, _, _) :-
|
'$exec_directive'(noprofile(P), _, M, _, _) :-
|
||||||
|
21
pl/meta.yap
21
pl/meta.yap
@ -61,17 +61,20 @@ meta_predicate declaration
|
|||||||
'$meta_predicate'( P, M1 ).
|
'$meta_predicate'( P, M1 ).
|
||||||
'$meta_predicate'( D, M ) :-
|
'$meta_predicate'( D, M ) :-
|
||||||
functor(D,F,N),
|
functor(D,F,N),
|
||||||
( M = prolog -> M2 = _ ; M2 = M),
|
'$install_meta_predicate'(D,M,F,N),
|
||||||
'$install_meta_predicate'(D,M2,F,N),
|
|
||||||
fail.
|
fail.
|
||||||
'$meta_predicate'( _D, _M ).
|
'$meta_predicate'( _D, _M ).
|
||||||
|
|
||||||
|
'$install_meta_predicate'(P,M,_F,_N) :-
|
||||||
|
'$new_meta_pred'(P, M),
|
||||||
|
fail.
|
||||||
'$install_meta_predicate'(_P,M,F,N) :-
|
'$install_meta_predicate'(_P,M,F,N) :-
|
||||||
retractall(prolog:'$meta_predicate'(F,M,N,_)),
|
( M = prolog -> M2 = _ ; M2 = M),
|
||||||
|
retractall(prolog:'$meta_predicate'(F,M2,N,_)),
|
||||||
fail.
|
fail.
|
||||||
'$install_meta_predicate'(P,M,F,N) :-
|
'$install_meta_predicate'(P,M,F,N) :-
|
||||||
'$new_meta_pred'(P, M),
|
( M = prolog -> M2 = _ ; M2 = M),
|
||||||
assertz('$meta_predicate'(F,M,N,P)).
|
assertz('$meta_predicate'(F,M2,N,P)).
|
||||||
|
|
||||||
% comma has its own problems.
|
% comma has its own problems.
|
||||||
|
|
||||||
@ -494,7 +497,13 @@ expand_goal(Input, Output) :-
|
|||||||
'$expand_goals'(IG, _, GF0, M, SM, M, HVars-G),
|
'$expand_goals'(IG, _, GF0, M, SM, M, HVars-G),
|
||||||
'$yap_strip_module'(M:GF0, MF, GF).
|
'$yap_strip_module'(M:GF0, MF, GF).
|
||||||
|
|
||||||
:- '$install_meta_predicate'((0,0),_,(','),2).
|
:- '$install_meta_predicate'((0,0),prolog,(','),2).
|
||||||
|
|
||||||
|
meta_predicate(P) :-
|
||||||
|
source_module(SM),
|
||||||
|
'$meta_predicate'(P, SM).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
:- meta_predicate
|
:- meta_predicate
|
||||||
abolish(:),
|
abolish(:),
|
||||||
|
@ -194,7 +194,7 @@ X = 2 ? ;
|
|||||||
ERROR!!
|
ERROR!!
|
||||||
EXISTENCE ERROR- procedure c/1 is undefined, called from context prolog:$user_call/2
|
EXISTENCE ERROR- procedure c/1 is undefined, called from context prolog:$user_call/2
|
||||||
Goal was c:c(_131290)
|
Goal was c:c(_131290)
|
||||||
vv~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The state of the module system after this error is undefined.
|
The state of the module system after this error is undefined.
|
||||||
|
|
||||||
@ -452,9 +452,15 @@ export_resource(P0) :-
|
|||||||
; recorda('$module','$module'(user_input,Mod,user_input,[P],1),_)
|
; recorda('$module','$module'(user_input,Mod,user_input,[P],1),_)
|
||||||
).
|
).
|
||||||
export_resource(op(Prio,Assoc,Name)) :- !,
|
export_resource(op(Prio,Assoc,Name)) :- !,
|
||||||
op(Prio,Assoc,prolog:Name).
|
'$current_module'(Mod),
|
||||||
export_resource(op(Prio,Assoc,Name)) :- !,
|
op(Prio,Assoc,Mod:Name),
|
||||||
op(Prio,Assoc,user:Name).
|
( recorded('$module','$module'(File,Mod,SourceF,ExportedPreds,Line),R) ->
|
||||||
|
erase(R),
|
||||||
|
recorda('$module','$module'(File,Mod,SourceF,[op(Prio,Assoc,Name)|ExportedPreds],Line ),_)
|
||||||
|
; prolog_load_context(file, File) ->
|
||||||
|
recorda('$module','$module'(File,Mod,SourceF,[op(Prio,Assoc,Name)],Line),_)
|
||||||
|
; recorda('$module','$module'(user_input,Mod,user_input,[op(Prio,Assoc,Name)],1),_)
|
||||||
|
).
|
||||||
export_resource(Resource) :-
|
export_resource(Resource) :-
|
||||||
'$do_error'(type_error(predicate_indicator,Resource),export(Resource)).
|
'$do_error'(type_error(predicate_indicator,Resource),export(Resource)).
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user