Merge branch 'master' of https://github.com/vscosta/yap-6.3
This commit is contained in:
commit
4f7a5809d5
@ -1745,6 +1745,7 @@ static int legal_env(CELL *ep USES_REGS) {
|
|||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static bool handled_exception(USES_REGS1) {
|
static bool handled_exception(USES_REGS1) {
|
||||||
yamop *pos = NEXTOP(PredDollarCatch->cs.p_code.TrueCodeOfPred, l);
|
yamop *pos = NEXTOP(PredDollarCatch->cs.p_code.TrueCodeOfPred, l);
|
||||||
bool found_handler = false;
|
bool found_handler = false;
|
||||||
@ -1767,6 +1768,8 @@ static bool handled_exception(USES_REGS1) {
|
|||||||
return !found_handler;
|
return !found_handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ADDBUF( CMD ) { \
|
#define ADDBUF( CMD ) { \
|
||||||
while (true) { \
|
while (true) { \
|
||||||
size_t sz = CMD; \
|
size_t sz = CMD; \
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
|
||||||
#include "inline-only.h"
|
#include "inline-only.h"
|
||||||
#define _EXPORT_KERNEL 1
|
#define _EXPORT_KERNEL 1
|
||||||
|
}
|
||||||
|
|
||||||
#include "yapi.hh"
|
#include "yapi.hh"
|
||||||
|
|
||||||
|
11
CXX/yapi.hh
11
CXX/yapi.hh
@ -13,21 +13,22 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
#include "YapConfig.h"
|
#include "YapConfig.h"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_GMPXX_H || defined(__ANDROID__)
|
|
||||||
#include <gmpxx.h>
|
#include <gmpxx.h>
|
||||||
#elif HAVE_GMP_H
|
|
||||||
#include <gmp.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
* @ingroup fli_c_cxx
|
* @ingroup fli_c_cxx
|
||||||
* @defgroup yap-cplus-interface An object oriented interface for YAP.
|
* @defgroup yap-cplus-interface An object oriented interface for YAP.
|
||||||
*
|
*
|
||||||
* @{
|
1 * @{
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @brief C++ wrapper to terms, predicates and queries
|
* @brief C++ wrapper to terms, predicates and queries
|
||||||
|
@ -398,6 +398,8 @@ INLINE_ONLY bool IsBigIntTerm(Term t) {
|
|||||||
|
|
||||||
#if !defined(__cplusplus)
|
#if !defined(__cplusplus)
|
||||||
#include <gmp.h>
|
#include <gmp.h>
|
||||||
|
#else
|
||||||
|
#include <gmpxx.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
12
H/YapText.h
12
H/YapText.h
@ -833,7 +833,7 @@ static inline Term Yap_CharsToTBQ(const char *s, Term mod,
|
|||||||
static inline Atom Yap_ListOfAtomsToAtom(Term t0 USES_REGS) {
|
static inline Atom Yap_ListOfAtomsToAtom(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_ATOMS;
|
inp.type = YAP_STRING_ATOMS|YAP_STRING_CODES;
|
||||||
out.type = YAP_STRING_ATOM;
|
out.type = YAP_STRING_ATOM;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
out.enc = ENC_ISO_UTF8;
|
out.enc = ENC_ISO_UTF8;
|
||||||
@ -845,7 +845,7 @@ static inline Atom Yap_ListOfAtomsToAtom(Term t0 USES_REGS) {
|
|||||||
static inline Term Yap_ListOfAtomsToNumber(Term t0 USES_REGS) {
|
static inline Term Yap_ListOfAtomsToNumber(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_ATOMS;
|
inp.type = YAP_STRING_ATOMS|YAP_STRING_CODES;
|
||||||
out.type =
|
out.type =
|
||||||
YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -858,7 +858,7 @@ static inline Term Yap_ListOfAtomsToNumber(Term t0 USES_REGS) {
|
|||||||
static inline Term Yap_ListOfAtomsToString(Term t0 USES_REGS) {
|
static inline Term Yap_ListOfAtomsToString(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_ATOMS;
|
inp.type = YAP_STRING_ATOMS|YAP_STRING_CODES;
|
||||||
out.type = YAP_STRING_STRING;
|
out.type = YAP_STRING_STRING;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
out.enc = ENC_ISO_UTF8;
|
out.enc = ENC_ISO_UTF8;
|
||||||
@ -870,7 +870,7 @@ static inline Term Yap_ListOfAtomsToString(Term t0 USES_REGS) {
|
|||||||
static inline Atom Yap_ListOfCodesToAtom(Term t0 USES_REGS) {
|
static inline Atom Yap_ListOfCodesToAtom(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_CODES;
|
inp.type = YAP_STRING_CODES|YAP_STRING_ATOMS;
|
||||||
out.type = YAP_STRING_ATOM;
|
out.type = YAP_STRING_ATOM;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
out.enc = ENC_ISO_UTF8;
|
out.enc = ENC_ISO_UTF8;
|
||||||
@ -882,7 +882,7 @@ static inline Atom Yap_ListOfCodesToAtom(Term t0 USES_REGS) {
|
|||||||
static inline Term Yap_ListOfCodesToNumber(Term t0 USES_REGS) {
|
static inline Term Yap_ListOfCodesToNumber(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_CODES;
|
inp.type = YAP_STRING_CODES|YAP_STRING_ATOMS;
|
||||||
out.type = YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG;
|
out.type = YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG;
|
||||||
out.enc = ENC_ISO_UTF8;
|
out.enc = ENC_ISO_UTF8;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -895,7 +895,7 @@ static inline Term Yap_ListOfCodesToString(Term t0 USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_CODES;
|
inp.type = YAP_STRING_CODES|YAP_STRING_ATOMS;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
out.type = YAP_STRING_STRING;
|
out.type = YAP_STRING_STRING;
|
||||||
out.enc = ENC_ISO_UTF8;
|
out.enc = ENC_ISO_UTF8;
|
||||||
|
@ -263,9 +263,9 @@ db_open(odbc,Connection,ODBCEntry,User,Password) :-
|
|||||||
|
|
||||||
%% sqlite3
|
%% sqlite3
|
||||||
db_open(sqlite3,Connection,File,User,Password) :-
|
db_open(sqlite3,Connection,File,User,Password) :-
|
||||||
absolute_file_name(File,DB,[extensions(db),access(write),file_type(myddas),expand(true)]),
|
absolute_file_name(File,Db,[extensions(db),access(write),file_type(myddas),expand(true)]),
|
||||||
'$error_checks'(db_open(sqlite3,Connection,File,User,Password)),
|
'$error_checks'(db_open(sqlite3,Connection,Db,User,Password)),
|
||||||
c_sqlite3_connect(File,User,Password,Con),
|
c_sqlite3_connect(Db,User,Password,Con),
|
||||||
set_value(Connection,Con).
|
set_value(Connection,Con).
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
@ -7,13 +7,13 @@
|
|||||||
|
|
||||||
:- begin_tests(sqlite3).
|
:- begin_tests(sqlite3).
|
||||||
|
|
||||||
:- if( yap_flag(android,true) ).
|
%:- if( yap_flag(android,true) ).
|
||||||
test(open) :-
|
%test(open) :-
|
||||||
db_open(sqlite3, '/data/user/0/pt.up.yap/files/chinook.db', _, _).
|
% db_open(sqlite3, '/data/user/0/pt.up.yap/files/chinook.db', _, _).
|
||||||
:- else.
|
%:- else.
|
||||||
test(open) :-
|
test(open) :-
|
||||||
db_open(sqlite3,dataset('chinook'),_,_).
|
db_open(sqlite3,dataset('chinook'),_,_).
|
||||||
:-endif.
|
%:-endif.
|
||||||
|
|
||||||
test(schema0, all((Tables ==[(table albums),
|
test(schema0, all((Tables ==[(table albums),
|
||||||
(table artists),
|
(table artists),
|
||||||
@ -40,7 +40,7 @@ test(all_artists, all((
|
|||||||
273-'C. Monteverdi, Nigel Rogers - Chiaroscuro; London Baroque; London Cornett & Sackbu',
|
273-'C. Monteverdi, Nigel Rogers - Chiaroscuro; London Baroque; London Cornett & Sackbu',
|
||||||
274-'Nash Ensemble',
|
274-'Nash Ensemble',
|
||||||
275-'Philip Glass Ensemble'] ))) :-
|
275-'Philip Glass Ensemble'] ))) :-
|
||||||
artists(X,Y).
|
findall(X-Y,artists(X,Y),L).
|
||||||
|
|
||||||
test(cut_artists, true((X-Y == 1-'AC/DC'))) :-
|
test(cut_artists, true((X-Y == 1-'AC/DC'))) :-
|
||||||
artists(X, Y),
|
artists(X, Y),
|
||||||
|
12
pl/debug.yap
12
pl/debug.yap
@ -846,16 +846,12 @@ be lost.
|
|||||||
'$scan_number'(ScanNumber),
|
'$scan_number'(ScanNumber),
|
||||||
( ScanNumber == 0 -> Goal = CallNumber ; Goal = ScanNumber ),
|
( ScanNumber == 0 -> Goal = CallNumber ; Goal = ScanNumber ),
|
||||||
'__NB_setval__'('$debug_status', state(leap, Goal, stop)).
|
'__NB_setval__'('$debug_status', state(leap, Goal, stop)).
|
||||||
'$action'(z,_,CallNumber,_,_,_H) :- !, % 'z zip, fast leap
|
'$action'(z,_,_allNumber,_,_,_H) :- !, % 'z zip, fast leap
|
||||||
'$scan_number'(ScanNumber),
|
'__NB_setval__'('$debug_status', state(zip, 0, stop)).
|
||||||
( ScanNumber == 0 -> Goal = CallNumber ; Goal = ScanNumber ),
|
|
||||||
'__NB_setval__'('$debug_status', state(zip, Goal, stop)).
|
|
||||||
% skip first call (for current goal),
|
% skip first call (for current goal),
|
||||||
% stop next time.
|
% stop next time.
|
||||||
'$action'(k,_,CallNumber,_,_,_) :- !, % 'k zip, fast leap
|
'$action'(k,_,_CallNumber,_,_,_) :- !, % 'k zip, fast leap
|
||||||
'$scan_number'(ScanNumber),
|
'__NB_setval__'('$debug_status', state(zip, 0, stop)).
|
||||||
( ScanNumber == 0 -> Goal = CallNumber ; Goal = ScanNumber ),
|
|
||||||
'__NB_setval__'('$debug_status', state(zip, Goal, ignore)).
|
|
||||||
% skip first call (for current goal),
|
% skip first call (for current goal),
|
||||||
% stop next time.
|
% stop next time.
|
||||||
'$action'(n,_,_,_,_,_) :- !, % 'n nodebug
|
'$action'(n,_,_,_,_,_) :- !, % 'n nodebug
|
||||||
|
@ -102,7 +102,8 @@ user:term_expansion(In, Out) :-
|
|||||||
if_expansion(In, Out).
|
if_expansion(In, Out).
|
||||||
|
|
||||||
swi :- catch(current_prolog_flag(dialect, swi), _, fail), !.
|
swi :- catch(current_prolog_flag(dialect, swi), _, fail), !.
|
||||||
swi :- catch(current_prolog_flag(dialect, yap), _, fail).
|
swi :- catch(current_prolog_flag(dialect, yap), _, fail), !.
|
||||||
|
yap :- catch(current_prolog_flag(dialect, yap), _, fail), !.
|
||||||
sicstus :- catch(current_prolog_flag(system_type, _), _, fail).
|
sicstus :- catch(current_prolog_flag(system_type, _), _, fail).
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user