Home

Sec - SICStus Prolog 3

image

Contents

1. 8 7 7 Bugs fixed in version 3 8 e absolute file name 2 could crash under IRIX nested compound terms allowed e call cleanup 2 efficiency e close 1 efficiency handling the standard streams e format 2 3 N didn t work as expected are now meta predicates needed by the format spec e load files 1 2 avoid changing directory don t loop on duplicate exports e load foreign resource 1 filenames containing periods on Windows NT e print message 2 in runtime systems e prolog load context 2 value of term position e reinitialise 0 sequencing of events e save program 1 2 fastcode handling file mode creation masks in runtime systems e write term 1 2 the indented true option and non ground terms Chapter 8 Revision history 29 e library db efficiency of term deletion e library heaps delete from heap 4 e library objects the new 2 method cyclic dependencies e library random determinacy and efficiency e library sockets noisy startup on Windows block buffering is now the default Socket buffering 4 added e library system sleep 1 admits floats as well as integers e library terms subsumes_chk 2 and variant 2 now don t unblock goals e glue code generator incorrect translation of chars syntax error messages were sup pressed e all system messages go via the print message 2 interface e input argument checking is generally stricter e resources are unloaded in LIFO order but loaded in FIFO or
2. C Program Files SICStus PrologMbinNspwin exe Selecting the Manual or Release Notes item in the Help menu gives an error mes sage similar to Help 100 Manual 1nk could not be found This happens when Adobe Acrobat Reader is not installed or if it has not been installed for the cur rent user Open C Program Files SICStus Prolog doc pdf in the explorer and try opening relnotes pdf This might bring up an configuration dialog for Adobe Acrobat configure Acrobat and try the Help menu again Alternatively you may have to obtain Adobe Acrobat It is available for free from http www adobe com Windows NT We recommend that SICStus is installed by a user with administrative privileges and that the installation is made For All Users The first time the installer is run it will install necessary system files for supporting the new Windows Installer technology from Microsoft This will fail unless the user has administrative rights A typical symptom is an error message asking for msiexec If SICStus is installed for a single user then SICStus will not find the license information when started by another user In this case you can use the command line utility splm exe as described in the letter containing your license code 2 3 1 Runtime Systems on Target Machines This section describes how to launch a runtime system on a so called target machine i e a machine whi
3. but it can also be entered later on by executing the following commands at a command prompt splm i Site splm a sicstus3 8 ExpirationDate Code Chapter 2 Release notes and installation guide for Windows 6 2 3 Windows Notes e Pre linked foreign resources are not supported under Windows they have to be imple mented as DLLs They are created using the utility splfr as described in the user s manual The file name arguments to splfr and spld should not have embedded spaces The reason for this is that not all C compilers linkers seem to support quoting of file name arguments If SICStus cannot find the license information see below or if it was entered incorrectly then SICStus will just exit There will be no dialog or other feedback informing you of the problem Note that the license consists of three parts the Site name or user name for personal licenses the License code and the Expiration date All parts are case sensitive and spaces are significant A common mistake is to enter the License code correctly but the Site User name incorrectly If you have trouble with the license code use splm exe as explained in the letter with your license code On Windows 95 98 the shortcut installed in the Start menu Start Programs SICStus Prolog may not work immediately after installation Restarting after installing SICStus appears to cure this If this does not help you can add your own shortcut to e g
4. Just exe cute the query use_module library jasper After that it is possible to per form meta calls as described in the User s Manual or load a foreign resource containing foreign java predicates On some platforms you may encounter the following error message 4 sicstus SICStus 3 8 sparc solaris 5 5 1 Wed Sep 22 08 42 14 MET DST 1999 Licensed to SICS use module library jasper sl SYSTEM ERROR Attempted to load Java engine into sbrk d SICStus system try starting SICStus with m option Chapter 4 Jasper notes 14 Since most platforms don t allow sbrk and malloc to coexist peacefully SICStus re fuses to load the JVM if not the m flag was given to SICStus The message can as the error message suggests be avoided if SICStus is started with the m flag sicstus m If Java is used as parent application things are a little more complicated There are a couple of things which need to be taken care of The first is to specify the correct class path so that Java can find the Jasper classes SICStus SPTerm and so on This is done by specifying the pathname of the file jasper jar 4 java classpath SP_PATH bin jasper jar SP PATH does not need to be set it is only used here as a placeholder See the documentation of the Java implementation for more info on how to set classpaths The second is specify where Java should find the Jasper native library libjasper
5. creating stand alone executables have been re placed by a common spld utility which takes several new options Runtime systems do not always need a main program in C On Windows the resulting executable can optionally be windowed The splfr utility takes several new options The development and runtime kernels have been merged into a single one e Partial saved states corresponding to a set of source files modules and predicates can be created by the new built in predicates save_files 2 save_modules 2 and save_ predicates 2 respectively These predicates create files in a binary format by default with the prefix po for Prolog object file which can be loaded by load_files 1 2 The 1oad type Type option of load_files 2 has been extended Partial saved states render ql1 files obsolescent e The new built in predicate trimcore 0 reclaims any dead clauses and predicates de fragmentizes Prolog s memory and attempts to return unused memory to the operating system It is called automatically at every top level query e The value of the new read only Prolog flag host type is an atom identifying the plat form such as x86 linux glibc2 1 e The functionality of the source info Prolog flag introduced in release 3 7 has been extended beyond the Emacs interface Line number information is now included in error exceptions whenever possible This information is displayed in debugging and error messages outside Emacs or ca
6. for Windows 10 y The Y coordinate of the top left corner The default is CW_USEDEFAULT You will normally specify this in your autoexec bat file Here is an example set CONSOLE s1 600 x 400 y 400 Many of these settings are also accessible from the menu Settings of the console 2 6 Emacs Interface Choosing from the menu seems to generate an eternal which is not useful for e g escaping a break level Instead a C d can be generated by typing C q C d 2 7 Limitations e File paths with both and as separator are accepted SICStus returns paths using Note that V since it is escape character must be given as unless the prolog flag character escapes is set to off e All file names and paths are converted to lowercase when expanded by absolute file name 2 etc e File paths of the form are expanded using the values of the environment variable HOME or HOMEDRIVE and HOMEPATH The form username is not expanded The form VAR is expanded using the value of the environment variable VAR The form 4VARA is not recognized e Interruption by C is limited on the windowed executable C is checked for upon character output and garbage collection only Blocking system calls such as those used by library sockets are not interruptible by C in any kind of SICStus executable e Pre linked foreign resources are not supported The resources option to spld is a no op e In the windowed executable the user_error stream
7. handling in splfr spmkrs spmkds e Jasper did not convert return values correctly when calling Java from Prolog e Jasper did not handle instance methods correctly e Some of the legal type specifiers in Jasper were rejected by the glue code generator e Efficiency bugs in format 2 3 fixed e Bug in save program 1 2 with native code fixed e Dugs in library chr fixed and a couple of new constraint handlers fixed e A problem with source linked debugging of DCG rules fixed e Prevent looping on duplicates in module 2 decl e Prevent memory overrun in library tcltk Chapter 8 Revision history 25 8 7 Changes introduced in version 3 8 8 7 1 Wide character support Wide character handling is introduced with the following highlights e character code sets up to 31 bit wide e three built in wide character modes I80 8859 1 UTF8 EUC selectable via environ ment flags e complete control over the external encoding via hook functions For programs using the default ISO_8859_1 character set the introduction of wide characters is transparent except for the string format change in the foreign interface see below In programs using the EUC character set the multibyte EUC characters are now input as a single up to 23 bit wide character code This character code can be easily decomposed into its constituent bytes if needed The encoding function is described in detail in the SICStus manual To support wide characters
8. so Or jasper d11 which is loaded into the JVM by invoking the method System loadLibrary jasper This method uses a platform dependent search method to locate the Jasper native library and quite often this method fails A typical example of such a failure looks like 4 java classpath jasper jar se sics jasper SICStus Trying to load SICStus Exception in thread main java lang UnsatisfiedLinkError no jasper in java library path at java lang ClassLoader loadLibrary ClassLoader java 1133 at java lang Runtime loadLibraryO Runtime java 470 at java lang System loadLibrary System java 745 at se sics jasper SICStus loadNativeCode SICStus java 37 at se sics jasper SICStus initSICStus SICStus java 80 at se sics jasper SICStus init SICStus java 111 at se sics jasper SICStus main SICStus java 25 This can be fixed by explicitly setting the Java property java library path to the location of libjasper so or jasper d11 like this java Djava library path usr local lib If this works properly SICStus should have be loaded into the JVM address space The only thing left is to tell SICStus where the runtime library i e sprt sav is located You may choose to specify this explicitly by either giving a second argument when initializing the SICStus object or by specifying the property sicstus path Example UNIX 4 java Dsicstus path usr local lib sicstus 3 8 Example Win32 Chapter 4 Jasper notes 1
9. the foreign interfaces now use UTF 8 encoding for strings containing non ASCII characters codes 128 This affects programs with strings that contain e g accented characters and which transfer such strings between Prolog and C If such a string is created on the C side it should be converted to UTF 8 before passing it to Prolog Similarly for a string passed from Prolog to C if it is to be decomposed into characters on the C side the inverse transformation has to be applied Utility functions SP code wci and SP wci code are provided to support the conversion of strings between the WCI Wide Character Internal encoding i e UTF 8 format and wide character codes 8 7 2 Breakpointing debugger A new general debugger is introduced with advanced debugging features and an advice facility It generalizes the notion of spypoint to that of the breakpoint Breakpoints make it possible to e g stop the program at a specified line or in a specified line range or to call arbitrary Prolog goals at specified ports etc Highlights e Advice facility useful for non interactive debugging such as checking of program invariants collecting information profiling etc e Debugger hook predicate new interactive tracer commands can be defined e Tracer information access data on current and past execution states such as those contained in the ancestor list or the backtrace is now accessible to the program e The following built in
10. with the types chars chars and chars for fast conversion between C strings and Prolog lists of character codes Several new interface functions are available The memory handling of the C to Prolog interface has been simplified by passing each Prolog term as a handle object called an SP term ref making the functions SP_ Show term and SP hide term obsolete The InterViews 2 6 based GUI module library gmlib has been replaced by the Tcl Tk based library tcltk A version of library gmlib converted to SICStus Prolog release 3 is available from ftp ftps ics se archive sicstus3 gmlib tar gz The library objects module has been enhanced Inheritance is static i e determined at object creation time and is implemented as module importation A new very light weight type of object instance Attributes efficient storage of terms in objects Unprefixed goals in methods denote message passing to self Prolog goals in methods must be prefixed by Chapter 8 Revision history 21 In library charsio the open chars stream 3 4 predicates have been replaced by open chars stream 2 and with output to chars 2 3 The library assoc module now implements AVL trees instead of unbalanced binary trees The new library atts implements attributed variables a general mechanism for associating logical variables with arbitrary attributes Comes with a number of hooks that make it convenient to define and interface to con
11. 4 5 fdset_member 2 arithmetic LINDA buffering fix 8 9 Changes introduced in version 3 8 2 Version 3 8 2 is a bugfix release only no new features has been added call_residue 2 fix bug when the goal called copy_term 2 listing 1 2 portray_clause 1 2 top level cope with constrained attributed variables portray_clause 1 2 write_term 2 3 with indented true do not juggle module prefixes Foreign resources problems with prelinked resources and with clpfd Foreign resources The returned arguments from a foreign function are now properly ignored if an exception was raised with SP_raise_exception Chapter 8 Revision history 31 Foreign resources Added some for now undocumented callbacks to sicstus h Doc umented SP_to_os SP_from_os Atom garbage collector don t reclaim undefined predicates that have pointers to them some atom locations were not traced Local stack shifter bug Source info management ensure expansion of the compiled file table Backtracking from fastcode to compactcode special case Bytecode relocation bug after restore Compiler bug on very large clauses SP WcxOpenHook incorrect prototype Emulator kernel performance bugs 64 bit portability bugs library bdb a relative filename given in db open 5 was treated by SICStus as relative to the current working directory but should be relative to the given BDB environment library clpfd somewhat faster arithmetic ling
12. 5 java Dsicstus path c Program Files SICStus Prolog If you do not specify any explicit path SICStus will search for the runtime library itself If everything is setup correctly you should be able to call main which contains a short piece of test code in the SICStus root class something like this java Djava library path usr local lib classpath usr local lib sicstus 3 8 bin jasper jar se sics jasper SICStus Trying to load SICStus If you see this message you have succesfully initialized the SICStus Prolog engine It is similar under Win32 with the exception that the paths look slightly different 4 2 Jasper and Native Threads It is strongly recommended that you run your JDK in native threads mode This is the default under Windows Under UNIX most JDKs use native threads per default in version 1 2 The SICStus Prolog engine does not support multiple simultaneously executing native threads The classes in se sics jasper protects against this by using synchronized state ments around critical calls into the SICStus emulator This means that if a call from Java to Prolog is made no other Java threads will be able to call any Prolog methods until the original call has returned Attempting to do so will block the thread until it is safe to perform the call 4 3 Known Bugs and Limitations in Jasper e Jasper cannot be used from within applets since Jasper relies on calling methods declared as native This is du
13. SICStus Prolog Release Notes by the Intelligent Systems Laboratory Swedish Institute of Computer Science PO Box 1263 SE 164 29 Kista Sweden Release 3 8 4 May 2000 Swedish Institute of Computer Science sicstus request sics se http www sics se sicstus Copyright c 2000 SICS Swedish Institute of Computer Science PO Box 1263 SE 164 29 Kista Sweden Permission is granted to make and distribute verbatim copies of these notes provided the copyright notice and this permission notice are preserved on all copies Permission is granted to copy and distribute modified versions of these notes under the con ditions for verbatim copying provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one Permission is granted to copy and distribute translations of these notes into another lan guage under the above conditions for modified versions except that this permission notice may be stated in a translation approved by SICS Chapter 1 Release notes and installation guide for UNIX 1 1 Release notes and installation guide for UNIX This chapter assumes that the environment variable PATH includes lt prefix gt bin where prefix points to the SICStus installation directory The installation directory is specified during installation see Section 1 2 UNIX installation page 1 For example csh tcsh gt setenv PATH usr local bin PATH sh bash ksh gt export PA
14. Settings menu Chapter 8 Revision history 32 library clpfd new constraints disjointi 1 2 disjoint2 1 2 model non overlapping lines and rectangles Bug fixes The Windows console All Files should now work in file selection dialogs A problem that prevented spld and splfr from working on Windows 95 98 has been fixed Fixed meta quoting of regular expressions in spld and splfr spld warns when input files are ignored Runtime system executables generated using spld returns 0 when runtime entry 1 succeeds and 1 on failure or exception SP chdir declares its first argument as const char Restore fixes for native code Atom garbage collection during restore fix Listing fix for disjunctions Integer range manual fix Avoid doing initializations twice for 1 and r files Compiler fix for once 1 Buffering fix for Linda Wide character handling bug fixes prolog flag 2 3 fix for runtime systems SP unify OO undo any bindings on failure library bdb relative filename handling fix library clpfd GC interaction overflow detection performance fixes A problem where multiple copies of the Jasper library were loaded has been fixed This affects all platforms Now there is exactly one version of the jasper shared library libjasper so or jasper d11 Jasper atom maps to SPCanonicalAtom instead of SPTerm Jasper the double specifier did not work 8 11 Changes introduc
15. TH usr local bin PATH 1 1 The Crypt Utility The SICStus binary distributions are encrypted with the crypt program If you do not have crypt on your machine you can download a public domain crypt utility available via anonymous FTP from ftp ftp sics se archive sicstus3 aux crypt tar gz The enclosed README files describes how to compile it 1 2 Installation Most users will install SICStus from a binary distribution These are available for all supported platforms Information on how to download and unpack the binary distribution is sent by email when ordering SICStus Binary distributions are installed by executing a interactive installation script called InstallSICStus Type 4 InstallSICStus and follow the instructions on the screen During the installation you will be required to enter your site name and license code These are included in the download instructions The installation program does not only copy files to their destination it also performs final link steps for some of the executables and for the library modules requiring third party software support currently library bdb library tcltk and library jasper This is done in order to adapt to local variations in installation paths and versions Compiling SICStus from the sources requires a source code distribution available on request for customers with maintenance contract Contact sicstus sics se for more info Instructions for compiling and install
16. ch does not have SICStus installed In order to locate all relevant files the following directory structure is recommended Chapter 2 Release notes and installation guide for Windows 7 myapp exe Sprt38 dll sp38 binN Sprt sav library files from 4SP_PATH library gt myapp exe is typically created by a call to spld 4 spld main user o myapp exe If the directory containing sprt38 d11 contains a directory called sp38 SICStus assumes that it is part of a Runtime System as described in the picture The runtime library sprt sav is then looked up in the directory sp38 bin as in the picture Further more the initial library directory 1 fact will initially be set to the same directory with sp38 library appended The directory structure under library should look like in a regular installed SICStus including the platform specific subdirectory x86 win32 nt 4 in this case If your appli cation needs to use library system and library random your directory structure may look like myapp exe Sprt38 dll sp38 bin Sprt sav library random po system po x86 win32 nt 4 random dll System dll The sp files can also be put somewhere else in order to be shared by several applications provided the sprt38 d11 can be located by the DLL search The 38 in the file names above is derived from SICStus s major and minor version numbers ie curr
17. collection New interface functions SP register atom SP unregister atom e Calls with clean up guaranteed provided by call cleanup 2 which replaces undo 1 e Source linked debugging controlled by the source info Prolog flag e Debugger enhancements tracing of compiled code a new debugger mode zip and built ins zip 0 nozip 0 new debugger commands out n skip i quasi skip i zip backtrace n raise exception Modules can be declared as hidden which disables tracing of their predicates e Saved states are available in runtime systems and are portable across platforms and between development and runtime systems save 1 2 are gone In most cases save program 2 can be used in their place with a little rearrangement of your code Predicates can be declared as volatile e A interface function SP restore is the C equivalent of restore 1 which now only restores the program state leaving the Prolog execution stacks unchanged e The GNU Emacs interface was enhanced source linked debugging new menus speed help functions electric functions indentation portability bug fixes e The reader can return layout information about terms read in New read term 3 option layout Layout New hook predicate user term expansion 4 e Module name expansion of goals is done prior to execution of meta calls e Imported predicates can be spied and abolished e random randset 3 returns a set in standard order e db db canonical 2 3 are new ca
18. d configure in Removed multiple occurences of the n32 flag under IRIX if cc is used instead of gcc Chapter 8 Revision history 30 configure in FreeBSD 3 x is now handled correctly configure in On Linux and Solaris SICStus is now always linked with the POSIX thread library InstallSICStus spld did not log verbose output to logfile spld splfr Eliminated use of to specify relative paths Caused problems on Windows 95 98 library jasper Green threads JDKs not supported any longer library tcltk Tcl_FindExecutable is called when the tcltk library is loaded before any Tcl Tk interpreter is created This should fix errors related to not finding init tcl and also improve support for international character sets multifile discontiguous combination fix redefinition warning for multifile predicates fix listing 0 1 tell 1 see 1 fixes avoid bogus line number info for native code trail compression fix stack_shifts statistics 2 option manual fix load_foreign_resource 1 search algorithm fix atom number handling fixes raise error for a blc avoid SP_term_ref leaks in some functions prevent dangling pointer problem in displaying line number info check representability of compiled clauses prevent looping at halt and elsewhere if advice has been given CHR initialization fix CLPFD fixes and corrections to all_distinct 1 2 assignment 2 3 circuit 1 2 serialized 2 3 cumulative
19. d by default The default installation location for the emacs files is lt prefix gt lib sicstus 3 8 emacs on UNIX platforms and C Program Files SICStus Prolog emacs on Windows For maximum performance it is recommended that the Emacs lisp files extension el are compiled This can be done from within Emacs with the command M x byte compile file See section Installation in SICStus Prolog Manual for further details 7 1 1 Installing On Line Documentation It is possible to look up the documentation for any built in or library predicate from within Emacs using C c or the menu For this to work Emacs must be told about the location of the info files that make up the documentation This can be done for the entire emacs installation or on a per user basis see section Installation in SICStus Prolog Manual for further details The default location for the info files are lt prefix gt lib sicstus 3 8 doc info on UNIX platforms and C Program Files SICStus Prolog doc info on Windows More recent versions of GNU Emacs and XEmacs should be able to automatically incor porate info files from a subdirectory into the main Info documentation tree It is therefore recommended that the SICStus Info files are kept together in their own directory Chapter 8 Revision history 20 8 Revision history This chapter summarizes the changes in release 3 wrt previous SICStus Prolog releases as well as cha
20. data space cannot exceed 256 Mb The Linux implemen tation of sbrk returns memory starting at 0x08000000 so in practice the limit there is 128 Mb The number of arguments of a compound term may not exceed 255 The number of atoms created may not exceed 262143 67108863 on 32 bit 64 bit archi tectures The number of characters of an atom may not exceed 65535 NUL is not a legal character in atoms There are 256 temporary and 256 permanent variables available for compiled clauses Saved states are not portable between 32 bit and 64 bit architectures or from a system built with native code support to a system without native code support for the same architecture Indexing on big integers or floats is coarse Chapter 10 Questions and answers 36 10 Questions and answers Current support status for the various platforms can be found at the SICStus Homepage http www sics se sicstus Information about and fixes for bugs which have shown up since the latest release can be found there as well Send requests for ordering information to sicstus request sics se Send bug reports to sicstus support sics se Bugs tend actually to be fixed if they can be isolated so it is in your interest to report them in such a way that they can be easily reproduced The mailing list Sicstus users sics se is a moderated mailing list for communication among users and implementors To un subscribe write to sicstus users reque
21. der at save restore e CLP Q R answer constraint projection e problems with bignums and big terms in q1 files e detecting invalid goals in metacalls asserts 1oad files 1 2 e spurious redefinition warnings e bignum quotient remainder on 64 bit architectures e compiler complexity of compiling multiple clauses with same key code generation quality for inline goals e memory manager avoiding dangling pointers on Windows better reclamation of dead clauses and predicates using dynamic hashing and hashpjw for atoms keeping predi cate tables as small as possible avoiding stack overflow if multiple goals get simulta neously unblocked better reuse of free memory blocks e garbage collector removing redundant trail entries for mutables improved scope and speed of generational garbage collection e callbacks to Prolog while reading from the terminal e printing atoms with character codes in 27 31 e reading atoms with Vc e Floating point NaN Not a Number Now behaves consistently across platforms In particular fixed Windows related bugs with arithmetic on and printing of NaN e Arithmetic comparisons involving NaN now fails except Note that X is nan X X fails e Term order for NaN is now defined and the same for all platforms There is a single NaN and it lies between the float inf and the integers 8 8 Changes introduced in version 3 8 1 Version 3 8 1 is a bugfix release only no new features has been adde
22. e to a security restriction enforced on applets they are not allowed to call native code e If a green threads JVM is used which is not recommended avoid using terminal I O routines in Java code called from Prolog or in general when Prolog is the parent application This is due to magic tricks the JVM does with file descriptors to handle blocking system calls without native threads e Onsome platforms you need to explicitly specify the native option when calling java The following error is an example of what may happen if you do not specify native java classpath lib sicstus 3 8 bin jasper jar Djava library path panic libthread loaded into green threads Abort core dumped Instead do 4 java native Chapter 4 Jasper notes 16 See your JDK documentation for more info on command line parameters to the JVM There is a known memory leak when using the argument conversion specifiers chars string chars and string They convert Java strings to UTF8 strings using GetStringUTFChars O but they do not call ReleaseStringUTFChars to release the string Some uses of SPTerm will leak memory on the Prolog side This happens if new SPTerm objects are allocated but Java neither returns to Prolog nor backtracks using the method nextSolution into a query opened using the method openQuery before the allocation of the SPTerm s On some combinations of C compilers and JDKs specifically GCC with Sun s JDK
23. ed in version 3 8 4 Version 3 8 4 is mainly a bugfix release New features abort 0 returns to the innermost top level and does not switch off the debugger library clpfd Given a term Term containing domain variables fd_copy_ term Term Template Body will compute Template and Body where Template is a copy of the same term with all variables renamed to new variables such that executing Body will post constraints equivalent to those that Term is attached to library tcltk Chapter 8 Revision history 33 Added list CommandList to the possible command formats It creates a TCL list by in effect calling the TCL command list with the result of converting each element of CommandList The result is that Tcl will treat the result as a list with the same length as CommandList even if the elements contains spaces or other special characters Current code that uses ListOfCommands should probably often be better off using list ListOfCommands See the manual for details Added writeq Command and write canonical Command as legal command specifications Documented that write canonical is the preferred way of passing Prolog terms from Prolog to Tcl and back More error checking and reporting In particular the output of a Prolog goal must now be in the special command format It used to just silently generate garbage Potential backward compatibility issue Now the value of variables named _ are ignored This makes it possible to avoid erro
24. ed input e g from Emacs 2 5 The console window The console window used for the windowed executable is based on code written by Jan Wielemaker lt jan swi psy uva nl gt In SICStus 3 8 the console was enhanced with menu access to common prolog flags and file operations Most of these should be self explanatory The Reconsult item in the File menu reconsults the last file consulted with use of the File menu It will probably be replaced in the future with something more powerful Note that the menus work by simulating user input to the prolog top level or debugger For this reason it is recommended that the menus are only used when SICStus is waiting for a goal at the top level or in a break level or when the debugger is waiting for a command 2 5 1 Console Preferences The stream based console window is a completely separate library using its own configu ration info It will look at the environment variable CONSOLE which should contain a string of the form name valuei name value where name is one of sl The number of lines you can scroll back There is no limit but the more you specify the more memory will be used Memory is allocated when data becomes available The default is 200 rows The initial number of lines The default is 24 cols The initial number of columns The default is 80 x The X coordinate of the top left corner The default is CW USEDEFAULT Chapter 2 Release notes and installation guide
25. el s and debugger s printing behavior is mutable 1 is a new built in which is true for mutables is a new spec in format 2 3 for arbitrary goals Mutables are initialized correctly when read in The finite domain constraint solver library clpfd has been enhanced by a pro gramming interface for global constraints improved compilation to library constraints and other performance enhancements and by a number of new exported constraints library objects New hook predicate user method expansion 3 library sockets socket select 5 has extended functionality Efficiency bugs in format 2 3 fixed Bug in save program 1 2 with native code fixed Bugs in library chr fixed and a couple of new constraint handlers fixed A problem with source linked debugging of DCG rules fixed Prevent looping on duplicates in module 2 decl Prevent memory overrun in library tcltk 8 5 Changes introduced in version 3 7 The concept of patchlevels removed and replaced by versions library chr A new library module providing Constraint Handling Rules see http www pst informatik uni muenchen de fruehwir chr solver html Chapter 8 Revision history 23 e Jasper a bi directional Java interface consisting of extensions to the existing FLI and a new library module library jasper e Atom garbage collection invoked by garbage collect atoms 0 and controlled by the agc margin Prolog flag New statistics options atoms atom garbage
26. ently 3 and 8 Naming the files with version number enables applications using different sicstus versions to install the sp files in the same directory 2 3 2 Generic Runtime Systems There are three ready made runtime systems provided with the distributions 4SP_PATH bin sprt exe SP_PATH library sprtw exe and SP_PATH bin sprti exe These are created using spld spld main restore main sav o sprt exe Chapter 2 Release notes and installation guide for Windows 8 4 spld main restore main sav i o sprti exe Spld main restore main sav window o sprtw exe These are provided for users who do not have a C compiler available The programs launches a runtime system by restoring the saved state main sav created by save program 2 and then call the predicate runtime entry 1 defined by the user setting the first argument to the atom start Alternatively the runtime system s entry point may be specified using save program 2 The program sprti exe assumes that the standard streams are connected to a terminal even if they to not seem to be useful under Emacs for example sprtw exe is a windowed executable corresponding to spwin exe For more info on how spld works see section The spld utility in SICStus Prolog Manual 2 3 3 Setting SP PATH under Windows The use of the SP PATH variable under Windows is discouraged since Windows applications can find out for themselves where
27. erified to work with Tcl Tk versions 7 3 3 6 7 4 4 0 7 5 4 1 7 6 4 2 8 0 and 8 1 T he current version of the interface may or may not work with these versions Under UNIX the installation program automatically detects the Tcl Tk version if the user does not specify it explicitly Under Windows the binary distribution is compiled against Tcl Tk 8 2 If you need to use an older Tcl Tk contact SICStus Support Note You need to have the Tcl Tk binaries accessible from your PATH environment variable e g C Program Files Tcl bin Note The Tcl Tk interface module is not supported under Mac OS X Server FreeBSD Under AIX the interface module has only been verified with Tcl Tk version 7 6 4 2 As of SICStus Prolog 3 8 1 Tcl_FindExecutable is called when the tcltk library is loaded before any Tcl Tk interpreter is created This should fix errors related to not finding init tcl and also improve support for international character sets 3 1 The Tcl Tk Terminal Window The Tcl Tk interface includes a experimental terminal window based on Tcl Tk It is opened by using the undocumented predicate tk terminal Interp TextWidget InStream OutStream ErrStream Given a TextWidget e g top myterm this predicate opens three prolog streams for which the text widget acts as a terminal There is also a library tkconsol making use of tk terminal 5 which switches the Prolog top level to a Tk window This is do
28. ering bugs in serialized 2 3 and cumulative 4 5 labeling 2 options value 1 variable 1 The configure script did not specify the correct Irix MIPS ABI ISA level building with GCC Added with lt package gt options to spld and splfr to override default installation path for third party software packages spld fixed bugs in argument handling library jasper Multiple threads are allowed to call SICStus without IllegalCallerException being thrown See Section 4 2 Jasper and Native Threads page 15 library jasper Argument checking bug in jasper call static 6 and jasper_ call instance 6 Recover properly from memory allocation failures 8 10 Changes introduced in version 3 8 3 Version 3 8 3 is mainly a bugfix release New features New interface functions SP_calloc and SP_strdup The Windows version is now up to twice as fast measured on the benchmarks in http www sics se sicstus benchmarks html In particular SICStus ought to be as fast on Windows as on Linux given the same hardware This will only affect pure Prolog code builtins such as assert are not affected although the prolog part of libraries are affected The change is in the byte code dispatch mechanism The Windows console spwin exe can now save a transcript of the interaction with the Prolog top level The command is under the File menu You may wish to increase the number of save lines in the Windows Settings under the
29. files vbsp dll and vbsp po in a place where DLLs are searched for For example the same directory as your applications EXE file or the Windows System directory This is true by default if SICStus bin is in the PATH environment variable e make the SICStus runtime DLL etc available See Section 2 3 1 Runtime Systems on Target Machines page 6 Chapter 6 Berkeley DB notes 18 6 Berkeley DB notes As of SICStus 3 8 the library module library db has been replaced by library bdb The functionality is similar but library bdb is built on top of Berkeley DB Berkeley DB can be downloaded from http www sleepycat com library bdb has been verified to work using Berkeley DB version 2 7 5 When using Berkeley DB on Windows you may want to set 4PATHA to contain the path to libdb d11 Consult the Berkeley DB documentation for further info Chapter 7 The Emacs Interface 19 7 The Emacs Interface The Emacs Interface was originally developed for GNU Emacs 19 34 and is presently being maintained using XEmacs 21 1 and tested with GNU Emacs 19 34 1 For best performance and compatibility and to enable all features we recommend that the latest versions of GNU Emacs or XEmacs are used For information on obtaining Emacs see www emacs org For information specific to GNU Emacs or XEmacs see www gnu org and www xemacs org 7 1 Installation Starting with SICStus 3 8 the Emacs interface is distributed with SICStus and installe
30. hrowing terms with domain variables now raises an exception instead of crashing Non existent files and the include 1 directive GC and BDD interaction Chapter 8 Revision history 34 save_program 1 2 save_files 1 2 check for I O errors problems with gt ref 2 terms problems with SICStus Objects unload_foreign_resource 1 false alarm in prelinked binaries Jasper glue code sometimes crashed when returning from a Java method that throwed an exception Jasper glue code reported errors for bogus argument numbers library tcltk Bug fixes and enhancements see the New Features section above for details spld splfr on Windows Errors are now properly reflected in the exit code from these programs Error handling determining current directory library clpfd disequations speeded up bugs in disjoint1 1 2 disjoint2 1 2 element 3 propagation entailment detection backward compatibility Workaround for crashes when static SICStus executables i e built with spld static load non prelinked dynamic foreign resources With this workaround loading a dynamic foreign resource into a static SICStus executable will still unnecessarily load the shared version of the SICStus runtime system libsprt38 so but the shared run time system will not be used This will be fixed in a forthcoming release Chapter 9 Generic limitations 35 9 Generic limitations On 32 bit architectures the total
31. iables are set by function calls SP foreign reinit hook is not supported The system has been ported to the Microsoft Win32 platform Intel x86 The system has been ported to the Macintosh The system has been ported to the OS 2 32bit platform Intel x86 If the init file sicstusrc is not found SICStus looks for sicstus ini library sockets socket select b5 arg 1 may be a possibly empty list of passive sockets arg 3 returns a possibly empty list of new streams Chapter 8 Revision history 22 library system The following new predicates are provided tmpnam 1 directory files 2 file property 2 delete file 2 make directory 1 A new constraint solver for finite domains library clpfd implemented on top of library atts 8 3 Changes introduced in 3 5 New built in open 4 enables opening files in binary mode library charsio New predicate with_output_to_chars 4 library heaps New predicates delete_from_heap 4 empty heap 1 is heap 1 library queues New predicate is_queue 1 library sockets New predicates socket_accept 3 and socket_select 6 pro vide address of connecting client hostname_address 2 resolves name ip number SP_atom_length returns the print name length of a Prolog atom Modification time instead of current time stored for loaded files 8 4 Changes introduced in 3 6 toplevel print options and debugger print options are new Prolog flags con trolling the toplev
32. ing SICStus from the source code is available in the files README and INSTALL in the source code distribution 1 3 Foreign language interface Chapter 1 Release notes and installation guide for UNIX 2 1 3 1 How to customize splfr and spld The utilities splfr and spld are implemented as Perl scripts and can be customized in order to adapt to local variations Do not attempt this unless you know what you are doing Customization is done by editing their common configuration file spld config Follow these instructions 1 Locate the configuration file spld config It should be located in the same directory as splfr and spld 2 Make a copy for spld config lets call it hacked spld config Do not edit the original file 3 The configuration file contains lines on the form CFLAGS g 02 Edit these according to your needs Do not add or remove any flags 4 You may now use the modified spld config together with spld or splfr like this 4 spld config path to hacked spld config Replace path to with the actual path to the hacked configuration file 1 3 2 How to create dynamic linked foreign resources manually To compile the glue code file and user code use the compiler options assigned to INCR_ CFLAGS by configure In addition also include DSPDLL The object files are then linked into a dynamic linked foreign resource For this you will normally use the linker whose name was assigned to SHLD by configure and linker options a
33. is line buffered e Running under Emacs has been tried with GNU Emacs v 19 31 and 19 34 and 20 X See above e Tcl Tk The top_level_events option to tk_new 2 is not supported e stream select 3 is not supported e stream interrupt 3 is not supported e library timeout is not supported e library sockets The AF UNIX address family is unsurprisingly not supported Socket select 5 6 support only socket streams for arg 4 5 e library system popen 3 is not supported kill 2 attempts to terminate the re quested process irrespectively of the 2nd arg Chapter 2 Release notes and installation guide for Windows 11 2 8 Files that may be redistributed with runtime systems When a runtime system is redistributed to third parties only the following files may be included in the distribution All filenames are relative to 4SP PATH pin sprt sav bin jasper jar bin dlI bin po library tcl po bas lLibrary d1ll library po Chapter 3 Tcl Tk notes 12 3 Tcl Tk notes Tcl Tk itself is not included in the SICStus distribution It must be installed in order to use the interface It can be downloaded from the Tcl Tk primary website http www ajubasolutions com formerly Scriptics The Tcl Tk interface module included in SICStus Prolog 3 8 library tcltk is verified to work with Tcl Tk 8 2 with a few exceptions noted below Previous versions of the interface have been v
34. n be used to check whether two TermRefs refer to the same term e clpfd serialized precedence 3 and clpfd serialized precedence resource 4 are new model non overlapping tasks with precedence constraints or sequence dependent setup times e In object method bodies goals of the form Goal are translated according to the manual Earlier versions treated arguments occurring in the position of meta predicates specially e A new interface function SP raise fault and interface macro SP on fault are avail able for handling runtime faults that cannot be caught as exceptions e A new interface function SP set memalloc hooks is available for redefining the mem ory manager s bottom layer Related to that there is a new command line option m e Development and runtime systems have been reorganized internally All use a runtime kernel shared object or DLL and are initialized by restoring saved states Development systems additionally use a development kernel shared object or DLL e The B command line option is gone in the start up script and some new options have appeared e Under UNIX new option base to override the executable used by the start script Chapter 8 Revision history 24 e Under UNIX improvements in the configure script better options to specify Tcl Tk versions and paths e Hookable standard streams e Floating point operations on Digital Alpha are now IEEE conformant 6 4 e reinitiali
35. ne by simply loading the library module Chapter 4 Jasper notes 13 4 Jasper notes Jasper requires at least Java 2 a k a JDK 1 2 to run the full development kit not just the JRE Jasper does not work with Visual J or Visual Caf Jasper is only supported under the following configurations Solaris 2 x Verified using Sun s JDK 1 2 downloadable from http java sun com products jdk 1 2 Note Solaris Intel users see Section 1 4 Platform specific UNIX notes page 3 Windows 95 98 NT Verified using Sun s JDK 1 2 downloadable from http java sun com products jdk 1 2 Linux x86 Verified using Blackdown s JDK Version 1 2 pre release version 1 native threads sunwjit Downloadable from http www blackdown org java linux html 4 1 Getting Started This section describes some tips and hints on how to get the interface started This is actually where most problems occur Under Windows it is recommended that you add SICStus s and Java s DLL directo ries to your APATHA This will enable Windows library search method to locate all rel evant DLLs For SICStus this is the same as where sicstus exe is located usually C Program Files sicstus3 bin For Java it is usually C jdk1 2 2 jre bin classic and C jdk1 2 2 bin For example set PATH C jdk1 2 2 jre bin classic C jdk1 2 2 bin PATH set PATH C Program Files SICStus Prolog bin PATH A If SICStus is used as parent application things are usually really simple
36. nges introduced by patch releases 8 1 Changes in release 3 Backslashes V in strings quoted atoms and integers written in 0 notation denote escape sequences Character escaping can be switched off Multifile declarations are required in all files where clauses to a multifile predicate are defined This complies with the ISO Prolog Standard The built in predicate call residue 2 has been modified so that goals that are dis junctively blocked on several variables are returned correctly in the second argument The built in predicate setarg 3 has been removed Its functionality is provided by the new built ins create mutable 2 get mutable 2 update mutable 2 and is mutable 2 which implement a timestamp technique for value trailing with low level support The built in predicates unix 1 and plsys 1 have been removed Their functionality is provided by prolog flag argv X by the new halt 1 built in and by the new library system module which also contains several new predicates The socket I O built ins have been moved to the new library sockets module The built in time out 3 has been moved to the new library timeout module The built ins term hash 2 4 subsumes_chk 2 and term subsumer 3 have been moved to the new library terms module which also contains operations for unifi cation with occurs check testing acyclicity and getting the variables of a term The foreign language interface Prolog to C has been extended
37. predicates have been added add breakpoint 2 spy 2 current breakpoint 4 remove breakpoints 1 disable breakpoints 1 enable breakpoints 1 execution state 1 and execution state 2 user debugger_ command hook 2 is a new hook predicate Chapter 8 Revision history 26 The predicates nospy 1 and nospyal1 0 have slighty changed meaning The predicate spypoint_condition 3 has been removed 8 7 3 ISO compliance SICStus 3 8 supports standard Prolog adhering to the International Standard ISO IEC 13211 1 PROLOG Part 1 General Core At the same time it also supports programs written in earlier versions of SICStus This is achieved by introducing two execution modes iso and sicstus Users can change between the modes using the Prolog flag language Main issues e The sicstus execution mode is practically identical to 3 7 1 except for minor changes in error term format e The iso mode is fully compliant with ISO standard but no strict conformance mode is provided e The dual mode system supports the gradual transition from legacy SICStus code to ISO Prolog compliant programs e Note that the built in predicates functions and Prolog flags required by the ISO stan dard are also available in sicstus execution mode unless they conflict with existing SICStus predicates or functions This expansion of the language carries a remote risk of name clashes with user code 8 7 4 Generic new features e The spmkds and spmkrs utilities for
38. ranar xod 12 3 1 The Tcl Tk Terminal Window 4 ec zlen rm e RR nth 13 4 Jasper NOLES 2c 9 20 X W a todd eei Res 13 4 1 Getting Started reari scence eee eee nah 13 4 2 Jasper and Native Threads 0000 ee eee ee eee 15 4 3 Known Bugs and Limitations in Jasper 15 4 4 Java Examples Directory 0 00 00 cece else 16 4 5 ReSOULCOS iis i cosy ee ies ek eae ee gad eher E ERE EE 16 5 Visual Basic notes 22e cece eens 17 6 Berkeley DB notes Lee 18 7 The Emacs Interface een 19 7 1 Installation esseede see ccc ccc cece nmn 19 7 1 1 Installing On Line Documentation 19 B Revision History 2 2 22 4 EAR RR RS 20 8 1 Changes in release 3 0000 cee eee eens 20 8 2 Changes introduced in 3 4 00 elis eee eee 21 8 3 Changes introduced in 3325 ssiiiiselliesssesusn 22 8 4 Changes introduced in 3 6 0 00 e cece eee eee 22 8 5 Changes introduced in version 3 7 00 ccc e eee e eee 22 8 6 Changes introduced in version 3 7 1 00 00 cece eae 24 8 7 Changes introduced in version 3 8 0000 eee ee eee 25 8 7 1 Wide character support slssse else 25 8 7 2 Breakpointing debugger 0020 45 25 8 7 3 ISO compliance iieri epe Uneh e ee ke 26 8 7 4 Generic new features 0000 c eee eee 26 8 7 5 New features in library jasper 27 8 7 6 New featu
39. res in library clpfd 28 8 7 7 Bugs fixed in version 3 8 0 0 00 e eee eee 28 8 8 Changes introduced in version 3 8 1 0 0000 cee eee 29 8 9 Changes introduced in version 3 8 2 uuluuuuu 30 8 10 Changes introduced in version 3 8 3 00000e sees 31 8 11 Changes introduced in version 3 8 4 00 000 000s 32 9 Generic limitations 2222 wn dO nc 35 10 Questions and answers 36
40. rs if some uninteresting result is not in the special command format This used to be less of a problem since such errors were silently ignored International UNICODE character now passed between Tcl Tk and Prolog Made the stream used internally by library tcltk always use UTFS so that non seven bit characters gets recognized by Tcl This transfers character codes unchanged between SICStus and Tcl so it assumes that SICStus interprets char acter codes as UNICODE as this is what Tcl does tk num main windows 2 and tk main window 2 no longer segfaults on Windows if tk new 2 has not been called Added a tk new called check to some other routines as well The segfault occurred when due to a bug in Tk Tk uses stubs to access T cl Presently T k uses Tcl stubs by default only on Windows The empty string resulting from an empty CommandList now becomes properly NUL terminated prolog call now resets the FLI stack to avoid space leaks when Tcl tk is the master and Prolog the slave Corrected some bugs in the Tcl Tk documentation Added examples of using the new command specifications library linda client New predicate shutdown_server 0 The server keeps running after receiving this signal until such time as all the clients have closed their connections Courtesy of Malcolm Ryan Some more options are available when the user is asked about redefining predicates Bug fixes Skip line 1 at_end_of_file O tab 2 Asserting copying or t
41. se O does not load any initialization files given in i or 1 command line flags e Under UNIX New option S to spmkrs and spmkds to link the SICStus Runtime Kernel and development extensions for spmkds statically into the executable e File1 File2 was broken e require 1 did not find all directories e Runtime systems could crash after GC e Bugs in clp qr dump 3 clp qr expand 0 clp qr noexpand 0 e The garbage collector reported too many bytes collected e Memory overflows were not handled gracefully e Imported predicates couldn t be abolished e arrays arefa 3 arrays aref1 3 heaps min of heap 5 are now steadfast e Most library clpfd predicates now check the type of their arguments Bugs fixed in relation 3 serialized 2 all distinct 1 e frozen 2 could crash on an argument of the wrong type e SP get list n chars does not require a proper list e Problems with exceptions in embedded commands in source files e Problems with 1oad files Files compilation mode assert a11 e For load_files Files if changed a non module file is not considered to have been previously loaded if it was loaded into a different module e Incorrect translation of if 3 goals in DCG rules e On Win32 system mktemp 2 sometimes returned filenames with backslashes in them 8 6 Changes introduced in version 3 7 1 e The type specifier object in Jasper has changed to object Class e Under UNIX Error
42. ssigned to SHLDFLAGS The resource will consist of the file ResourceName Suffix where Suffix is the value assigned to SHSFX by configure The defaults are SHLD 1d SHLDFLAGS shared SHSFX so E g on Sparc SunOS 5 X cc c DSPDLL glue code c cc c DSPDLL mycode c ld shared glue code o mycode o o myresource so Libraries needed by the resource should normally also be included in the link command line 1 3 3 Interfacing to C Functions in C files which should be called from Prolog must be enclosed like e g extern C void myfun long i f F Chapter 1 Release notes and installation guide for UNIX 3 To build a dynamic linked foreign resource with C code you may depending on platform have to explicitly include certain libraries E g on Sparc SunOS 5 X using gcc splfr LD L usr gnu lib gcc lib sparc sun solaris2 4 2 7 0 lgcc The library path is installation dependent of course 1 3 4 Runtime Systems on Target Machines This section describes how to distribute runtime systems on Target Machines i e machines which does not have SICStus installed In order to build a runtime system for distribution on a target machine the option moveable must be passed to spld This option prevents spld from hardcoding any paths into the executable Next in order for SICStus to be able to locate all relevant files the following directory structure is recommended myapp exe libN libspr
43. st sics se Table of Contents 1 Release notes and installation guide for UNIX M TUCPE 1 Ll Phe Crypt Utility uie ree reb e ta 1 1 2 InStallatlon duse T rte tco ec C e ete ened 1 1 8 Foreign language interface 0 00 0 cee eee eee 1 1 3 1 How to customize splfr and spld 2 1 3 2 How to create dynamic linked foreign resources manually oon noverint eee doen tace ag 2 1 8 8 Interfacing to C 00 eee eee 2 1 3 4 Runtime Systems on Target Machines 3 1 4 Platform specific notes ssssessssee esses 3 1 5 Files that may be redistributed with runtime systems 4 2 Release notes and installation guide for WindOWS ess RE Ur RARE ERO x nda 5 2 1 Requirements epi os tree pA Ran D CAR eas 5 2 2 Installation css 22 eroe tt tnt CR nta n RC ane e ota 5 2 3 Windows Notes ccc eee eee eee eee e eens 6 2 3 1 Runtime Systems on Target Machines 6 2 3 2 Generic Runtime Systems 00 004 d 2 8 8 Setting SP PATH under Windows 8 2 4 Command line editing sslssseeeeseeeeleseeeeA 8 2 5 The console window sessuesssesleess eese 9 2 5 1 Console Preferences 0 cece cece aaa 9 2 6 Emacs Interface 0 0 eee eens 10 2 6 Limitatlons 2 e pe ERO Feed wha niens dee ra E 10 2 8 Files that may be redistributed with runtime systems 11 2 CPclOEK HODBS 2252325 k
44. straint solvers The Boolean constraint solver has been moved to the new library clpb and is im plemented on top of library atts New constraint solvers for rationals library clpq and reals library clpr im plemented on top of library atts user goal_expansion 3 is a new hook predicate for macro expansion bb_put 2 bb_get 2 bb_delete 2 and bb_update 3 are new built ins implementing blackboard primitives prolog_load_context 2 is a new built in predicate for accessing aspects of the context of files being loaded user file_search_path 2 is a new hook predicate providing an alias expansion mech anism for filenames gcd 2 is a new built in function The statistics keyword walltime measures elapsed absolute time In runtime systems ensure loaded 1 and use_module 1 2 3 have the same se mantics as in development systems Native code compilation available for MIPS platforms Problems in native code compilation for certain SPARC models have been eliminated Performance improvements include emulated code speed native code speed and the foreign language interface The system has been ported to the DEC OSF 1 Alpha a 64 bit platform 8 2 Changes introduced in 3744 New built in predicates and shell commands for creating and loading foreign language modules and creating customized development and runtime systems Previous built ins remain for backwards compatibility Slight changes in the C interface hook var
45. t38 so sicstus 3 8 4 bin sprt sav library files from SP_PATH library gt myapp exe is typically created by a call to spld 4 spld main user moveable o myapp exe In order for the executable to be able to locate sprt sav the variable SP PATH needs to be set If the example above is rooted in home joe then SP PATH should be set to home joe lib sicstus 3 8 4 Unless the S option is passed to spld it might also be necessary to set LD_LIBRARY_PATH or equivalent to home joe 1lib in the example above in order for the dynamic linker to find libsprt38 so If the S option is used this is not necessary 1 4 Platform specific notes This section contains some installation notes which are platform specific under UNIX e Alpha OSF1 Runtime loading of library bdb or library tcltk might not work unless Berkeley DB and Tcl Tk is installed in the standard directories e g usr shlib In the case of library bdb this is further complicated by the fact that Berkeley DB uses the name libdb which conflicts with a builtin library of the same name Chapter 1 Release notes and installation guide for UNIX 4 There are two solutions Override the runtime linkers default search path by setting LD_LIBRARY_PATH Ex ample bash export LD LIBRARY PATH usr local BerkeleyDB lib home joe mytcltk lit csh gt setenv LD_LIBRARY_PATH usr local BerkelyDB lib home joe m
46. the following warning may occur Splfr simple pl SICStus 3 8 4 sparc solaris 5 7 Mon Feb 21 10 43 17 MET 2000 Licensed to SICS spk ai82 c generated 20 msec yes In file included from usr local jdk1 2 include jni h 35 from spk ai82 c 94 usr local jdk1 2 include solaris jni_md h 20 warning ignoring pragma Q ji 1 11 99 02 01 SMI The warning can be safely ignored You can suppress the warnings by passing the options cflag Wno unknown pragmas to splfr 4 4 Java Examples Directory There is an examples directory available in SP_PATH library jasper examples See the file README for more info 4 5 Resources There are almost infinitely many Java resources on the Internet Here is a list of a few which are related to Jasper and JNI JavaSoft Homepage JavaSoft s Java FAQ JavaSoft Documentation Homepage JNI Documentation JavaSoft s JNI Tutorial Yahoo s Java page The ACM student magazine Crossroads has published an article on the JNI This article may be out of date Chapter 5 Visual Basic notes 17 5 Visual Basic notes The Visual Basic SICStus Prolog interface consists of the following files e vbsp dll installed as SICStus bin vbsp d11 e vbsp po installed as SICStus bin vbsp po e vbsp bas installed as SICStus library vbsp bas In order to use the interface perform the following steps e include the file vbsp bas in your Visual Basic project e put the
47. they were started from SP PATH is only used if the directory where sprt lt ver gt d11 is loaded from does not contain sp lt ver gt a directory or sprt sav where ver is 38 for SICStus version 3 8 x If SP PATH is used SICStus expects it to be set such that ZSP_PATH bin contains sprt sav See Section 2 3 1 Runtime Systems on Target Machines page 6 2 4 Command line editing Command line editing supporting Emacs like commands and IBMPC arrow keys is provided in the console based executable The following commands are available h erase previous char d erase next char u kill line Su forward char b backward char a begin of line e end of line p previous line next line i insert space E forward search r reverse search Chapter 2 Release notes and installation guide for Windows 9 v view history q input next char blindly k kill to end of line Options may be specified in the file HOMEANspcmd ini as Option Value on separate lines Recognized options are lines Value is the number of lines in the history buffer 1 100 is accepted the default is 30 save Value is either 0 don t save or restore history buffer or 1 save history buffer in 4HOME Nspcmd hst on exit restore history from the same file on start up The command line editing is switched off by giving the option nocmd when starting SICStus Command line editing will be automatically turned off if SICStus is run with pip
48. to call Java without having to generate any glue code i e without a C compiler e Support for handling local global references from Prolog jasper create global ref 3 jasper delete global ref 2 jasper delete local ref 2 e SPException term declared protected instead of private e New class SPCanonicalAtom to handle canonical representations of atoms and to make sure that they are safe with atom gc New methods getCanonicalAtom and putCanonicalAtom New constructor for SPPredicate getAtom and putAtom depre cated e New exception IllegalCallerException is thrown if the current thread is not allowed to call SICStus 8 7 6 New features in library clpfd e fd degree 2 is new returns the number of constraints attached to a variable e labeling 2 requires the list of domain variables to have bounded domains User defined variable and value choice heuristics can be provided e element 3 is interval consistent in its second and third arguments Use relation 3 if domain consistency is required e serialized 3 is new and replaces serialized precedence 3 and serialized precedence resource 4 A number of new options control the algorithm The space complexity no longer depends on the domain size e cumulative 5 is new and takes the same options as serialized 3 e all different 2 all distinct 2 and assignment 3 are new and take options con trolling the algorithms e Generally performance and error checking have been improved
49. umes that the environment variable PATH includes 4SP PATH Nbin where SP PATH points to the SICStus installation directory For example C gt set PATH c Program Files NSICStus PrologVbin APATHA You may also want to include the paths to Tcl Tk see Chapter 3 Tcl Tk notes page 12 Java see Section 4 1 Getting Started page 13 and Berkeley DB see Chapter 6 Berkeley DB notes page 18 2 1 Requirements e Operating environment Microsoft Windows 95 98 NT 4 0 e Processor 386 486 or Pentium class e Available user memory 16 Mbytes e Available hard drive space 20 Mbytes e For interfacing with C or C Microsoft Visual C 6 0 or later 2 2 Installation The development system comes in two flavors 1 A console based executable which is suitable to run from a DOS prompt from batch files or under Emacs See Section 2 4 Command line editing page 8 2 A windowed executable providing command line editing and menus The distribution consists of a single selfinstalling executable sp3w32 exe containing development system runtime support files library sources and manuals Installed files on a shared drive can be reused for installation on other machines SICStus Prolog requires a license code to run You should have received from SICS your site name the expiration date and the code This information is normally entered during installation Expiration date ExpirationDate Site Site License Code Code
50. uses Emacs to highlight the culprit line of code Valid values are off on and emacs Chapter 8 Revision history 27 Predicate indicators can take the form Name Arity Arity in spy 1 2 nospy 1 listing 1 abolish 1 profile data 4 profile reset 1 save predicates 2 and gauge view 1 The new interface functions SP chdir and SP getcwd provide access to the current working directory The interface function SP 1oad has been generalized to correspond to load_files 1 The interface function SP deinitialize is now documented Windows the registry is no longer used by SICStus itself The SICStus Runtime Library is located based on the location of sprt xx dll SP PATH is only used as a last resort See Section 2 3 Windows notes page 6 Source code compilation and installation procedure has been improved and simplified See README and INSTALL in the source distribution for documentation The layout of the Gauge graphical user interface has been improved The new library bdb provides an interface to the Berkeley DB toolset for persistent storage and replaces library db The programming interface of the new module is similar to that of the old one with some new concepts added such as iterators The sources of the old library module are available from ftp ftp sics se archive sicstus3 libdb tgz library db is obsolete and will be removed in the next major release Generic runtime systems on Windo
51. ws are built using spld and exist in three flavors generic character based sprt exe generic character based interactive sprti exe and generic windowed sprtw exe See Section 2 3 2 Generic Runtime Systems page 7 The manual chapter for library tcltk has been rewritten and greatly expanded library clpq and library clpr new predicates inf 4 and sup 4 Code fragments loaded via the Emacs interface are imported into the type in module unless the source file has an explicit mode line library gcla has been removed initialization 0 1 have been replaced by ISO compliant initializations 8 7 5 New features in library jasper Java 2 a k a JDK 1 2 is now required library jasper will not work using JDK LLX Support for native threads JDKs See Section 4 2 Jasper and Native Threads page 15 Changed package name from jasper to se sics jasper according to JavaSoft guide lines See Section 4 1 Getting Started page 13 Classfiles are now placed in jasper jar which is located in SP_PATH bin See Sec tion 4 1 Getting Started page 13 The shared library for Jasper jasper dll or libjasper so is now located in the same directory as the runtime kernel default lt installdir gt lib under UNIX lt installdir gt bin under Windows See Section 4 1 Getting Started page 13 Chapter 8 Revision history 28 e Meta call functionality added jasper call instance 6 jasper call static 6 etc This makes it possible
52. ytcltk lib Prelink tcltk or bdb or both into the executable Example 4 spld D resources tcltk bdb o mysicstus e MacOS X Server The following libraries are not supported library bdb library db library tcltk library jasper e MacOS X Server When creating executables using spld the directory which contains the executable must be in the user s PATH variable e MacOS X Server Sometimes the default limit on the process data segment is unrea sonably small which may lead to unexpected memory allocation failures To check this limit do tcsh gt limit data datasize 6144 kbytes This indicates that the maximum size of the data segment is only 6 Mb To remove the limit do tcsh gt limit data unlimited datasize unlimited NOTE limit is a shell built in in tcsh It may have a different name in other shells e Solaris Intel Edition The following libraries are not supported library bdb 1 5 Files that may be redistributed with runtime systems When a runtime system is redistributed to third parties only the following files may be included in the distribution All filenames are relative to lt prefix gt lib sicstus 3 8 a so sl dylib bin sprt sav pin jasper jar library tcl po library s o so sl dylib library po Chapter 2 Release notes and installation guide for Windows 5 2 Release notes and installation guide for Windows This chapter ass

Download Pdf Manuals

image

Related Search

Related Contents

取扱説明書  NVMS-7000 Client Software User Manual  31枚/分の快速コピー 環境性能と高機能を両立したフルカラーデジタル  IBフロア AF-DP、AZ3000-DP、AZ5000-DP、AN3000-DP  Manuel d`utilisation de la caméra IP jour/nuit avec boîtier UltraView  Boycott entretien notation - Solidaires Finances publiques    HI 9033 • HI 9034 - Hanna Instruments Canada  Verilux VH04WW1 User's Manual  Case Logic ITS-3  

Copyright © All rights reserved.
Failed to retrieve file