diff --git a/C/bignum.c b/C/bignum.c index 6875714fe..9da4739ce 100644 --- a/C/bignum.c +++ b/C/bignum.c @@ -26,12 +26,12 @@ static char SccsId[] = "%W% %G%"; #endif #include "YapHeap.h" +#include "pl-utf8.h" #ifdef USE_GMP #include "eval.h" #include "alloc.h" -#include "pl-utf8.h" Term Yap_MkBigIntTerm(MP_INT *big) diff --git a/C/c_interface.c b/C/c_interface.c index 2028f33b3..d3a9df83a 100644 --- a/C/c_interface.c +++ b/C/c_interface.c @@ -3225,21 +3225,6 @@ YAP_Init(YAP_init_args *yap_init) */ yap_flags[HALT_AFTER_CONSULT_FLAG] = yap_init->HaltAfterConsult; } -#ifdef MYDDAS_MYSQL - if (yap_init->myddas) { - Yap_PutValue(AtomMyddasGoal,MkIntegerTerm(yap_init->myddas)); - - /* Mandatory Fields */ - Yap_PutValue(AtomMyddasUser,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_user))); - Yap_PutValue(AtomMyddasDB,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_db))); - - /* Non-Mandatory Fields */ - if (yap_init->myddas_pass != NULL) - Yap_PutValue(AtomMyddasPass,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_pass))); - if (yap_init->myddas_host != NULL) - Yap_PutValue(AtomMyddasHost,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_host))); - } -#endif if (yap_init->YapPrologTopLevelGoal) { Yap_PutValue(AtomTopLevelGoal, MkAtomTerm(Yap_LookupAtom(yap_init->YapPrologTopLevelGoal))); } diff --git a/C/exec.c b/C/exec.c index 97d8b5c7b..c54e90f58 100644 --- a/C/exec.c +++ b/C/exec.c @@ -25,9 +25,6 @@ static char SccsId[] = "@(#)cdmgr.c 1.1 05/02/98"; #ifdef CUT_C #include "cut_c.h" #endif -#if defined MYDDAS_ODBC || defined MYDDAS_MYSQL -#include "myddas.h" -#endif static Int CallPredicate(PredEntry *, choiceptr, yamop * CACHE_TYPE); static Int EnterCreepMode(Term, Term CACHE_TYPE); @@ -1804,9 +1801,6 @@ Yap_InitYaamRegs( int myworker_id ) Yap_InitPreAllocCodeSpace( myworker_id ); #ifdef CUT_C cut_c_initialize( myworker_id ); -#endif -#if defined MYDDAS_MYSQL || defined MYDDAS_ODBC - Yap_REGS.MYDDAS_GLOBAL_POINTER = NULL; #endif Yap_PrepGoal(0, NULL, NULL PASS_REGS); #ifdef TABLING diff --git a/C/init.c b/C/init.c index 3f976a088..fb2e0abf1 100755 --- a/C/init.c +++ b/C/init.c @@ -1234,10 +1234,6 @@ InitVersion(void) { Yap_PutValue(AtomVersionNumber, MkAtomTerm(Yap_LookupAtom(YAP_SVERSION))); -#if defined MYDDAS_MYSQL || defined MYDDAS_ODBC - Yap_PutValue(AtomMyddasVersionName, - MkAtomTerm(Yap_LookupAtom(MYDDAS_VERSION))); -#endif } void @@ -1402,9 +1398,6 @@ Yap_exit (int value) #ifdef LOW_PROF remove("PROFPREDS"); remove("PROFILING"); -#endif -#if defined MYDDAS_MYSQL || defined MYDDAS_ODBC - Yap_MYDDAS_delete_all_myddas_structs(); #endif run_halt_hooks(value); Yap_ShutdownLoadForeign(); diff --git a/C/stdpreds.c b/C/stdpreds.c index 5948d0098..114454f43 100644 --- a/C/stdpreds.c +++ b/C/stdpreds.c @@ -1957,15 +1957,6 @@ Yap_InitBackCPreds(void) Yap_InitBackIO(); Yap_InitBackDB(); Yap_InitUserBacks(); -#if defined MYDDAS_MYSQL && defined CUT_C - Yap_InitBackMYDDAS_MySQLPreds(); -#endif -#if defined MYDDAS_ODBC && defined CUT_C - Yap_InitBackMYDDAS_ODBCPreds(); -#endif -#if defined CUT_C && (defined MYDDAS_ODBC || defined MYDDAS_MYSQL) - Yap_InitBackMYDDAS_SharedPreds(); -#endif } typedef void (*Proc)(void); @@ -2074,18 +2065,6 @@ Yap_InitCPreds(void) Yap_InitUnify(); Yap_InitQLY(); Yap_InitQLYR(); -#if defined CUT_C && defined MYDDAS_MYSQL - Yap_InitMYDDAS_MySQLPreds(); -#endif -#if defined CUT_C && defined MYDDAS_ODBC - Yap_InitMYDDAS_ODBCPreds(); -#endif -#if defined CUT_C && (defined MYDDAS_ODBC || defined MYDDAS_MYSQL) - Yap_InitMYDDAS_SharedPreds(); -#endif -#if defined MYDDAS_TOP_LEVEL && defined MYDDAS_MYSQL // && defined HAVE_LIBREADLINE - Yap_InitMYDDAS_TopLevelPreds(); -#endif Yap_udi_init(); Yap_udi_Interval_init(); Yap_InitSignalCPreds(); diff --git a/C/tracer.c b/C/tracer.c index 7b314636f..d39dbbe4e 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -140,12 +140,12 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) char *mname; Int arity; /* extern int gc_calls; */ - + vsc_count++; + return; // if (!worker_id) return; LOCK(Yap_heap_regs->low_level_trace_lock); sc = Yap_heap_regs; - vsc_count++; //if (vsc_count == 54) jmp_deb(1); // fprintf(stderr,"B=%p ", B); #ifdef THREADS diff --git a/C/yap-args.c b/C/yap-args.c index 6457a1c86..23f355112 100755 --- a/C/yap-args.c +++ b/C/yap-args.c @@ -165,9 +165,6 @@ YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap) int BootMode = YAP_FULL_BOOT_FROM_PROLOG; #else int BootMode = YAP_BOOT_FROM_SAVED_CODE; -#endif -#ifdef MYDDAS_MYSQL - char *myddas_temp; #endif unsigned long int *ssize; @@ -199,13 +196,6 @@ YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap) iap->Argc = argc; iap->Argv = argv; iap->def_c = 0; -#ifdef MYDDAS_MYSQL - iap->myddas = 0; - iap->myddas_user = NULL; - iap->myddas_pass = NULL; - iap->myddas_db = NULL; - iap->myddas_host = NULL; -#endif iap->ErrorNo = 0; iap->ErrorCause = NULL; iap->QuietMode = FALSE; @@ -259,36 +249,6 @@ YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap) break; } break; -#ifdef MYDDAS_MYSQL - case 'm': - if (strncmp(p,"myddas_",7) == 0) - { - iap->myddas = 1; - if ((*argv)[0] == '\0') - myddas_temp = *argv; - else { - argc--; - if (argc == 0) { - fprintf(stderr," [ YAP unrecoverable error: missing file name with option 'l' ]\n"); - exit(EXIT_FAILURE); - } - argv++; - myddas_temp = *argv; - } - - if (strstr(p,"user") != NULL) - iap->myddas_user = myddas_temp; - else if (strstr(p,"pass") != NULL) - iap->myddas_pass = myddas_temp; - else if (strstr(p,"db") != NULL) - iap->myddas_db = myddas_temp; - else if (strstr(p,"host") != NULL) - iap->myddas_host = myddas_temp; - else - goto myddas_error_print; - break; - } -#endif // execution mode case 'J': switch (p[1]) { @@ -498,7 +458,7 @@ YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap) iap->PrologShouldHandleInterrupts = FALSE; break; } - goto myddas_error_print; + break; case 'p': if ((*argv)[0] == '\0') iap->YapPrologAddPath = *argv; @@ -540,11 +500,7 @@ YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap) break; default: { - myddas_error_print : fprintf(stderr,"[ YAP unrecoverable error: unknown switch -%c ]\n", *p); -#ifdef MYDDAS_MYSQL - myddas_error : -#endif print_usage(); exit(EXIT_FAILURE); } @@ -553,15 +509,6 @@ YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap) iap->SavedState = p; } } -#ifdef MYDDAS_MYSQL - /* Check MYDDAS Arguments */ - if (iap->myddas_user != NULL || iap->myddas_pass != NULL - || iap->myddas_db != NULL || iap->myddas_host != NULL) - if (iap->myddas_user == NULL || iap->myddas_db == NULL){ - fprintf(stderr,"[ YAP unrecoverable error: Missing Mandatory Arguments for MYDDAS ]\n"); - goto myddas_error; - } -#endif GD->cmdline.appl_argc = argc; GD->cmdline.appl_argv = argv; return BootMode; diff --git a/H/Regs.h b/H/Regs.h index 1fcb0cd76..5e5920fa7 100644 --- a/H/Regs.h +++ b/H/Regs.h @@ -20,9 +20,6 @@ #include "cut_c.h" #endif -#if defined MYDDAS_ODBC || defined MYDDAS_MYSQL -#include "myddas.h" -#endif #endif #define MaxTemps 512 diff --git a/H/TermExt.h b/H/TermExt.h index d7ff035b9..a1f363df5 100755 --- a/H/TermExt.h +++ b/H/TermExt.h @@ -261,7 +261,6 @@ CpFloatUnaligned (CELL * ptr) INLINE_ONLY inline EXTERN Term __MkFloatTerm (Float dbl USES_REGS) { - CACHE_REGS return (Term) ((AlignGlobalForDouble ( PASS_REGS1 ), HR[0] = (CELL) FunctorDouble, *(Float *) (HR + 1) = dbl, HR[3] = EndSpecials, HR += diff --git a/H/Yapproto.h b/H/Yapproto.h index 83c43e568..548e4deff 100644 --- a/H/Yapproto.h +++ b/H/Yapproto.h @@ -426,80 +426,6 @@ Int Yap_SkipList(Term *, Term **); void Yap_plwrite(Term, void *, int, int, int); int Yap_FormatFloat( Float f, const char *s, size_t sz ); -/* MYDDAS */ - -#if defined MYDDAS_MYSQL || defined MYDDAS_ODBC - -/* myddas_initialization.c */ -MYDDAS_GLOBAL myddas_init_initialize_myddas(void); -MYDDAS_UTIL_CONNECTION myddas_init_initialize_connection(void *,void *,MYDDAS_UTIL_CONNECTION); -MYDDAS_UTIL_PREDICATE myddas_init_initialize_predicate(char *, int, char *,MYDDAS_UTIL_PREDICATE); - -#ifdef MYDDAS_STATS -/* myddas_statistics.c */ -MYDDAS_GLOBAL myddas_stats_initialize_global_stats(MYDDAS_GLOBAL); -MYDDAS_STATS_STRUCT myddas_stats_initialize_connection_stats(void); -void myddas_stats_delete_stats_list(MYDDAS_STATS_STRUCT); -#endif /* MYDDAS_STATS */ - -#ifdef MYDDAS_MYSQL -/* myddas_util.c */ -void myddas_util_table_write(MYSQL_RES *); -#endif -Short myddas_util_connection_type(void *); -MYDDAS_UTIL_CONNECTION myddas_util_add_connection(void *,void *); -MYDDAS_UTIL_CONNECTION myddas_util_search_connection(void *); -void myddas_util_delete_connection(void *); -MYDDAS_UTIL_CONNECTION myddas_util_add_predicate(char * ,Int , char *,void *); -MYDDAS_UTIL_PREDICATE myddas_util_search_predicate(char * ,Int , char *); -void myddas_util_delete_predicate(MYDDAS_UTIL_PREDICATE); - -/* Get's the number of queries to save */ -UInt myddas_util_get_total_multi_queries_number(MYDDAS_UTIL_CONNECTION); -void myddas_util_set_total_multi_queries_number(MYDDAS_UTIL_CONNECTION,UInt); -#ifdef MYDDAS_ODBC -/* Return enviromment identifier*/ -SQLHENV myddas_util_get_odbc_enviromment(SQLHDBC); -#endif - -void * myddas_util_get_list_pred(MYDDAS_UTIL_CONNECTION); -void * myddas_util_get_pred_next(void *); -char * myddas_util_get_pred_module(void *); -char * myddas_util_get_pred_name(void *); -MyddasInt myddas_util_get_pred_arity(void *); -//DELETE THIS WHEN DB_STATS IS COMPLETED -MyddasInt get_myddas_top(void); - -#ifdef DEBUG -void check_int(void); -#endif - -#endif /* MYDDAS_MYSQL || MYDDAS_ODBC */ - -/* myddas_mysql.c */ -#if defined MYDDAS_MYSQL -void Yap_InitMYDDAS_MySQLPreds(void); -void Yap_InitBackMYDDAS_MySQLPreds(void); -#endif - -/* myddas_odbc.c */ -#if defined MYDDAS_ODBC -void Yap_InitMYDDAS_ODBCPreds(void); -void Yap_InitBackMYDDAS_ODBCPreds(void); -#endif - -/* myddas_shared.c */ -#if defined MYDDAS_ODBC || defined MYDDAS_MYSQL -void Yap_MYDDAS_delete_all_myddas_structs(void); -void Yap_InitMYDDAS_SharedPreds(void); -void Yap_InitBackMYDDAS_SharedPreds(void); -#endif - -/* myddas_top_level.c */ -#if defined MYDDAS_TOP_LEVEL && defined MYDDAS_MYSQL //&& defined HAVE_LIBREADLINE -void Yap_InitMYDDAS_TopLevelPreds(void); -#endif - /* yap2swi.c */ void Yap_swi_install(void); void Yap_InitSWIHash(void); diff --git a/H/eval.h b/H/eval.h index 8a2c38c36..fad52dd3e 100644 --- a/H/eval.h +++ b/H/eval.h @@ -366,7 +366,7 @@ add_int(Int i, Int j USES_REGS) overflow: return Yap_gmp_add_ints(i, j); #else - RINT(x); + RINT(i+j); #endif } diff --git a/Makefile.in b/Makefile.in index c191cb3f8..312428990 100755 --- a/Makefile.in +++ b/Makefile.in @@ -60,7 +60,7 @@ YAPSTARTUP=startup.yss # CC=@CC@ MPI_CC=@MPI_CC@ -CPPFLAGS=@CPPFLAGS@ -I. -I$(srcdir)/H -I$(srcdir)/include -I$(srcdir)/os -I$(srcdir)/OPTYap -I$(srcdir)/BEAM -I$(srcdir)/MYDDAS +CPPFLAGS=@CPPFLAGS@ -I. -I$(srcdir)/H -I$(srcdir)/include -I$(srcdir)/os -I$(srcdir)/OPTYap -I$(srcdir)/BEAM EXECUTABLE_CFLAGS= @CFLAGS@ $(YAP_EXTRAS) $(DEFS) $(CPPFLAGS) CFLAGS= @YAPLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) $(CPPFLAGS) C_INTERF_FLAGS= @YAPLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) $(CPPFLAGS) -I$(srcdir)/include @@ -202,11 +202,7 @@ HEADERS = \ $(srcdir)/OPTYap/locks_pthread.h \ $(srcdir)/H/cut_c.h \ $(srcdir)/H/iatoms.h $(srcdir)/H/ratoms.h $(srcdir)/H/tatoms.h \ - $(srcdir)/library/dialect/swi/fli/swi.h \ - $(srcdir)/MYDDAS/myddas.h $(srcdir)/MYDDAS/myddas_structs.h \ - $(srcdir)/MYDDAS/myddas_statistics.h \ - $(srcdir)/MYDDAS/myddas_statistics_structs.h \ - $(srcdir)/MYDDAS/myddas_wkb.h $(srcdir)/MYDDAS/myddas_wkb2prolog.h + $(srcdir)/library/dialect/swi/fli/swi.h IOLIB_SOURCES=$(srcdir)/os/pl-buffer.c $(srcdir)/os/pl-ctype.c \ $(srcdir)/os/pl-codelist.c \ @@ -285,15 +281,7 @@ C_SOURCES= \ # $(srcdir)/library/lammpi/yap_mpi.c $(srcdir)/library/lammpi/hash.c $(srcdir)/library/lammpi/prologterms2c.c \ $(srcdir)/C/cut_c.c \ $(srcdir)/library/dialect/swi/fli/swi.c \ - $(srcdir)/library/dialect/swi/fli/blobs.c \ - $(srcdir)/MYDDAS/myddas_mysql.c \ - $(srcdir)/MYDDAS/myddas_odbc.c \ - $(srcdir)/MYDDAS/myddas_util.c \ - $(srcdir)/MYDDAS/myddas_initialization.c \ - $(srcdir)/MYDDAS/myddas_shared.c \ - $(srcdir)/MYDDAS/myddas_statistics.c \ - $(srcdir)/MYDDAS/myddas_top_level.c \ - $(srcdir)/MYDDAS/myddas_wkb2prolog.c + $(srcdir)/library/dialect/swi/fli/blobs.c PLCONS_SOURCES = \ $(srcdir)/console/LGPL/pl-nt.c \ @@ -369,9 +357,7 @@ ENGINE_OBJECTS = \ exec.o exo.o exo_udi.o globals.o gmp_support.o gprof.o grow.o \ heapgc.o index.o init.o inlines.o \ iopreds.o depth_bound.o mavar.o \ - myddas_mysql.o myddas_odbc.o myddas_shared.o myddas_initialization.o \ - myddas_util.o myddas_statistics.o myddas_top_level.o \ - myddas_wkb2prolog.o modules.o other.o \ + modules.o other.o \ parser.o qlyr.o qlyw.o range.o \ save.o scanner.o signals.o text.o sort.o stdpreds.o \ sysbits.o threads.o tracer.o \ @@ -493,30 +479,6 @@ mpi.o: $(srcdir)/library/mpi/mpi.c config.h mpe.o: $(srcdir)/library/mpi/mpe.c config.h $(MPI_CC) -c $(CFLAGS) $(srcdir)/library/mpi/mpe.c -o $@ -myddas_mysql.o: $(srcdir)/MYDDAS/myddas_mysql.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_mysql.c -o $@ - -myddas_odbc.o: $(srcdir)/MYDDAS/myddas_odbc.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_odbc.c -o $@ - -myddas_shared.o: $(srcdir)/MYDDAS/myddas_shared.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_shared.c -o $@ - -myddas_util.o: $(srcdir)/MYDDAS/myddas_util.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_util.c -o $@ - -myddas_initialization.o: $(srcdir)/MYDDAS/myddas_initialization.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_initialization.c -o $@ - -myddas_top_level.o: $(srcdir)/MYDDAS/myddas_top_level.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_top_level.c -o $@ - -myddas_wkb2prolog.o: $(srcdir)/MYDDAS/myddas_wkb2prolog.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_wkb2prolog.c -o $@ - -myddas_statistics.o: $(srcdir)/MYDDAS/myddas_statistics.c config.h - $(CC) -c $(CFLAGS) $(srcdir)/MYDDAS/myddas_statistics.c -o $@ - or.memory.o: $(srcdir)/OPTYap/or.memory.c config.h $(CC) -c $(CFLAGS) $(srcdir)/OPTYap/or.memory.c -o $@ @@ -741,6 +703,7 @@ all: startup.yss @ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE)) @ENABLE_PYTHON@ @INSTALL_DLLS@ (cd packages/python; $(MAKE)) @ENABLE_CUDA@ @INSTALL_DLLS@ (cd packages/cuda; $(MAKE)) + @ENABLE_MYDDAS@ @INSTALL_DLLS@ (cd packages/myddas; $(MAKE)) startup.yss: yap@EXEC_SUFFIX@ $(PL_SOURCES) -rm -f startup.yss @@ -811,7 +774,8 @@ install_unix: startup.yss @YAPLIB@ @ENABLE_REAL@ @INSTALL_DLLS@ (cd packages/real; $(MAKE) install) @ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE) install) @ENABLE_PYTHON@ @INSTALL_DLLS@ (cd packages/python; $(MAKE) install) - @ENABLE_CUDA@ @INSTALL_DLLS@ (cd packages/cuda; $(MAKE)) + @ENABLE_CUDA@ @INSTALL_DLLS@ (cd packages/cuda; $(MAKE) install) + @ENABLE_MYDDAS@ @INSTALL_DLLS@ (cd packages/myddas; $(MAKE) install) mkdir -p $(DESTDIR)$(INCLUDEDIR) mkdir -p $(DESTDIR)$(INCLUDEDIR)/src $(INSTALL) $(HEADERS) $(DESTDIR)$(INCLUDEDIR)/src @@ -827,7 +791,6 @@ install_unix: startup.yss @YAPLIB@ @ENABLE_RAPTOR@ @INSTALL_DLLS@ (cd packages/raptor; $(MAKE) install) @ENABLE_CUDD@ (cd packages/ProbLog/simplecudd; $(MAKE) install) @ENABLE_CUDD@ (cd packages/ProbLog/simplecudd_lfi; $(MAKE) install) - @ENABLE_CUDA@ @INSTALL_DLLS@ (cd packages/cuda; $(MAKE) install) install_win32: startup.yss @ENABLE_WINCONSOLE@ yap-win@EXEC_SUFFIX@ @@ -887,6 +850,7 @@ install_win32: startup.yss @ENABLE_WINCONSOLE@ yap-win@EXEC_SUFFIX@ @ENABLE_CUDD@ (cd packages/ProbLog/simplecudd; $(MAKE) install) @ENABLE_CUDD@ (cd packages/ProbLog/simplecudd_lfi; $(MAKE) install) @ENABLE_CUDA@ @INSTALL_DLLS@ (cd packages/cuda; $(MAKE) install) + @ENABLE_MYDDAS@ @INSTALL_DLLS@ (cd packages/myddas; $(MAKE) install) install_library: @YAPLIB@ mkdir -p $(DESTDIR)$(INCLUDEDIR) @@ -961,6 +925,7 @@ clean: clean_docs @ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE) clean) @ENABLE_PYTHON@ @INSTALL_DLLS@ (cd packages/python; $(MAKE) clean) @ENABLE_CUDA@ @INSTALL_DLLS@ (cd packages/cuda; $(MAKE) clean) + @ENABLE_MYDDAS@ @INSTALL_DLLS@ (cd packages/myddas; $(MAKE) clean) diff --git a/OPTYap/or.copy_engine.c b/OPTYap/or.copy_engine.c index 16fbac8ae..f86959be3 100644 --- a/OPTYap/or.copy_engine.c +++ b/OPTYap/or.copy_engine.c @@ -356,9 +356,9 @@ sync_with_p: #ifndef TABLING REMOTE_reply_signal(worker_p) = worker_ready; #endif /* TABLING */ + TR = (tr_fr_ptr) LOCAL_end_trail_copy; LOCAL_reply_signal = worker_ready; PUT_IN_REQUESTABLE(worker_id); - TR = (tr_fr_ptr) LOCAL_end_trail_copy; #ifdef TABLING adjust_freeze_registers(); #endif /* TABLING */ diff --git a/configure b/configure index c2ff2c3d4..9175afcf0 100755 --- a/configure +++ b/configure @@ -684,6 +684,7 @@ CLIB_CRYPTLIBS CLIB_NETLIBS CLIB_PLTARGETS CLIB_TARGETS +ENABLE_MYDDAS EXTRA_LIBS_FOR_SWIDLLS CLIB_PTHREADS CHR_TARGETS @@ -9261,6 +9262,7 @@ fi if test "$yap_cv_myddas" != "no" then + ENABLE_MYDDAS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mysql_init" >&5 $as_echo_n "checking for library containing mysql_init... " >&6; } if ${ac_cv_search_mysql_init+:} false; then : @@ -9470,9 +9472,12 @@ fi then YAP_EXTRAS="$YAP_EXTRAS -DMYDDAS_TOP_LEVEL" fi - +else + ENABLE_MYDDAS="#@ " fi + + if test "$yap_cv_myddas" != "no" then for ac_header in mysql/mysql.h @@ -11755,7 +11760,7 @@ else JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST -/* #line 11758 "configure" */ +/* #line 11763 "configure" */ public class Test { } EOF @@ -11931,7 +11936,7 @@ EOF if uudecode$EXEEXT Test.uue; then ac_cv_prog_uudecode_base64=yes else - echo "configure: 11934: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 + echo "configure: 11939: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 echo "configure: failed file was:" >&5 cat Test.uue >&5 ac_cv_prog_uudecode_base64=no @@ -12062,7 +12067,7 @@ else JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST -/* #line 12065 "configure" */ +/* #line 12070 "configure" */ public class Test { } EOF @@ -12097,7 +12102,7 @@ JAVA_TEST=Test.java CLASS_TEST=Test.class TEST=Test cat << \EOF > $JAVA_TEST -/* [#]line 12100 "configure" */ +/* [#]line 12105 "configure" */ public class Test { public static void main (String args[]) { System.exit (0); @@ -13652,6 +13657,7 @@ mkdir -p packages/jpl/examples mkdir -p packages/jpl/examples/java mkdir -p packages/ltx2htm mkdir -p packages/meld +mkdir -p packages/myddas mkdir -p packages/PLStream mkdir -p packages/PLStream/libtai mkdir -p packages/pldoc @@ -13827,6 +13833,11 @@ ac_config_files="$ac_config_files packages/real/Makefile" fi +if test "$ENABLE_MYDDAS" = ""; then +ac_config_files="$ac_config_files packages/myddas/Makefile" + +fi + if test "$ENABLE_CLPBN_BP" = ""; then ac_config_files="$ac_config_files packages/CLPBN/horus/Makefile" @@ -14600,6 +14611,7 @@ do "packages/swi-minisat2/Makefile") CONFIG_FILES="$CONFIG_FILES packages/swi-minisat2/Makefile" ;; "packages/swi-minisat2/C/Makefile") CONFIG_FILES="$CONFIG_FILES packages/swi-minisat2/C/Makefile" ;; "packages/real/Makefile") CONFIG_FILES="$CONFIG_FILES packages/real/Makefile" ;; + "packages/myddas/Makefile") CONFIG_FILES="$CONFIG_FILES packages/myddas/Makefile" ;; "packages/CLPBN/horus/Makefile") CONFIG_FILES="$CONFIG_FILES packages/CLPBN/horus/Makefile" ;; "packages/gecode/Makefile") CONFIG_FILES="$CONFIG_FILES packages/gecode/Makefile" ;; "packages/raptor/Makefile") CONFIG_FILES="$CONFIG_FILES packages/raptor/Makefile" ;; diff --git a/configure.in b/configure.in index 959532b9b..24d3d5fa4 100755 --- a/configure.in +++ b/configure.in @@ -1811,7 +1811,7 @@ fi -m4_include([library/MYDDAS/configure.in]) +m4_include([packages/myddas/configure.in]) if test "$ENABLE_CLIB" = "" then @@ -1954,6 +1954,7 @@ mkdir -p packages/jpl/examples mkdir -p packages/jpl/examples/java mkdir -p packages/ltx2htm mkdir -p packages/meld +mkdir -p packages/myddas mkdir -p packages/PLStream mkdir -p packages/PLStream/libtai mkdir -p packages/pldoc @@ -2084,6 +2085,10 @@ if test "$ENABLE_REAL" = ""; then AC_CONFIG_FILES([packages/real/Makefile]) fi +if test "$ENABLE_MYDDAS" = ""; then +AC_CONFIG_FILES([packages/myddas/Makefile]) +fi + if test "$ENABLE_CLPBN_BP" = ""; then AC_CONFIG_FILES([packages/CLPBN/horus/Makefile]) fi diff --git a/include/SWI-Prolog.h b/include/SWI-Prolog.h index 7d0a508cf..b79e4844d 100755 --- a/include/SWI-Prolog.h +++ b/include/SWI-Prolog.h @@ -447,6 +447,7 @@ extern X_API int PL_get_chars(term_t, char **, unsigned); extern X_API int PL_get_nchars(term_t, size_t *, char **, unsigned); extern X_API int PL_get_wchars(term_t, size_t *, wchar_t **, unsigned); extern X_API int PL_get_functor(term_t, functor_t *); +extern X_API int PL_get_compound_name_arity(term_t t, atom_t *ap, int *ip); extern X_API int PL_get_float(term_t, double *); extern X_API int PL_get_head(term_t, term_t); extern X_API int PL_get_int64(term_t, int64_t *); diff --git a/library/Makefile.in b/library/Makefile.in index 53433693a..4138992df 100644 --- a/library/Makefile.in +++ b/library/Makefile.in @@ -84,15 +84,6 @@ PROGRAMS= \ $(srcdir)/flags.yap \ $(srcdir)/block_diagram.yap -MYDDAS_PROGRAMS= $(srcdir)/MYDDAS/myddas.ypp \ - $(srcdir)/MYDDAS/myddas_assert_predicates.ypp \ - $(srcdir)/MYDDAS/myddas_mysql.ypp \ - $(srcdir)/MYDDAS/myddas_top_level.ypp \ - $(srcdir)/MYDDAS/myddas_errors.ypp \ - $(srcdir)/MYDDAS/myddas_prolog2sql.ypp \ - $(srcdir)/MYDDAS/myddas_util_predicates.ypp \ - $(srcdir)/MYDDAS/myddas_prolog2sql_optimizer.ypp - DIALECT_PROGRAMS= \ $(srcdir)/dialect/commons.yap \ $(srcdir)/dialect/bprolog.yap \ @@ -111,7 +102,7 @@ DIALECT_BP= \ $(srcdir)/dialect/bprolog/foreach.pl \ $(srcdir)/dialect/bprolog/hashtable.yap -install: $(PROGRAMS) install_myddas +install: $(PROGRAMS) mkdir -p $(DESTDIR)$(SHAREDIR)/Yap mkdir -p $(DESTDIR)$(SHAREDIR)/Yap/dialect mkdir -p $(DESTDIR)$(SHAREDIR)/Yap/dialect/swi @@ -121,16 +112,3 @@ install: $(PROGRAMS) install_myddas for p in $(DIALECT_SWI); do $(INSTALL_DATA) $$p $(DESTDIR)$(SHAREDIR)/Yap/dialect/swi; done for p in $(DIALECT_BP); do $(INSTALL_DATA) $$p $(DESTDIR)$(SHAREDIR)/Yap/dialect/bprolog; done -install_myddas: $(MYDDAS_PROGRAMS) - count=`echo "$(YAP_EXTRAS)" | grep MYDDAS | wc -l`; \ - if [ $$count -ne 0 ]; then \ - mkdir -p $(DESTDIR)$(SHAREDIR)/Yap; \ - for p in $(MYDDAS_PROGRAMS); \ - do $(INSTALL_DATA) $$p $(DESTDIR)$(SHAREDIR)/Yap; \ - done; \ - for p in $(DESTDIR)$(SHAREDIR)/Yap/myddas*.ypp; \ - do name=`basename $$p .ypp`; \ - cpp $(YAP_EXTRAS) -P -E -w $$p > $(DESTDIR)$(SHAREDIR)/Yap/$$name.yap; \ - rm -fr $$p; \ - done; \ - fi diff --git a/library/dialect/swi/fli/swi.c b/library/dialect/swi/fli/swi.c index 408a878c7..ea24bbfca 100755 --- a/library/dialect/swi/fli/swi.c +++ b/library/dialect/swi/fli/swi.c @@ -209,6 +209,32 @@ X_API int PL_get_arg(int index, term_t ts, term_t a) return 1; } +/* SWI: int PL_get_arg(int index, term_t t, term_t a) + YAP: YAP_Term YAP_ArgOfTerm(int argno, YAP_Term t)*/ +X_API int PL_get_compound_name_arity(term_t ts, atom_t *ap, int *ip) +{ + CACHE_REGS + YAP_Term t = Yap_GetFromSlot(ts PASS_REGS); + if ( !YAP_IsApplTerm(t) ) { + if (YAP_IsPairTerm(t)) { + if (ip) + *ip = 2; + if (ap) + *ap = ATOM_nil; + return 1; + } + return 0; + } else { + Functor f = FunctorOfTerm( t ); + if (IsExtensionFunctor(f)) return FALSE; + if (ip) + *ip = ArityOfFunctor( f ); + if (ap) + *ap = AtomToSWIAtom( NameOfFunctor( f )); + return 1; + } +} + X_API int _PL_get_arg(int index, term_t ts, term_t a) { CACHE_REGS @@ -342,10 +368,14 @@ X_API int PL_get_float(term_t ts, double *f) /* SAM type check*/ { CACHE_REGS YAP_Term t = Yap_GetFromSlot(ts PASS_REGS); - if ( YAP_IsFloatTerm(t)) { - *f = YAP_FloatOfTerm(t); - } else if ( YAP_IsIntTerm(t)) { - *f = YAP_IntOfTerm(t); + if ( IsFloatTerm(t)) { + *f = FloatOfTerm(t); + } else if ( IsIntegerTerm(t)) { + *f = IntegerOfTerm(t); +#if USE_GMP + } else if (IsBigIntTerm(t)) { + *f = Yap_gmp_to_float( t ); +#endif } else { return 0; } @@ -436,7 +466,7 @@ X_API int PL_get_long(term_t ts, long *i) X_API int PL_get_int64(term_t ts, int64_t *i) { -#if SIZE_OF_LONG_INT==8 +#if SIZE_OF_INT_P==8 return PL_get_long(ts, (long *)i); #else CACHE_REGS @@ -1439,7 +1469,7 @@ int PL_unify_termv(term_t l, va_list ap) *pt++ = MkIntegerTerm((Int)va_arg(ap, intptr_t)); break; case PL_INT64: -#if SIZEOF_LONG_INT==8 +#if SIZEOF_INT_P==8 *pt++ = MkIntegerTerm((Int)va_arg(ap, long int)); #elif USE_GMP { @@ -2623,7 +2653,7 @@ PL_eval_expression_to_int64_ex(term_t t, int64_t *val) if (IsIntegerTerm(res)) { *val = IntegerOfTerm(res); return TRUE; -#if SIZEOF_LONG_INT==4 && USE_GMP +#if SIZEOF_INT_P==4 && USE_GMP } else if (YAP_IsBigNumTerm(res)) { MP_INT g; char s[64]; diff --git a/library/lammpi/prologterms2c.c b/library/lammpi/prologterms2c.c index 8b9509878..6a1740940 100644 --- a/library/lammpi/prologterms2c.c +++ b/library/lammpi/prologterms2c.c @@ -53,7 +53,7 @@ Comments: This file provides a set of functions to convert a prolog term to a C #endif -struct buffer_ds buffer; +struct buffer_ds buffers[1024]; /*********************************************************************************************/ // prototypes @@ -100,7 +100,6 @@ expand_buffer(const size_t space ) { */ void change_buffer_size(const size_t newsize) { - if ( BUFFER_SIZE>=BLOCK_SIZE && BUFFER_SIZE>=newsize) return; if (BUFFER_PTR) { @@ -143,6 +142,7 @@ size_t write_term_to_stream(const int fd,const YAP_Term term) { RESET_BUFFER; + printf("BUFFER_PTR=%p\n", BUFFER_PTR); p2c_putt(term); if (write(fd,(void*)BUFFER_PTR,BUFFER_LEN) < 0) { // write term YAP_Error(0,0,"Prolog2Term: IO error in write.\n"); diff --git a/library/lammpi/prologterms2c.h b/library/lammpi/prologterms2c.h index 81e322139..291e5b301 100644 --- a/library/lammpi/prologterms2c.h +++ b/library/lammpi/prologterms2c.h @@ -70,6 +70,8 @@ void write_msg(const char *fun,const char *file, int line,const char *format, .. extern int BLOCK_SIZE; +#define buffer (buffers[YAP_ThreadSelf()]) + // deletes the buffer (all fields) but does not release the memory of the buffer.ptr #define DEL_BUFFER {buffer.ptr=NULL;buffer.size=0;buffer.len=0;buffer.pos=0;} // informs the prologterm2c module that the buffer is now used and should not be messed @@ -92,6 +94,7 @@ struct buffer_ds { char *ptr; // pointer to the buffer size_t pos; // position (used while reading) }; -extern struct buffer_ds buffer; +extern struct buffer_ds buffers[1024]; + #endif diff --git a/library/lammpi/yap_mpi.c b/library/lammpi/yap_mpi.c index cbaa8b692..f32625114 100644 --- a/library/lammpi/yap_mpi.c +++ b/library/lammpi/yap_mpi.c @@ -71,7 +71,9 @@ typedef struct broadcast_req BroadcastRequest; /******************************************************************** * Auxiliary data ********************************************************************/ -static int mpi_status; +static int mpi_statuss[1024]; +#define mpi_status (mpi_statuss[YAP_ThreadSelf()]) + extern int GLOBAL_argc; #define HASHSIZE 1777 @@ -110,7 +112,11 @@ static double total_time_spent; // total time spend in communication code #define RETURN(p) {PAUSE_TIMER();return (p);} -static struct timeval _tstart, _tend; +static struct timeval _tstarts[1024], _tends[1024]; + +#define _tsart (_tstarts[YAP_ThreadSelf()]) +#define _tend (_tends[YAP_ThreadSelf()]) + #include #include #include @@ -260,7 +266,7 @@ mpi_init(void){ char ** my_argv; int my_argc = YAP_Argv(&my_argv); // MPI_Init(&GLOBAL_argc, &GLOBAL_argv); - MPI_Init_thread(&my_argc, &my_argv, MPI_THREAD_SINGLE, &thread_level); + MPI_Init_thread(&my_argc, &my_argv, MPI_THREAD_MULTIPLE, &thread_level); #ifdef DEBUG write_msg(__FUNCTION__,__FILE__,__LINE__,"Thread level: %d\n",thread_level); #endif diff --git a/packages/myddas/Makefile.in b/packages/myddas/Makefile.in new file mode 100644 index 000000000..4413cd8f3 --- /dev/null +++ b/packages/myddas/Makefile.in @@ -0,0 +1,100 @@ +# +# default base directory for YAP installation +# (EROOT for architecture-dependent files) +# +prefix = @prefix@ +exec_prefix = @exec_prefix@ +ROOTDIR = $(prefix) +EROOTDIR = @exec_prefix@ +abs_top_builddir = @abs_top_builddir@ +# +# where the binary should be +# +BINDIR = $(EROOTDIR)/bin +# +# where YAP should look for libraries +# +LIBDIR=@libdir@ +SHAREDIR=$(ROOTDIR)/share/Yap +YAPLIBDIR=@libdir@/Yap +# +# +CC=@CC@ +YAP_EXTRAS=@YAP_EXTRAS@ +CFLAGS= $(YAP_EXTRAS) @SHLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) -I$(srcdir) -I../.. -I$(srcdir)/../../include -I$(srcdir)/../../H -I$(srcdir)/../../OPTYap -I$(srcdir)/../../os +LDFLAGS=@LDFLAGS@ +# +# +# You shouldn't need to change what follows. +# +INSTALL=@INSTALL@ +INSTALL_DATA=@INSTALL_DATA@ +INSTALL_PROGRAM=@INSTALL_PROGRAM@ +SHELL=/bin/sh +RANLIB=@RANLIB@ +srcdir=@srcdir@ +SO=@SO@ +#4.1VPATH=@srcdir@:@srcdir@/OPTYap +CWD=$(PWD) +# + +MYDDAS_HEADERS= \ + $(srcdir)/myddas.h $(srcdir)/myddas_structs.h \ + $(srcdir)/myddas_statistics.h \ + $(srcdir)/myddas_statistics_structs.h \ + $(srcdir)/myddas_wkb.h $(srcdir)/myddas_wkb2prolog.h + +MYDDAS_SOURCES= \ + myddas_mysql.c \ + myddas_odbc.c \ + myddas_util.c \ + myddas_initialization.c \ + myddas_shared.c \ + myddas_statistics.c \ + myddas_top_level.c \ + myddas_wkb2prolog.c + +MYDDAS_PROLOG= \ + $(srcdir)/pl/myddas.ypp \ + $(srcdir)/pl/myddas_assert_predicates.ypp \ + $(srcdir)/pl/myddas_mysql.ypp \ + $(srcdir)/pl/myddas_top_level.ypp \ + $(srcdir)/pl/myddas_errors.ypp \ + $(srcdir)/pl/myddas_prolog2sql.ypp \ + $(srcdir)/pl/myddas_util_predicates.ypp \ + $(srcdir)/pl/myddas_prolog2sql_optimizer.ypp + +OBJS= $(MYDDAS_SOURCES:.c=.o) +SOBJS= myddas.@SO@ + + +#in some systems we just create a single object, in others we need to +# create a libray + +all: $(SOBJS) + +.PRECIOUS: %.o + +%.o: $(srcdir)/%.c + $(CC) -c $(CFLAGS) $< -o $@ + +@DO_SECOND_LD@%.@SO@: $(OBJS) +@DO_SECOND_LD@ @SHLIB_LD@ $(LDFLAGS) -o $@ $(OBJS) @EXTRA_LIBS_FOR_DLLS@ + +install: all install_myddas + mkdir -p $(DESTDIR)$(SHAREDIR) + $(INSTALL_PROGRAM) $(SOBJS) $(DESTDIR)$(YAPLIBDIR) + +install_myddas: + count=`echo "$(YAP_EXTRAS)" | grep MYDDAS | wc -l`; \ + if [ $$count -ne 0 ]; then \ + mkdir -p $(DESTDIR)$(SHAREDIR); \ + for p in $(MYDDAS_PROLOG); \ + do name=`basename $$p .ypp`; echo $$name;\ + cpp $(YAP_EXTRAS) -P -E -w $$p > $(DESTDIR)$(SHAREDIR)/$$name.yap; \ + done; \ + fi + +clean: + rm -f *.o *~ $(OBJS) $(SOBJS) *.BAK + diff --git a/packages/myddas/MyddasProto.h b/packages/myddas/MyddasProto.h new file mode 100644 index 000000000..572b2b982 --- /dev/null +++ b/packages/myddas/MyddasProto.h @@ -0,0 +1,74 @@ +/* MYDDAS */ + +#if defined MYDDAS_MYSQL || defined MYDDAS_ODBC + +/* myddas_initialization.c */ +MYDDAS_GLOBAL myddas_init_initialize_myddas(void); +MYDDAS_UTIL_CONNECTION myddas_init_initialize_connection(void *,void *,MYDDAS_UTIL_CONNECTION); +MYDDAS_UTIL_PREDICATE myddas_init_initialize_predicate(char *, int, char *,MYDDAS_UTIL_PREDICATE); + +#ifdef MYDDAS_STATS +/* myddas_statistics.c */ +MYDDAS_GLOBAL myddas_stats_initialize_global_stats(MYDDAS_GLOBAL); +MYDDAS_STATS_STRUCT myddas_stats_initialize_connection_stats(void); +void myddas_stats_delete_stats_list(MYDDAS_STATS_STRUCT); +#endif /* MYDDAS_STATS */ + +#ifdef MYDDAS_MYSQL +/* myddas_util.c */ +void myddas_util_table_write(MYSQL_RES *); +#endif +Short myddas_util_connection_type(void *); +MYDDAS_UTIL_CONNECTION myddas_util_add_connection(void *,void *); +MYDDAS_UTIL_CONNECTION myddas_util_search_connection(void *); +void myddas_util_delete_connection(void *); +MYDDAS_UTIL_CONNECTION myddas_util_add_predicate(char * ,Int , char *,void *); +MYDDAS_UTIL_PREDICATE myddas_util_search_predicate(char * ,Int , char *); +void myddas_util_delete_predicate(MYDDAS_UTIL_PREDICATE); + +/* Get's the number of queries to save */ +UInt myddas_util_get_total_multi_queries_number(MYDDAS_UTIL_CONNECTION); +void myddas_util_set_total_multi_queries_number(MYDDAS_UTIL_CONNECTION,UInt); +#ifdef MYDDAS_ODBC +/* Return enviromment identifier*/ +SQLHENV myddas_util_get_odbc_enviromment(SQLHDBC); +#endif + +void * myddas_util_get_list_pred(MYDDAS_UTIL_CONNECTION); +void * myddas_util_get_pred_next(void *); +char * myddas_util_get_pred_module(void *); +char * myddas_util_get_pred_name(void *); +MyddasInt myddas_util_get_pred_arity(void *); +//DELETE THIS WHEN DB_STATS IS COMPLETED +MyddasInt get_myddas_top(void); + +#ifdef DEBUG +void check_int(void); +#endif + +#endif /* MYDDAS_MYSQL || MYDDAS_ODBC */ + +/* myddas_mysql.c */ +#if defined MYDDAS_MYSQL +void Yap_InitMYDDAS_MySQLPreds(void); +void Yap_InitBackMYDDAS_MySQLPreds(void); +#endif + +/* myddas_odbc.c */ +#if defined MYDDAS_ODBC +void Yap_InitMYDDAS_ODBCPreds(void); +void Yap_InitBackMYDDAS_ODBCPreds(void); +#endif + +/* myddas_shared.c */ +#if defined MYDDAS_ODBC || defined MYDDAS_MYSQL +void Yap_MYDDAS_delete_all_myddas_structs(void); +void Yap_InitMYDDAS_SharedPreds(void); +void Yap_InitBackMYDDAS_SharedPreds(void); +#endif + +/* myddas_top_level.c */ +#if defined MYDDAS_TOP_LEVEL && defined MYDDAS_MYSQL //&& defined HAVE_LIBREADLINE +void Yap_InitMYDDAS_TopLevelPreds(void); +#endif + diff --git a/library/MYDDAS/configure.in b/packages/myddas/configure.in similarity index 96% rename from library/MYDDAS/configure.in rename to packages/myddas/configure.in index f08c8e821..d2caf0db6 100644 --- a/library/MYDDAS/configure.in +++ b/packages/myddas/configure.in @@ -31,6 +31,7 @@ AC_ARG_ENABLE(myddas-top-level, if test "$yap_cv_myddas" != "no" then + ENABLE_MYDDAS="" dnl check for mysql AC_SEARCH_LIBS(mysql_init, [mysqlclient], [yap_cv_mysql="yes"], [yap_cv_mysql="no"]) if test "$yap_cv_mysql" = yes @@ -71,9 +72,12 @@ then then YAP_EXTRAS="$YAP_EXTRAS -DMYDDAS_TOP_LEVEL" fi - +else + ENABLE_MYDDAS="#@ " fi +AC_SUBST(ENABLE_MYDDAS) + if test "$yap_cv_myddas" != "no" then AC_CHECK_HEADERS(mysql/mysql.h) diff --git a/packages/myddas/myddas.c b/packages/myddas/myddas.c new file mode 100644 index 000000000..e41107a1a --- /dev/null +++ b/packages/myddas/myddas.c @@ -0,0 +1,17 @@ +/************************************************************************* +* * +* YAP Prolog * +* * +* Yap Prolog was developed at NCCUP - Universidade do Porto * +* * +* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 * +* * +************************************************************************** +* * +* File: myddas_mysql.c * +* Last rev: 22/03/05 * +* mods: * +* comments: Predicates for comunicating with a mysql database system * +* * +*************************************************************************/ + diff --git a/MYDDAS/myddas.h b/packages/myddas/myddas.h similarity index 99% rename from MYDDAS/myddas.h rename to packages/myddas/myddas.h index 7487dfa8d..a2f29b79d 100644 --- a/MYDDAS/myddas.h +++ b/packages/myddas/myddas.h @@ -155,5 +155,7 @@ typedef struct myddas_stats_struct *MYDDAS_STATS_STRUCT; NUMBER = Yap_REGS.MYDDAS_GLOBAL_POINTER->memory_freed; #endif +#include "MyddasProto.h" + #endif /*__MYDDAS_H__*/ diff --git a/MYDDAS/myddas_initialization.c b/packages/myddas/myddas_initialization.c similarity index 100% rename from MYDDAS/myddas_initialization.c rename to packages/myddas/myddas_initialization.c diff --git a/MYDDAS/myddas_mysql.c b/packages/myddas/myddas_mysql.c similarity index 100% rename from MYDDAS/myddas_mysql.c rename to packages/myddas/myddas_mysql.c diff --git a/MYDDAS/myddas_odbc.c b/packages/myddas/myddas_odbc.c similarity index 100% rename from MYDDAS/myddas_odbc.c rename to packages/myddas/myddas_odbc.c diff --git a/MYDDAS/myddas_shared.c b/packages/myddas/myddas_shared.c similarity index 90% rename from MYDDAS/myddas_shared.c rename to packages/myddas/myddas_shared.c index a6f641080..e0d4dd26b 100644 --- a/MYDDAS/myddas_shared.c +++ b/packages/myddas/myddas_shared.c @@ -695,6 +695,74 @@ void Yap_MYDDAS_delete_all_myddas_structs(void) } +void +init_myddas(void) +{ +#if defined MYDDAS_MYSQL && defined CUT_C + Yap_InitBackMYDDAS_MySQLPreds(); +#endif +#if defined MYDDAS_ODBC && defined CUT_C + Yap_InitBackMYDDAS_ODBCPreds(); +#endif +#if defined CUT_C && (defined MYDDAS_ODBC || defined MYDDAS_MYSQL) + Yap_InitBackMYDDAS_SharedPreds(); +#endif +#if defined CUT_C && defined MYDDAS_MYSQL + Yap_InitMYDDAS_MySQLPreds(); +#endif +#if defined CUT_C && defined MYDDAS_ODBC + Yap_InitMYDDAS_ODBCPreds(); +#endif +#if defined CUT_C && (defined MYDDAS_ODBC || defined MYDDAS_MYSQL) + Yap_InitMYDDAS_SharedPreds(); +#endif +#if defined MYDDAS_TOP_LEVEL && defined MYDDAS_MYSQL // && defined HAVE_LIBREADLINE + Yap_InitMYDDAS_TopLevelPreds(); +#endif +#ifdef MYDDAS_MYSQL_INIT + if (yap_init->myddas) { + Yap_PutValue(AtomMyddasGoal,MkIntegerTerm(yap_init->myddas)); + + /* Mandatory Fields */ + Yap_PutValue(AtomMyddasUser,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_user))); + Yap_PutValue(AtomMyddasDB,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_db))); + + /* Non-Mandatory Fields */ + if (yap_init->myddas_pass != NULL) + Yap_PutValue(AtomMyddasPass,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_pass))); + if (yap_init->myddas_host != NULL) + Yap_PutValue(AtomMyddasHost,MkAtomTerm(Yap_LookupAtom(yap_init->myddas_host))); + } +#endif +#if defined MYDDAS_MYSQL || defined MYDDAS_ODBC + Yap_REGS.MYDDAS_GLOBAL_POINTER = NULL; + Yap_PutValue(AtomMyddasVersionName, + MkAtomTerm(Yap_LookupAtom(MYDDAS_VERSION))); + Yap_HaltRegisterHook((HaltHookFunc)Yap_MYDDAS_delete_all_myddas_structs,NULL); + Yap_MYDDAS_delete_all_myddas_structs(); +#endif +} + +#ifdef _WIN32 + +int WINAPI PROTO(win_myddas, (HANDLE, DWORD, LPVOID)); + +int WINAPI win_myddas(HANDLE hinst, DWORD reason, LPVOID reserved) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + break; + case DLL_PROCESS_DETACH: + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + return 1; +} +#endif diff --git a/MYDDAS/myddas_statistics.c b/packages/myddas/myddas_statistics.c similarity index 100% rename from MYDDAS/myddas_statistics.c rename to packages/myddas/myddas_statistics.c index 2269d0812..bc074510a 100644 --- a/MYDDAS/myddas_statistics.c +++ b/packages/myddas/myddas_statistics.c @@ -1,6 +1,6 @@ +#include "Yap.h" #include "myddas_structs.h" #include "myddas_statistics.h" -#include "Yap.h" #include #include diff --git a/MYDDAS/myddas_statistics.h b/packages/myddas/myddas_statistics.h similarity index 100% rename from MYDDAS/myddas_statistics.h rename to packages/myddas/myddas_statistics.h diff --git a/MYDDAS/myddas_statistics_structs.h b/packages/myddas/myddas_statistics_structs.h similarity index 100% rename from MYDDAS/myddas_statistics_structs.h rename to packages/myddas/myddas_statistics_structs.h diff --git a/MYDDAS/myddas_structs.h b/packages/myddas/myddas_structs.h similarity index 100% rename from MYDDAS/myddas_structs.h rename to packages/myddas/myddas_structs.h diff --git a/MYDDAS/myddas_top_level.c b/packages/myddas/myddas_top_level.c similarity index 100% rename from MYDDAS/myddas_top_level.c rename to packages/myddas/myddas_top_level.c diff --git a/MYDDAS/myddas_util.c b/packages/myddas/myddas_util.c similarity index 100% rename from MYDDAS/myddas_util.c rename to packages/myddas/myddas_util.c diff --git a/MYDDAS/myddas_wkb.h b/packages/myddas/myddas_wkb.h similarity index 100% rename from MYDDAS/myddas_wkb.h rename to packages/myddas/myddas_wkb.h diff --git a/MYDDAS/myddas_wkb2prolog.c b/packages/myddas/myddas_wkb2prolog.c similarity index 100% rename from MYDDAS/myddas_wkb2prolog.c rename to packages/myddas/myddas_wkb2prolog.c diff --git a/MYDDAS/myddas_wkb2prolog.h b/packages/myddas/myddas_wkb2prolog.h similarity index 100% rename from MYDDAS/myddas_wkb2prolog.h rename to packages/myddas/myddas_wkb2prolog.h diff --git a/library/MYDDAS/myddas.ypp b/packages/myddas/pl/myddas.ypp similarity index 99% rename from library/MYDDAS/myddas.ypp rename to packages/myddas/pl/myddas.ypp index c7435e562..41e3f6a80 100644 --- a/library/MYDDAS/myddas.ypp +++ b/packages/myddas/pl/myddas.ypp @@ -17,6 +17,8 @@ #if defined MYDDAS_MYSQL || defined MYDDAS_ODBC +:- load_foreign_files([myddas], [], init_myddas). + /* Initialize MYDDAS GLOBAL STRUCTURES */ :- c_db_initialize_myddas. @@ -177,6 +179,7 @@ ]). + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % db_open/5 % db_open/4 diff --git a/library/MYDDAS/myddas_assert_predicates.ypp b/packages/myddas/pl/myddas_assert_predicates.ypp similarity index 100% rename from library/MYDDAS/myddas_assert_predicates.ypp rename to packages/myddas/pl/myddas_assert_predicates.ypp diff --git a/library/MYDDAS/myddas_errors.ypp b/packages/myddas/pl/myddas_errors.ypp similarity index 100% rename from library/MYDDAS/myddas_errors.ypp rename to packages/myddas/pl/myddas_errors.ypp diff --git a/library/MYDDAS/myddas_mysql.ypp b/packages/myddas/pl/myddas_mysql.ypp similarity index 100% rename from library/MYDDAS/myddas_mysql.ypp rename to packages/myddas/pl/myddas_mysql.ypp diff --git a/library/MYDDAS/myddas_prolog2sql.ypp b/packages/myddas/pl/myddas_prolog2sql.ypp similarity index 100% rename from library/MYDDAS/myddas_prolog2sql.ypp rename to packages/myddas/pl/myddas_prolog2sql.ypp diff --git a/library/MYDDAS/myddas_prolog2sql_optimizer.ypp b/packages/myddas/pl/myddas_prolog2sql_optimizer.ypp similarity index 100% rename from library/MYDDAS/myddas_prolog2sql_optimizer.ypp rename to packages/myddas/pl/myddas_prolog2sql_optimizer.ypp diff --git a/library/MYDDAS/myddas_top_level.ypp b/packages/myddas/pl/myddas_top_level.ypp similarity index 100% rename from library/MYDDAS/myddas_top_level.ypp rename to packages/myddas/pl/myddas_top_level.ypp diff --git a/library/MYDDAS/myddas_util_predicates.ypp b/packages/myddas/pl/myddas_util_predicates.ypp similarity index 100% rename from library/MYDDAS/myddas_util_predicates.ypp rename to packages/myddas/pl/myddas_util_predicates.ypp