Version 1.1.0
=============
svn.uri=:"http//common-lisp.net/project/armedbear/svn/trunk/abcl/"
(22 November 2012)
Features
--------
* A functioning (A)MOP implementation through the hard work of Rudi
Schlatte (@rudi)
* The implementation can be used across many more Quicklisp systems
through a process of extensive testing. Thanks @xach!
Nota bene: all of the following systems need patches to work as
of the 2012-10-13 Quicklisp. All patches have been accepted in
at least an initial form by the upstream maintainers.
** CLOSER-MOP
Quite possible with local patches
** CFFI
Needs patches to 2012-10-13 Quicklisp. [!!?]
*** Dynamic interfaces idempotent across process -- no more reloading
** HUNCHENTOOT
*** some bugs with underlying streams to be fixed in abcl-1.2-dev
** CXML
Basic XML parsing works. XPath still borked. [???]
* Java 5 bytecode Compiler
The internal Lisp-to-Java bytecode compiler has been hardened by
regression testing across Quicklisp libraries.
** Extensive interpreter/compiler bug fixes due to access to cl-test-suite [???] @antov
** large objects (?!?)
* The facility to construct runtime classes via JNEW-RUNTIME-CLASS (@astalla)
Pretty close to full coverage of primtives for creating synthethic
java classes at runtime. Easy to extend with your needs; sensible
defaults.
** Fields
*** getter/setters
** Annotations
* ASDF
** Stock ASDF-2.26 with conditional patches for the URL-PATHAME and
JAR-PATHNAME implementation extensions to ANSI.
* ABCL-CONTRIB
** ABCL-ASDF
Network installation of binary artifacts named by Maven POM uris.
*** checks at runtime if a given class is present in the
accessible classloaders
*** If the check for the presence of a class fails, find a
maven-3.0.4 binary locally, execute its Aether connector
to retrieve its transitive dependencies from the network.
** JSS
Java Syntax Sucks. q.v [lsw2]
Extensive bugfixing wrt. method resolution [#229]
** JFLI
A "captured from the wild" version of what @rich.hickey did before Clojure.
Changes
-------
* [#249] PATHNAME merge semantics DWIMs on an inferred type
Extends ANSI PATHNAME in a non-conforming manner, which was probably
already the case.
* [r13695] Reimplementation of global symbol macros to avoid using
the symbol's value slot.
* [r13696] DEFMACRO now supports documentation strings as per the
ANSI specification.
* [r13700] ABCL loads under the Weblogic 10.3 application server.
* [r13768] [#193] Allow zero-length symbols
* [r13785] JNEW-RUNTIME-CLASS gets fields and annotations
* [r13790] JNEW-RUNTIME-CLASS getters/setters for fields
* [r13796] [r13797] N3 DOAP description for ABCL
* [r13803] Build target 'abcl-contrib.jar' packages ABCL-CONTRIB
Fixes
-----
* ANSI [#241]
** &AUX parameters fixes RESTAS
* [#221] Stack exhaustsion on funcall in non-existing package
* [#113] DEFSTRUCT concurrency
* [#216][#211] Compiler
** stack inconsistency
* [#187] Better SORT and STABLE-SORT via Jorge Tavares [???]
injecting -Wall -Wno-error does not cause the test to produce the wrong
answer. (If it does, the wrong information is installed in /usr/include,
and ultimately provokes PR 47342.)
Same as -r1.8 of python27's patch-al.
injecting -Wall -Wno-error does not cause the test to produce the wrong
answer. (If it does, the wrong information is installed in /usr/include,
and ultimately provokes PR 47342.)
Highlights
This update release contains the following enhancements:
Additional Certified System Configurations
Security Feature Enhancements
Olson Data 2012i
JDK 7u10 contains Olson time zone data version 2012i. For more information, refer to Timezone Data Versions in the JRE Software.
Security Baselines
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 7u10 are specified in the following table:
JRE Family Version JRE Security Baseline
(Full Version String)
7 1.7.0_09
6 1.6.0_37
5.0 1.5.0_38
1.4.2 1.4.2_40
For more information about security baselines, see Deploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.
Additional Certified System Configurations
For JDK 7u10 release, the following additional system configurations have been certified:
Mac OS X 10.8
Windows 8
For more information, refer to Oracle Certified System Configurations page.
Security Feature Enhancements
The JDK 7u10 release includes the following enhancements:
The ability to disable any Java application from running in the browser. This mode can be set in the Java Control Panel or (on Microsoft Windows platform only) using a command-line install argument.
The ability to select the desired level of security for unsigned applets, Java Web Start applications, and embedded JavaFX applications that run in a browser. Four levels of security are supported. This feature can be set in the Java Control Panel or (on Microsoft Windows platform only) using a command-line install argument.
New dialogs to warn you when the JRE is insecure (either expired or below the security baseline) and needs to be updated.
For more information, see Setting the Level of Security for the Java Client and Java Control Panel.
Bug Fixes
Notable Bug Fixes in JDK 7u10
The following are some of the notable bug fixes included in JDK 7u10.
Area: java command
Description: Wildcard expansion for single entry classpath does not work on Windows platforms.
The Java command and Setting the classpath documents describe how the wildcard character (*) can be used in a classpath element to expand into a list of the .jar files in the associated directory, separated by the classpath separator (;).
This wildcard expansion does not work in a Windows command shell for a single element classpath due to the Microsoft bug described in Wildcard Handling is Broken.
See 7146424.
For a list of other bug fixes included in this release, see JDK 7u10 Bug Fixes page.
Highlights
This update release contains the following enhancements:
Additional Certified System Configurations
Security Feature Enhancements
Olson Data 2012i
JDK 7u10 contains Olson time zone data version 2012i. For more information, refer to Timezone Data Versions in the JRE Software.
Security Baselines
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 7u10 are specified in the following table:
JRE Family Version JRE Security Baseline
(Full Version String)
7 1.7.0_09
6 1.6.0_37
5.0 1.5.0_38
1.4.2 1.4.2_40
For more information about security baselines, see Deploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.
Additional Certified System Configurations
For JDK 7u10 release, the following additional system configurations have been certified:
Mac OS X 10.8
Windows 8
For more information, refer to Oracle Certified System Configurations page.
Security Feature Enhancements
The JDK 7u10 release includes the following enhancements:
The ability to disable any Java application from running in the browser. This mode can be set in the Java Control Panel or (on Microsoft Windows platform only) using a command-line install argument.
The ability to select the desired level of security for unsigned applets, Java Web Start applications, and embedded JavaFX applications that run in a browser. Four levels of security are supported. This feature can be set in the Java Control Panel or (on Microsoft Windows platform only) using a command-line install argument.
New dialogs to warn you when the JRE is insecure (either expired or below the security baseline) and needs to be updated.
For more information, see Setting the Level of Security for the Java Client and Java Control Panel.
Bug Fixes
Notable Bug Fixes in JDK 7u10
The following are some of the notable bug fixes included in JDK 7u10.
Area: java command
Description: Wildcard expansion for single entry classpath does not work on Windows platforms.
The Java command and Setting the classpath documents describe how the wildcard character (*) can be used in a classpath element to expand into a list of the .jar files in the associated directory, separated by the classpath separator (;).
This wildcard expansion does not work in a Windows command shell for a single element classpath due to the Microsoft bug described in Wildcard Handling is Broken.
See 7146424.
For a list of other bug fixes included in this release, see JDK 7u10 Bug Fixes page.
Set LICENSE while here.
Change in GNU Prolog version 1.4.2:
* fix a bug in the x86/NetBSD port
* 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, seach 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. Bacward 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:
* 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-5
* 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 <gclient.gaap@gmail.com>
* 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:
* GNU Prolog is now licensed under a dual license LGPL or GPL
* port to x86_64/MinGW - many thanks to:
Jasper Taylor <jasper@simulistics.com> (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
This is the Linux port of the Sun Java(tm) Runtime Environment (J2SE 7.0).
* builtin.mk is not tested. BUILTIN_FIND_FILES.JAVAVM7 should be fixed
* Not for NetBSD 5
remove unnecessary conditional that broke build on NetBSD-6.99.15/amd64.
While here, replace another interpreter and skip one more file since
it gets replaced much later.
Bump PKGREVISION.
Changes since last release
==========================
Some highlights of this release are:
* Lots of bugs fixed.
* The MOP has been fixed to work with the upcoming release of
Closer-MOP
* ECL now produces a much more readable C code, with indentation and
more explicit declarations of variables.
Known issues
============
* Cygwin's library is still broken: fork/exec fails to reload the
cygwin library, or ECL's compiled libraries in a completely random
fashion. For this reason we recommend using ext:system instead of
ext:run-program in that platform.
* In Windows ECL comes with bytecodes compiler by default, because C
compilers are normally not avaiable. Unfortunately several
libraries out there are not prepared for this. If you plan to use
quicklisp and have a C compiler accessible to ECL, you may use
(ext:install-c-compiler) to switch back to the Lisp-to-C compiler.
changes in sbcl-1.1.2 relative to sbcl-1.1.1:
* notice: System requirements for SBCL on Microsoft Windows: Windows NT 5.1
or newer (Windows XP, Server 2003) is required. Support for Windows 2000
(NT 5.0) is no longer being maintained.
* notice: Starting with this version, SBCL on Windows no longer supports
building with disabled thread support.
* enhancement: frlocks have been added to SB-CONCURRENCY contrib module.
* enhancement: New feature sb-dynamic-core allows the runtime to be
rebuilt or relocated without requiring changes to the core file on
all linkage table platforms. Required on Windows. (Thanks to Anton
Kovalenko.)
* enhancement: Console I/O streams use UCS-2. (Thanks to Anton Kovalenko.)
* enhancement: I/O on Windows unnamed pipes is interruptible
asynchronously using interrupt-thread, timers when running on Windows NT
version 6.1 or newer (Windows 7, Server 2008 R2). (Thanks to Anton
Kovalenko.)
* enhancement: Support for the experimental safepoint-based stop-the-world
protocol on the PowerPC platform.
* bug fix: Non-blocking reads from the Windows console were not necessarily
non-blocking. Thanks to Anton Kovalenko. (lp#308923)
* bug fix: stability of threads on Windows has been improved upon through
an updated stop-the-world protocol (thanks to Anton Kovalenko).
GCC 4.7.2 is the first bug-fix release containing important fixes
for regressions and serious bugs in GCC 4.7.1 with over 70 bugs
fixed since the previous release.
A notable change in GCC 4.7.2 compared to 4.7.1 are ABI bug fixes
related to some C++11 templates (std::list and std::pair). As a result,
code using those templates in C++11 mode is again ABI compatible with
code in C++03/C++98 mode or C++11 mode of GCC 4.6 and earlier, but might
be ABI incompatible with code compiled by GCC 4.7.1 or 4.7.0 in C++11
mode. See http://gcc.gnu.org/gcc-4.7/changes.html for more details.
This is the list of problem reports (PRs) from GCC's bug tracking system
that are known to be fixed in this release. This list might not be complete
(that is, it is possible that some PRs that have been fixed are not listed
here).
http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
1) Don't pass both gcc 4.4 and gcc 4.7 paths to the driver. Detect
if gcc47 is available and use those paths, otherwise fall back to
gcc44.
2) Add support for exception handling
3) Add rdynamic support
4) Add gnu-hash style support
5) Fix (!!) crtstuff (This was obsolete, include PIE support)
6) Remove rpath-link
7) Remove unneeded duplicate libgcc handling
8) Make libgcc handling match gcc specs (different for gcc 4.4 and 4.7)
9) Update dragonfly driver test
Changelog:
Java(TM) SE Development Kit 6, Update 37 (JDK 6u37)
The full version string for this update release is 1.6.0_37-b06 (where "b" means "build") and the version number is 6u37.
Olson Data 2012c
JDK 6u37 contains Olson time zone data version 2012c. For more information, refer to Timezone Data Versions in the JRE Software.
Security Baselines
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 6u37 are specified in the following table:
JRE Family Version JRE Security Baseline(Full Version String)
6 1.6.0_37
5.0 1.5.0_38
1.4.2 1.4.2_40
For more information about security baselines, see Deploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.
Blacklist Entries
This update release includes the following new entries to the Blacklist:
Cisco AnyConnect Secure Mobility Client
Note: For more information, see Blacklist Jar Feature documentation.
Bug Fixes
This release contains fixes for security vulnerabilities. For more information, see Oracle Java SE Critical Patch Update Advisory.
The following table lists some of the notable bug fixes included in this release:
Bug ID Category Sub_Category Description
7183263 java_deployment security Regression: crossdomain.xml with dtd does not work
7195301 java classese_security XML Signature DOM implementation should not use instanceof to determine type of Node
* --enable-aqua build for Mac OS X is now a Cocoa implementation.
* Support has been added for Cygwin network pathnames.
* Updated to Unicode 6.2 support. Fixes for several crashes and bugs.
Local changes:
o Remove patch now included upstream
o Adapt PLIST to installed files
Upstream changes:
- Core
+ Prevent interpreter from dying twice
+ Complete rewrite of the IO system, including new unified IO PMC
semantics.
+ The Integer and Float PMCs now have a get_pointer vtable which is
needed when using NCI to bind to Fortran libraries such as LAPACK
- Deprecations
+ Moved dynpmc/os to pmc os. loadlib 'os' is not needed anymore.
- Platforms
+ Fixed for the FileHandle open method the append mode on Windows.
+ Fix compilation on Windows without working mt.exe
+ Detect GNU/Hurd as linux proper.
+ Fixed broken int3 trap on Solaris with gcc.
+ Updated the vms port on a YAPC::EU hackathon with vaxman and mvorl.
- Tests
+ Improve testability with valgrind or thread-sanitizer
Clang was hardwired to search for crt* stuff and libstdc++ at
/usr/lib/gcc41. This worked for most people even when DragonFly
moved to gcc 4.4 as the primary base compiler since gcc 4.1 was
usually also on the system.
With the release of DragonFly 3.2, gcc 4.7 replaced gcc 4.1 and
clang stopped compiling due to not being able to find libraries and
crt* objects. The new patches make clang driver first look for
gcc 4.7 and failing to find that: gcc 4.4.
The other patches were "de-fuzzed".
Revision bump was necessary because clang did build, it just didn't
work.
Patches submitted upstream:
http://llvm.org/bugs/show_bug.cgi?id=14417
Changelog:
2012-11-21
# Changes and additions
* On Windows, process now returns real process ids as in UNIX, not Windows process handles.
* The cgi.lsp module now handles multiform data in POST requests.
* Two new make files for compiling RedHat Fedora and CentOS distributions. The configure utility called by make will handle these two subflavors of RedHat Linux automatically.
# Bug fixes
* Memory overrun of invalid UTF8 strings now causes an error message "invalid UTF8 string".
* The function ref did sometimes not handle correctly multiple, nested matching expressions.
* The float function did sometimes not work correctly when used on list members.
* OpenBSD did not load .init.lsp.
# Compatibility with previous versions
* This version is compatible with previous versions in the 10.4 series of newLISP.