pax_global_header 0000666 0000000 0000000 00000000064 14071552575 0014525 g ustar 00root root 0000000 0000000 52 comment=909750308835c66ad3aeec1245770508f0532b97
gprolog-1.5.0/ 0000775 0000000 0000000 00000000000 14071552575 0013201 5 ustar 00root root 0000000 0000000 gprolog-1.5.0/.gitignore 0000664 0000000 0000000 00000000311 14071552575 0015164 0 ustar 00root root 0000000 0000000 *~
[a-z]
[a-z][0-9]
[a-z].*
[a-z][0-9].*
*.wam1
*.wbc
*.asm
*.sos
*.orig
*.old
*.out
tmp
TMP
VERSION
*.dSYM
*.lib
*.pdb
*.idb
*.ilk
*.exp
*.itf
*.res
*.dll
*.exe
*.[oa]
*.obj
*.so
*.po
*.BAK
.#*
#*#
gprolog-1.5.0/COPYING 0000664 0000000 0000000 00000064707 14071552575 0014252 0 ustar 00root root 0000000 0000000 GNU PROLOG LICENSE CONDITIONS
GNU Prolog is free software. Since version 1.4.0, GNU Prolog distributed
under a dual license: LGPL or GPL. So, you can redistribute it and/or modify
it under the terms of either:
* the GNU Lesser General Public License (LGPL) as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.
or
* the GNU General Public License (GPL) as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any
later version.
or both in parallel (as here).
GNU Prolog is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received copies of the GNU General Public License and the GNU
Lesser General Public License along with this program. If not, see
http://www.gnu.org/licenses/.
Remark: versions of GNU Prolog prior to 1.4.0 were entirely released under
the GNU General Public License (GPL).
The rest of this file contains LGPL v3 and GPL v2
---------------------------------------------------------------------------
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
---------------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
gprolog-1.5.0/ChangeLog 0000664 0000000 0000000 00000106713 14071552575 0014763 0 ustar 00root root 0000000 0000000 Wed Jun 9 15:20:19 CEST 2021
* port to Termux on aarch64/android
* accept clang as C compiler on x86_64/linux (use CC=clang ./configure)
* restructure and improve the code of all MA-ASM mappers
Mon May 3 13:04:24 CEST 2021
* port to arm64 (aarch64)/darwin (new Apple M1/MacOS architecture)
* port to arm64 (aarch64)/Linux (armv8) - many thanks to
Jasper Taylor
* port to arm32/Linux (armv6, armv7) - many thanks to
Jasper Taylor
Mon May 3 13:04:24 CEST 2021
* fix a bug in absolute_file_name, '/src/../' returned '' now '/'
Fri Mar 26 15:33:49 CET 2021
* add error case to findall/4 (detects when Tail is not a list)
Thu Mar 18 10:55:43 CET 2021
* set eof_action to reset for standard input/output/error streams even if not a tty
Fri Mar 12 17:51:43 CET 2021
* add float_overflow and undefined for float arithmetic functions
Thu Feb 2 19:24:23 CET 2021
* update ports to windows (32 and 64 bits with MSVC and masys2/mingw64)
Thu Dec 3 13:12:23 CET 2020
* fix a bug when closing user_error
* fix a bug in phrase/2-3
Tue Dec 1 18:35:23 CET 2020
* fix problem with gcc 10 which needs explicitly -fcommon
Mon Nov 30 18:14:35 CET 2020
* fix bugs when Prolog integers are internally converted to C int (on 64 bits machine)
Tue Oct 23 17:34:21 CEST 2018
* fix problem with old gcc (gcc < 6 does not produce PIE code by default)
Thu Feb 1 15:40:29 2018 CET 2018
* fix a bug in soft-cut (when a cut appears in the if-part)
Mon Jan 22 14:58:59 CET 2018
* fix bug when consulting multifile predicates with alternatives
* add ?- ISO prefix operator
Fri Jan 12 17:01:53 CET 2018
* add gplc option --new-top-level (add top-level command-line option handling)
Sun Jun 4 20:38:58 CEST 2017
* fix a bug on linux witg gcc 6.3.0 (or binutils): needs PIC code
Fri Apr 3 10:01:02 CEST 2015
* fix a bug in findall/4
Tue Feb 17 11:39:11 CET 2015
* fix a bug in select/5 under Windows
Fri Jan 16 19:25:51 CET 2015
* fix a bug in the compiler
Thu Dec 18 08:59:45 CET 2014
* fix a bug in read/1
* fix large address awarenes under cygwin32 (configure.in)
Thu Dec 11 17:18:09 CET 2014
* improve memory limitation of acyclic_term/1
Tue Dec 9 10:40:18 CET 2014
* improve term output (write/1 and friends)
Fri Dec 5 02:55:30 CET 2014
* improve error handling for options (e.g. in write_term/3)
Thu Dec 4 15:47:06 CET 2014
* fix bug with cut in the if-part of if-then(-else)
* fix port to x86_64/OpenBSD
(machine kindly provided by Duncan Patton a Campbell)
Wed Dec 3 17:56:54 CET 2014
* fix a bug with Apple/Yosemite gcc = LLVM version 6.0 (clang-600.0.56) on x86_64
Fri Aug 22 15:10:18 CEST 2014
* allow to define more atoms with MAX_ATOM env var on 64 bits machines
Wed Aug 13 11:25:18 CEST 2014
* fix a bug in bagof/3 when used as findall/3
Fri Jul 11 17:27:36 CEST 2014
* port to sparc64/OpenBSD
(machine kindly provided by Duncan Patton a Campbell)
Tue May 6 10:43:33 CEST 2014
* add built-in predicate findall/4
Thu Mar 6 16:19:36 CET 2014
* fix a bug with linedit when environment variable LINEDIT=no
Wed Feb 5 15:16:37 CET 2014
* fix bugs in the FD solver
Fri Nov 22 19:47:45 CET 2013
* set socket option SO_REUSEADDR at socket creation
Thu Nov 21 16:29:57 CET 2013
* support for alternate Prolog file extension .prolog
Mon Nov 18 18:32:44 CET 2013
* fix a bug in atoms for 1-char atom '\0' (now acts as the empty atom)
Tue Nov 12 10:17:10 CET 2013
* fix problems with Apple/Mavericks gcc = LLVM version 5.0 (clang-500.2.79) on x86_64
* remove clang warnings (uninitialized variables)
* fix bugs in the lexer of the form 0bop 2 when bop is an infix op
Tue Oct 1 09:40:31 CEST 2013
* fix terminal ANSI sequence handling in linedit
Wed Sep 18 09:25:06 CEST 2013
* increase internal compiler data sizes
Thu Jul 4 13:17:07 CEST 2013
* fix bug in gprolog.h (invalid 64 bits PL_MAX_INTEGER)
Fri Apr 12 17:17:50 CEST 2013
* add Prolog flags c_cc_version_data
* fix a regression bug in linedit
* fix a little bug in the debugger
* add subtract/3 built-in predicate
Wed Mar 27 16:35:02 CET 2013
* add new C foreign interface functions converting term to/from C strings
Tue Mar 26 10:23:05 CET 2013
* modify top-level banner to show 32/64 bits, compile date, C compiler name
* modify Linedit: fix Prolog prompt when Linedit is not activated
* modify linedit: accept gui=silent in env var LINEDIT
(does not warn if the windows gui DLL is not found)
* fixes for Windows 8 (i686 and x86_64) with MSVS 2012, mingw64 gcc > 4.5.3
* add Prolog flags address_bits, compiled_at, c_cc, c_cflags, c_ldflags
Thu Mar 14 12:46:35 CET 2013
* fix a bug in the FD solver (option backtracks in fd_labeling)
* improve the FD solver (better propagation for reified constraints at labeling)
* improve the FD solver (add labeling option: value_method(bisect))
Mon Mar 11 15:42:31 CET 2013
* improve the FD solver (avoid some cases of C stack overflow, improved fd_domain/3)
* fix another bug in the FD solver (regression bug in 1.4.2)
* add PlULong to gprolog.h and PlThrow(ball) to C foreign interface
Mon Feb 25 13:57:51 CET 2013
* fix a bug in the FD solver (regression bug in 1.4.2)
Wed Nov 28 17:04:46 CET 2012
* fix a bug in the compiler for byte-code with op/3 directive
Thu Nov 22 16:20:23 CET 2012
* fix a bug in the debugger
* modify decompose_file_name/4 (fix problems under windows)
* add built-in is_absolute_file_name/1 and is_relative_file_name/1
* modify the compiler include/1 directive handling
(if the file to include is not found, search in directories of parent includers)
Thu Nov 15 16:15:50 CET 2012
* modify atom table management (its size can be defined via env. var MAX_ATOM)
* fix a bug with soft-call inside a meta-call
* implement term_hash/2 and term_hash/4. Backward incompatibility:
new_atom/3 and and atom_hash/2 no longer exists.
* fix some little bugs with 64 bits (e.g. stream id)
Tue Oct 30 16:27:21 CET 2012
* modify the FD solver to handle very long computations
Mon Sep 24 15:03:11 CEST 2012
* fix a bug in the compiler (unification with fresh vars in the body)
* fix a bug with *-> containing ! in the test part (! was not local to the test)
* fix a bug to configure with sigaction on old Linux kernels
* fix some problems/bugs on 64 bits machine
Fri Jun 15 13:34:45 CEST 2012
* improve signal handling
Thu May 31 15:36:46 CEST 2012
* add an option --wam-comment to gplc and pl2wam
* fix multifile directive (works now with an empty predicate as required by ISO)
* fix absolute_file_name to expand ~ using HOMEDRIVE and HOMEPATH under windows
if HOME is not defined
Tue May 15 11:56:00 CEST 2012
* improve listing/0-1 output
Fri May 11 18:09:19 CEST 2012
* add soft cut control construct and its associated operator *->
Thu May 3 16:42:00 CEST 2012
* improve the top-level results in case of cyclic terms
Mon Apr 30 17:52:46 CEST 2012
* fix arithmetic evaluable functor ^/2 to work with floats
* increase maximum number of variables in a term
Thu Apr 26 11:29:44 CEST 2012
* add write_term option variable_names
* add built-in predicates between/3 and succ/2
* fix bug in the DCG expander
* fix bug in member/2
* recognize escape sequence \s (space) and \e (escape) if strict_iso is off
* add error detection in length/2 if given length is negative
Tue Mar 13 10:24:24 CET 2012
* add built-in predicates maplist/2-9
Mon Feb 20 19:12:04 CET 2012
* fix a regression bug in the FD solver about sparse domains
Thu Feb 16 19:49:02 CET 2012
* increase size of FD internal stacks and fix memory leak
Tue Jan 10 18:23:09 CET 2012
* port to x86_64/Darwin (Mac OS X) - many thanks to
Ozaki Kiichi
* fix a bug in x86_64 with --disable-regs
* fix a bug when consulting a file under Win XP/Vista 32 bits
* fix a bug when consulting a file using '$VAR'(N) or '$VARNAME'(A)
* fix a bug in new_atom/1-2 which returned duplicates
* fix a bug in write/1 when an empty atom is passed
* improve portray_clause (numbervars and space before final dot)
Fri Jun 10 15:59:42 CEST 2011
* GNU Prolog is now licensed under a dual license LGPL or GPL
* port to x86_64/MinGW64 - many thanks to
Jasper Taylor (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
Mon Nov 29 15:48:25 CET 2010
* 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)
Fri Nov 26 12:00:32 CEST 2010
* add built-in term_variables/2-3 and subsumes_term/2
Mon Nov 22 17:12:58 CEST 2010
* add some type tests on chars and codes (in number_chars/2, number_codes/2,..)
Wed Nov 17 15:43:38 CEST 2010
* fix some little bugs in the parser
* add meta_predicate property to predicate_property/2
Mon Oct 25 10:39:51 CEST 2010
* fix a memory leak in atom_concat/3 (in case of failure)
Tue Jul 13 16:19:42 CEST 2010
* add infix operator '|' (and allow it to be unquoted in read/write)
* improve top-level variables display adding () when needed
Fri Jun 25 11:10:43 CEST 2010
* fix a bug in length/2 (length(L,L) now loops)
Thu Jun 24 10:17:04 CEST 2010
* support the ISO multifile/1 directive
* add built-ins false/0 and forall/2
* detect an instantiation_error in phrase/2-3
Fri Mar 31 15:52:42 CEST 2010
* GNU Prolog is now licensed under LGPL
Tue Mar 16 11:35:32 CET 2010
* allow rounding functions to accept an integer if strict_iso is off
Tue Dec 1 14:11:10 CET 2009
* group all examples under a new directory 'examples'
Fri Nov 20 16:34:36 CET 2009
* fix a bug in read_from_codes/2 and number_codes/2
* improve speed of built-in predicates on list (append, member, reverse,...).
Mon Nov 16 14:30:33 CET 2009
* improve CTRL+C handling under the top-level
Thu Oct 22 11:11:02 CEST 2009
* add is_list/1 (same as list/1)
Wed Oct 21 12:02:15 CEST 2009
* add Prolog flags: dialect, home, host_os, host_vendor, host_cpu,
host, arch, version, version_data, unix, argv
Tue Oct 20 13:15:44 CEST 2009
* add preprocessor directives if/1 else/0 elif/1 endif/0
Mon Oct 12 17:30:11 CEST 2009
* 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
Fri Oct 9 14:40:11 CEST 2009
* add evaluable functors: (a)sinh/1, (a)cosh/1, (a)tanh/1
* add evaluable functors: epsilon/0, lsb/1, msb/1, popcount/1
Thu Oct 8 17:26:36 CEST 2009
* fix compilation problem under Mac OS X Snow Leopard (force 32-bits mode)
Wed Oct 7 16:14:16 CEST 2009
* 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
Tue Oct 6 12:47:32 CEST 2009
* accept (but ignore) directive encoding/1
* add xor/2 operator (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'\') if strict_iso is off
Tue Mar 10 17:14:36 CET 2009
* fix a bug with top-level options --entry-goal and --query-goal
Fri Feb 6 11:02:57 CET 2009
* add working sigaction detection to detect fault addr (e.g. Mac OS X)
Fri Jan 23 12:16:18 CET 2009
* add gplc option --no-mult-warn
* add prolog flags suspicious_warning, multifile_warning
Mon Nov 3 14:54:25 CEST 2008
* detect integer underflow/overflow in the parser
* fix a memory leak in catch/3
Mon Oct 20 16:53:37 CEST 2008
* increase limits (MAX_VAR_NAME_LENGTH=1024 and MAX_VAR_IN_TERM=10240)
* add PL_INT_LOWEST_VALUE and PL_INT_GREATEST_VALUE to gprolog.h
Fri Oct 17 12:09:37 CEST 2008
* prefix all global symbols, constants and types with Pl_ PL_ Pl
* fix a bug in the byte-code due to new max number of atoms
* provide a minimal gprolog.h
* detect if struct sigcontext needs asm/sigcontext.h on Linux
Wed Oct 1 15:48:45 CEST 2008
* modify gplc: --c-compiler also sets linker and --linker added
Tue Sep 30 15:12:00 CEST 2008
* port to x86_64/BSD - many thanks to
David Holland
* fix problem using ebx as global reg (bug in gcc 4.3.2)
* fix a bug in is/2 with [X] (X should only be an integer)
* fix a bug with atoms '/*' '*/' and '%' (were not quoted)
* increase maximum number of atoms to 1048576 (2^20)
* increase default stack sizes (16Mb for heap, 8Mb for others)
Fri May 18 13:06:58 CEST 2007
* fix stack alignment for x86_64/Solaris
Wed Mar 28 15:12:58 CEST 2007
* include patch from Paul Eggert for sparc/solaris8
Fri Mar 9 10:31:53 CET 2007
* port to x86_64/Solaris - many thanks to
Scott L. Burson
Thu Mar 8 14:12:50 CET 2007
* fix a bug in the FD solver (under 64 bits machines)
* fix a bug in arithmetics (mod)
Thu Jan 4 11:17:12 CET 2007
* change error messages emitted by the compiler to follow GNU standards
Fri Dec 22 14:21:26 CET 2006
* modify doc (mainly rename manual.xxx to gprolog.xxx)
* add DESTDIR variable support in main Makefile for staged installs
Fri Dec 15 17:48:30 CET 2006
* fix a bug with Prolog floats in x86_64/Linux (bad stack alignment)
* port for ix86/Darwin (Mac OS X)
Fri Dec 8 16:59:49 CET 2006
* add check target to main Makefile
Thu Dec 7 14:59:46 CET 2006
* improve Win32 ports (Cygwin, MinGW, MSVC 6.0 and 2005 Express Edition)
(MSVC port uses MinGW as.exe instead of nasm.exe - named mingw-as.exe
provided in the setup.exe)
Mon Nov 27 18:38:09 CET 2006
* rename call/2 to call_det/2
* implement call/2-11 as will be defined in the next standard
Fri Nov 24 18:38:25 CET 2006
* fix various problems when compiling with gcc 4 (gcc 4.1.1)
* emit .note.GNU-stack to mark the stack as no executable
in x86_any.c, x86_64_any.c and powerpc_any.c
* change the way objects are found (obj_chain.c) using gcc ctors
* use Doug Lea malloc for OpenBSD (problem with malloc using mmap)
* fix problems in various ports:
alpha/Linux, powerpc/Darwin (Mac OS X), sparc/solaris, ix86/OpenBSD
Mon Jun 13 15:46:49 CEST 2005
* fix 2 bugs in global variables
Mon Jun 7 15:22:44 CEST 2004
* fix problem when compiling with gcc 3.4.0
Fri Jun 4 15:16:30 CEST 2004
* fix bug in term comparison involving negative integers
Thu Mar 11 16:58:43 CET 2004
* add consult, ... and fix minor bugs in the Win32 GUI console menu
Tue Mar 2 15:54:37 CET 2004
* fix the stack overflow detection under Cygwin
* port to ix86/MinGW - many thanks to
Cesar Rabak
Mon Feb 9 14:38:43 CET 2004
* fix a bug in the port to sparc/solaris
Mon Nov 3 11:13:14 CET 2003
* fix a problem in the port to x86/OpenBSD
Tue Sep 23 11:10:09 CEST 2003
* port to sparc/NetBSD and powerpc/NetBSD - many thanks to
Jason Beegan
Wed Apr 23 13:19:58 CEST 2003
* fix a bug in =../2 involving FD variables
Fri Mar 21 14:09:26 CET 2003
* fix a bug in arithmetics (in float_{integer/fractional}_part)
Thu Mar 6 09:28:20 CET 2003
* fix a bug in FD solver (wrong union with a singleton)
Tue Feb 25 16:48:12 CET 2003
* fix a bug with the foreign C interface
Wed Feb 19 18:10:22 CET 2003
* change configure.in: by default ebp is not used
Mon Feb 17 13:45:05 CET 2003
* fix a but with CTRL+C handler not reinstalled
Wed Jan 8 15:22:09 CET 2003
* fix a bug with _XXX (re)displayed under the top-level
Mon Dec 16 13:00:42 CET 2002
* port to x86_64/Linux - many thanks to
Gwenole Beauchesne
Mon Sep 30 22:08:41 CEST 2002
* fix bug in predicate_property/2
Wed Sep 25 13:41:46 CEST 2002
* add new built-in fork_prolog/1 and create_pipe/2
Tue Sep 24 19:30:35 CEST 2002
* fix a bug in atom_concat/3
Thu Sep 19 12:53:45 CEST 2002
* fix bug when detecting if a stream can be repositioned
Thu Sep 12 18:45:10 CEST 2002
* fix bug in output to constant terms (e.g. write_to_atom/2)
* include another additional patch for sockets under win32 - due to
Brent Fulgham
* fix bug in bagof/3 with FD variables
* fix bug with randomize/0
Fri Jun 21 18:32:06 CEST 2002
* added min/max to Prolog arithmetics
Thu Jun 20 15:20:43 CEST 2002
* fix bugs in current_predicate and predicate_property
Mon Jun 10 14:25:52 CEST 2002
* port to powerpc/Darwin (Mac OS X) - many thanks to
Lindsey Spratt
* fix bug in Win32 GUI console (deal with edit control text limit)
* fix bug with in-place installation procedure
Wed Apr 24 19:00:03 CEST 2002
* fix problem with portray_clause/2 using $VARNAME and $VAR
now portray_clause((p(Z):-p('$VARNAME'('A'),Z))) is OK
Tue Apr 23 13:13:18 CEST 2002
* fix bug with stream buffering (open/4 and set_stream_buffering/2)
Sat Apr 21 13:09:54 CEST 2002
* add stream mirror facility (see add_stream_mirror/2)
Fri Apr 19 15:20:51 CEST 2002
* improve global vars (arg. selector, automatic array, new built-ins)
Sun Apr 14 16:35:10 CEST 2002
* fix two bugs with Ctrl+C reentrancy under the top-level
Thu Apr 11 20:30:16 CEST 2002
* added priority/1 option to write_term to specify starting priority
* now under the top-level, _XXX variables are not displayed
Wed Apr 10 15:04:23 CEST 2002
* fix bug in decompose_file_name/4 (tried to modify read-only string)
* now open/4 better detects if a stream can be repositioned
Mon Apr 8 20:08:29 CEST 2002
* add source reader facility (built-in) - not yet documented
* fix current_predicate bug, now current_predicate(nl/0) fails
Fri Apr 5 12:32:26 CEST 2002
* fix linedit bug in tab pasting and add Esc-Tab function
* now linedit goes to EOL at CR to fix bug with multi-line inputs
* now linedit avoids to put in history 2 same consecutive lines
* remove max_stream limitation (the Prolog flag no longer exists)
* the template of get_print_stream/1 is now ?stream
Thu Mar 28 00:35:59 CEST 2002
* patch to allow more than 64Mb for the stacks under ix86/Linux
Mon Mar 25 13:34:52 CEST 2002
* fix a bug in wam2ma (hexa name creation overflowed malloc buffer)
Fri Mar 22 11:31:52 CEST 2002
* fix a problem under sparc/solaris using mmap (adding MAP_FIXED)
Tue Mar 19 18:51:50 CEST 2002
* fix a problem with gcc 3.0.x which always uses ebp in main()
* use -march=xxx gcc option instead of -mxxx for ix86
Tue Jan 15 19:26:26 CEST 2002
* gplc now passes -L option to ld in the order of apparition
* gplc accepts meta-characters %p, %d,... in output file names
Tue Jan 8 16:51:48 CEST 2002
* include additional patch for sockets under win32 - due to
Brent Fulgham
Thu Dec 20 16:17:00 CEST 2001
* re-write Windows GUI Console in pure Win32 (no more MFC)
* adapt configure.in to work with autoconf 2.52
Thu Dec 13 12:09:36 CEST 2001
* add Prolog flag back_quotes and values {atom,chars,codes}_no_escape
* use a terminal recursion in FD arithmetic normalization
Wed Dec 12 11:04:57 CEST 2001
* fix bug in bind_variables/2, reported by:
Bowie Owens
Tue Dec 11 18:25:19 CEST 2001
* modify Ma2Asm mappers to use Y_OFFSET (from ENVIR_STATIC_SIZE)
* fix some bugs in the Wam debugger
Fri Dec 7 19:01:02 CEST 2001
* add several options to the top-level to execute goals
* add an environment variable LINEDIT to control linedit options
* fix bug in linedit on \b in start of line (using ANSI ESC sequences)
Tue Dec 4 20:29:00 CEST 2001
* simplify linedit: only apply to stdin
* now linedit is reentrant
* now linedit works with XFree keyboard encoding
* rename built-in get_code_no_echo/1-2 by get_key_no_echo/1-2
* add built-in get_key/1-2
* use get_key/1-2 in the top_level + debugger (thus with echo)
* improve the top-level Ctrl+C manager
Mon Dec 3 18:13:16 CEST 2001
* fix bug on Linux configured with --disable-regs
* add pipe to pl2wam stdin when called by consult/1
Mon Nov 5 10:25:29 CEST 2001
* fix bug in FD: forall is now recognized in .fd files
* fix bug in DCG: expand_term((a --> X), Y) is OK
Wed Oct 31 20:31:04 CEST 2001
* fix X paste problem in linedit
Tue Oct 3O 17:31:04 CEST 2001
* simplify top_comp.c to better control include dirs in devel. mode
Sun Oct 14 17:12:32 CEST 2001
* specialized functions for create/update/delete choice points
Tue Oct 9 12:11:44 CEST 2001
* fix a bug in wam2ma (hexa name creation overflowed malloc buffer)
Mon Oct 8 12:33:02 CEST 2001
* include patch to support basic sockets under win32 - due to
Brent Fulgham
* arithmetic functions and inlined built-ins use fast call
* specialized functions for switch_on_term_xxx
* modify pl2wam to generalize '$call_c' (add options)
Mon Oct 8 11:33:02 CEST 2001
* fix bug - delete file created by mkstemp(2), patch from:
Salvador Abreu
Fri Sep 28 17:09:35 CEST 2001
* space_args(true) now displays a space inside {}/1
* space_args(true) now displays a space after a comma (','/2)
Sat Sep 15 12:49:19 CET 2001
* add a --foreign-only option to pl2wam
* foreign/2 directives are ignored in byte-code mode (no fatal error)
Fri Sep 7 09:58:36 CET 2001
* space_args(true) now displays space between operators and arguments
* add CVS Id to prolog files
* fix bug in pl2wam to include break/0, trace/0,... in bip_list.pl
Thu Jul 12 16:03:30 CET 2001
* get rid of mktemp and tempnam calls (use mkstemp if available)
Thu Jun 7 20:34:13 CET 2001
* fix a bug in fd_element_var/3 constraint
Thu Feb 8 11:25:30 CET 2001
* fix bug in fd headers (fd_to_c.h not installed)
Thu Jan 25 21:12:06 CET 2001
* fix a bug with unify_with_occurs_check/2
* fix bug on ix86 using ebp (add -fomit-frame-pointer in CFLAGS_MACHINE)
Mon Jan 22 12:41:26 CET 2001
* fix a bug with ! in dynamic code
* fix a bug in arithmetics
Tue Dec 19 16:32:39 CET 20000
* big modification (1 month) to optimize the execution speed
Thu Nov 9 19:06:06 CEST 2000
* implement fast call (mainly for WAM functions)
Tue Nov 7 15:12:11 CEST 2000
* modify C->Prolog foreign interface to recover arguments space
Mon Nov 6 14:58:07 CEST 2000
* improve dynamic clause management and fix a bug (memory leak)
Fri Nov 3 09:17:19 CEST 2000
* fix _ symbol prefix problem for Free BSD
Fri Oct 13 17:46:38 CEST 2000
* no longer use dl_malloc on Linux but prevent MMAP using mallopt
Tue Sep 12 15:42:48 CEST 2000
* full re-indentation of the sources for CVS
Thu Sep 7 18:04:15 CEST 2000
* added acos/asin to Prolog arithmetics
Wed Sep 6 20:04:15 CEST 2000
* port to alpha/Linux - many thanks to
Alexander Diemand
* port to alpha/OSF1
* port to mips/irix - many thanks to
Alexander Diemand
* fix a bug in stty.c (use standard termios if present)
Mon Jul 31 11:42:44 CEST 2000
* fix a bug in stty.c (use termio by default and else termios)
Thu Jul 6 11:38:58 CEST 2000
* more customizable configuration/installation procedure
Mon Jun 3 19:57:20 CEST 2000
* port for ix86/NetBSD - many thanks to
Brook Milligan
Wed Jun 28 11:38:37 CEST 2000
* rename configuration file config.h by gp_config.h
Mon Jun 19 14:24:44 CEST 2000
* avoid to establish a connection at start to get the hostname
Tue Jun 6 16:51:48 CEST 2000
* fix a bug in the compiler about \\ inside quoted atoms
Thu May 4 17:39:53 CEST 2000
* fix a bug in dynamic clause retraction (memory leak)
Tue Apr 25 16:32:09 CEST 2000
* fix a bug in atom management (existing atoms eat mallocated space)
Tue Apr 18 13:23:02 CEST 2000
* added creation/1 and last_access/1 property to file_property/2
Wed Mar 1 14:23:45 CEST 2000
* start of native Win32 port
Mon Feb 14 14:00:46 CET 2000
* port for ix86/FreeBSD - many thanks to
Nicolas Ollinger
Tue Jan 18 17:30:25 CET 2000
* fix a bug in the byte-code loader (bad realloc computation)
* fix a bug in the malloc (used MMAP under Linux)
Fri Dec 17 15:54:51 CET 1999
* port for ix86/SCO - many thanks to
Clive Cox and
Edmund Grimley Evans
* port for ix86/solaris - many thanks to
Andreas Stolcke
Thu Dec 16 18:23:13 CET 1999
* fix a bug in the FD solver for X#\=C (if C is max(X))
Thu Dec 2 17:31:31 CET 1999
* fix a bug with directory_files/2 (too many open files)
Thu Nov 25 14:27:11 CET 1999
* fix a bug in the compiler about \t in quoted atoms
Fri Oct 22 14:59:47 CEST 1999
* fix a bug in the scanner about 0'
Mon Oct 18 12:46:59 CEST 1999
* fix bug with popen/3
* update machine.c for struct sigcontext under Linux
Fri Oct 8 19:36:59 CEST 1999
* fix a bug in the output of some extended characters in native-compilation
Tue Sep 28 18:00:44 CEST 1999
* implementation of call_with_args
Mon Sep 27 16:18:55 CEST 1999
* fix a bug in sign/1 for arithmetic evaluation
Fri Jul 16 13:26:31 CEST 1999
* fix a bug in foreign C calling Prolog on sparc
Thu Jul 15 12:04:38 CEST 1999
* fix a bug in sparc compilation
* fix a bug in foreign code under sparc
* update pl_config.c to show which version is installed
Tue Jul 6 14:47:51 CEST 1999
* add linedit test to avoid to re-echo an already buffered full-line
* fix bugs is sort/1
Fri Jun 25 10:04:03 CEST 1999
* fix bug in sleep/1 (incorrect behavior with a float)
* finish preliminary port to Cygwin (see file src/PROBLEMS)
Wed Jun 23 13:49:07 MEST 1999
* fix bug in FD solver (too much trail allocated due to bad vec_size)
* fix labeling first-fail to correspond to clp(FD)
Fri Jun 18 12:29:03 CEST 1999
* fix message from consult when pl2wam cannot be found
Thu Jun 17 16:12:53 MEST 1999
* fix precision bug on floating constants
Sun Jun 6 12:05:32 CEST 1999
* initial port for ix86/Cygwin (Win32) (to finish)
Fri Jun 4 11:05:37 CEST 1999
* fix bug in throw_c.c (foreign code catch exception)
* improve Ma2Asm check.c and FromC/ utilities
* port for PowerPC / GNU/Linux (see file src/PROBLEMS)
Mon May 31 10:45:35 CEST 1999
* fix bug using egcs-1.1.2 (RedHat 6.0) (add a Stop_Prolog() fct)
Fri May 21 15:56:50 MEST 1999
* removed Configure directory (clashes with ./configure under WinXX)
* fix Linedit/Makefile.in (CFLAGS added)
Fri May 21 11:54:31 MEST 1999
* add ensure_linked directive
* fix bug in gplc help (-C/-A/-L instead of --C/--A/--L)
* fix bug in gplc (with too long command-lines)
* fix bug in M_Absolute_Path_Name() (/.automount gave /automount)
Wed Apr 21 09:53:00 MEST 1999
* work release 1.0.1
* fix bug --disable-regs works now for solaris
Mon Apr 19 19:46:07 MEST 1999
* optimize FD equations (math_supp.c) avoid qsort sometimes
* fix bug in installation procedure (Html doc installation)
Fri Apr 16 15:49:34 MEST 1999
* rewrite in C DCG translation:
optimize unifications, no more ill-balanced conjunctions
* fix bug in bc_supp.c to avoid aux pred name for unknown predicate
* fix bug in pl2wam (:- set_prolog_flag(singleton_warning,off))
Thu Apr 8 19:09:40 MEST 1999
* current_prolog/1 conforms to ISO thanks to strict_iso flag
* fix bug (type_list instead of instantiation error for Options)
* fix bug setof (not sorted when comes down to findall)
Tue Apr 6 20:48:32 MEST 1999
* add Prolog flag strict_iso (to relax predicate indicators)
* fix number_chars and friends non ISO conforming behavior
* modify wam2ma to avoid static arrays (use dynamic allocation)
Sun Apr 4 15:28:12 MET 1999
* add in-place installation (modify configure.in and Makefile.in)
Wed Mar 31 16:26:10 MET 1999
* add copyright headers in source files
Thu Mar 30 17:20:10 MET 1999
* rewrite all solutions built-in predicates (in C)
* add in-place sorts
Wed Mar 24 10:12:02 MET 1999
* rewrite DCG translations
Mon Mar 22 19:42:12 MET 1999
* fix compiler bug in wam2ma (atom using \xHH\ not correctly handled)
Fri Mar 19 19:42:12 MET 1999
* rewrite sorts built-in predicates (in C)
Mon Mar 15 10:12:02 MET 1999
* Calypso (beta 7) becomes GNU Prolog 0.9.0
change command names (calypso -> gprolog, plcc -> gplc,...)
copyright messages (--version),...
Fri Mar 12 09:38:24 MET 1999
* fail/0 caused an existence_error under the debugger
Wed Mar 10 11:57:25 MET 1999
* user/built_in/built_in_fd not recognized by load/1
Mon Mar 8 20:39:25 MET 1999
* Calypso version 1.0-beta7 ready for internal use
gprolog-1.5.0/INSTALL 0000664 0000000 0000000 00000025550 14071552575 0014241 0 ustar 00root root 0000000 0000000 INSTALLATION PROCEDURE
----------------------
See file README for a list of currently available ports:
The file PROBLEMS contains a list of known problems/limitations depending on
the architecture. Please consult it before reporting a problem.
See files WINDOWS or MACOS for information on these architectures.
Installing the source distribution
**********************************
1) Introduction
---------------
** Windows preamble **
To compile GNU-Prolog under Windows see file src/WINDOWS.
The following tools are required to compile and install the source package:
gcc, as, ranlib (if needed), sh, mkdir, cp, rm, sed, test,...
The installation process is as follows:
cd src go to source directory
./configure [OPTIONS] configure the system
make compile locally
make doc compile locally the documentation (maybe not needed)
make install or (make install-strip) install the package (maybe needs root privileges)
you can check the result of the local compilation using:
make check
2) Installation directories
---------------------------
Directories used for the installation are as follows:
INSTALL_DIR the root directory for the core package, contains:
INSTALL_DIR/bin all binaries (compiler, top-level,...)
INSTALL_DIR/lib all libraries and objects
INSTALL_DIR/include header files needed to write foreign C code
These other directories are optional:
LINKS_DIR the directory for links to binaries of INSTALL_DIR/bin
DOC_DIR the directory for the documentation (LaTeX, DVI, PostScript,...)
HTML_DIR the directory for the HTML documentation
EXAMPLES_DIR the directory for the examples, contains:
EXAMPLES_DIR/ExamplsPl some classical Prolog examples
EXAMPLES_DIR/ExamplesFD≈ some examples using FD constraint solving
Default directory values and associated configuration options are as follows:
The value of INSTALL_DIR is as follows:
- PREFIX/gprolog-VERSION_NUMBER (this is the default)
the default value of PREFIX is /usr/local but can be explicitly
specified using --prefix=PREFIX
- another location can be specified using --with-install-dir=INSTALL_DIR
- the source distribution directory (i.e. where reside this INSTALL file)
This "in-place" installation is obtained using --with-install-dir=in-place
or --prefix=/in-place
(NB: recent autoconf needs an absolut path for --prefix, hence the /in-place)
The value of LINKS_DIR is as follows:
- EPREFIX/bin. The value of EPREFIX is the same as PREFIX but can be
explicitly specified using --exec-prefix=EPREFIX
- another location can be specified --with-links-dir=LINKS_DIR
- To prevent the installation of the links use --without-links-dir
(this is the default when doing an in-place installation).
The default value of DOC_DIR is INSTALL_DIR/doc
another location can be specified using --with-doc-dir=DOC_DIR
To prevent the installation of documentation --without-doc-dir
(this is the default when doing an in-place installation).
The default value of HTML_DIR is DOC_DIR/Html
another location can be specified using --with-html-dir=HTML_DIR
To prevent the installation of the HTML documentation --without-html-dir
(this is the default when doing an in-place installation).
The default value of EXAMPLES_DIR is INSTALL_DIR
another location can be specified using --with-examples-dir=EXAMPLES_DIR
To prevent the installation of the examples --without-examples-dir
(this is the default when doing an in-place installation).
The configure command displays the value of INSTALL_DIR, LINKS_DIR, DOC_DIR,
HTML_DIR and EXAMPLES_DIR.
To summarize, by default the whole package (+ documentation + HTML +
examples) is installed in /usr/local/gprolog-xxx and linked files are installed
in /usr/local/bin.
3) Configuration
----------------
GNU Prolog uses autoconf. To configure the package:
./configure [OPTIONS]
This script attempts to guess correct values for various system-dependent
variables used during compilation. For more detail about autoconf refer to
src/AUTOCONF-INFO (try also './configure --help'). The GNU-Prolog specific
options are:
Options to control the installation directory:
--with-install-dir=INSTALL_DIR specify INSTALL_DIR
--prefix=PREFIX specify PREFIX (INSTALL_DIR=PREFIX/gprolog-xxx)
--prefix=in-place specify an in-place installation
Default: --prefix=/usr/local
Options to control the location of links to binaries:
--with-links-dir=LINKS_DIR specify LINKS_DIR
--without-links-dir do not create link to binaries
--exec-prefix=EPREFIX specify EPREFIX (LINKS_DIR=EPREFIX/bin)
Default: --exec-prefix=PREFIX
(links are not installed for an in-place installation).
Options to control the location of other components:
--with-doc-dir=DOC_DIR specify DOC_DIR
--without-doc-dir do not install the documentation
--with-html-dir=HTML_DIR specify HTML_DIR
--without-html-dir do not install the HTML documentation
--with-examples-dir=EXAMPLES_DIR specify EXAMPLESS_DIR
--without-examples-dir do not install the examples
Defaults: INSTALL_DIR/doc for DOC_DIR, DOC_DIR/Html for HTML_DIR
INSTALL_DIR for EXAMPLES_DIR
(these components are not installed for an in-place installation).
Options to control C compiler optimization flags:
--with-msvc use MSVC++ compiler under Win32 (else use gcc)
--without-c-flags do not use any optimization flag
--with-c-flags use default C optimization flags
--with-c-flags=CFLAGS use CFLAGS (instead of default optimization flags)
--with-c-flags=debug use C debug flags (e.g. '-g -Wall' for gcc)
Default: --with-c-flags
Options to control GNU features to include/exclude:
--disable-regs do not use machine registers to optimize speed
--enable-ebp use the ebp register on ix86 machines
--disable-fast-call do not use fast call mechanism for ix86 processors
--disable-linedit do not include line editor facility
--disable-piped-consult do not pipe stdin of pl2wam when consult/1
--disable-sockets do not include sockets facility
--disable-fd-solver do not include the finite domain constraint solver
--disable-gui-console do not use a GUI console (only with MSVC++ or MinGW)
--disable-htmlhelp do not use HtmlHelp in the GUI Console
--enable-htmlhelp[=static] use HtmlHelp statically linked (default)
--enable-htmlhelp=dynamic use HtmlHelp dynamically linked
Default: all features are included.
Some examples of using configure:
To configure the package for an installation in the default directory
/usr/local and links to binaries in /usr/local/bin:
./configure
To configure the package for an installation in the home directory with
linked files in ~/bin/i586 use
./configure --prefix=$HOME --with-links-dir=$HOME/bin/i586
To configure the package for an in-place installation:
./configure --prefix=in-place
To specify another C compiler:
1) if the binary is called gcc, you can simply set the PATH so that the
desired version be selected when your run gcc
(use gcc --version or gcc --version -v for more info)
2) define the CC variable before invoking ./configure.
For instance to use the original gcc instead of clang on mac:
CC=gcc-10 ./configure
or
CC=/opt/homebrew/bin/gcc-10 ./configure
(see also file src/MACOS)
3) to use a complete toolchain with prefixed binaries with PREFIX
use ./configure --host PREFIX
E.g. a mingw64 toolchain with binaries prefixed with x86_64-w64-mingw32
./configure --host=x86_64-w64-mingw32
this will look for x86_64-w64-mingw32-gcc.exe and x86_64-w64-mingw32-ar.exe,...
To specify another assembler, do similarly replacing CC by AS:
e.g. AS=gas ./configure
or AS='gcc -c'
4) Compiling the package locally
--------------------------------
To locally compile the package:
make
5) Installing the package
-------------------------
To install the package according to options given to ./configure (see 2):
make install
You can either install stripped versions of the binaries (whose size is then
reduced):
make install-strip
It is possible to re-run './configure' to change the value of some
installation directories (see 2) after the local compilation (i.e. the
compilation will not be done again).
6) Cleaning
-----------
To remove installed files (remove the content of INSTALL_DIR):
make uninstall
To clean up the local compilation (does not erase configuration files):
make clean
To fully clean up the local compilation:
make distclean
Setting up environment variables
********************************
To be able to execute GNU Prolog from anywhere the directory LINKS_DIR should
be a part of your PATH environment variable (generally this directory is
already in the PATH variable). However, if no links have been created
(either --without-links-dir has been specified or in case of default in-place
installation) you should add the directory INSTALL_DIR/bin to your PATH
variable. This can be done as follows (let us suppose INSTALL_DIR is
/usr/local/gprolog-xxx):
under sh/bash: PATH=$PATH:/usr/local/gprolog-xxx/bin; export PATH
under csh/tcsh: setenv PATH ${PATH}:/usr/local/gprolog-xxx/bin
GNU Prolog needs to know the value of INSTALL_DIR (to locate its
libraries). To do this, it uses its own path at execution-time, expanding
symbolic links. So you should not move or copy the executables, but you can
create links to them (as done by the installation procedure in LINKS_DIR).
However, to prevent this case, GNU Prolog first consults the value of the
PL_PATH environment variable. If it is defined GNU Prolog uses this path. If
you want to define it, simply set it to the value of INSTALL_DIR as follows:
under sh/bash: PL_PATH=/usr/local/gprolog-xxx; export PL_PATH
under csh/tcsh: setenv PL_PATH /usr/local/gprolog-xxx
To summarize, by default you can avoid to define PATH and PL_PATH. If you
need to defines these variables it is a good idea to put them in your shell
start-up file ($HOME/.bashrc / .cshrc / .tcshrc depending on the used shell).
Problems
********
See file PROBLEMS for more information on architecture-dependent known
problems.
If your installation does not work (compilation is ok but when running the
system fails) you can try to recompile the whole system with --disable-regs
(after make distclean).
If this fails, try to recompile the whole system with --with-c-flags=debug and --disable-regs
If this installation works with -O and not -O2 (or higher) it can be due to
strict-aliasing. Try compiling with --with-c-flags='-O2 -fno-strict-aliasing'.
Finally you can use the GNU Prolog mailing lists to ask for help or to report
a bug/problem.
gprolog-1.5.0/NEWS 0000664 0000000 0000000 00000060524 14071552575 0013707 0 ustar 00root root 0000000 0000000 Change in GNU Prolog version 1.5.0
* Source repository moved to GiHub https://github.com/didoudiaz/gprolog
* port to arm64 (aarch64)/darwin (new Apple M1/MacOS architecture)
* port to arm64 (aarch64)/Linux (armv8) - many thanks to
Jasper Taylor
* port to arm32/Linux (armv6, armv7) - many thanks to
Jasper Taylor
* port to Termux on aarch64/android
* accept clang as C compiler on x86_64/linux (use CC=clang ./configure)
* restructure and improve the code of all MA-ASM mappers
* fix a bug in absolute_file_name, '/src/../' returned '' now '/'
* add error case to findall/4 (detects when Tail is not a list)
* set eof_action to reset for standard input/output/error streams even if not a tty
* add float_overflow and undefined for float arithmetic functions
* update ports to windows (32 and 64 bits with MSVC and masys2/mingw64)
* fix a bug when closing user_error
* fix a bug in phrase/2-3
* fix problem with gcc 10 which needs explicitly -fcommon
* fix bugs when Prolog integers are internally converted to C int (on 64 bits machine)
Change in GNU Prolog version 1.4.5 (Feb 2018):
* fix a bug in soft-cut (when a cut appears in the if-part)
* fix bug when consulting multifile predicates with alternatives
* add ?- ISO prefix operator
* add gplc option --new-top-level (add top-level command-line option handling)
* fix a bug on linux witg gcc 6.3.0 (or binutils): needs PIC code
* fix a bug in findall/4
* fix a bug in select/5 under Windows
* fix a bug in the compiler
* fix a bug in read/1
* fix large address awarenes under cygwin32 (configure.in)
* improve memory limitation of acyclic_term/1
* improve term output (write/1 and friends)
* improve error handling for options (e.g. in write_term/3)
* fix bug with cut in the if-part of if-then(-else)
* fix port to x86_64/OpenBSD
(machine kindly provided by Duncan Patton a Campbell)
* fix a bug with Apple/Yosemite gcc = LLVM version 6.0 (clang-600.0.56) on x86_64
* allow to define more atoms with MAX_ATOM env var on 64 bits machines
* fix a bug in bagof/3 when used as findall/3
* port to sparc64/OpenBSD
(machine kindly provided by Duncan Patton a Campbell)
* add built-in predicate findall/4
* fix a bug with linedit when environment variable LINEDIT=no
* fix bugs in the FD solver
* set socket option SO_REUSEADDR at socket creation
* support for alternate Prolog file extension .prolog
* fix a bug in atoms for 1-char atom '\0' (now acts as the empty atom)
* fix problems with Apple/Mavericks gcc = LLVM version 5.0 (clang-500.2.79) on x86_64
* remove clang warnings (uninitialized variables)
* fix bugs in the lexer of the form 0bop 2 when bop is an infix op
* fix terminal ANSI sequence handling in linedit
* increase internal compiler data sizes
* fix bug in gprolog.h (invalid 64 bits PL_MAX_INTEGER)
Change in GNU Prolog version 1.4.4 (Apr 2013):
* add Prolog flags c_cc_version_data
* fix a regression bug in linedit
* fix a little bug in the debugger
* add subtract/3 built-in predicate
Change in GNU Prolog version 1.4.3 (Mar 2013):
* add new C foreign interface functions converting term to/from C strings
* modify top-level banner to show 32/64 bits, compile date, C compiler name
* modify Linedit: fix Prolog prompt when Linedit is not activated
* modify linedit: accept gui=silent in env var LINEDIT
(does not warn if the windows gui DLL is not found)
* fixes for Windows 8 (i686 and x86_64) with MSVS 2012, mingw64 gcc > 4.5.3
* add Prolog flags address_bits, compiled_at, c_cc, c_cflags, c_ldflags
* fix a bug in the FD solver (option backtracks in fd_labeling)
* improve the FD solver (better propagation for reified constraints at labeling)
* improve the FD solver (add labeling option: value_method(bisect))
* improve the FD solver (avoid some cases of C stack overflow, improved fd_domain/3)
* fix another bug in the FD solver (regression bug in 1.4.2)
* add PlULong to gprolog.h and PlThrow(ball) to C foreign interface
* fix a bug in the FD solver (regression bug in 1.4.2)
Change in GNU Prolog version 1.4.2 (Dec 2012):
* fix a bug in the compiler for byte-code with op/3 directive
* fix a bug in the debugger
* modify decompose_file_name/4 (fix problems under windows)
* add built-in is_absolute_file_name/1 and is_relative_file_name/1
* modify the compiler include/1 directive handling
(if the file to include is not found, search in directories of parent includers)
* modify atom table management (its size can be defined via env. var MAX_ATOM)
* fix a bug with soft-call inside a meta-call
* implement term_hash/2 and term_hash/4. Backward incompatibility:
new_atom/3 and and atom_hash/2 no longer exists.
* fix some little bugs with 64 bits (e.g. stream id)
* modify the FD solver to handle very long computations
* fix a bug in the compiler (unification with fresh vars in the body)
* fix a bug with *-> containing ! in the test part (! was not local to the test)
* fix a bug to configure with sigaction on old Linux kernels
* fix some problems/bugs on 64 bits machine
Change in GNU Prolog version 1.4.1 (Jun 2012):
* improve signal handling
* add an option --wam-comment to gplc and pl2wam
* fix multifile directive (works now with an empty predicate as required by ISO)
* fix absolute_file_name to expand ~ using HOMEDRIVE and HOMEPATH under windows
if HOME is not defined
* improve listing/0-1 output
* add soft cut control construct and its associated operator *->
* improve the top-level results in case of cyclic terms
* fix arithmetic evaluable functor ^/2 to work with floats
* increase maximum number of variables in a term
* add write_term option variable_names
* add built-in predicates between/3 and succ/2
* fix bug in the DCG expander
* fix bug in member/2
* recognize escape sequence \s (space) and \e (escape) if strict_iso is off
* add error detection in length/2 if given length is negative
* add built-in predicates maplist/2-9
* fix a regression bug in the FD solver about sparse domains
* increase size of FD internal stacks and fix memory leak
* port to x86_64/Darwin (Mac OS X) - many thanks to
Ozaki Kiichi
* fix a bug in x86_64 with --disable-regs
* fix a bug when consulting a file under Win XP/Vista 32 bits
* fix a bug when consulting a file using '$VAR'(N) or '$VARNAME'(A)
* fix a bug in new_atom/1-2 which returned duplicates
* fix a bug in write/1 when an empty atom is passed
* improve portray_clause (numbervars and space before final dot)
Change in GNU Prolog version 1.4.0 (Jul 2011):
* GNU Prolog is now licensed under a dual license LGPL or GPL
* port to x86_64/MinGW64 - many thanks to
Jasper Taylor (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
* fix a bug in length/2 (length(L,L) now loops)
* support the ISO multifile/1 directive
* add built-ins false/0 and forall/2
* detect an instantiation_error in phrase/2-3
* GNU Prolog is now licensed under LGPL
* 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 operator (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'\') if strict_iso is off
* fix a bug with top-level options --entry-goal and --query-goal
Change in GNU Prolog version 1.3.1 (Feb 2009):
* add working sigaction detection to detect fault addr (e.g. Mac OS X)
* add gplc option --no-mult-warn
* add prolog flags suspicious_warning, multifile_warning
* detect integer underflow/overflow in the parser
* fix a memory leak in catch/3
* increase limits (MAX_VAR_NAME_LENGTH=1024 and MAX_VAR_IN_TERM=10240)
* add PL_INT_LOWEST_VALUE and PL_INT_GREATEST_VALUE to gprolog.h
* prefix all global symbols, constants and types with Pl_ PL_ Pl
* fix a bug in the byte-code due to new max number of atoms
* provide a minimal gprolog.h
* detect if struct sigcontext needs asm/sigcontext.h on Linux
* modify gplc: --c-compiler also sets linker and --linker added
* port to x86_64/BSD - many thanks to
David Holland
* fix problem using ebx as global reg (bug in gcc 4.3.2)
* fix a bug in is/2 with [X] (X should only be an integer)
* fix a bug with atoms '/*' '*/' and '%' (were not quoted)
* increase maximum number of atoms to 1048576 (2^20)
* increase default stack sizes (16Mb for heap, 8Mb for others)
* fix stack alignment for x86_64/Solaris
* include patch from Paul Eggert for sparc/solaris8
* port to x86_64/Solaris - many thanks to
Scott L. Burson
* fix a bug in the FD solver (under 64 bits machines)
* fix a bug in arithmetics (mod)
Change in GNU Prolog version 1.3.0 (Jan 2007):
* change error messages emitted by the compiler to follow GNU standards
* modify doc (mainly rename manual.xxx to gprolog.xxx)
* add DESTDIR variable support in main Makefile for staged installs
* fix a bug with Prolog floats in x86_64/Linux (bad stack alignment)
* port for ix86/Darwin (Mac OS X)
* add check target to main Makefile
* improve Win32 ports (Cygwin, MinGW, MSVC 6.0 and 2005 Express Edition)
(MSVC port uses MinGW as.exe instead of nasm.exe - named mingw-as.exe
provided in the setup.exe)
* rename call/2 to call_det/2
* implement call/2-11 as will be defined in the next standard
* fix various problems when compiling with gcc 4 (gcc 4.1.1)
* emit .note.GNU-stack to mark the stack as no executable
in x86_any.c, x86_64_any.c and powerpc_any.c
* change the way objects are found (obj_chain.c) using gcc ctors
* use Doug Lea malloc for OpenBSD (problem with malloc using mmap)
* fix problems in various ports:
alpha/Linux, powerpc/Darwin (Mac OS X), sparc/solaris, ix86/OpenBSD
Change in GNU Prolog version 1.2.19 (Jun 2005):
* fix 2 bugs in global variables
Change in GNU Prolog version 1.2.18 (Jun 2004):
* fix problem when compiling with gcc 3.4.0
* fix bug in term comparison involving negative integers
* add consult, ... and fix minor bugs in the Win32 GUI console menu
* fix the stack overflow detection under Cygwin
* port to ix86/MinGW - many thanks to
Cesar Rabak
* fix a bug in the port to sparc/solaris
* fix a problem in the port to x86/OpenBSD
* port to sparc/NetBSD and powerpc/NetBSD - many thanks to
Jason Beegan