Dear Ciao Prolog users,
Version 1.8 patch 0 of Ciao Prolog has just been released. It is available in the usual place,
http://www.clip.dia.fi.upm.es/Software/Ciao
Some small (but relevant) changes have been introduced since our last announcement: a prolog_flag to retrieve the Ciao Prolog version, a bug which caused the Windows version to break when trying to access WWW pages was corrected, and a (long) filename was changed to allow compilation on newer versions of Mac OS X.
Thanks to all those who sent us comments and bug reports. We include, again, the summarized changelog for this version.
Best regards,
Manuel Carro, Daniel Cabeza & the rest of the Ciao Prolog crew.
---------------------------------------------------------------------------
*Version 1.8 (2002/5/16, 21:20:27 CEST)* * Improvements related to supported platforms: * Support for Mac OS X 10.1, based on the Darwin kernel.
* Initial support for compilation on Linux for Power PC (contributed by _Paulo Moura_).
* Workaround for incorrect C compilation while using newer (> 2.95) gcc compilers.
* .bat files generated in Windows.
* Changes in compiler behavior and user interface: * Corrected a bug which caused wrong code generation in some cases.
* Changed execution of initialization directives. Now the initialization of a module/file never runs before the initializations of the modules from which the module/file imports (excluding circular dependences).
* The engine is more intelligent when looking for an engine to execute bytecode; this caters for a variety of situations when setting explicitly the CIAOLIB environment variable.
* Fixed bugs in the toplevel: behaviour of `module:main' calls and initialization of a module (now happens after related modules are loaded).
* Layout char not needed any more to end Prolog files.
* Syntax errors now disable .itf creation, so that they show next time the code is used without change.
* Redefinition warnings now issued only when an unqualified call is seen.
* Context menu in Windows can now load a file into the toplevel.
* Updated Windows installation in order to run CGI executables under Windows: a new information item is added to the registry.
* Added new directories found in recent Linux distributions to INFOPATH.
* Emacs-based environment and debugger improved: * Errors located immediately after code loading.
* Improved ciao-check-types-modes (preprocessor progress now visible).
* Fixed loading regions repeatedly (no more predicate redefinition warnings).
* Added entries in `ciaopp' menu to set verbosity of output.
* Fixed some additional XEmacs compatibility issues (related to searches).
* Errors reported by inferior processes are now explored in forward order (i.e., the first error reported is the first one highlighted). Improved tracking of errors.
* Specific tool bar now available, with icons for main functions (works from Emacs 21.1 on). Also, other minor adaptations for working with Emacs 21.1 and later.
* Debugger faces are now locally defined (and better customization). This also improves compatibility with XEmacs (which has different faces).
* Direct access to a common use of the preprocessor (checking modes/types and locating errors) from tool-bar.
* Inferior modes for Ciao and CiaoPP improved: contextual help turned on by default.
* Fixes to set-query. Also, previous query now appears in prompt.
* Improved behaviour of stored query.
* Improved behaviour of recentering, finding errors, etc.
* Wait for prompt has better termination characteristics.
* Added new interactive entry points (M-x): ciao, prolog, ciaopp.
* Better tracking of last inferior buffer used.
* Miscellaneous bugs removed; some colors changed to adapt to different Emacs versions.
* Fixed some remaining incompatibilities with XEmacs.
* `:- doc' now also supported and highlighted.
* Eliminated need for calendar.el
* Added some missing library directives to fontlock list, organized this better.
* New libraries added to the system: * hiord: new library which needs to be loaded in order to use higher-order call/N and P(X) syntax. Improved model for predicate abstractions.
* fuzzy: allows representing fuzzy information in the form or Prolog rules.
* use_url: allows loading a module remotely by using a WWW address of the module source code
* andorra: alternative search method where goals which become deterministic at run time are executed before others.
* iterative deepening (id): alternative search method which makes a depth-first search until a predetermined depth is reached. Complete but in general cheaper than breadth first.
* det_hook: allows making actions when a deterministic situation is reached.
* ProVRML: read VRML code and translate it into Prolog terms, and the other way around.
* io_alias_redirection: change where stdin/stdout/stderr point to from within Ciao Prolog programs.
* tcl_tk: an interface to Tcl/Tk programs.
* tcl_tk_obj: object-based interface to Tcl/Tk graphical objects.
* CiaoPP: options to interface with the CiaoPP Prolog preprocessor.
* Some libraries greatly improved: * WebDB: utilities to create WWW-based database interfaces.
* Improved Java interface implementation (this forced renaming some interface primitives).
* User-transparent persistent predicate database revamped:
* Implemented passerta_fact/1 (asserta_fact/1).
* Now it is never necessary to explicitly call init_persdb, a call to initialize_db is only needed after dynamically defining facts of persistent_dir/2. Thus, pcurrent_fact/1 predicate eliminated.
* Facts of persistent predicates included in the program code are now included in the persistent database when it is created. They are ignored in successive executions.
* Files where persistent predicates reside are now created inside a directory named as the module where the persistent predicates are defined, and are named as F_A* for predicate F/A.
* Now there are two packages: persdb and 'persdb/ll' (for low level). In the first, the standard builtins asserta_fact/1, assertz_fact/1, and retract_fact/1 are replaced by new versions which handle persistent data predicates, behaving as usual for normal data predicates. In the second package, predicates with names starting with 'p' are defined, so that there is not overhead in calling the standard builtins.
* Needed declarations for persistent_dir/2 are now included in the packages.
* SQL now works with mysql.
* system: expanded to contain more predicates which act as interface to the underlying system / operating system.
* Other libraries improved: * xref: creates cross-references among Prolog files.
* concurrency: new predicates to create new concurrent predicates on-the-fly.
* sockets: bugs corrected.
* objects: concurrent facts now properly recognized.
* fast read/write: bugs corrected.
* Added 'webbased' protocol for active modules: publication of active module address can now be made through WWW.
* Predicates in library(dynmods) moved to library(compiler).
* Expansion and meta predicates improved.
* Pretty printing.
* Assertion processing.
* Module-qualified function calls expansion improved.
* Module expansion calls goal expansion even at runtime.
* Updates to builtins (there are a few more; these are the most relevant): * Added a prolog_flag to retrieve the version and patch.
* current_predicate/1 in library(dynamic) now enumerates non-engine modules, prolog_sys:current_predicate/2 no longer exists.
* exec/* bug fixed.
* srandom/1 bug fixed.
* Updates for C interface: * Fixed bugs in already existing code.
* Added support for creation and traversing of Prolog data structures from C predicates.
* Added support for raising Prolog exceptions from C predicates.
* Preliminary support for calling Prolog from C.
* Miscellaneous updates: * Installation made more robust.
* Some pending documentation added.
* 'ciao' script now adds (locally) to path the place where it has been installed, so that other programs can be located without being explicitly in the $PATH.
* Loading programs is somewhat faster now.
* Some improvement in printing path names in Windows.