From 4b3aedccb558670d8f8ea76e8bcbdedf457cfd02 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Sun, 15 Jul 2018 13:44:55 +0100 Subject: [PATCH] misc --- C/flags.c | 2 +- C/load_foreign.c | 4 ++++ H/Foreign.h | 6 ++++++ packages/jpl/src/c/jpl.c | 2 +- packages/swig/yap.i | 4 ++-- pl/load_foreign.yap | 14 ++++++-------- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/C/flags.c b/C/flags.c index e762e41ce..eb1bd9ffe 100644 --- a/C/flags.c +++ b/C/flags.c @@ -1731,7 +1731,7 @@ void Yap_InitFlags(bool bootstrap) { Obtain the value for a YAP Prolog flag, same as current_prolog_flag/2. */ - Yap_InitCPredBack("prolog_flag", 3, 1, current_prolog_flag, cont_yap_flag, + Yap_InitCPredBack("prolog_flag", 3, 1, prolog_flag, cont_yap_flag, 0); Yap_InitCPredBack("yap_flag", 3, 1, yap_flag, cont_yap_flag, 0); Yap_InitCPredBack("prolog_flag", 2, 1, current_prolog_flag2, diff --git a/C/load_foreign.c b/C/load_foreign.c index ea4d8ee97..bc764a289 100644 --- a/C/load_foreign.c +++ b/C/load_foreign.c @@ -283,3 +283,7 @@ void Yap_ReOpenLoadForeign(void) { } CurrentModule = OldModule; } + +X_API bool load_none(void) +{ +} diff --git a/H/Foreign.h b/H/Foreign.h index 135ed4bbf..6778d06df 100644 --- a/H/Foreign.h +++ b/H/Foreign.h @@ -129,4 +129,10 @@ void Yap_ShutdownLoadForeign(void); #define EAGER_LOADING 1 #define GLOBAL_LOADING 2 +/** + * stub can always be called at DLL loading. + * + */ +X_API bool load_none(void); + #endif diff --git a/packages/jpl/src/c/jpl.c b/packages/jpl/src/c/jpl.c index 2a1bbc939..d7e0c6c21 100755 --- a/packages/jpl/src/c/jpl.c +++ b/packages/jpl/src/c/jpl.c @@ -640,7 +640,7 @@ static JNIEnv* jni_env(void) /* economically gets a JNIEnv pointer, valid for this thread */ { JNIEnv *env; - switch( (*jvm)->GetEnv(jvm, (void**)&env, JNI_VERSION_1_2) ) + switch( (*jvm)->GetEnv(jvm, (void**)&env, JNI_VERSION_1_8) ) { case JNI_OK: return env; case JNI_EDETACHED: diff --git a/packages/swig/yap.i b/packages/swig/yap.i index fca51c2b4..7d38bc546 100644 --- a/packages/swig/yap.i +++ b/packages/swig/yap.i @@ -333,8 +333,8 @@ X_API extern Term YAP_MkCharPTerm( char *n); %template(TermVector) vector; %feature("novaluewrapper") vector; - //%template(YAPTermVector) vector; - //%feature("novaluewrapper") vector; + %template(YAPTermVector) vector; + %feature("novaluewrapper") vector; diff --git a/pl/load_foreign.yap b/pl/load_foreign.yap index 3ff848843..cacb8058c 100644 --- a/pl/load_foreign.yap +++ b/pl/load_foreign.yap @@ -39,11 +39,6 @@ */ -maplist_(_, [], []). -maplist_(Pred, [A1|L1], [A2|L2]) :- - call(Pred, A1, A2), - maplist_(Pred, L1, L2). - /** @pred load_foreign_files( _Files_, _Libs_, _InitRoutine_) should be used, from inside YAP, to load object files produced by the C @@ -74,8 +69,8 @@ load_foreign_files(Objs,Libs,Entry) :- access(read), expand(true), file_errors(fail)], NewObjs), - maplist_( '$load_lib', Libs, NewLibs), - '$load_foreign_files'(NewObjs,NewLibs,Entry), + '$load_libs'( Libs ), + '$load_foreign_files'(NewObjs,[],Entry), !, prolog_load_context(file, F), ignore( recordzifnot( '$load_foreign_done', [F, M], _) ). @@ -95,7 +90,10 @@ load_foreign_files(Objs,Libs,Entry) :- '$name_object'(I, P, O) :- absolute_file_name(I, O, P). -'$load_lib'(_,L,L). +'$load_libs'([]). +'$load_libs'([File|Files]) :- + open_shared_object(File, _Handle), + '$load_libs'(Files). /** @pred load_absolute_foreign_files( Files, Libs, InitRoutine)