libstdc++ in gcc3.
when defined, USE_GCC_SHLIB ensures that the correct rpath is passed
to the linker, and a full dependency on the compiler package is
registered.
packages which define USE_GCC_SHLIB should not include
mk/gcc.buildlink2.mk (or gcc{,3}/buildlink2.mk) as it is handled
automatically.
Major user noticable items this release include:
- Compilation that encounters syntax errors is more robust.
- An assertion failure involving placeholder_type was solved.
- Many other minor bugs have been fixed; including a number of
segfaults and regressions present in 1.17.
Items of interest to developers and open source hackers include:
- Completely revamped error reporting system from Elliott Hughes
which simplifies the task of adding a new error message.
Also note that in 1.18 we have removed the copy of the GPL that was
improperly packaged with versions 1.15 through 1.7 due to a mis-
configuration of automake in the Jikes source tree. While the GPL license
was erroniously included with the sources for those three version, no
source file referenced it, and all source files, help texts and user
messages continued to reference the proper IBM license, which was also
bundled.
Jikes version 1.16 represents 9 months of development, 4 megs of patches
(when consolidated into one unified diff) covering well over 100,000 lines
of changes. Some of the focus of the releaes include:
* spec support:
- support for JSR 41 (java asserts available in JSDK 1.4!)
- tighter JLS/JVMS obedience, including focus on:
. Inner classes
. Definite (un)assignment
* adjusted options:
- more gnu-like options available such as --help.
- --source and --target options to control how jikes
interprets source and emits classes.
- more javac compatibility flags added, such as -J
* 9 months of miscenalious bug fixes:
- over 350 jacks test cases fixed
- ZERO jacks test cases regressed
This release is dedicated to geeks and the people who love them.
Jikes version 1.17 contains a number of bug fixes from Jikes 1.16
The primary objective of this release was bug fixes, not new features.
Highlights of the release follow, see the ChangeLog for more detail and
the code for even finer detail.
Build
- --enable-debug now works and provides correct CXXFLAGS
- firend class issues brought into compliance with lang spec
- VC++ enablement of __int64 for long long
- tolerate non-ISO conformant encoding names when searching
- correct namespace generation in java.g (so the parser won't
regress every time we update the grammer again)
- include jikesapi.h in the distribution (Note that this is
at best a very early alpha preview)
- prevent bad code generation by VC++ in IEEEfloat
- finished removal of dead EBCDIC code - to be replaced by
use of JikesAPI class latter
Parser
- remove some parenthesized expressions not allowed by JLS
- synchronized(null){} isn't valid, don't allow it
- prevent core dump when local class method omits return type
- inner classes and static members error handling cleanup
- fix assertion `this_type -> HeaderProcessed()' failures
- don't allow invalid combinations of abstract, native and strictfp
- don't allow qualified explicit this constructor
- make sure string constants are compiled inline
- fix assertion from NULL in SemanticError::Report
- be more compliant with JLS 14.4.2 and scope of duplication of token
- fix regression in 1.14 when ?: mixed primitive and reference types
Emitter
- reverse the logic of large branches to use goto_w and jsr_w
for branch offsets requiring more than two bytes
- never set ACC_STATIC bit on local classes
- make sure private methods and anonymous classes are always
final, and anonymous classes are never static.
- second round of JPDA pampering; believed to make it happy now
- prevent LocalVariableTable_attribute::AddLocalVariable assertion
- fix VerifyErrors caused by reuse of local vars in try/catch and
synchronized blocks
User Interface
- correct classpath handling issues on cygwin
- treat @files as one argument per line, regardless of whitespace