From d6c6cecb273b33c855a8cb1096880fd1fdd2b989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Wed, 6 Jan 2016 12:35:31 +0000 Subject: [PATCH] moving icons around --- docs/CMakeLists.txt | 1 + docs/Doxyfile.in | 24 +++++---- docs/yap.md | 129 +++++++++++++++++--------------------------- 3 files changed, 66 insertions(+), 88 deletions(-) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index bdb95a212..b54395933 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -30,6 +30,7 @@ yap.md find_package(Doxygen) option(WITH_DOCUMENTATION "Create and install the HTML based API documentation (requires Doxygen)" ${DOXYGEN_FOUND}) + if(WITH_DOCUMENTATION) if(NOT DOXYGEN_FOUND) message(FATAL_ERROR "Doxygen is needed to build the documentation.") diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index 7c1831c96..f18062fa2 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -8,9 +8,9 @@ # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: -# TAG = value [value, ...] +# TAG = value [value, file.] # For lists, items can also be appended using: -# TAG += value [value, ...] +# TAG += value [value, file.] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- @@ -407,7 +407,7 @@ TYPEDEF_HIDES_STRUCT = NO # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# is 0file9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. @@ -636,8 +636,8 @@ GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. +# sections, marked by \if file. \endif and \cond +# file. \endcond blocks. ENABLED_SECTIONS = @@ -1094,6 +1094,7 @@ HTML_FILE_EXTENSION = .html # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = + #@CMAKE_SOURCE_DIR@/docs/web/bootstrap/header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each @@ -1105,6 +1106,7 @@ HTML_HEADER = # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = + #@CMAKE_SOURCE_DIR@/docs/web/bootstrap/footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style @@ -1118,6 +1120,7 @@ HTML_FOOTER = # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = + #@CMAKE_SOURCE_DIR@/docs/web/bootstrap/customdoxygen.css # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined @@ -1131,7 +1134,9 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = @CMAKE_SOURCE_DIR@/docs/solarized-light.css +HTML_EXTRA_STYLESHEET = + +# @CMAKE_SOURCE_DIR@/docs/solarized-light.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1142,6 +1147,7 @@ HTML_EXTRA_STYLESHEET = @CMAKE_SOURCE_DIR@/docs/solarized-light.css # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = + #@CMAKE_SOURCE_DIR@/docs/web/bootstrap/doxy-boot.js # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen @@ -1489,7 +1495,7 @@ MATHJAX_FORMAT = HTML-CSS # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# MATHJAX_RELPATH should be file/mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. @@ -1886,7 +1892,7 @@ MAN_LINKS = NO # captures the structure of the code including all documentation. # The default value is: NO. -GENERATE_XML = NO +GENERATE_XML = YES # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of @@ -2069,7 +2075,7 @@ SKIP_FUNCTION_MACROS = YES # a tag file without this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... +# TAGFILES = file1=loc1 "file2 = loc2" file. # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. diff --git a/docs/yap.md b/docs/yap.md index ad70a1c4e..02a8eb8f0 100644 --- a/docs/yap.md +++ b/docs/yap.md @@ -54,30 +54,23 @@ us to include his text in this document. This document provides User information on version 6.3.4 of YAP (Yet Another Prolog). The YAP Prolog System is a -high-performance Prolog compiler developed at LIACC, Universidade do -Porto. YAP provides several important features: - -+ Speed: YAP is widely considered one of the fastest - available Prolog systems. - -+ Functionality: it supports stream Input/Output, sockets, modules, +high-performance Prolog compiler developed at Universidade do +Porto. YAP supports stream Input/Output, sockets, modules, exceptions, Prolog debugger, C-interface, dynamic code, internal database, DCGs, saved states, co-routining, arrays, threads. -+ We explicitly allow both commercial and non-commercial use of YAP. +We explicitly allow both commercial and non-commercial use of YAP. YAP is based on the David H. D. Warren's WAM (Warren Abstract Machine), with several optimizations for better performance. YAP follows the Edinburgh tradition, and was originally designed to be largely compatible with DEC-10 Prolog, Quintus Prolog, and especially with -C-Prolog. +C-Prolog. More recently, we have worked on being compatible with SICStus Prolog and with SWI-Prolog. YAP implements most of the ISO-Prolog standard. We are striving at full compatibility, and the manual describes what is still -missing. The manual also includes a (largely incomplete) comparison -with SICStus Prolog. - +missing. The document is intended neither as an introduction to Prolog nor to the implementation aspects of the compiler. A good introduction to programming in Prolog is the book @cite TheArtOfProlog , by @@ -85,16 +78,13 @@ L. Sterling and E. Shapiro, published by "The MIT Press, Cambridge MA". Other references should include the classical @cite ProgrammingInProlog , by W.F. Clocksin and C.S. Mellish, published by Springer-Verlag. -YAP 4.3 is known to build with many versions of gcc (\<= gcc-2.7.2, \>= -gcc-2.8.1, \>= egcs-1.0.1, gcc-2.95.\*) and on a variety of Unixen: -SunOS 4.1, Solaris 2.\*, Irix 5.2, HP-UX 10, Dec Alpha Unix, Linux 1.2 -and Linux 2.\* (RedHat 4.0 thru 5.2, Debian 2.\*) in both the x86 and -alpha platforms. It has been built on Windows NT 4.0 using Cygwin from -Cygnus Solutions (see README.nt) and using Visual C++ 6.0. +YAP 6.3.4 has been built with the gcc and clang compilers on Linux and OSX machines. We expect to recover support for WIN32 machines and +Android next. The overall copyright and permission notice for YAP4.3 can be found in the Artistic file in this directory. YAP follows the Perl Artistic -license, and it is thus non-copylefted freeware. +license, and it is thus non-copylefted freeware. Some components of YAP have been obtained from SWI Prolog and ciao, and have +different ;icenses. If you have a question about this software, desire to add code, found a bug, want to request a feature, or wonder how to get further assistance, @@ -104,7 +94,7 @@ subscribe to the mailing list, visit the page On-line documentation is available for YAP at: - + Recent versions of YAP, including both source and selected binaries, can be found from this same URL. @@ -115,7 +105,7 @@ manual is largely based on the DECsystem-10 Prolog User's Manual by D.L. Bowen, L. Byrd, F. C. N. Pereira, L. M. Pereira, and D. H. D. Warren. We have used comments from the Edinburgh Prolog library written by R. O'Keefe. Documentation from many built-ins is -originally from the SWI-Prolog manual, with the gracious uathorization +originally from the SWI-Prolog manual, with the gracious authorization from Jan Wielemaker. We would also like to gratefully acknowledge the contributions from Ashwin Srinivasian. @@ -147,15 +137,7 @@ Buenabad, Inês Dutra and Vítor Santos Costa. + The JPL (Java-Prolog Library) package developed by . -+ The Logtalk Object-Oriented system is developed at the University - of Beira Interior, Portugal, by Paulo Moura: - - - - Logtalk is no longer distributed with YAP. Please use the Logtalk standalone - installer for a smooth integration with YAP. - -+ The minisat SAT solver interface developed by Michael Codish, + The minisat SAT solver interface developed by Michael Codish, Vitaly Lagoon, and Peter J. Stuckey. + The MYDDAS relational data-base interface developed at the @@ -190,14 +172,7 @@ and -Several packages are shared with SWI-Prolog and need to be obtained -from separate repositories. Proceed as follows: - -~~~~~~ -cd yap-6.3 -git submodule init -git submodule update -~~~~~~ +YAP-6.3.4 does not use repositories. Please just use `git clone` to obtain the distribution. Most of these repositories are basically copies of the original repositories at the SWI-Prolog site. YAP-6 will work either with or @@ -206,27 +181,19 @@ without these packages. Installing YAP {#install} ============== -YAP is a `configure` based system. We discuss how to use `configure` +YAP is a `ccmake` based system. We discuss how to use `cmake` to install YAP, and what are the major options. Compiling YAP {#CompilingYAP} ------------- - To compile YAP it should be sufficient to: -1 `autoconf`. Recent versions of YAP try to follow GNU - conventions on where to place software. +2 create a directory, say `Build`. - + The main executable is placed at _$BINDIR_. This executa§ble is - actually a script that calls the Prolog engine, stored at _$LIBDIR_. + obs: please avoid compiling YAP in the src directory, some packages do not allow for that. - + _$LIBDIR_ is the directory where libraries are stored. YAPLIBDIR is a - subdirectory that contains the Prolog engine and a Prolog library. - - + _$INCLUDEDIR_ is used if you want to use YAP as a library. - - + _$INFODIR_ is where to store `info` files. Usually /usr/local/info, /usr/info, or /usr/share/info. +1 run `cmake`, ideally using a cmake above 3.0. 2 `make`. @@ -240,58 +207,62 @@ To compile YAP it should be sufficient to: Tuning the Functionality of YAP ------------------------------- -Compiling YAP with the standard options give you a plain vanilla -Prolog. You can tune YAP to include extra functionality by calling -`configure` with the appropriate options: +By default, YAP supports tabling, depth first search, and most features found in +modern Prologs. In some cases, you may want to suport extra features, or reduce system size. +`cmake`provides an graphical interface for doing so. From the commmand line, a typical example could be: - + `--enable-rational-trees=yes` gives you support for infinite - rational trees. +~~~~~ +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~ +~~~~~ - + `--enable-coroutining=yes` gives you support for coroutining, - including freezing of goals, attributed variables, and -constraints. This will also enable support for infinite rational -trees. +Options include: - + `--enable-depth-limit=yes` allows depth limited evaluation, say for -implementing iterative deepening. ++ `CMAKE_BUILD_TYPE`: the two main options are Debug, for system development, and Release. to use the system. - + `--enable-low-level-tracer=yes` allows support for tracing all calls, ++ `CMAKE_INSTALL_PREFIX`: where to install YAP + ++ WITH_DEPTH_LIMIT allows depth limited evaluation, say for +implementing iterative deepening (default) + ++ `WITH_CALL_TRACER` allows support for tracing all calls, retries, and backtracks in the system. This can help in debugging your -application, but results in performance loss. +application, but results in performance loss (enabled in Debug). - + `--enable-wam-profile=yes` allows profiling of abstract machine + + `WITH_WAM_PROFILER` allows profiling of abstract machine instructions. This is useful when developing YAP, should not be so -useful for normal users. +useful for normal users (not currently supportted) - + `--enable-condor=yes` allows using the Condor system that + + `WITH_YAP_CONDOR` allows using the Condor system that support High Throughput Computing (HTC) on large collections of -distributively owned computing resources. +distributively owned computing resources (not yet available) - + `--enable-tabling=yes` allows tabling support. This option -is still experimental. + + `WITH_TABLING` allows tabling support (default) - + `--enable-parallelism={env-copy,sba,a-cow}` allows -or-parallelism supported by one of these three forms. This option is + + `WITH_YAPOR_COPY` allows +or-parallelism according to the Muse-based, YapOR model. This option is still highly experimental. - + `--with-max-workers` allows definition of the maximum + /*+ `--with-max-workers` allows definition of the maximum number of parallel processes (its value can be consulted at runtime -using the flag `max_workers`). +using the flag `max_workers`).*/ - + `--with-gmp[=DIR]` give a path to where one can find the -`GMP` library if not installed in the default path. ++ `WITH_GMP` give a path to where one can find the +`GMP` library if not installed in the default path. It is highly advised to have GMP in your compilation environment. - + `--enable-threads` allows using of the multi-threading ++ `WITH_READLINE` give a path to where one can find the +`readline` library if not installed in the default path. It is highly advised in Unix-like environments. + + + `-WITH_Threads` allows using of the multi-threading predicates provided by YAP. Depending on the operating system, the option `--enable-pthread-locking` may also need to be used. - + `--with-max-threads` allows definition of the maximum + /*+ `--with-max-threads` allows definition of the maximum number of threads (the default value is 1024; its value can be consulted -at runtime using the flag [max_threads](@ref max_threads)). +at runtime using the flag [max_threads](@ref max_threads)).*/ -Next section discusses machine dependent details. +Next section discusses machine dependent details, and it is out-of-date. Tuning YAP for a Particular Machine and Compiler {#Machine_Options} ------------------------------------------------