Download SICStus Prolog Release Notes

Transcript
Chapter 13: Revision History
56
• SICStus Prolog does not verify that Prolog text is in Unicode NFC format.
When reading terms, SICStus Prolog currently does not verify that the input text
contains valid Unicode 5.0 characters in Normal Form C. See Section “Syntax of Tokens
as Character Strings” in the SICStus Prolog Manual.
This is not a problem as long as the input is in the proper format but it will accept
some input that may be rejected or interpreted differently in a future version of SICStus
Prolog.
13.16 Changes Introduced in Version 4.2.0
13.16.1 New Features
• If the Prolog flag source_info is on at compile time, more information from the source
code is kept around at runtime, with improved functionality including:
− The debugger can show variable bindings for the current clause and its ancestors.
− The Emacs interface offers a variable bindings window that is updated on every
debugger port interaction.
− listing/[0,1] displays the clauses with their source code variable names.
− PO files and saved-states retain information about variable names and line numbers.
− The SICStus Prolog IDE (SPIDER) also takes advantage of the improved debugging information, e.g. the variable bindings view in SPIDER now has information
for more variables than in earlier releases.
− Generic runtime systems are now available on all platforms, not only on Windows.
See Section “Generic Runtime Systems” in the SICStus Prolog Manual for details.
• Execution profiling has been reengineered:
− The execution profile can be printed in a format similar to gprof(1).
− There is no longer any need to specially instrument code for profiling.
− Execution profiling is available for compiled as well as interpreted code.
− Execution profiling is either globally on or globally off, reflected by the value of
the new profiling Prolog flag.
− The new scheme keeps track of the number of calls per caller-callee pair.
− The new scheme detects calls that succeed nondeterminately.
− No clause level data is maintained, all data is per predicate.
− The profiledcode value of the compiling Prolog flag has been dropped.
− PO files don’t store any profiling data.
− The built-in predicates profile_data/4 and profile_reset/1 have been replaced
by profile_reset/0, profile_data/1, print_profile/[0,1], coverage_
data/1, and print_coverage/[0,1].
− SPIDER can present the profile information.
• Improved performance on Linux Intel, 32 and 64 bits.
• Coverage analysis is now available, for compiled as well as interpreted code:
− It uses the same infrastructure as execution profiling.