fixes to Makefile and manual.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1641 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
eea9f2a58e
commit
b172a9e75d
16
C/dbase.c
16
C/dbase.c
@ -663,22 +663,6 @@ copy_double(CELL *st, CELL *pt)
|
|||||||
return st+(2+SIZEOF_DOUBLE/SIZEOF_LONG_INT);
|
return st+(2+SIZEOF_DOUBLE/SIZEOF_LONG_INT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static CELL *
|
|
||||||
copy_int_array(CELL *st, CELL *pt)
|
|
||||||
{
|
|
||||||
UInt sz = SIZEOF_LONG_INT*(pt[1]+4);
|
|
||||||
memcpy((void *)st, (void *)pt, sz);
|
|
||||||
return (CELL *)((char *)st+sz);
|
|
||||||
}
|
|
||||||
|
|
||||||
static CELL *
|
|
||||||
copy_double_array(CELL *st, CELL *pt)
|
|
||||||
{
|
|
||||||
UInt sz = SIZEOF_LONG_INT*4+SIZEOF_DOUBLE*pt[1]+(SIZEOF_DOUBLE-SIZEOF_LONG_INT);
|
|
||||||
memcpy((void *)st, (void *)pt, sz);
|
|
||||||
return (CELL *)((char *)st+sz);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef USE_GMP
|
#ifdef USE_GMP
|
||||||
static CELL *
|
static CELL *
|
||||||
copy_big_int(CELL *st, CELL *pt)
|
copy_big_int(CELL *st, CELL *pt)
|
||||||
|
38
C/other.c
38
C/other.c
@ -99,42 +99,4 @@ Yap_MkNewApplTerm(Functor f, unsigned int n)
|
|||||||
return (AbsAppl(t));
|
return (AbsAppl(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
Term
|
|
||||||
Yap_MkIntArrayTerm (UInt sz, Int *ptr)
|
|
||||||
{
|
|
||||||
CELL *h0 = H;
|
|
||||||
|
|
||||||
H[0] = (CELL) FunctorLongInt;
|
|
||||||
H[1] = (CELL) (sz);
|
|
||||||
memcpy((void *)(H+2), (void *)ptr, sz*sizeof(Int));
|
|
||||||
H += sz+2;
|
|
||||||
H[0] = (CELL) (sz);
|
|
||||||
#if GC_NO_TAGS
|
|
||||||
H[1] = EndSpecials;
|
|
||||||
#else
|
|
||||||
H[1] = EndSpecials | MBIT;
|
|
||||||
#endif
|
|
||||||
H += 2;
|
|
||||||
return AbsAppl(h0);
|
|
||||||
}
|
|
||||||
|
|
||||||
Term
|
|
||||||
Yap_MkFloatArrayTerm (UInt sz, Float *ptr)
|
|
||||||
{
|
|
||||||
CELL *h0 = H;
|
|
||||||
|
|
||||||
H[0] = (CELL) FunctorLongInt;
|
|
||||||
H[1] = (CELL) (sz);
|
|
||||||
H[2] = 0;
|
|
||||||
memcpy((void *)(H+3), (void *)ptr, sz*sizeof(Float));
|
|
||||||
H += sz+3;
|
|
||||||
H[0] = (CELL) (sz);
|
|
||||||
#if GC_NO_TAGS
|
|
||||||
H[1] = EndSpecials;
|
|
||||||
#else
|
|
||||||
H[1] = EndSpecials | MBIT;
|
|
||||||
#endif
|
|
||||||
H += 2;
|
|
||||||
return AbsAppl(h0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -526,8 +526,8 @@ libYap.a: $(LIB_OBJECTS)
|
|||||||
$(AR) rc libYap.a $(LIB_OBJECTS)
|
$(AR) rc libYap.a $(LIB_OBJECTS)
|
||||||
$(RANLIB) libYap.a
|
$(RANLIB) libYap.a
|
||||||
|
|
||||||
@IN_UNIX@@DO_SECOND_LD@@YAPLIB@: $(LIB_OBJECTS)
|
@DYNYAPLIB@: $(LIB_OBJECTS)
|
||||||
@IN_UNIX@@DO_SECOND_LD@ @DYNLIB_LD@ -o @YAPLIB@ $(LIB_OBJECTS) $(LIBS)
|
@DYNLIB_LD@ -o @YAPLIB@ $(LIB_OBJECTS) $(LIBS)
|
||||||
|
|
||||||
install: install_bin install_data
|
install: install_bin install_data
|
||||||
|
|
||||||
@ -539,7 +539,6 @@ install_unix: startup libYap.a
|
|||||||
mkdir -p $(DESTDIR)$(YAPLIBDIR)
|
mkdir -p $(DESTDIR)$(YAPLIBDIR)
|
||||||
$(INSTALL_DATA) startup $(DESTDIR)$(YAPLIBDIR)/startup
|
$(INSTALL_DATA) startup $(DESTDIR)$(YAPLIBDIR)/startup
|
||||||
@INSTALL_DLLS@ $(INSTALL_DATA) -m 755 @YAPLIB@ $(DESTDIR)$(LIBDIR)
|
@INSTALL_DLLS@ $(INSTALL_DATA) -m 755 @YAPLIB@ $(DESTDIR)$(LIBDIR)
|
||||||
$(INSTALL_DATA) libYap.a $(DESTDIR)$(LIBDIR)/libYap.a
|
|
||||||
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap
|
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap
|
||||||
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap/pl
|
mkdir -p $(DESTDIR)$(SHAREDIR)/Yap/pl
|
||||||
for f in $(PL_SOURCES); do $(INSTALL) $$f $(DESTDIR)$(SHAREDIR)/Yap/pl; done
|
for f in $(PL_SOURCES); do $(INSTALL) $$f $(DESTDIR)$(SHAREDIR)/Yap/pl; done
|
||||||
@ -574,7 +573,6 @@ install_win32: startup
|
|||||||
@# (cd library/Tries; make install)
|
@# (cd library/Tries; make install)
|
||||||
|
|
||||||
install_library: @YAPLIB@
|
install_library: @YAPLIB@
|
||||||
$(INSTALL_DATA) libYap.a $(DESTDIR)$(LIBDIR)/libYap.a
|
|
||||||
mkdir -p $(DESTDIR)$(INCLUDEDIR)
|
mkdir -p $(DESTDIR)$(INCLUDEDIR)
|
||||||
for h in $(HEADERS); do $(INSTALL) $$h $(DESTDIR)$(INCLUDEDIR); done
|
for h in $(HEADERS); do $(INSTALL) $$h $(DESTDIR)$(INCLUDEDIR); done
|
||||||
|
|
||||||
|
@ -761,15 +761,19 @@ then
|
|||||||
CROSS_SIMULATOR="LD_LIBRARY_PATH=."
|
CROSS_SIMULATOR="LD_LIBRARY_PATH=."
|
||||||
case "$target_os" in
|
case "$target_os" in
|
||||||
*darwin*)
|
*darwin*)
|
||||||
YAPLIB=libYap"$SHLIB_SUFFIX"
|
DYNYAPLIB=libYap"$SHLIB_SUFFIX"
|
||||||
|
YAPLIB="$DYNYAPLIB"
|
||||||
DYNLIB_LD="gcc -dynamiclib"
|
DYNLIB_LD="gcc -dynamiclib"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
LDFLAGS="$LDFLAGS -Wl,-R,$prefix/lib"
|
LDFLAGS="$LDFLAGS -Wl,-R,$prefix/lib"
|
||||||
YAPLIB=libYap"$SHLIB_SUFFIX"
|
DYNYAPLIB=libYap"$SHLIB_SUFFIX"
|
||||||
|
YAPLIB="$DYNYAPLIB"
|
||||||
DYNLIB_LD="$SHLIB_LD"
|
DYNLIB_LD="$SHLIB_LD"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
else
|
||||||
|
DYNYAPLIB=libYap.notused
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$coroutining" = "yes"
|
if test "$coroutining" = "yes"
|
||||||
@ -961,6 +965,7 @@ AC_SUBST(SHLIB_LD)
|
|||||||
AC_SUBST(DYNLIB_LD)
|
AC_SUBST(DYNLIB_LD)
|
||||||
dnl objects in YAP library
|
dnl objects in YAP library
|
||||||
AC_SUBST(YAPLIB)
|
AC_SUBST(YAPLIB)
|
||||||
|
AC_SUBST(DYNYAPLIB)
|
||||||
AC_SUBST(LDFLAGS)
|
AC_SUBST(LDFLAGS)
|
||||||
dnl install_info
|
dnl install_info
|
||||||
AC_SUBST(INSTALL_INFO)
|
AC_SUBST(INSTALL_INFO)
|
||||||
|
24
docs/yap.tex
24
docs/yap.tex
@ -8,7 +8,7 @@
|
|||||||
@c @setchapternewpage odd
|
@c @setchapternewpage odd
|
||||||
@c %**end of header
|
@c %**end of header
|
||||||
|
|
||||||
@set VERSION: 5.1.1
|
@set VERSION: 5.1.2
|
||||||
@set EDITION 4.2.4
|
@set EDITION 4.2.4
|
||||||
@set UPDATED December 2004
|
@set UPDATED December 2004
|
||||||
|
|
||||||
@ -5768,7 +5768,7 @@ Reset all profiling information.
|
|||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@subsection{Tick Profiler}
|
@subsection Tick Profiler
|
||||||
The tick profiler works by interrupting the Prolog code every so often
|
The tick profiler works by interrupting the Prolog code every so often
|
||||||
and checking at each point the code was. The profiler must be able to
|
and checking at each point the code was. The profiler must be able to
|
||||||
retrace the state of the abstract machine at every moment. The major
|
retrace the state of the abstract machine at every moment. The major
|
||||||
@ -7807,17 +7807,17 @@ with @var{NewVal}. Fails if it cannot find @var{Key} in @var{T}.
|
|||||||
@snindex rb_apply/4
|
@snindex rb_apply/4
|
||||||
@cnindex rb_apply/4
|
@cnindex rb_apply/4
|
||||||
If the value associated with key @var{Key} is @var{Val0} in @var{T}, and
|
If the value associated with key @var{Key} is @var{Val0} in @var{T}, and
|
||||||
if @var{call(G,Val0,ValF)} holds, then @var{TN} differs from @var{T}
|
if @code{call(G,Val0,ValF)} holds, then @var{TN} differs from
|
||||||
only in that @var{Key} is associated with value @var{ValF} in tree
|
@var{T} only in that @var{Key} is associated with value @var{ValF} in
|
||||||
@var{TN}. Fails if it cannot find @var{Key} in @var{T}, or if
|
tree @var{TN}. Fails if it cannot find @var{Key} in @var{T}, or if
|
||||||
@var{call(G,Val0,ValF)} is not satisfiable.
|
@code{call(G,Val0,ValF)} is not satisfiable.
|
||||||
|
|
||||||
@item rb_visit(+@var{T},-@var{Pairs})
|
@item rb_visit(+@var{T},-@var{Pairs})
|
||||||
@findex rb_visit/2
|
@findex rb_visit/2
|
||||||
@snindex rb_visit/2
|
@snindex rb_visit/2
|
||||||
@cnindex rb_visit/2
|
@cnindex rb_visit/2
|
||||||
@var{Pairs} is an infix visit of tree @var{T}, where each element of
|
@var{Pairs} is an infix visit of tree @var{T}, where each element of
|
||||||
@var{Pairs} is of the form @var{K-Val}.
|
@var{Pairs} is of the form @var{K}-@var{Val}.
|
||||||
|
|
||||||
@item rb_size(+@var{T},-@var{Size})
|
@item rb_size(+@var{T},-@var{Size})
|
||||||
@findex rb_size/2
|
@findex rb_size/2
|
||||||
@ -7838,8 +7838,8 @@ sorted, but may be duplicate.
|
|||||||
@cnindex rb_map/3
|
@cnindex rb_map/3
|
||||||
For all nodes @var{Key} in the tree @var{T}, if the value associated with
|
For all nodes @var{Key} in the tree @var{T}, if the value associated with
|
||||||
key @var{Key} is @var{Val0} in tree @var{T}, and if
|
key @var{Key} is @var{Val0} in tree @var{T}, and if
|
||||||
@var{call(G,Val0,ValF)} holds, then the value associated with @var{Key}
|
@code{call(G,Val0,ValF)} holds, then the value associated with @var{Key}
|
||||||
in @var{TN} is @var{ValF}. Fails if or if @var{call(G,Val0,ValF)} is not
|
in @var{TN} is @var{ValF}. Fails if or if @code{call(G,Val0,ValF)} is not
|
||||||
satisfiable for all @var{Var0}.
|
satisfiable for all @var{Var0}.
|
||||||
|
|
||||||
@item rb_partial_map(+@var{T},+@var{Keys},+@var{G},-@var{TN})
|
@item rb_partial_map(+@var{T},+@var{Keys},+@var{G},-@var{TN})
|
||||||
@ -7847,9 +7847,9 @@ satisfiable for all @var{Var0}.
|
|||||||
@snindex rb_partial_map/4
|
@snindex rb_partial_map/4
|
||||||
@cnindex rb_partial_map/4
|
@cnindex rb_partial_map/4
|
||||||
For all nodes @var{Key} in @var{Keys}, if the value associated with key
|
For all nodes @var{Key} in @var{Keys}, if the value associated with key
|
||||||
@var{Key} is @var{Val0} in tree @var{T}, and if @var{call(G,Val0,ValF)}
|
@var{Key} is @var{Val0} in tree @var{T}, and if @code{call(G,Val0,ValF)}
|
||||||
holds, then the value associated with @var{Key} in @var{TN} is
|
holds, then the value associated with @var{Key} in @var{TN} is
|
||||||
@var{ValF}. Fails if or if @var{call(G,Val0,ValF)} is not satisfiable
|
@var{ValF}. Fails if or if @code{call(G,Val0,ValF)} is not satisfiable
|
||||||
for all @var{Var0}. Assumes keys are not repeated.
|
for all @var{Var0}. Assumes keys are not repeated.
|
||||||
|
|
||||||
@item rb_clone(+@var{T},+@var{NT},+@var{Nodes})
|
@item rb_clone(+@var{T},+@var{NT},+@var{Nodes})
|
||||||
@ -11030,7 +11030,7 @@ We next discuss several issues on trying to make Prolog programs run
|
|||||||
fast in YAP. We assume two different programming styles:
|
fast in YAP. We assume two different programming styles:
|
||||||
|
|
||||||
@table @bullet
|
@table @bullet
|
||||||
@item Execution of @item{deterministic} programs often
|
@item Execution of @emph{deterministic} programs often
|
||||||
boils down to a recursive loop of the form:
|
boils down to a recursive loop of the form:
|
||||||
@example
|
@example
|
||||||
loop(Env) :-
|
loop(Env) :-
|
||||||
|
@ -30,7 +30,8 @@
|
|||||||
matrix_new/4,
|
matrix_new/4,
|
||||||
matrix_dim/2,
|
matrix_dim/2,
|
||||||
matrix_type/2,
|
matrix_type/2,
|
||||||
matrix_max/2]).
|
matrix_max/2,
|
||||||
|
matrix_add/3]).
|
||||||
|
|
||||||
:- use_module(library_lists,
|
:- use_module(library_lists,
|
||||||
[append/3]).
|
[append/3]).
|
||||||
|
Reference in New Issue
Block a user