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.