*** TBD for Jikes future releases:

It is not clear if iconv is only a little
broken or totally busted.

(it was totally busted by glibc2.2 as compared to
glibc 2.1.x which was under development churn, some
quick hackery was done for 1.14, I think I got it working
on all platforms, but we'll have to wait and see... also
working on a major streaming rewrite for 1.15... actually
hoped for 1.14 but found more stuff broken at every turn.)

Also, would it be better to convert a bunch
of chars in a buffer instead of doing them
one at a time?

(it would, this is part of the stream changes cabbey was
working on before he lost his raid, just got access back,
and will continue to investigate.)


Use new casting operations instead of C style
casts, need to add autoconf check too.

Casting up from A to B will be checked if
compiler support RTTI. This could catch
nasty cast errors in Jikes.

http://www.sns.ias.edu/Main/computing/compilers_html/c-plusplus/c++_ug/Cast.new.doc.html

const_cast<int> 'c'

same as

(int) 'c'

dynamic_cast<type>(ARG)

A -> B

B*  bp = new B():
A*  ap = bp;

assert( ap != NULL );
B*  bp2 = dynamic_cast<B*>(ap);
assert( bp2 != NULL );

(I think this is done.)



Fix the problems with @files demonstrated by
non-jls-argument-expansion tests in Jacks. This
would be significantly easier if during input
conversion, \r \r\n and \n where always converted
into a single \n in the source code. This is
currently implemented in LexStream but it needs
to be done in a more general stream class not
one that does lexing. That way, it could also
be used in the Option class to process @ files.

(FIXED but reverted since it caused other problems,
which remain uninvestigated )


If a zip file can not be found,
the error message printed should
say that instead of saying it
is "invalid" (implies it was corrupted).

"D:\File\with\wrong\classpath\entry\rt.jar is not a valid zip file" (BAD)

"D:\File\with\wrong\classpath\entry\rt.jar not found" (GOOD)




*** Things that have not been done yet
but should be done at some point....


remove code from header files. (please)


Add a configure check to make sure
folks do not attempt to build under
Cygwin with the -mno-cygwin flag.
(Will not fix in this release)



Add the src/m4 subdir contents to
the .tar file.

(Don't fix, people will not be
able to regenerate a working
./configure with autoconf 2.13
anyway, so this can be delayed)



*** TBD at some point:

Add test cases for the typos in error.cpp that were fixed
just before the 1.12 release. In fact, it would be nice if we
could generate a test case for every error condition and
test the compiler output.


Check into the fix for bug 102, we reverted it because of
crashes, but it would be nice to look into the fix again.


Drop OLDCSO support from the compiler, but not untill after
major public discusion... there are a number of major users who
swear by this feature as much as some of us swore *at* it.


Stop and smell the roses.


Why does jikes treat the catching of exceptions
that were not thrown in the try block as a
warning condition. Should these not be errors?



A misleading error from Jikes:

% cat unicode_1.java
public class unicode_1 {
    void check(int num, char val) {
        if (num != (int) val) {
            System.err.println("error: mismatch for " + num);
        }
    }

    public static void main(String[] argv) {
        check(0, '\u0000');
        check(0, '\u0001');
    }
}

Error from Javac:

unicode_1.java:9: Can't make static reference to method void check(int, char) in class unicode_1.
        check(0, '\u0000');
             ^
unicode_1.java:10: Can't make static reference to method void check(int, char) in class unicode_1.
        check(0, '\u0001');
             ^
2 errors


Error from Jikes:

Found 2 semantic errors compiling "unicode_1.java":

     9.         check(0, '

    10.         check(0, '`');
                <----------->
*** Error: The method "check" does not denote a class method.


Is it just me, or is this error message really misleading?
The Sun error message seems a whole lot better.

