Ann: SWI-Prolog 6.3.19

Jan Wielemaker <[email protected]>
Newsgroups gmane.comp.ai.prolog.swi
Message-ID <[email protected]>
Hi,

I have uploaded SWI-Prolog 6.3.19.  Mostly maintenance issues.  Short 
summary:

  - Crash in argument-stack overflow handling.  Crashes running code 
with terms
    that are very deeply nested on any but the last argument.

  - Portability changes for SunOS 5.11 (gcc 4.8) and Win64 (long/pointer 
issues).
    The build-script now extracts `dangerous' warnings from the 
logfiles, so they
    are less easy to ignore.  See http://www.swi-prolog.org/build/SunOS.txt.
    A lot of this was contributed by Keri Harris.  Thanks.

  - Various enhancements to Prolog<->JSON conversion (see below).

  - Next step in PostScript in xpce generation error (sorry Jochem).

  - Better support for quasi quotations in the development tools.

  - Fixed possible deadlock when using processes using process_create/3 as
    filters (i.e., connection both stdin and stdout from Prolog, sending
    data to stdin, close and read output from stdout).  The fix is 100%
    for systems providing pipe2() and significantly reduces the window
    for systems lacking this call (e.g., MacOS).

	Enjoy --- Jan


=========================================
SWI-Prolog Changelog since version 6.3.18
=========================================

  * DOC: Format/writef updates

  * FIXED: Initialization of the argument stack.  May cause crashes on
    very deeply nested terms.  Daniel Diaz.

  * CLEANUP: use GCC's __attribute__((warn_unused_result)) for
    PL_get_string_chars()

  * ADDED: Support for demand loading quasi quotations for
    cross-referencing and coloring.

  * FIXED: Sandbox handling for quasi quotations (calling wrong module)

  * ADDED: predicate_property/2: property quasi_quotation_syntax

  * BUILD: Use $(MAKE) -C instead of (cd && $(MAKE)) to make sure we
    propagate the exit status properly.

  * PORT: Also include <fcntl.h> to get the FD_CLOEXEC flag on SunOS.

  * CLEANUP: Unused function if O_DEBUG is not active.

  * PORT: Avoid wcsdup() on SunOS due to missing prototype

  * PORT: Avoid including <math.h> before pl-incl.h because this results in
    inconsistent settings for _FILE_OFFSET_BITS on SunOS (and maybe others).

  * PORT: Terrible hack to work around SunOS 5.11/gcc signbit issues.

  * FIXED: Type error when dumping a debugging stacktrace.

  * BUILD: Use $(MAKE) rather than make.

  * PORT: Get rid of our own abs() macro in favor of C99 functions.

  * BUILD: parse build log for GCC warnings that may indicate runtime
    failures

  * FIXED: Possibility that the claim "Therefore we keep signalling every
    128 new atoms. Sooner or later some actually active thread will pick up
    the request and process it." in pl-atom.c is never true.  Wouter Beek.
    Relaxed a test a bit because the current algorithm only guarantees
    an atom GC between margin and margin+128.



============
Package clib
============

  * FIXED: Ensure proper inheritance of file descriptors when using
    concurrent process_create/3.  Jacco van Ossenbruggen.

  * CLEANUP: Make sure we catch EINTR when calling close() in
    process_create/3

  * FIXED: process_create/3 may close wrong stream in case of errors.

  * PORT: create_process/3 check relied on non-portable behaviour of tr(1)

  * PORT: Include signal.h to get the prototype for kill()

============
Package http
============

  * FIXED: Disambiguating JSON->Prolog translation.

  * MODIFIED: Make json_to_prolog/2 ignore fields in the json that are
    not specified in the json_object/1 declaration.  If multiple rules
    now apply, the one producing the Prolog term with the highest arity
    is selected.

  * ADDED: library(http/json_convert) - disjunction of types using
    (TypeA|TypeB) - null `type' to demand the key is not present -
    Handle specified defaults as optional fields in the JSON input.

  * FIXED: library(http/json_convert): properly handle types such as
    list(atom).

  * DOC: Old style quasi quotations

  * DOC: Enhanced documentation of aggregate option.  Anne Ogborn.

===========
Package nlp
===========

  * PORT: Cleanup wcsdup() issues.

============
Package odbc
============

  * ENHANCED: return domain_error on invalid ODBC findall/2 input

  * ENHANCED: support widechar+64 bit types in ODBC findall/2

  * FIXED: possible crash when freeing compiled findall/2

  * FIXED: possible crash when using findall/2 option in odbc_query/4

=============
Package pldoc
=============

  * FIXED: Object links to stable section identifiers

==============
Package semweb
==============

  * FIXED: rdf_save_canonical_turtle/2 used user prefixes.

  * FIXED: TriG parser: handle the optional = in <graph> "="? "{"

  * FIXED: Possible constant computation overflow (32-bit hardware)

  * PORT: Another missing prototype

  * PORT: Avoid wscdup warnings on SunOS

============
Package sgml
============

  * FIXED: Make parser understand html4 as alias for html for the dialect
    option.  Jacco van Ossenbruggen.

  * FIXED: Bug#110: library(sgml_write): printing numeric attribute values.

=============
Package space
=============

  * FIXED: Typo; didn't compile anymore

  * CLEANUP: Avoid warning.

===========
Package ssl
===========

  * MODIFIED: ssl_context/3: Throw an exception if ssl_config() fails

===============
Package windows
===============

  * ENHANCED: support QWORD registry types

  * FIXED: possible access to freed memory

  * FIXED: check key values when creating registry keys

  * FIXED: handle exception when setting registry keys

  * CLEANUP: silence GCC warnings about safe int <-> pointer casts

============
Package xpce
============

  * CLEANUP: Use strncmp().  This also fixes a crash when compiling using
    GCC 4.8.1 on MacOSX.  Looks like a GCC compiler error, but one should
    be careful with saying that ...

  * FIXED: text_buffer->delete if start position > size.

  * FIXED: send CTRL+C to child process using correct PGID

  * CLEANUP: use correct WNDPROC type for callback functions

  * FIXED: Sync stream.h between xpce and Prolog.  Fixed Ssize() in xpce
    on big endian machines.

  * CLEANUP: Warnings for printing XPCE integers on 32-bit platforms

  * CLEANUP: fix aliasing issue

  * CLEANUP: Methods cannot be saved anomore anyway.  Do not pretend
    they can.

  * CLEANUP: Lots of Win64 types

  * CLEANUP: types and complete change in string structure

  * CLEANUP: Handle string header with a union rather than casts

  * FIXED: PostScript generation with negative floats.  Jochem Liem.
    Broken in locale fix (177f0b8c201740ae9499f8bfd790a013d6a28050).
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.