*** Jikes 1.20 was released 18 April 2004
Many new diagnostics have been added. These include detection of
overflow in integer constant expressions, serialization-related
checks made by Java 1.5's javac, detection of locals shadowing
fields (often caused by an unfinished refactoring that promotes a
local to a field) and fields in subclasses that hide fields in
superclasses. New command-line options generalize the old -nowarn/+Z
to also allow all warnings to be considered errors (with +Z2). The
default on vs. off state of several warnings added in 1.19 have been
changed, by popular demand.
[...]
*** Jikes 1.19 was released 1 February 2004.
The default -source and -target options are now 1.4 (that is, the
assert statement now compiles by default); for the old behavior you
must specify -source 1.3 or -target 1.3 at the command line.
Command line options have been improved.
* Some pedantic warnings are controlled by name, so that you can
select which warnings you get (for example, not everyone wants to know
that 1L is preferred over 1l when writing a long literal).
* More switches have long names.
* Default state of switches now printed with --help.
* New switch -Xswitchcheck: Warn about fallthrough in switch
statements (compatible with javac).
* New switch +Pnaming-convention: Warn about naming choices that
violate Java's naming conventions. This switch is currently ON by
default, +Pno-naming-convention will disable it for sites that use
a different naming convention.
* New switch --noassert: Omits assertions from .class files (not
recommended for normal development, but provided to allow you to do
-source 1.4 -target 1.3).
* Now supports -target 1.4.2 (compatible with javac, no changes from
-target 1.4 in emitted code).
[...]
And many fixes/changes more. See the NEWS file for a complete list.
*** Jikes 1.19 was released 1 February 2004.
The default -source and -target options are now 1.4 (that is, the
assert statement now compiles by default); for the old behavior you
must specify -source 1.3 or -target 1.3 at the command line.
Command line options have been improved.
* Some pedantic warnings are controlled by name, so that you can
select which warnings you get (for example, not everyone wants to know
that 1L is preferred over 1l when writing a long literal).
* More switches have long names.
* Default state of switches now printed with --help.
* New switch -Xswitchcheck: Warn about fallthrough in switch
statements (compatible with javac).
* New switch +Pnaming-convention: Warn about naming choices that
violate Java's naming conventions. This switch is currently ON by
default, +Pno-naming-convention will disable it for sites that use
a different naming convention.
* New switch --noassert: Omits assertions from .class files (not
recommended for normal development, but provided to allow you to do
-source 1.4 -target 1.3).
* Now supports -target 1.4.2 (compatible with javac, no changes from
-target 1.4 in emitted code).
[Much more detailed changes follow; see NEWS file for additional changes.]
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