GNU Prolog 1.4.0 is released

Daniel Diaz <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Message-ID <[email protected]>
Hello,

gprolog 1.4.0 has just been released (see www.gprolog.org ).

Here are the main changes which can lead to backward compatibility
issues:

strict_iso prolog flag:

- turned on by default (was off in previous versions).

- when set to off a callable is no longer accepted instead of a
predicate indicator, e.g. for current_predicate/1 (was accepted
in previous versions).

predicate_property/2:

- only accept a Head (a callable) (also accepted a predicate
indicator in previous versions) whatever the strict_iso flag.
NB: A backward compatible predicate '$predicate_property_pi'/2
is provided.

- control constructs (like (',')/2, (;)/2, !/0,...) are new
found by predicate_property/2 (were not returned in previous
versions). Attached properties are: built_in, control_construct.

- FD built-in predicates have also the property built_in (in
addition to built_in_fd) (property built_in was not attached in
previous versions).

Here is a list of changes since version 1.3.1:

* GNU Prolog is now licensed under a dual license LGPL or GPL

* port to x86_64/MinGW - many thanks to:

Jasper Taylor <[email protected]>
(see src/WINDOWS64)

* port to x86_64/MSVC (see src/WINDOWS64)

* add a configure option to control Windows HtmlHelp

--disable-htmlhelp or --enable-htmlhelp[=static/dynamic]

* improve a lot (and fix some bugs in) the Windows GUI Console

* change location of gprologvars.bat under Windows (in install
directory)

* increase default stack sizes (32Mb for heap, 16Mb for others)

* change the default setting for flag strict_iso: it is on now

* add control constructs to the predicate table

* modify predicate_property/2 (built_in_fd ==> built_in, add
control_construct)

only accepts a Head (a callable) (no longer a predicate indicator)

* fix a bug in the compiler (bad unification with singleton
variable)

* fix a bug with strict_iso flag (was not passed to consult)

* add shebang support using #!/usr/bin/gprolog --consult-file

* modify the mangling scheme for future module support (see hexgplc)

* fix write_term default options (now numbervars(false) and
namevars(false))

* fix read/1: tab and newlines are not accepted inside
single/back/double quoted tokens

* add additional errors to compare/3 and keysort/2

* accept space under the top-level (same as ;)

* modify portray_clause/1-2 to add a newline at the end of the
output

* add acyclic_term/1 (compatibility only since GNU Prolog does not
handle cyclic terms)

* fix write/1 to treat '$VARNAME'(Atom) as a var name only if Atom
is a valid var name

* rename evaluable functor atan/2 as atan2/2 and >< as xor

* add evaluable functor div/2

* detect op/3 error cases for | [] {}

* replace type_error(variable, X) by uninstantiation_error(X) (e.g.
open/3-4)

* add built-in term_variables/2-3 and subsumes_term/2

* add some type tests on chars and codes (in number_chars/2,
number_codes/2,..)

* fix some little bugs in the parser

* add meta_predicate property to predicate_property/2

* fix a memory leak in atom_concat/3 (in case of failure)

* add infix operator '|' (and allow it to be unquoted in read/write)

* improve top-level variables display adding () when needed

* support the ISO multifile/1 directive

* add built-ins false/0 and forall/2

* detect an instantiation_error in phrase/2-3

* allow rounding functions to accept an integer if strict_iso is off

* group all examples under a new directory 'examples'

* fix a bug in read_from_codes/2 and number_codes/2

* improve speed of built-in predicates on list (append, member,
reverse,...).

* improve CTRL+C handling under the top-level

* add is_list/1 (same as list/1)

* add Prolog flags: dialect, home, host_os, host_vendor, host_cpu,

host, arch, version, version_data, unix, argv

* add preprocessor directives if/1 else/0 elif/1 endif/0

* fix a bug on large ints in the byte-code for 64-bits machine

* fix a bug with call/2-N

* change listing/0-1 printing stream: now it is current_output

* add a new stream alias: user_error associated to stderr

* add evaluable functors: (a)sinh/1, (a)cosh/1, (a)tanh/1

* add evaluable functors: epsilon/0, lsb/1, msb/1, popcount/1

* fix compilation problem under Mac OS X Snow Leopard (force 32-bits
mode)

* add evaluable functors: log/2, gcd/2, tan/1, atan2/2, pi/0, e/0

* add built-in ground/1

* rename built-in sort0 as msort

* add new error detection for keysort

* accept (but ignore) directive encoding/1

* add xor/2 (bitwise XOR) ^/2 becomes integer exponentiation

* improve randomize/0 (more different values on consecutive calls)

* relax the lexer to also accept 0'' (ISO requires 0''' or 0'\') is
strict_iso is off

* fix a bug with top-level options --entry-goal and --query-goal

Enjoy !

Daniel

--

Ce message a été vérifié par
MailScanner
pour des virus ou des polluriels et rien de
suspect n'a été trouvé.

_______________________________________________
Users-prolog mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/users-prolog
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.