Ann: SWI-Prolog 6.5.0

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

I have uploaded SWI-Prolog 6.5.0.  One reason is to get the development
version ahead of the stable again :-)  Highlights:

   - SWI-cpp.h (the C++ header) now supports wchar_t* casts, i.e.,
     conversion to/from native wide character strings.
     To support this, there are also some enhancements to the C wide
     character API.
   - Sponsored by SecuritEase, the interface for (debugger) breakpoints has
     been extended.  The new hook prolog:break_hook/6 is now called from the
     breakpoint and can

     - Examine the current environment (environment stack, choicepoints,
       variable bindings in the current environment, etc).  This can be
       used to verify assertions and/or to put conditions on further
       actions.
     - For calling instructions, modify the target being called.  The
       main idea is to wrap the goal using a meta-predicate that validates
       assertions, prints progress, etc.
     - Enter trace or debug mode.

     There is no UI for this yet.  If you want to experiment, look at
     the docs [*], src/Tests/core/test_d_break.pl (testing, examples) and
     library(prolog_breakpoints).

This version supports Carlo's new Qt based console (which is getting
close to alpha release).

	Enjoy --- Jan

[*] http://www.swi-prolog.org/pldoc/doc_for?object='prolog:break_hook'/6

=========================================
SWI-Prolog Changelog since version 6.3.19
=========================================

[Jul 29 2013]

  * FIXED: Exception term if a breakpoint cannot be set.

[Jul 26 2013]

  * DOC: Provisional documentation for prolog:break_hook/6

[Jul 23 2013]

  * ADDED: Call prolog:break_hook/6 from D_BREAK

[Jul 26 2013]

  * MAINT: Use function rather than macro to make setting breakpoints
    easier.

  * MAINT: Debug topic msg_vmi to print virtual machine execution

  * MAINT: Small cleanup in shift messages

[Jul 25 2013]

  * CLEANUP: Introduce CA1_FVAR for virtual machine instruction arguments
    that access variables as `firstvar', i.e. assume that the pointed-to
    location is not initialised.  Can be used to generalise a bit more
    in GC.  For now, we need it for D_BREAK GC issues.

[Jul 24 2013]

  * FIXED: Use fetchop() rather than decode() to avoid D_BREAK

  * FIXED: Bug#113: Write `Prolog' numbers under locals that have a
    decimal point other than ".".

[Jul 23 2013]

  * FIXED: library(prolog_colour): handling of :- meta_predicate
    Module:Head.

  * FIXED: Typo in warning from trace interception hook

[Jul 22 2013]

  * FIXED: Line offset of breakpoint messages.

[Jul 23 2013]

  * FIXED: Bug#113: format using ~:f using a locale where the decimal
    point is not ".".  Eugeniy Meshcheryakov.

[Jul 22 2013]

  * FIXED: clearUninitialisedVarsFrame() if it encounters a D_BREAK

  * ADDED: library(console_input), providing completion support for the
    qpConsole window.

  * FIXED: New Thread in pqConsole.

  * ADDED: PL_wchars_to_term(): wide-character string --> term conversion

  * ADDED: PL_put_atom_nchars(): allow for passing len as -1.

  * MODIFIED: PL_atom_wchars() now also returns a wchar_t array for ISO
    latin 1 atoms.

  * ADDED: PL_new_atom_nchars() and PL_new_atom_wchars() now accept
    (size_t)-1 as length.

  * ADDED: Support file menus for the pqConsole.

[Jul 21 2013]

  * FIXED: Thread destruction if another threads waits for my input queue.

  * BUILD: Avoid missing documentation to remove the old docs

[Jul 19 2013]

  * FIXED: Abort and exceptions from the -g qoal should not be
    restarted. Markus Triska.

  * FIXED: Avoid trapping undefined win_has_menu/0.

  * MODIFIED: read_term/3 using subterm positions no longer includes the
    location of brackets into an embraced term. I.e., reading "(dynamic)"
    return the position (F-T) of the atom dynamic, and not of the ().
    This is needed for consistent grabbing of the lexical form of tokens.
    It might be worthwhile to consider an additional position term that
    indicates that the term is embraced.

  * ADDED: library(prolog_colour): colouring operator declarations.

[Jul 18 2013]

  * ADDED: library(prolog_colour) to colour meta-predicate declarations.

  * FIXED: library(prolog_colour): avoid double colouring of DCG
    non-terminal calls.

  * FIXED: library(prolog_colour) for colouring DCG terminals.

  * CLEANUP: Coloring for hook predicates.

  * FIXED: Use current `type-in' module, as set with module/1 for defining
    the read syntax.  Ian Tegebo.

  * ADDED: read_term_from_atom/3, superseding atom_to_term/3.
    The new interface follows a more consistent naming scheme (consider
    read_term_from_chars/2), while the option processing ability provides
    more flexibility than just returning the bindings.

  * CLEANUP: Use new interfaces for read_term/2,3

[Jul 17 2013]

  * ADDED: '$atom_completions'/2 now handles all Unicode atoms.

  * FIXED: Change character classification in PL_atom_generator() and
    PL_atom_generator_w() to use the same classifier as read/1.

  * CLEANUP: Comment the Prolog atom completion predicates in the C code

  * CLEANUP: Use new interface for atom completion predicates

  * MODIFIED: Only perform atom completion on referenced atoms. This
    excludes temporary atoms that are subject to atom GC from the
    completion list.  Such atoms often produce many false hits.  Atoms that
    have references belong to some static datastructure and are thus more
    likely sensible candidates for completion.

[Jul 16 2013]

  * ADDED: CVT_WRITEQ to convert terms into a quoted version

  * ADDED: Install library(win_menu) on all platforms to support Carlo's
    portable swipl-win.

  * FIXED: select/4 and selectchk/4.  Succeeded without replacing if the
    element did not appear in the list.

[Jul 15 2013]

  * FIXED: Avoid executing :- initialization directives twice from .qlf
    files.  Paulo Moura.  This is now avoided by making '$qlf_load'/2
    only execute them for embedded files.  The compiler toplevel executes
    the initialization for the toplevel loaded file. This results in
    compatible behaviour between loading .qlf and normal files.

[Jul 14 2013]

  * ENHANCED: library(prolog_colour): avoid duplicate colouring of option
    lists and improve the performance.

  * TBD: The only exception is :- [List].  This is needs some more
    fundamental fixes.

[Jul 12 2013]

  * ADDED: More details in colour output to make it easier to synchronise
    token streams.

[Jul 11 2013]

  * ADDED: library(prolog_colour) to emit an item for the fullstop.


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

[Jul 17 2013]

  * PORT: MinGW provides working strtoll

===========
Package cpp
===========

[Jul 29 2013]

  * MODIFIED: Accessing PREDICATE() arguments using the macros A1..A10:
      - These macros are now defined as PL_av[n] instead of _av[n] to
        reduce the risc for name clashes.  - These macros are now also
      availabl as PL_A1..PL_A10 - If the macro PL_SAFE_ARG_MACROS is
      defined, A1..A10 will *NOT*
        be defined.  This can be used to avoid conflicts with other
        frameworks, such as Qt5, which also uses A1...

[Jul 22 2013]

  * ADDED: Support wchar_t* almost everywhere where char* is allowed.

[Jul 16 2013]

  * MODIFIED: Term --> char * now uses quoted write for non-atomic data.


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

[Jul 21 2013]

  * FIXED: Some uses of mailman (i.e., those containing post ids
    `script` and/or `head`) would no longer work due to a bug in
    html_write:move_last//3.

[Jul 19 2013]

  * FIXED: Non-determinism in mailman.  Markus Triska.

  * FIXED: Error in mailman handling

[Jul 16 2013]

  * ENHANCED: html_receive//1 and html_post//1: allow mailboxes to post
    to each other as long as there is no cyclic dependency.

  * CLEANUP: Remove unused dependencies

[Jul 15 2013]

  * ENHANCED: Error checking in html/4 quasi quoter to trap errornous
    calls.

  * FIXED: html_requires//1: Update case on each file load instead of
    only on make/0.

  * FIXED: Include Prolog variable replacement for non-CDATA attribute
    values.

===========
Package jpl
===========

[Jul 18 2013]

  * FIXED: Avoid truncating integers.  Patch by Abramo Bagnara.

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

[Jul 21 2013]

  * ENHANCED: Since Markdown is now supported by plDoc, README and TODO
    files are allowed to have the extension `md` as well (besides `txt`).

[Jul 20 2013]

  * ADDED: Additional interfaces to library(pldoc/doc_man) to provide a
    hierarchical index to the entire manual, including the packages.

==============
Package plunit
==============

[Jul 21 2013]

  * FIXED: set_test_options/1 run(make(all)).  Wouter Beek.

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

[Jul 19 2013]

  * DOC: Avoid duplicate section identifier

[Jul 16 2013]

  * FIXED: load_structure/3: apply dialect option before the others as
    this sets defaults.

  * FIXED: dtd/2: unification of DTD document type (wchar issue)

[Jul 15 2013]

  * ADDED: load_structure/3: option case_sensitive_attributes(+Boolean)
    This is introduce for the HTML quasi quoter to be able to relate
    attribute values to Prolog variables.

[Jul 14 2013]

  * FIXED: Bug#110: xml_write/2 and friends: quote numeric attributes.

============
Package tipc
============

[Jul 19 2013]

  * DOC: Added missing section identifier

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

[Jul 11 2013]

  * FIXED: include limits.h for INT_MAX/INT_MIN definitions

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

[Jul 17 2013]

  * CLEANUP: silence benign GCC warnings

[Jul 16 2013]

  * ADDED: Install swipl-win.rc regardless of the platform to support
    Carlo's new portable swipl-win.
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.