Did you know ... Search Documentation:
Pack prolog_library_collection -- CHANGELOG.md

CHANGELOG

1.0.16 (2021-05-03)

Another small release with the following changes:

dcg

  • Removal of many DCG rules that now can be implemented by using the more generic abnf module.
  • Added error_location/[2,3] for communicating parsing errors to the user.

sort_ext

  • Added order_by2/2 as an alternative to the built-in order_by/2 predicate. The difference that this order_by2/2 is able to handle the empty list of ordering commands (useful in situations where the ordered commands are generated algorithmically).

term_ext

  • Added shared_vars/3 as a convenience predicate for shared_vars/2 that calculates the shared variables between exactly two terms.

1.0.15 (2021-04-21)

This is a very small release with only the following changes:

term_ext

type_ext

1.0.14 (2021-04-12)

This release adds several new features to several different modules. See the full log for more details.

abnf

  • Added deterministic sequence patterns with separator. This combines the features of the existing set of deterministic sequence patterns and the existing set of sequence patters with separator.
  • Fixed determinism for generative calls to the deterministic sequence patterns.

cli

  • Changed the specification of CLI flags: from a nested dict to a list of dicts.

counter

file_ext

http_client2

list_ext

media_type

  • Added must_be_media_type/2.
  • Removed extension_label/2.
  • Fixed bugs in registrations for SPARQL Query Results XML Format, GNU Zip, Microsoft PowerPoint Presentation, TriG.

nb_ext

term_ext

uri_ext

1.0.13 (2021-03-28)

This release introduces support for creating simple command-line interfaces. The SWI-Prolog standard library includes a module called optparse, but is relatively complex and performs many exponential checks. Also, the here included support library is intended to be decomposed into reusable parts (e.g., calculating width-delimited text is part of string_ext). The command-line interface support is only an initial version currently, but the intention is to extended this over time.

Here follows the full list of changes:

call_ext

  • Renamed call_bool/2 to call_boolean/2. This is more consistent with the name of the Prolog type boolean.

cli, cli\_arguments, cli\_help, cli\_version

  • Added a new module that makes it easy to write CLI tools.

dcg

  • Added dcg_char//1 for parsing/generating one single character.
  • Renamed dcg_bool//1 to dcg_pp_boolean//1. This is more consistent with the name of the Prolog type boolean, and indicates the pretty-print purpose better.
  • Added dcg_boolean//1 for parsing/generating Boolean values.
  • Added dcg_peek//1 which can be useful for simple debugging.

dict

  • Fixed instantiation (-, +, ?) of predicate dict_get/3.

print_ext

rest-server

  • Removed http_server_init/1. It is better to use the SWI-Prolog standard library predicates for initialization an HTTP server instead.

string_ext

  • Added max_string_length/2 for calculating the length of the longest given string.
  • Added message_lines/3 and words_lines/[3,4] for generating width-delimited displays of text.

1.0.12 (2021-03-20)

This release introduces many improvements to the media_type library, together with several smaller improvements and some bug fixes (see below).

jgf

= Fixed the use of an outdated standard library predicate in predicate jgf_reply/2.

media_type

  • A big rewrite of how Media Types are stored.
  • A new Prolog type called media_type that is used to indicate Media Type compound terms.
  • Better support for Media Types with identical file name extensions (e.g., gml is used for Geography Markup Language and for Graph Markup Language).
  • Removal of the following less used predicates: extension_label/2, media_type_comps/4.
  • Changed the API for retrieving Media Type parameters: parameters are now represented as pairs of atoms.
  • A new API for accessing 'families' of grouped Media Types: media_type_family/2.

pagination

  • Fixed the use of an outdated predicate from the dict module in predicate pagination_options/5.

string_ext

  • Added support for inf as the maxmimum length that is used in string_ellipsis/3. This makes it easier to specify that no ellipsis should be applied in some contexts.

term_ext

  • New predicates for generating simple, ASCII-based IDs: ascii_id/[1,2]. These IDs are supported by many external languages and tools (e.g., C names, DOT IDs).
  • Added a Prolog type declarations for optional types: maybe(T).

tree

  • New module, based on a generalization of the old proof module. This module current includes the following predicates: depth/2 and shortest/2.

1.0.10 (2021-03-17)

This release fixes one bug in module http_client2 and changes the behavior of the CLI argument handling predicates (module conf). It also introduces several small additions in other modules (see below).

conf

  • Changed the predicates for handling CLI arguments (cli_arguments/[1-3]).

debug_gui

dict

http_client2

  • Fixed retrieving the metadata from HTTP requests.

pair_ext

stream_ext

  • Support encoding iso-8859-1 (an alias of iso_latin_1).

term_ext

  • Define a term options for dictionaries with tag 'options' and used it everywhere options are used.