Did you know ... | Search Documentation: |
Title for pldoc(default) |
[Nov 22 2013]
[Jan 8 2013]
[Nov 21 2013]
library(pack)
: answered_default/1 was undefined. Nicos
Angelopoulos.qsave_program('/tmp/img')
. ERROR: Undefined procedure: 0/0.
Jos de Roo.[Nov 20 2013]
string
style. See the Prolog
flag double_quotes
. This change also enhances runtime check of
the argument to style_check/1.[Nov 19 2013]
[Nov 18 2013]
stprintf()
mapping to swprintf()
. This causes
failure to compile under MinGW under Ubuntu 13.10, where the console
opens with a title showing only "AMD," and a blank console.[Nov 17 2013]
[Nov 16 2013]
cputime
and walltime
- profile/3 is
replaced by profile/2, which takes an option list. - show_profile/2
is deleted. show_profile/1 now takes an option list.[Nov 15 2013]
[Nov 13 2013]
[Nov 11 2013]
[Nov 6 2013]
[Nov 5 2013]
[Nov 1 2013]
[Oct 27 2013]
[Oct 30 2013]
[Oct 28 2013]
[Oct 31 2013]
[Oct 29 2013]
[Oct 23 2013]
[Oct 22 2013]
[Oct 21 2013]
[Oct 18 2013]
[Oct 21 2013]
[Oct 17 2013]
memberchk(a, [a|b])
succeeds. Notably intended to capture memberchk(C,
"String")
.[Oct 18 2013]
[Oct 17 2013]
[Oct 16 2013]
[Oct 15 2013]
clauses(+List)
to process only the
given clauses.[Oct 14 2013]
arg(1, atom, X)
. Also small performance
improvement for (non-ISO) mode arg(-,+,?)
.[Oct 9 2013]
canonisePath()
after creating an absolute path.structuralEqualArg1OfRecord()
. No longer used.[Oct 8 2013]
[Oct 7 2013]
user_profile
no longer
includes the current working directory. Including files from the
current directory is considered a security issue. The old behaviour
can be restored by loading a local .plrc (Windows: pl.ini) from the
global one.
As a consequence, swipl -f file.pl
no longer works. New code
should use the -s flag or the new construct =swipl file.pl=.
[Oct 6 2013]
[Oct 5 2013]
must_be(cyclic, T)
and must_be(acyclic, T)
used inverted
error message.[Oct 2 2013]
[Sep 29 2013]
[Sep 28 2013]
[Sep 26 2013]
[Sep 16 2013]
[Sep 13 2013]
?- X #= 3. %@ X = 3. (no further solutions)
But X might as well stand for a different expression, for example:
?- X = (Y + Z), X #= 3. %@ X = Y+Z, %@ Y+Z#=3.
Note that exchanging the goals yields a different result:
?- X #= 3, X = (Y + Z). %@ false.
As another example, we have:
?- #\ 2. %@ false.
because the only solution of
?- #\ X.
is currently:
%@ X = 0.
whereas declaratively, X = (5 #= 3) is for example also a correct answer, and indeed we have:
?- X = (5 #= 3), #\ X. %@ X = (5#=3).
To fix this, the (?)/1 syntax is now made available to explicitly denote finite domain variables in CLP(FD) expressions. When you add:
:- op(5, yf, ?)
.
to your programs, you can now write:
?- X? #= 3. %@ X = 3.
The above example then yields:
?- X = (Y + Z), X? #= 3. %@ ERROR: Type error: `integer' expected, found `_G759+_G760'
because "X?" constrains X to integers. This renders your CLP(FD) programs monotonic: adding additional goals cannot yield additional answers.
As another example, consider again:
?- #\ X? . %@ X = 0.
and contrast it with:
?- X = (5 #= 3), #\ X? . %@ ERROR: Type error: `integer' expected, found `5#=3'
The convenient and declaratively problematic syntax
?- X #= 3. %@ X = 3.
is currently still available. To enforce a more declarative coding style, such a query should throw an instantiation error because too little information is known about X to answer correctly. Add (?)/1 to constrain it to integers, and exclude other CLP(FD) expressions.
[Sep 7 2013]
?- X^2 #= Z, X in -9.. -2. %@ X in -9.. -2, %@ X^2#=Z, %@ Z in 4..81.
[Sep 5 2013]
[Sep 3 2013]
[Sep 2 2013]
[Aug 28 2013]
[Aug 30 2013]
[Aug 29 2013]
%?- X*Y #= Z, X #>= 0, Z #>= 1. %@ X in 1..sup, %@ X*Y#=Z, %@ Y in inf.. -1\/1..sup, %@ Z in 1..sup.
Now:
%?- X*Y #= Z, X #>= 0, Z #>= 1. %@ X in 1..sup, %@ X*Y#=Z, %@ Y in 1..sup, %@ Z in 1..sup.
[Aug 27 2013]
[Aug 23 2013]
[Aug 22 2013]
[Aug 21 2013]
wcsdup()
[Aug 20 2013]
associate
(used in the Windows version)[Aug 19 2013]
argv
Prolog flag now only contains unprocessed
commandline arguments. This change is primarily for improving
compatibility with other systems (e.g., YAP, SICStus). A new flag,
called os_argv
provides the original complete list of arguments.
Unfortunately, some code must be updated to deal with this change. A hack to restore compatibility is to call the following before anything else in the application:
:- current_prolog_flag(os_argv, Argv), set_prolog_flag(argv, Argv).
?- X #> abs(X)
, X #> 2.
%@ X in 3..sup,
%@ X#>=_G6092,
%@ _G6100#=abs(X)
,
%@ _G6092 in 2..sup,
%@ _G6100+1#=_G6092,
%@ _G6100 in 3..sup.
Now:
?- X #> abs(X)
, X #> 2.
%@ X in 4..sup,
%@ X#>=_G1033,
%@ _G1041#=abs(X)
,
%@ _G1033 in 4..sup,
%@ _G1041+1#=_G1033,
%@ _G1041 in 3..sup.
[Aug 18 2013]
[Aug 17 2013]
[Aug 16 2013]
tty_control
flag platform
independentapple
to detect we are running on a Mac[Aug 15 2013]
exit()
.[Aug 14 2013]
color_term
.[Aug 13 2013]
[Aug 12 2013]
%?- put_attr(A, edges, [a])
, global_cardinality([A,B,C], [0-_,1-_])
.
%@ false.
Now:
%?- put_attr(A, edges, [a])
, global_cardinality([A,B,C], [0-_,1-_])
.
%@ put_attr(A, edges, [a])
,
%@ A in 0..1,
%@ global_cardinality([A, B, C], [0-_G4383, 1-_G4389])
,
%@ B in 0..1,
%@ _G4383 in 0..3,
%@ C in 0..1,
%@ _G4389 in 0..3.
:- use_module(library(clpfd))
.
distinct(Vars)
:- Vars = [A,B,C,D], all_distinct(Vars)
, [A,B,C]
ins 0..2.
Before:
%?- put_attr(X, edges, [x])
, Vars = [X|_], distinct(Vars)
.
%@ false.
Now:
%?- put_attr(X, edges, [x]), Vars = [X|_], distinct(Vars). %@ Vars = [X, _G1856, _G1859, _G1862], %@ put_attr(X, edges, [x]), %@ X in 0..2, %@ all_distinct([X, _G1856, _G1859, _G1862]), %@ _G1856 in 0..2, %@ _G1859 in 0..2.
That is, users can freely use the "edges" attribute themselves.
v(_A)
;v(_A)
). ==[Aug 8 2013]
[Aug 7 2013]
[Aug 8 2013]
[Aug 7 2013]
[Aug 8 2013]
[Aug 7 2013]
scope_settings
to load_files/2.style_check(?(Style))
. to return active
style checks on backtracking.no_effect
option[Aug 1 2013]
[Jul 30 2013]
variable_names
and implemented
goal/term expansion with 4 arguments to process layout information.[Aug 7 2013]
[Aug 6 2013]
[Aug 1 2013]
[Jul 31 2013]
[Jul 30 2013]
[Aug 3 2013]
[Aug 6 2013]
library(clpp/bounds)
: singletons. Not sure whether this
was intended.[Aug 5 2013]
[Aug 2 2013]
[Aug 1 2013]
[Jul 30 2013]
[Jul 29 2013]
[Jul 26 2013]
[Jul 23 2013]
[Jul 26 2013]
[Jul 25 2013]
[Jul 24 2013]
fetchop()
rather than decode()
to avoid D_BREAK[Jul 23 2013]
[Jul 22 2013]
[Jul 23 2013]
[Jul 22 2013]
clearUninitialisedVarsFrame()
if it encounters a D_BREAK[Jul 21 2013]
[Oct 9 2013]
[Aug 6 2013]
[Oct 23 2013]
[Oct 7 2013]
[Aug 6 2013]
style_check(-no_effect)
to compensate for some unifications
that have no effect. Suggests that is some room for optimization.[Oct 9 2013]
[Aug 8 2013]
[Aug 6 2013]
[Jul 29 2013]
[Jul 22 2013]
[Nov 15 2013]
[Nov 14 2013]
[Nov 13 2013]
[Nov 10 2013]
[Nov 1 2013]
[Oct 29 2013]
[Oct 19 2013]
[Oct 18 2013]
[Oct 17 2013]
[Oct 6 2013]
[Aug 21 2013]
[Aug 19 2013]
[Aug 13 2013]
[Aug 7 2013]
[Aug 6 2013]
[Aug 5 2013]
[Nov 5 2013]
[Oct 18 2013]
[Aug 12 2013]
[Oct 24 2013]
[Aug 19 2013]
[Aug 21 2013]
wcsdup()
[Nov 19 2013]
[Oct 17 2013]
[Oct 8 2013]
[Aug 19 2013]
[Aug 5 2013]
[Aug 12 2013]
[Aug 7 2013]
[Oct 22 2013]
[Oct 9 2013]
[Nov 18 2013]
random()
, which behaves poorly on MacOS 10.9.[Nov 10 2013]
[Oct 18 2013]
[Oct 9 2013]
base_uri([])
.[Oct 7 2013]
[Aug 21 2013]
wcsdup()
[Aug 14 2013]
rdf(_,_, literal(prefix(_), _))
. Jacco van Ossenbruggen.[Aug 13 2013]
persistent(Boolean)
.
Jacco van Ossenbruggen.[Aug 12 2013]
[Aug 7 2013]
[Aug 6 2013]
[Nov 17 2013]
[Oct 17 2013]
[Aug 19 2013]
[Oct 22 2013]
[Aug 19 2013]
[Aug 6 2013]
[Nov 17 2013]
[Nov 16 2013]
[Nov 15 2013]
[Oct 18 2013]
[Oct 17 2013]
[Oct 11 2013]
string(atom)
now creates an XPCE string without
printf translation. This is no longer necessary since Prolog atoms
do this part of the translation. Should affect little because e.g.,
string('\n')
is still a newline.snprintf()
[Aug 20 2013]
[Aug 19 2013]
[Aug 17 2013]
emacs(File:Line:LinePos)
[Aug 12 2013]
[Aug 8 2013]
[Aug 7 2013]
[Aug 6 2013]
[Aug 5 2013]
[Oct 22 2013]