2004-10-02 Elliott Hughes * NEWS: describe 1.22 and the bugs fixed between 1.21 and 1.22. 2004-09-26 Bu FeiMing * src/symbol.h (InsertDirectorySymbol): bug #495; subdirectories of a class directory should not be considered source directories. 2004-09-26 Elliott Hughes * src/decl.cpp, src/error.cpp, src/error.h: bug #4046; warn when overriding a deprecated method. 2004-09-13 Elliott Hughes * src/decl.cpp: bug #4042; constructors and default constructors of strictfp classes should be strictfp themselves (JLS2 8.1.1.3). 2004-09-13 Elliott Hughes * src/class.cpp: the release candidate Java 1.5's javac uses UTF-8 constants instead of Class constants for annotations. This patch lets us work with the rt.jar from 1.5-rc. 2004-08-20 Elliott Hughes * configure.ac, src/config.h.in, src/platform.h: bug #4018; include to fix FreeBSD 4.8 build problems. * Makefile.in, aclocal.m4, config.guess, config.sub, configure, depcomp, install-sh, doc/Makefile.in, src/Makefile.in: regenerated. 2004-08-18 Elliott Hughes * src/body.cpp, src/decl.cpp, src/semantic.h: bug #3947; ignore static variables if we're looking for shadows of a non-static variable, and vice versa. 2004-06-25 Elliott Hughes * src/decl.cpp: a fix to my fix for bug #3986; still regresses on the same Jacks tests, but is better practically. Now, as well as rejecting invalid 1.4 source, we can compile against the 1.5 rt.jar classes. 2004-06-22 Elliott Hughes * src/decl.cpp: bug #3424; distinguish between invalid types and placeholders for not-found types (i.e. keep saying "type not found" rather than switching to "a candidate was found, but it is invalid and needs to be fixed before this type will successfully compile." 2004-06-21 Elliott Hughes * src/decl.cpp: bug #3986; don't compile covariant return types in .java files when -source is less than 1.5. This breaks the Jacks tests 13.1-covariance-[123], but I think they're wrong and should only be run with "-source 1.5". 2004-06-20 Elliott Hughes * src/system.cpp: bug #3934 and bug #3989; don't try to create a placeholder for unfound system methods and fields. It's likely to be too late. (I wonder if we should use tests such as "control.Throwable_initCauseMethod() != NULL" instead of the usual "control.option.target < JikesOption::SDK1_4", the better to cope with unusual targets such as MIDP-1.0, and cases where the user has forgotten "-target 1.3"? The current patch stops us crashing; the alternative patch would let us "just work".) 2004-06-02 Elliott Hughes * src/double.cpp, src/double.h: it's impossible to implement "T& operatorO(const T&)" correctly where O isn't an assignment operator. (In our case, we were leaking memory.) Implement "T operator(const T&)" instead. 2004-06-02 Elliott Hughes * src/definite.cpp: remove redundant test from DefinitePair::operator=(const DefiniteAssignmentSet&). * src/double.cpp: fix leak in BigInt::operator=(const BigInt&). * src/double.h: fix BitInt(BigInt&). 2004-05-31 Elliott Hughes * src/definite.cpp, src/double.cpp, src/set.h: fix operator= implementations missing self-assignment checks (found while investigating bug 3973). 2004-05-20 Elliott Hughes * src/bytecode.cpp: Bug 3974 - don't assume that a string literal has type java.lang.String; it may have been cast to java.lang.Object or one of String's implemented interfaces in valid (if strange) code. 2004-05-17 Elliott Hughes * src/expr.cpp: Bug 3972 - don't assume that a constant is an int literal just because it's not one of the other literals we were expecting; check explicitly. Invalid source may mean that we're actually looking at a string constant, say. 2004-05-16 Chris Abbey Release 1.21 2004-05-13 Chris Abbey * configure.ac: bump version * configure: regen 2004-05-04 Chris Abbey * src/m4/ac_check_iconv.m4: enable --without-iconv * aclocal.m4: * config.guess: * config.sub: * configure: * depcomp * install-sh * Makefile.in * src/Makefile.in * doc/Makefile.in: regen 2004-05-04 Chris Abbey * autogen.sh: made more user friendly 2004-05-03 Elliott Hughes * src/init.cpp: fix bug #3948 by ignoring fields of array types when looking for final fields that could be made static. 2004-05-03 Elliott Hughes * src/class.cpp, src/error.cpp: ensures we also print the path to the class file within the JAR file (i.e. include the package) in diagnostics about invalid class files. 2004-05-03 Elliott Hughes * src/class.h: fixes compilation with libgcj3.3.jar; gcj-compiled classes have an extra attribute "gnu.gcj.gcj-compiled". A fencepost error in GetN was causing us to reject the class file. (Also fixes the analogous error in SkipN.) 2004-05-03 Elliott Hughes * src/class.h, src/class.cpp: Always call MarkInvalid rather than sometimes manipulating the field directly, and switch from a simple boolean to a description of the problem we found... * src/error.cpp: ...so we can give a potentially useful diagnostic. 2004-05-01 Elliott Hughes * src/control.cpp: it's the import that's unused, not the name. Let the user's editor highlight the whole import declaration, not just the name. 2004-04-18 Chris Abbey Release 1.20. 2004-04-17 Chris Abbey * src/expr.cpp: convert ExtremaForType, ReportOverflow, and CheckIntegerAddition from static to inline to allow compilation on AIX. 2004-04-17 Eric Blake * src/m4/ac_cxx_exceptions.m4: Delete - this file is no longer needed, because jikes doesn't use exceptions. * src/Makefile.in: Regenerate. 2004-04-16 Chris Abbey * src/Makefile.in: trivial hand patch, looks like src/m4/ was not up to date the last time this was regen'd. 2004-04-15 Eric Blake * NEWS: More news blurbs. * configure.ac: Bump jikes version, and update to automake 1.8.3. * config.guess: Regenerate. * config.sub: Regenerate. * configure: Regenerate. * install-sh: Regenerate. * mkinstalldirs: Regenerate. 2004-04-14 Chris Abbey * src/error.cpp (SemanticError::InitializeMessageGroups): turn the defaults down for Effective Java and Naming Conventions diagnostics. 2004-04-14 Eric Blake * NEWS: My shot at 1.20 release notes. 2004-04-13 Chris Abbey * src/symbol.ccp: revert to using strcmp and wcscmp instead of comparing just the first char. Fixes bug 3920. Thanks to Elliott for pointing out the subtle difference of the equivalent to changing from s.equals(".") to s.startsWith("."). 2004-04-12 Eric Blake * src/error.h (STATIC_TYPE_ACCESSING_MEMBER_TYPE): New error. * src/error.cpp: Ditto. * src/decl.cpp (FindType): Emit it when appropriate. 2004-04-11 Eric Blake * src/symbol.cpp (UnlinkFromParents): Fix compile-time error with poor choice of identifier. 2004-04-11 Elliott Hughes * AUTHORS: Credit where credit's due. 2004-04-11 Elliott Hughes * src/diagnose.cpp: Remove an extraneous endl that caused blank lines to appear in +E or +D output when there were syntax (rather than lexical or semantic) errors. There are still some cases where Jikes outputs extra blank lines in its regular output, but they're less noticeable when the output isn't very tight anyway, and I haven't found them in the source, either. 2004-04-11 Phil Norman * src/symbol.h, src/symbol.cpp: Fix bug 3446. Added a method TypeSymbol::UnlinkFromParents which removes references from the subtypes and dependents sets of the TypeSymbol's 'super' and set of implemented interfaces. Used this method in the method SymbolTable::DeleteAnonymousTypes so that destroyed anonymous types will be properly unlinked. Bug 3446 was caused by things such as the TypeSymbol representing java.lang.Object keeping references to a destroyed TypeSymbol, and so causing segfaults. 2004-04-08 Eric Blake * src/class.cpp (Init) [!JIKES_DEBUG]: Fix regression in non-debug builds from previous patch. 2004-04-07 Eric Blake * src/depend.cpp (AddDependence): Move array, primitive processing here from elsewhere. Once again allows int[].class in a package. * src/expr.cpp (ProcessAmbiguousName, ProcessFieldAccess), (ProcessMethodName, GetAnonymousType): Use updates to AddDependence. 2004-04-04 Eric Blake * src/class.cpp (Init): Silence compiler warning. 2004-04-04 Musachy Barroso Jikes patch 432. * src/control.cpp (Control): Check for system I/O errors. * src/control.h (general_io_errors, general_io_warnings): New fields. * src/error.cpp (SafeArray): New method for persistent strings. * src/error.h (IO_WARNING, IO_ERROR): New errors. * src/system.cpp (ProcessBootClassPath): * src/system.cpp (ProcessExtDirs): * src/system.cpp (ProcessClassPath): 2004-04-04 Eric Blake * src/class.h (GetN): Return NULL-terminated byte arrays. (CPUtf8Info::Bytes): Change to reflect the actual contents of the bytes array rather than debugging view - fixes bug 3913. (CPUtf8Info::contents, Init): Use contents only when debugging. * src/class.cpp: Update all callers. * src/symbol.cpp (UnboxedType): Adds missing Byte. * src/error.cpp: Fix some typos. (PrintFile): Be forgiving of NULL filename. 2004-04-04 Elliott Hughes * src/symbol.cpp (BoxedType): Adds the missing primitive type 'byte'. 2004-04-04 Elliott Hughes * src/expr.cpp (GetAnonymousType): Fix bug 3692. If we failed to get a default constructor, we should give up before we require it. 2004-04-03 Elliott Hughes * src/error.cpp: Correctly fix the text of *all* package-related errors. 2004-04-03 Elliott Hughes * src/diagnose.cpp, src/error.cpp: Fix +D so that it outputs the correct column numbers, instead of always reporting column 0 because we hadn't re-read the input to be able to translate token indexes into column numbers. 2004-04-02 Elliott Hughes * src/error.cpp: Fix a few package-related errors; packages should be reported as "java.lang", not "java/lang". 2004-03-31 Eric Blake * src/ast.cpp [JIKES_DEBUG]: Move stream.h include outside of the namespace. * src/depend.cpp: Formatting. (BoxedTypeForPrimitiveType, AddStringConversionDependence): Delete - with autoboxing in JSR 201, this information better belongs in TypeSymbol. * src/semantic.h: Ditto. * src/expr.cpp (ReportVariableNotFound): Use NULL, not 0, when we mean a pointer. (ProcessClassLiteral): Restore class dependence on non-primitive types, that Elliott's patch regressed on. (ProcessPLUS): Depend on the boxed type. (CreateAccessToScopedVariable, ProcessAmbiguousName): Don't allow static class to access constant instance variable of enclosing class, bug 3536. * src/symbol.h (BoxedType, UnboxedType): New methods. * src/symbol.cpp: Implement. 2004-03-31 Elliott Hughes * src/expr.cpp: Fix a null-pointer access caused by trying to be too clever; all that effort I put into not crashing on valid source, and not a thought given to invalid source like "class C{C(){this.c=0;}}". 2004-03-28 Elliott Hughes * src/decl.cpp: Compiling GNU Classpath from CVS and looking at Jikes' complaints was a good reminder that we shouldn't warn about hiding of the serialVersionUID field; that's the way it's supposed to be used. 2004-03-28 Elliott Hughes * src/init.cpp: Warn about non-static final fields initialized by a constant expression; these can be made static to save space in each instance. * src/error.cpp, src/error.h: The new diagnostic. 2004-03-28 Elliott Hughes * src/decl.cpp: Accept default access for serialVersionUID; it's common existing practice. * src/error.cpp: Put all the serialization-related warnings together in the +Pserial group. 2004-03-28 Elliott Hughes * src/expr.cpp: Fix another assertion compiling Sun's JDK 1.4.1 source; don't ask FindInaccessibleType to try with an AstName whose base_opt is non-null, because it doesn't handle that case. We can now compile the JDK as well as javac again. 2004-03-28 Elliott Hughes * src/expr.cpp: Fix an assertion compiling Sun's JDK 1.4.1 source; it looks like the call to AddDependence in ProcessClassLiteral was lifted too high, and the dependence should be on the java.lang class that wraps the primitive type, not the primitive type itself. * src/depend.cpp, src/semantic.h: A new method to translate from a primitive type to its java.lang wrapper type. 2004-03-28 Elliott Hughes * src/class.h (CPUtf8Info): Fix uninitialized member data. 2004-03-27 Eric Blake * src/depend.cpp (AddDependence): Don't create dependencies on null, jikes bug 3701. * src/class.h (ClassFile::GetN): Make more robust (I crashed my system by 0-filling several megabytes on a short but invalid .class file). (UnknownAttribute): New class, split out from AttributeInfo to reduce attribute memory needs. * src/class.cpp: Ditto. 2004-03-26 Eric Blake * src/definite.cpp (DefiniteSwitchStatement): Fix problems with switch statements without a default label. 2004-03-25 Eric Blake * configure.ac (AC_CXX_RTTI): Compilers have improved in 2 years, don't cripple the RTTI check. * aclocal.m4: Regenerate with automake 1.8.3. * Makefile.in: Regenerate. * configure: Ditto. * doc/Makefile.in: Ditto. * src/Makefile.in: Ditto. * src/stream.h (TokenIndex, BadToken): Move to... * src/platform.h (TokenIndex, BAD_TOKEN): ...here. This reduces the number of files that depend on stream.h. * src/ast.cpp: Use the new TokenIndex. * src/ast.h: Ditto. * src/body.cpp: Ditto. * src/class.cpp: Ditto. * src/control.cpp: Ditto. * src/decl.cpp: Ditto. * src/depend.cpp: Ditto. * src/diagnose.cpp: Ditto. * src/diagnose.h: Ditto. * src/error.cpp: Ditto. * src/error.h: Ditto. * src/expr.cpp: Ditto. * src/incrmnt.cpp: Ditto. * src/init.cpp: Ditto. * src/java.g: Ditto. * src/lpginput.h: Ditto. * src/modifier.cpp: Ditto. * src/option.cpp: Ditto. * src/parser.cpp: Ditto. * src/parser.h: Ditto. * src/scanner.cpp: Ditto. * src/scanner.h: Ditto. * src/semantic.h: Ditto. * src/stream.cpp: Ditto. * src/symbol.cpp: Ditto. * src/symbol.h: Ditto. * src/system.cpp: Ditto. * src/table.h: Ditto. * src/unparse.cpp: Ditto. * src/javaact.cpp: Regenerate. 2004-03-23 Eric Blake * src/ast.h (AstEnumDeclaration, AstEnumConstant), (AstAnnotationDeclaration): Final new classes to fully parse JDK 1.5 grammar (but semantics are still a ways off). * src/error.h (ANNOTATION_TYPE_UNSUPPORTED, ENUM_TYPE_UNSUPPORTED), (SUPER_IS_ENUM, CANNOT_CONSTRUCT_ENUM): New errors. * src/error.cpp: Ditto. * src/ast.cpp: Rough support for enum and annotation types. * src/body.cpp: Ditto. * src/control.h: Ditto. * src/decl.cpp: Ditto. * src/expr.cpp: Ditto. * src/java.g: Ditto. * src/modifier.cpp: Ditto. * src/parser.h: Ditto. * src/scanner.cpp: Ditto. * src/semantic.h: Ditto. * src/symbol.cpp: Ditto. * src/symbol.h: Ditto. * src/system.cpp: Ditto. * src/unparse.cpp: Ditto. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javasym.h: Ditto. 2004-03-23 Eric Blake * src/control.h: Reorder accessor cache variables. (FIELD_ACCESSOR): Similar to TYPE_ACCESSOR, to access fields like Integer.TYPE and ElementType.FIELD. * src/control.cpp: Ditto. * src/system.cpp (ProcessSystemField): New. * src/expr.cpp (ProcessClassLiteral): Use field accessors. (GetAnonymousType): Use '-' instead of '$' in 1.5 anon types. * src/platform.cpp (US_MI): New. * src/platform.h: Ditto. 2004-03-16 Eric Blake * src/ast.cpp: Backport the ability to parse JSR 14 from the generics-branch (but not the semantic passes). Now mainline and generics are in sync on the grammar. * src/ast.h: Ditto. * src/body.cpp: Ditto. * src/bytecode.cpp: Ditto. * src/decl.cpp: Ditto. * src/error.cpp: Ditto. * src/error.h: Ditto. * src/expr.cpp: Ditto. * src/java.g: Ditto. * src/jikes.cpp: Ditto. * src/jikesapi.cpp: Ditto. * src/parser.cpp: Ditto. * src/parser.h: Ditto. * src/scanner.cpp: Ditto. * src/semantic.h: Ditto. * src/symbol.cpp: Ditto. * src/unparse.cpp: Ditto. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javasym.h: Ditto. 2004-03-14 Elliott Hughes * src/decl.cpp, src/semantic.h: Bug 3378 - the previous fix made the diagnostic worse in the case where the problem was an inaccessible field, because it would report 'type not found' rather than 'no accessible field'. A new method, FindInaccessibleType, finds only inaccessible types (unlike FindType), and doesn't report anything directly (unlike MustFindType). MustFindType uses the newly-extracted method. * src/expr.cpp (ReportVariableNotFound): use new method. 2004-03-14 Elliott Hughes * src/expr.cpp (ReportVariableNotFound): fix for bug 3378; if we can't find an accessible type, look for an inaccessible one as a plausible cause of the error. 2004-03-13 Elliott Hughes * src/control.cpp: only check for unused imports if compilation is successful. Seemingly unused imports may well be used by code we couldn't compile, so we can't be sure they're unused. 2004-03-12 Eric Blake * src/ast.h (AstMethodInvocation): Split method into base_opt and identifier_token. * src/ast.cpp (Clone, Print): Use updated AST. * src/bytecode.cpp (MethodTypeResolution), (EmitAssignmentExpression, EmitMethodInvocation): Ditto. * src/definite.cpp (DefiniteMethodInvocation): Ditto. * src/expr.cpp (Header, FindMisspelledMethodName), (FindMethodInType, FindMethodInEnvironment, CreateAccessToType), (CreateAccessToScopedVariable, CreateAccessToScopedMethod), (FindVariableMember, FindMethodMember, ProcessMethodName): Ditto. * src/java.g (MethodInvocation): Ditto. * src/parser.h: Ditto. * src/unparse.cpp (Unparse): Ditto. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. 2004-03-11 Elliott Hughes * src/error.cpp: Bug 3896 - failure to find .java files mentioned on the command-line should be an error, not a warning. Non .java files should also be treated as errors (most likely incorrect arguments). 2004-03-11 Elliott Hughes * src/body.cpp, src/semantic.h: add warnings about boolean assignment used as a truth value in an if, while, or do expression. * src/error.cpp, src/error.h: new diagnostic. 2004-03-10 Eric Blake * src/decl.cpp (ReadType): Bug 3852 - fix at least the simple test case, where valid A referring to valid B referring to invalid C was not caught in A. 2004-03-09 Elliott Hughes * src/expr.cpp (GetAnonymousType): Fix invalid assertion that was triggering during placeholder types - bug 3884. 2004-03-07 Elliott Hughes * src/decl.cpp (ProcessInstanceInitializers), (ProcessStaticInitializers): fix compilation of classes such as Sun's implementation of java.lang.Character which use field declarations that declare more than one field. The misleading names NumInstanceVariables and NumClassVariables actually give the number of field declarations, not the number of variables declared (i.e. "int i = 0, j = 1;" was being treated as one rather than two). 2004-03-05 Eric Blake * src/ast.h (AstMemberValue, AstMemberValuePair, AstAnnotation), (AstModifierKeyword): New classes. (AstModifiers): Redo, to annotations in addition to keywords, per JSR 175. (AstPackageDeclaration): Add modifiers_opt. (AstLocalVariableStatement, AstLocalClassStatement), (AstClassCreationExpression): Rename to be shorter names. * src/decl.cpp (CheckPackage): Check for package annotations, although this needs more work. * src/error.h (ANNOTATION_MODIFIER_UNSUPPORTED), (RECOMMENDED_ANNOTATION_ORDER, DUPLICATE_ANNOTATION): New errors. * src/error.cpp: Ditto. * src/stream.h (PackageToken): New method, to allow for package modifiers. * src/stream.cpp: Reflect changes to stream. * src/parser.cpp (PackageHeaderParse): Ditto. * src/parser.h: Ditto. * src/scanner.cpp (ClassifyIdOrKeyword): Ditto. * src/semantic.h (ProcessPackageModifiers): New method. * src/ast.cpp: Reflect changes to AST. * src/body.cpp: Ditto. * src/bytecode.cpp: Ditto. * src/bytecode.h: Ditto. * src/definite.cpp: Ditto. * src/expr.cpp: Ditto. * src/modifier.cpp: Ditto. * src/symbol.cpp: Ditto. * src/symbol.h: Ditto. * src/unparse.cpp: Ditto. * src/java.g: Ditto. (CompilationUnit, PackageDeclaration, Modifier): Parse annotation modifiers (but not yet for annotation types). * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javaprs.h: Ditto. * src/javasym.h: Ditto. 2004-03-02 Elliott Hughes * src/control.cpp, src/decl.cpp: remove checks for +P from referenced import checks; as long as +Punused-package-imports doesn't imply +P -- which it's hard to envisage as long as +P also turns on the anonymous pedantic checks -- having +Punused-package-imports seemingly non-functional is going to get us more bug reports. * src/error.cpp: fix the diagnostic text to output the package name in Java source form rather than internal form. 2004-03-02 Elliott Hughes * src/option.cpp: Implement -Werror as a javac-compatible synonym for +Z2. * src/jikes.cpp, doc/jikes.1: Document new -Werror option. 2004-03-01 Eric Blake * src/ast.h (Ast, StoragePool): Backport improved type-safety, reduced object size, and placement operator new from generics-branch. Affects all Ast classes. * src/ast.cpp: Ditto. * src/body.cpp: Ditto. * src/bytecode.cpp: Ditto. * src/control.cpp: Ditto. * src/definite.cpp: Ditto. * src/expr.cpp: Ditto. * src/java.g: Ditto. * src/parser.cpp: Ditto. * src/javaact.cpp: Regenerate. 2004-02-29 Elliott Hughes * src/error.cpp: Also allow +Pno-all to turn off all named groups. This is useful to turn off any named groups enabled by default, without having to know what they are or explicitly list them. * doc/jikes.1: Better document new +Pno-all option. 2004-02-29 Elliott Hughes * src/error.cpp: Fix "jikes --help" to show which +P groups are enabled by default, rather than misleadingly trying (and failing) to show what bare +P does. This whole area is something of a mess, so I expect to be back soon. Also add a new +Pall option to allow command-lines of the form "jikes +Pall +Pno-redundant-modifier +Pno-modifier-order +Pno-serial", for people who'd rather enable everything and explicitly disable what they don't like than explicitly enable everything they want. * doc/jikes.1: Document new +Pall option. The whole +P section was rather misleading and inaccurate, so I've rewritten it to correspond jikes' current behavior. 2004-02-28 Elliott Hughes * NEWS: Try to keep track of what I've done, so I don't have to read through the ChangeLog when we're getting ready to release 1.20. 2004-02-28 Elliott Hughes * src/error.cpp: Implement upgrading of warnings to errors, as well as the old optional upgrading of cautions. Fixes bug 665. * src/jikesapi.cpp, jikesapi.h: Replace the nowarn and zero_defect boolean fields with a new field that represents the level of tolerance we show towards warnings and cautions. * src/option.cpp: Parse +Z0, +Z1 and +Z2, and re-implement -nowarn, +Z and --zero-cautions in terms of the new tolerance level. variable; or hiding of fields when declaring a field. * src/stream.cpp: Tracks the API change for testing whether warnings should be generated. * src/jikes.cpp, doc/jikes.1: Document new +Z sub-options. 2004-02-27 Elliott Hughes * src/body.cpp, src/semantic.h: Add a method to check for an accessible field with a given name (WarnOfAccessibleFieldWithName). * src/error.cpp, error.h: New error messages, and +P[no-]shadow. * src/body.cpp, src/decl.cpp: Check for shadowing of fields when declaring a local variable, a foreach variable, a catch variable; or hiding of fields when declaring a field. * doc/jikes.1: Document +P[no-]shadow. 2004-02-27 Eric Blake * src/ast.h (AstImportDeclaration::static_token_opt): New field. * src/ast.cpp (AstImportDeclaration::Clone, Print): Support it. * src/unparse.cpp (AstImportDeclaration::Unparse): Ditto. * src/decl.cpp (ProcessImports): Note that static imports are not supported yet. * src/error.h (STATIC_IMPORT_UNSUPPORTED): New error. * src/error.cpp: Ditto. * src/java.g (ImportDeclaration): Parse static imports, from JSR 201. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javasym.h: Ditto. 2004-02-27 Eric Blake * src/option.cpp (SaveCurrentDirectoryOnDisk, nocleanup): Fix mingw build. * src/symbol.cpp (ReadDirectory): Ditto. * src/system.cpp (ProcessExtDirs): Ditto. 2004-02-26 Eric Blake * src/ast.h (AstFormalParameter::ellipsis_token_opt): New field. * src/ast.cpp (AstFormalParameter::Clone, Print): Support it. * src/unparse.cpp (AstFormalParameter::Unparse): Ditto. * src/body.cpp (ProcessForeachStatement, ProcessTryStatement): Ditto. * src/decl.cpp (ProcessFormalParameters): Note that varargs are not supported yet. * src/error.h (VARARGS_UNSUPPORTED): New error. * src/error.cpp: Ditto. * src/parser.h: Forward declare AstFormalParameter. * src/java.g (FormalParameter, FormalParameterList), (LocalVariableDeclaration): Parse varargs, from JSR 201. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javasym.h: Ditto. 2004-02-26 Eric Blake * src/expr.cpp (ProcessPLUS): Remove bad assertion ('true + false', while illegal, can reach this point). 2004-02-26 Eric Blake * AUTHORS: Give credit where due. * src/bytecode.cpp (EmitAssignmentExpression), (EmitBinaryExpression, ConcatenateString, EmitStringAppendMethod): Use faster StringBuilder (added in 1.5) when available. * src/control.h (*_name_symbol): Rearrange the name_symbols to be in alphabetic order. (GetPrimitiveType): Improve the signature. * src/system.cpp: Implement changes to control.h. * src/platform.h: Delete lots of unused string constants, now that they are more easily generated in system.cpp. * src/control.cpp: Whitespace cleanup, and use changes in control.h and platform.h. * src/decl.cpp: Ditto. * src/error.cpp: Ditto. * src/error.h: Ditto. * src/expr.cpp: Ditto. * src/lookup.cpp: Ditto. * src/platform.cpp: Ditto. * src/symbol.cpp: Ditto. 2004-02-23 Emil Ong , Mark Richters * doc/jikes.1: Documented new pedantic flags unused-type-imports and unused-package-imports; originally by Mark Richters for 1.12, ported to current by Emil Ong, ported to cvs HEAD by cabbey. * src/control.cpp (ProcessBodies): If pedantic option is turned on, call CheckForUnusedImports after all types of a body have been processed. (CheckForUnusedImports): New method checks and warns about unnecessary import declarations. * src/control.h (class Control): Declare new method CheckForUnusedImports. * src/decl.cpp (ImportType): If pedantic option is set, keep track of packages from which types are imported as a result of a type-import-on-demand. (FindType): If pedantic option is set, keep track of types which are found by a single-type-import. * src/error.cpp (StaticInitializer): Initialize new named warnings UNUSED_TYPE_IMPORT and UNUSED_PACKAGE_IMPORT. (named_errors[]): Added new named warnings UNUSED_TYPE_IMPORT and UNUSED_PACKAGE_IMPORT. (InitializeMessages): Added messages for new named warnings UNUSED_TYPE_IMPORT and UNUSED_PACKAGE_IMPORT. * src/error.h (class SemanticError): Added UNUSED_TYPE_IMPORT and UNUSED_PACKAGE_IMPORT to enum SemanticErrorKind. * src/semantic.h (class Semantic): Added SymbolSets referenced_package_imports and referenced_type_imports. 2004-02-23 Eric Blake * configure.ac: Fix typo in --enable-source15 test. * configure: Regenerate. * src/config.h.in: Ditto. * src/access.h (Print): Minor improvement. * src/expr.cpp (CastValue): Ditto. * src/parser.h: Ditto. * src/control.h (system_package, unnamed_package): Replace with LangPackage() and UnnamedPackage(). (TYPE_ACCESSOR, METHOD_ACCESSOR): Utility macros to make adding new system symbols easier. * src/control.cpp: Update accordingly. * src/system.cpp: Ditto. * src/class.cpp: Ditto. * src/decl.cpp: Ditto. * src/depencd.cpp: Ditto. * src/platform.h: Add several new string constants. This file could stand a cleanup after the control refactor. * src/platform.cpp: Update accordingly. * NEWS: Document the addition of enhanced for loops. * src/ast.h (AstForeachStatement): New class. * src/ast.cpp: Support it. * src/unparse.cpp: Ditto. * src/semantic.h (ProcessForeachStatement), (DefiniteForeachStatement): New methods. * src/body.cpp (ProcessForeachStatement), (ProcessContinueStatement): Support foreach loops. * src/definite.cpp (DefiniteForeachStatement): Ditto. * src/bytecode.h (EmitForeachStatement): New method. * src/bytecode.cpp: Support foreach loops. * src/error.h (INCOMPATIBLE_TYPE_FOR_FOREACH, TYPE_NOT_ITERABLE), (FOREACH_UNSUPPORTED): New errors. * src/error.cpp: Support foreach loops. * src/symbol.h (helper_variable_index): Rename from try_or_synchronized_variable_index, for use by foreach. * src/symbol.cpp: Support rename. * src/java.g (FormalParameter): Refactor, to allow LALR(1) grammar with the previously refactored LocalVariableDeclaration. (ForeachStatement): Parse new construct. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javasym.h: Ditto. 2004-02-22 Elliott Hughes * body.cpp (ProcessLocalVariableDeclarationStatement): Make the duplicate local variable declaration checking more similar to that in ProcessTryStatement. * body.cpp (ProcessTryStatement): * decl.cpp (ProcessConstructorDeclaration, ProcessMethodDeclaration): Invoke SetLocation on formal parameters. We can't do it in ProcessFormalParameters, because that's invoked before the variable symbols can have an owner -- how else do you check for duplicate signatures? -- but we do need to come back and do it eventually. The problems was noticed with reporting the location of the original occurrence of a local variable, where the location would be given as "". 2004-02-17 Eric Blake * ChangeLog: Reformat to fit 80 columns. * configure.ac: Add --enable-source15 to turn on beta 1.5 features, without making it default. * NEWS: Document configure option. * src/option.cpp (GetErrorMessage, Option): Use it. * src/Makefile.am (JAVAC): Silence code.h regen warnings. * configure: Regenerate. * src/Makefile.in: Ditto. * src/config.h.in: Ditto. * src/access.h (ACC_ANNOTATION): Now 0x2000, per updated JSR 175. * src/bytecode.cpp (EmitExpression, GenerateClassAccessMethod), (GenerateClassAccess): Utilize 1.5 class format change that allows ldc class. * src/expr.cpp (ProcessClassLiteral): Ditto. * src/class.cpp (Signature, SignatureLength): Signature parsing is experimental on the generics-branch; disable it completely here to allow -source 1.5 to work. * src/gencode.java: Update to support Unicode 4.0 surrogate pairs, now legal in 1.5. * src/code.h: Regenerate. * src/code.cpp: Ditto. * src/lookup.cpp: Use adjusted Code methods. * src/scanner.cpp: Ditto. (ClassifyNumericLiteral): Scan hex floating point. In the process, make some floating point errors nicer. * src/double.cpp (IEEEfloat(char*), IEEEdouble(char*)): Resolve hex floating point. * src/expr.cpp (ProcessFloatLiteral, ProcessDoubleLiteral): Accept hex floating point. * src/error.cpp (HEX_FLOATING_POINT_UNSUPPORTED): New error. * src/error.h: Ditto. * src/stream.cpp (INVALID_FLOATING_HEX_EXPONENT), (INVALID_FLOATING_HEX_MANTISSA, INVALID_FLOATING_HEX_PREFIX), (INVALID_OCTAL_CONSTANT, INVALID_FLOATING_EXPONENT): Ditto. * src/stream.h: Ditto. 2004-02-17 Elliott Hughes * doc/jikes.1: Document new +Peffective-java and +Pserial switches. * src/control.h, src/platform.cpp, src/platform.h, src/system.cpp: Adds new serialPersistentFields name symbol. * src/decl.cpp (CheckForSerializationMistakes): Don't warn about the companion field to serialVersionUID, serialPersistentFields. Add the new serialization checks from Java 1.5's javac. (CheckFieldDeclaration, CheckFieldName): Factor out the field checking, now there's more of it. * double.cpp, src/double.h: Use Int::MIN_INT and Int::MAX_INT. * src/error.cpp: New errors. Proper support for command-line +P switches that turn groups of warnings on/off (previously there was a single special case for +Pnaming). * src/error.h: Ditto. * src/expr.cpp: Adds overflow checking for integer constant expressions. * src/expr.cpp (FindMethodMember, FindVariableMember): Check for class methods or fields accessed via an instance rather than the class. * src/expr.cpp (ProcessShift, ProcessShiftCount, ProcessLEFT_SHIFT, ProcessRIGHT_SHIFT): check for over-large or negative shift counts, factor out some duplicated code. (These checks would have helped the submitter of the recently-fixed code generation bug for prefix unary operators.) (The new overflow-related code might be better in a new file overflow.h) * src/long.h: New class Int, analogous to LongInt, so we can get hold of MIN_INT and MAX_INT in a similar manner. * src/semantic.h: New prototypes. 2004-02-16 Elliott Hughes * src/class.cpp (AnnotationComponentAnnotation::Print): Fix non-JIKES_DEBUG build. 2004-02-12 Eric Blake * src/access.h (ACCESS_ANNOTATION): Add, from JSR 175? According to Sun, the value of this flag may still change before 1.5 is final. * src/bytecode.h (RegisterFieldRef, RegisterMethodref), (RegisterClass): Decrease number of overloads, in order to better track inner classes. Don't emit the currently forbidden ACC_STRICTFP for inner classes. * src/bytecode.cpp: Change all callers of updated Register*. (LoadVariable): Don't load String constants, fixes bug 3850. * src/class.h (CPInfo::tag): Change type to ConstantPoolTag. (ConstantPool::invalid): Move inline. (ATTRIBUTE_LocalVariableTypeTable): Implement, shares code with LocalVariableTable. (AnnotationComponentValue): Rename from AnnotationMemberValue. (AnnotationComponentConstant, AnnotationComponentEnum), (AnnotationComponentAnnotation, AnnotationComponentArray): Break into subclasses for better implementation. (Annotation): Rename from AnnotationValue, and make easier to dynamically grow. (Signature, SignatureLength): Update method signatures to allow checking -source 1.5; fixes bug 3853. * src/class.cpp: Implement. * src/symbol.h (IsNested, IsInner, IsLocal): Const-ify. 2004-02-06 Elliott Hughes * src/bytecode.cpp (EmitPreUnaryExpression): Fix bad assertion - patch 433. * src/error.cpp (EJ_AVOID_OVERLOADING_EQUALS): Fix message typo - Patch 435. * src/expr (ProcessAND_AND, ProcessOR_OR), (ProcessConditionalExpression): Improve comments - Patch 434. 2004-02-06 Eric Blake * src/access.h (ACCESS_BRIDGE, ACCESS_VARARGS, ACCESS_ENUM), (ACCESS_SYNTHETIC): New access flags in JDK 1.5. (If only JSR 202 were public already...). (Print): Take an argument now, adjust all callers. * src/bytecode.cpp (DeclareField, BeginMethod), (MethodTypeResolution, ByteCode, FinishCode): Use .class file and symbol updates; emit EnclosingMethod attribute now. (EmitTryStatement): Debug catch clause parameters. * src/bytecode.h (CreateEnclosingMethodAttribute): New method. * src/class.h (ATTRIBUTE_RuntimeVisibleAnnotations), (ATTRIBUTE_RuntimeInvisibleAnnotations), (ATTRIBUTE_RuntimeVisibleParameterAnnotations), (ATTRIBUTE_RuntimeInvisibleParameterAnnotations), (ATTRIBUTE_AnnotationDefault, ATTRIBUTE_EnclosingMethod): New, from JSR 175 and 202. * src/class.cpp: Implement. * src/control.h (EnclosingMethod_literal): New field. * src/decl.cpp (ProcessConstructorDeclaration), (AddDefaultConstructor, AddInheritedFields, AddInheritedMethods), (MustFindType, GetStaticInitializer, ProcessInstanceInitializer): Use symbol updates. * src/definite.cpp (DefiniteName, DefinitePLUSPLUSOrMINUSMINUS), (DefiniteSetup): Ditto. * src/error.h (UNNAMED_TYPE_ACCESS): New error. * src/error.cpp: Implement. * src/expr.cpp (FindConstructor, FindMethodInType), (FindMethodInEnvironment, FindVariableInType), (FindVariableInEnvironment, GetAnonymousConstructor): Use symbol updates. * src/platform.h (U8S_*_length): Delete, unneeded. * src/platform.cpp: Ditto. * src/symbol.cpp (GetArrayType, InsertThis0), (FindOrInsertClassLiteralMethod, FindOrInsertClassLiteral), (FindOrInsertAssertVariable, FindOrInsertLocalShadow), (GetReadAccessMethod, GetReadAccessConstructor), (GetWriteAccessMethod, GetWriteAccessFromReadAccess): Use symbol updates. * src/symbol.h (PackageSymbol::DEPRECATED): Add, in preparation for JSR 175 allowing package modifiers. (MarkDeprecated, IsDeprecated): Delete, as now covered by AccessFlags. * src/system.cpp (EnclosingMethod_literal): Initialize. 2004-02-02 Eric Blake * NEWS (1.19a): Placeholder for changes to future 1.20. * AUTHORS: Add credit where it is due. * src/Makefile.am [MAINTAINER_MODE]: Remove race in parallel builds, from automake FAQ. * configure.ac: Bump version to 1.19a for CVS development. Fix more autoconf style issues. * src/m4/ac_check_iconv.m4: Improve iconv checks. Allow configure to continue for systems with broken iconv (such as current cygwin). * src/m4/ac_find_encoding.m4: Ditto. * src/m4/ac_try_encoding.m4: Ditto. * src/stream.h [HAVE_ENCODING]: Key off of JIKES_ICONV_ENCODING rather than HAVE_ICONV_H, so systems with broken iconv can still make it through configure, but without -encoding support. * src/stream.cpp [HAVE_ENCODING]: Ditto. * src/.cvsignore: Update for new witness files. * configure: Regenerate. * src/Makefile.in: Ditto. * src/config.h.in: Ditto. 2004-02-02 Dirk Weigenand * NEWS: fixed my (cabbey's) bad spelling. 2004-02-01 Chris Abbey Release 1.19. 2004-01-31 Elliott Hughes * src/decl.cpp (ProcessClassBodyForEffectiveJavaChecks): Patch 430, fix Effective Java warnings on duplicate declarations. 2004-01-31 Eric Blake * src/system.cpp (ProcessExtDirs): Fix compiler error for mingw. * src/class.cpp (ProcessClassFile): Avoid inner classes named "", generated by some invalid compilers. * configure.ac: Move release date to Feb 1, per Chris Abbey. * configure: Regenerate. 2004-01-31 Eric Blake * NEWS: Fill in more information for 1.19. * doc/jikes.1: Ditto. * configure.ac: Prepare for 1.19 (with tentative release of Jan 31). Upgrade to automake 1.8.2. * Makefile.in: Regenerate. * aclocal.m4: Ditto. * config.guess: Ditto. * config.sub: Ditto. * configure: Ditto. * install-sh: Ditto. * doc/Makefile.in: Ditto. * src/Makefile.in: Ditto. 2004-01-30 Eric Blake * src/expr.cpp (FindMisspelledMethodName): Jikes bug 3613. (ReportVariableNotFound, FindMisspelledVariableName): Similar, but with fields. * src/semantic.h (FindMisspelledVariableName): Update signature. * src/error.cpp (FIELD_NOT_FOUND, METHOD_NOT_FOUND): Update wording. 2004-01-30 Eric Blake * src/bytecode.cpp (ConcatenateString): Jikes bug 3501. (EmitTryStatement): Minor optimization when catch block is empty. 2004-01-28 Chris Abbey * src/system.cpp (Control::ProcessExtDirs): Don't spew an error about invalid zip or jar for files that are obviously neither zip nor jar. 2004-01-28 Eric Blake * src/bytecode.h (IsMultiDimensionalArray): New method. * src/bytecode.cpp (DeclareLocalVariable), (EmitAssignmentExpression, EmitArrayAccessLhs): Use it; fully solves jikes bug 3295 (my last patch here missed some cases). (Bytecode): Robustify Chris's patch for class-file version. 2004-01-26 Eric Blake * src/init.cpp (ComputeFinalValue): Jikes bug 3797. * src/decl.cpp (ProcessClassBodyForEffectiveJavaChecks): Fix compiler warning. 2004-01-26 Chris Abbey * src/bytecode.cpp (ctor): use same class file versions for 1.4.2 as for 1.4, add output file version to debug verbose output. 2004-01-25 Chris Abbey * src/error.cpp (PrintNamedWarnings): indicate default states with +P (REDUNDANT_MODIFIER, RECOMMENDED_MODIFER_ORDER): remove from default +P set, must ask for these explicitly now. * src/error.h: * src/error.cpp: add a meta +P switch for all naming convention warnings * src/scanner.cpp: make the new l vs L warning pedantic 2004-01-25 Elliott Hughes * src/error.cpp (SemanticError::Report): fix +Z option * src/body.cpp: Ignore the unconventional constant field name 'serialVersionUID' which ought to be 'SERIAL_VERSION_UID', but has to be 'serialVersionUID' because of existing practice in class versioning. * src/control.h: * src/platform.cpp: * src/platform.h: Add 'serialVersionUID' symbol. * src/error.cpp: Improves the message for unconventional names. * src/decl.cpp: Ignore empty classes when suggesting private constructors for utility classes. * src/body.cpp: Warn about unconventional names, returning null instead of a zero-length array, empty catch and finally blocks, and overly general throws clauses. * src/control.h: Add 'equals' and 'hashCode' symbols. * src/semantic.h: * src/decl.cpp: Warn about unconventional names, overloaded equals methods, equals without hashCode and vice versa, use of Latin, utility classes without a private constructor, interfaces that don't define types, and public static final array fields. * src/error.cpp: * src/error.h: Add all the new errors. * src/lookup.cpp: * src/lookup.h: Add NameSymbol methods for finding unconventional names. * src/platform.cpp: * src/platform.h: Add 'equals' and 'hashCode' string constants. * src/scanner.cpp: Warn about use of l instead of L as a suffix. * src/stream.cpp: * src/stream.h: Add the "l instead of L" error. * src/system.cpp: Add 'equals' and 'hashCode' name symbols. * src/error.cpp: Change message string for INVALID_CAST_CONVERSION which was giving incorrect diagnostic output. * src/lookup.h: Fix spelling mistakes. 2004-01-24 Eric Blake * src/decl.cpp (FindTypeInEnvironment): Delete unused method. * src/error.cpp (METHOD_OVERLOAD_NOT_FOUND, METHOD_NOT_FOUND), (CONSTRUCTOR_NOT_FOUND, CONSTRUCTOR_OVERLOAD_NOT_FOUND): Improve wording and make more consistent. Fixes jikes bug 260. * src/expr.cpp (Header): New helper method. (ReportMethodNotFound): Use Header(). Consolidate with error reporting previously done... (FindMethodInEnvironment): ... here, to reduce code duplication. (ReportConstructorNotFound): Use Header(). (ProcessAmbiguousName, ProcessMethodName): Simplify call to Find*InEnvironment. * src/semantic.h (Find*InEnvironment): Update prototypes. 2004-01-24 Eric Blake * src/body.cpp (ProcessSwitchStatement): Make sure scope of local classes in switch statment is switch-statement block... (ProcessLocalVariableDeclarationStatement): while keeping local variables at the scope of the entire switch statement. * src/bytecode.h (MethodStack::Push, AssertIndex, NestingLevel): Update assertions to cooperate with switch statement scoping changes. * src/bytecode.cpp (EmitSwitchStatement): Fix regressions caused by over-optimization of switch statements. * NEWS: Document scoping change. 2004-01-23 Eric Blake * src/java.g: Add 'enum', '@', and '...' tokens in preparation for JDK 1.5. * src/dump.cpp (token_type): Add support for new tokens. * src/platform.h (US_AT, US_DOT_DOT_DOT, US_enum): Ditto. * src/platform.cpp: Ditto. * src/scanner.h (ClassifyDocComment, ClassifyPound): Remove unused declarations. (ClassifyAt): Add. * src/scanner.cpp (Scanner, ScanKeyword4, ClassifyIdOrKeyword), (ClassifyPeriod, ClassifyAt): Scan new keywords. Treat enum as identifier for now, with a warning. * src/stream.h (DEPRECATED_IDENTIFIER_ENUM): Add. * src/stream.cpp (getErrorMessage, KeywordName): Use. * NEWS: Document this. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javaprs.h: Ditto. * src/javasym.h: Ditto. 2004-01-22 Eric Blake * src/semantic.h (DefiniteLocalClassDeclarationStatement): Add. * src/definite.cpp (DefiniteLocalClassDeclarationStatement): Define, to detect definite assignment before local class declarations. * NEWS: Document this. 2004-01-21 Elliott Hughes * src/body.cpp (ProcessTryStatement): Better error report on duplicate declaration. * src/error.cpp (INVALID_CHARACTER_VALUE), (INVALID_CAST_CONVERSION): Fix typos. * src/error.h: Ditto. * src/lookup.h: Ditto. * src/semantic.h (ProcessClassFile): Fix prototype. 2004-01-21 Eric Blake * src/option.cpp (Option): Fix Windows fallout from const-ifying StringConstant. 2004-01-20 Eric Blake * src/bytecode.h (ArrayAccessLhs): Move to bytecode.cpp. * src/bytecode.cpp (DeclareLocalVariable), (EmitAssignmentExpression, EmitArrayAccessLhs): Emit checkcast when treating null as multidimensional array, since pre-1.5 VMs incorrectly choke on aastore. * NEWS: Document. 2004-01-19 Eric Blake * src/class.h: Backport improved .class file handling from generics branch. * src/class.cpp: New file in the backport, replaces... * src/getclass.h: Delete. * src/getclass.cpp: Delete. * src/Makefile.am: Replace getclass.cpp with class.cpp. * src/Makefile.in: Regenerate. * src/bytecode.h: Backport changes related to class.h. In the process, this solves core dump from double delete on JVMS jacks tests. * src/bytecode.cpp: Ditto. * src/op.h (OpLine, OpDmp): Ditto. * src/op.cpp: Ditto. * src/semantic.h: Ditto. * src/symbol.cpp: Ditto. * src/symbol.h: Backport the symbol table handling from generics branch, which provides better handling of symbols. * src/body.cpp (UncaughtException, GetLocalType): Use symbol.h updates. * src/decl.cpp (ProcessTypeNames, ProcessConstructorDeclaration), (AddDefaultConstructor, ProcessMethodDeclaration): Ditto. * src/expr.cpp (ReportConstructorNotFound, FindConstructor), (UpdateLocalConstructor, GetAnonymousConstructor): Ditto. * src/system.cpp (InitAssertionErrorInfo), (InitNoClassDefFoundErrorInfo, InitStringBufferInfo): Ditto. * src/access.h (LegalAccess): New function, backported. * src/control.h (GetType, ProcessPackage, GetPrimitiveType): const-ified. * src/control.cpp (ProcessPackage): Ditto. * src/error.h (WRONG_TYPE_IN_CLASSFILE): Replaces TYPE_NOT_IN_UNNAMED_PACKAGE and TYPE_IN_WRONG_PACKAGE. * src/error.cpp: Ditto. * src/platform.h: Added several needed String constants. * src/platform.cpp: const-ify. Initialize new constants. Reformat. 2004-01-17 Eric Blake * autogen.sh: Use depcomp. * src/Makefile.am: depcomp is more mature; we can quit manually tracking dependencies (thank heavens). * Makefile.in: Regenerate. * doc/Makefile.in: Ditto. * src/Makefile.in: Ditto. 2004-01-17 Eric Blake * src/semantic.h: Drop dependence on control.h (slight compilation speed improvement). * src/body.cpp (CheckedException): Move here from semantic.h. * src/depend.cpp (AddDependence, AddStringConversionDependence): Ditto. * src/expr.cpp (IsConstantTrue, IsConstantFalse), (ProcessExpressionOrStringConstant): Ditto. * src/definite.cpp: Dependency on control.h now explicit. * src/class.h: Ditto. 2004-01-17 Eric Blake * src/op.h: Backport improvements from generics-branch. Better opcode dumping, and only compiled when needed. * src/op.cpp: Ditto. * src/bytecode.h (EmitMethodInvocation, CompleteCall): Add need_value parameter and return stack effect. * src/bytecode.cpp: Adjust all callers. 2004-01-16 Eric Blake * src/body.cpp (ProcessThrowStatement): Fallout from yesterday - throwing null cannot make checked exception catch reachable. * src/expr.cpp (MoreSpecific): From Sun bug 4761586, no longer consider the declaring type when deciding method ambiguity. * src/error.cpp (InitializeMessages): Update error message wording accordingly. * NEWS: Document this. 2004-01-15 Eric Blake * src/semantic.h (CheckedException): From Java Spec Report, throw null is unchecked. * NEWS: Document this. 2004-01-14 Eric Blake * src/expr.cpp (ReportMethodNotFound): Improve error message when accessing interface.clone(); it regressed from 1.18. * src/config.h.in: Regenerate (missed checking this in yesterday). 2004-01-13 Eric Blake * src/m4/ac_check_error_discard_const.m4: Further autoconf fixes; again, use AC_LANG_PROGRAM instead of AC_LANG_SOURCE. * src/m4/ac_check_iconv.m4: Ditto. * src/m4/ac_check_wcs_funcs.m4: Ditto. * src/m4/ac_cxx_bool.m4: Ditto. * src/m4/ac_cxx_check_ostream_const_unsigned_char_ptr.m4: Ditto. * src/m4/ac_cxx_check_set_new_handler.m4: Ditto. * src/m4/ac_cxx_const_cast.m4: Ditto. * src/m4/ac_cxx_dynamic_cast.m4: Ditto. * src/m4/ac_cxx_explicit.m4: Ditto. * src/m4/ac_cxx_have_std.m4: Ditto. * src/m4/ac_cxx_member_constants.m4: Ditto. * src/m4/ac_cxx_namespaces.m4: Ditto. * src/m4/ac_cxx_reinterpret_cast.m4: Ditto. * src/m4/ac_cxx_rtti.m4: Ditto. * src/m4/ac_cxx_static_cast.m4: Ditto. * src/m4/ac_try_encoding.m4: Ditto. * src/m4/acx_check_pathname_style.m4: Ditto. * configure: Regenerate. 2004-01-10 Eric Blake * src/m4/ac_cxx_check_set_new_handler.m4: More autoconf fixes; use AC_LANG_PROGRAM not AC_LANG_SOURCES. * configure: Regenerate with patched autoconf 2.59 (see http://mail.gnu.org/archive/html/autoconf-patches/2004-01/msg00033.html), so that autoconf -Wall is warning-free. * NEWS: Start filling in, to prepare for jikes 1.19. 2004-01-07 Eric Blake * doc/jikes.1: Add defaults to options with arguments. Bump copyright year. (-source): Bump default to 1.4. (-target): Bump default to 1.4.2. * src/jikes.cpp (main): Add defaults to options with arguments. * src/option.cpp (Option): Bump default for -source and -target. * src/platform.cpp (U8S_help_header): Bump copyright year. 2004-01-02 Eric Blake * autogen.sh: Add --copy to automake invocation. * configure.ac: Clean up autoconf -Wall warnings. Remove unused checks for max int sizes. * src/platform.h: Remove unused USHRT_MAX checks. * src/m4/ac_check_error_discard_const.m4: Clean up autoconf -Wall warnings. * src/m4/ac_check_iconv.m4: Ditto. * src/m4/ac_check_mathlib.m4: Ditto. * src/m4/ac_check_wcs_funcs.m4: Ditto. * src/m4/ac_cxx_bool.m4: Ditto. * src/m4/ac_cxx_check_ostream_const_unsigned_char_ptr.m4: Ditto. * src/m4/ac_cxx_check_set_new_handler.m4: Ditto. * src/m4/ac_cxx_const_cast.m4: Ditto. * src/m4/ac_cxx_dynamic_cast.m4: Ditto. * src/m4/ac_cxx_explicit.m4: Ditto. * src/m4/ac_cxx_have_std.m4: Ditto. * src/m4/ac_cxx_member_constants.m4: Ditto. * src/m4/ac_cxx_namespaces.m4: Ditto. * src/m4/ac_cxx_reinterpret_cast.m4: Ditto. * src/m4/ac_cxx_rtti.m4: Ditto. * src/m4/ac_cxx_static_cast.m4: Ditto. * src/m4/ac_try_encoding.m4: Ditto. * Makefile.in: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/config.h.in: Regenerate. 2003-12-29 Eric Blake * Makefile.am (INCLUDED_M4_FILES): Delete, (ACLOCAL_AMFLAGS): Add. Let automake 1.8 do the work. * NEWS: Add a blurb, for testing 'make dist'. * acinclude.m4: Delete; now done by automake. * autogen.sh: Update to match latest auto-toolchain. * configure.ac (AC_INIT): Bump version to 1.18c. (AM_INIT_AUTOMAKE): Require automake 1.8. (AC_PREREQ): Require autoconf 2.59. * src/stamp-h.in: Delete, not needed in CVS. * Makefile.in: Regenerate. * aclocal.m4: Ditto. * config.guess: Ditto. * config.sub: Ditto. * configure: Ditto. * depcomp: Ditto. * install-sh: Ditto. * missing: Ditto. * mkinstalldirs: Ditto. * doc/Makefile.in: Ditto. * src/Makefile.in: Ditto. * src/config.h.in: Ditto. * src/m4/ac_check_error_discard_const.m4: Properly quote AC_DEFUN, because automake 1.8 requires it. * src/m4/ac_check_iconv.m4: Ditto. * src/m4/ac_check_mathlib.m4: Ditto. * src/m4/ac_check_wcs_funcs.m4: Ditto. * src/m4/ac_cxx_bool.m4: Ditto. * src/m4/ac_cxx_check_ostream_const_unsigned_char_ptr.m4: Ditto. * src/m4/ac_cxx_check_set_new_handler.m4: Ditto. * src/m4/ac_cxx_exceptions.m4: Ditto. * src/m4/ac_cxx_have_std.m4: Ditto. * src/m4/ac_cxx_namespaces.m4: Ditto. * src/m4/ac_find_encoding.m4: Ditto. * src/m4/ac_try_encoding.m4: Ditto. * src/m4/acx_check_pathname_style.m4: Ditto. 2003-12-29 Paul * jikes.spec: Improve the spec file, in part for better Red Hat use - patches 416, 417. * doc/Makefile.am (docdir): Documentation belongs in $(datadir). 2003-12-24 Eric Blake * src/bytecode.h (CompileConstructor): Add parameter. * src/bytecode.cpp (GenerateCode): Remove unused variables, track constant instance variables. (CompileConstructor): Initialize constant instance variables sooner, compliant with JLS 13.1. * src/decl.cpp (MustFindNestedType): More error checking. (InitializeVariable): Don't initialize instance constants in instance initializer, since they are done earlier in constructor. 2003-10-13 Eric Blake * src/bytecode.cpp (EmitBinaryExpression): Avoid dead code caused in previous version of patch. 2003-10-11 Eric Blake * src/bytecode.cpp (EmitBinaryExpression): Evaluate left branch of otherwise unused && and || - bug 3488. 2003-10-06 Eric Blake * src/ast.h (AstWhileStatement, AstDoStatement, AstForStatement): Change loop bodies to always be blocks (resolves bug 3587). * src/ast.cpp: Use updates. * src/body.cpp (ProcessWhileStatement, ProcessDoStatement), (ProcessForStatement, ProcessContinueStatement): Ditto. (ProcessTryStatement): Undo old hack for try statements fixed by this update. * src/bytecode.cpp (EmitStatement): Use updates. * src/bytecode.h (Label::~Label): Add, to prevent regressions. * src/definite.cpp: Use updates. * src/java.g (MakeBlock): New function, use to implement AST updates. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/parser.h: Use updates. 2003-10-03 Eric Blake * src/body.cpp: Formatting. * src/decl.cpp: Ditto. * src/error.cpp: Ditto. * src/symbol.cpp: Ditto. * src/symbol.h: Ditto. 2003-10-01 Eric Blake * src/symbol.h (MethodSymbol::file_location), (VariableSymbol::file_location): Initialize to NULL - fix regressions in patch on June 29. 2003-09-27 Eric Blake * src/case.h (IsAsciiAlpha, StringEqual): Removed compiler warnings. * src/op.cpp (OpDesc): Ditto. 2003-09-27 Eric Blake * src/m4/ac_cxx_type_equivalence.m4: New file, needed for at least gcc 3.3 on cygwin. * Makefile.am: Add dependence on ac_cxx_type_equivalence.m4. * acinclude.m4: Ditto. * configure.ac: Require automake 1.7.6, and rename from configure.in as recommended by automake. * Makefile.in: Regenerate. * aclocal.m4: Ditto. * config.guess: Ditto. * config.sub: Ditto. * configure: Ditto. * depcomp: Ditto. * install-sh: Ditto. * doc/Makefile.in: Ditto. * src/Makefile.in: Ditto. * src/config.h.in: Ditto. * src/platform.h: Add TYPE_I4_IS_INT to clean up type warnings. * src/case.h: Fix type warnings under gcc 3.3. * src/double.cpp: Ditto. * src/double.h: Ditto. * src/long.h: Ditto. * src/lookup.cpp: Ditto. * src/lookup.h: Ditto. * src/stream.cpp: Ditto. 2003-06-29 Musachy Barroso * src/body.cpp: * src/decl.cpp: * src/error.cpp: * src/symbol.cpp: * src/symbol.h: On duplicated field or local variable error message, add location of original field or local variable declaration. 2003-06-29 Musachy Barroso * src/decl.cpp: * src/error.cpp: * src/symbol.cpp: * src/symbol.h: When a duplicate method or constructor is found, add information(location) about the original method or constructor declaration to the error message 2003-05-31 Eric Blake * src/case.h: * src/getclass.cpp: Fix comparisons between wchar_t and int to avoid warnings. 2003-05-15 Chris Abbey * Makefile.in: add HACKING file to dist list 2003-04-18 Eric Blake * src/case.h: * src/java.g: Fix typos. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: Regenerate, and with updated version of jikespg. 2003-04-10 Eric Blake * src/ast.h: * src/error.h: Fix implicit destructor warning in gcc 3.3+. * src/case.h: Fix array reference warning in gcc 3.3+. * src/getclass.h: Fix empty class warning in gcc 3.3+. * src/set.h: Workaround for gcc PR c++/10347. 2003-03-28 Eric Blake * Makefile.am: Allow maintainer mode to detect changes in src/m4. * configure.in: Check for touch, for maintainer mode. * src/Makefile.am: Fix maintainer mode dependence. * src/symbol.cpp: * src/system.cpp: Remove compiler warning. * src/m4/ac_check_wcs_funcs.m4: Fix to work with -Werror. * Makefile.in: * configure: * doc/Makefile.in: * src/Makefile.in: Regenerate. 2003-03-24 Eric Blake * configure.in: Update to automake 1.7.3. * src/m4/ac_cxx_check_set_new_handler.m4: Fix typo. * Makefile.in: * aclocal.m4: * config.guess: * config.sub: * configure: * depcomp: * doc/Makefile.in: * src/Makefile.in: * src/config.h.in: Regenerate. 2003-03-02 Elliott Hughes * src/diagnose.cpp: * src/stream.cpp: (emacsErrorString, regularErrorString): improve consistency between the emacs and regular error output by ensuring that both kinds contain both a type such as "Lexical" or "Syntax" and a severity. 2003-02-18 Jan Ploski * src/dump.cpp: Fix segfault with +c +L and files that don't start with a comment. bug #3519 - regresion tested by Max Horn 2002-12-18 Eric Blake * src/platform.h (IntToString, LongToString): Backport from generics-branch. * src/expr.cpp: * src/platform.cpp: Use updated tostring classes. * configure.in: Bump version number. * src/Makefile.am: Improve compile dependences. * Makefile.in: * aclocal.m4: * config.guess: * config.sub: * configure: * install-sh: * doc/Makefile.in: * src/Makefile.in: Regenerate with newer autotools versions. 2002-12-13 Eric Blake * src/getclass.cpp (ProcessClassFile): Fix segfault when class file has invalid (or missing) supertype - bug 3404. 2002-12-10 Eric Blake * src/platform.cpp (DoubleToString): * src/op.cpp (OpLine, OpDmp): Fix regressions in last commit. 2002-12-10 Eric Blake * src/tuple.h: Backport and improve generics-branch handling of tuples; length is now unsigned instead of int. * src/access.h: * src/ast.h: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/class.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/diagnose.cpp: * src/double.h: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/getclass.cpp: * src/incrmnt.cpp: * src/jikesapi.cpp: * src/long.h: * src/lookup.cpp: * src/lookup.h: * src/platform.cpp: * src/platform.h: * src/scanner.cpp: * src/segment.cpp: * src/segment.h: * src/semantic.h: * src/set.cpp: * src/set.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/table.h: Changes associated with tuples; more const-safety. 2002-12-10 Eric Blake * src/ast.cpp: * src/ast.h: * src/control.h: * src/diagnose.cpp: * src/error.cpp: * src/expr.cpp: * src/jikesapi.cpp: * src/lookup.cpp: * src/lookup.h: * src/parser.cpp: * src/segment.cpp: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/tuple.h: Silence HP compiler warnings introduced in prior patch. Also, change memmove to more efficient memcpy where legal. 2002-12-09 Eric Blake * src/ast.h (AstName): Another back-port from generics-branch. * src/java.g (*NotName): Backport the grammar changes that allow better parsing of casts, necessary for AstName. * src/ast.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/diagnose.cpp: * src/dump.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/incrmnt.cpp: * src/lookup.cpp: * src/lookup.h: * src/parser.h: * src/scanner.cpp: * src/scanner.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/unparse.cpp: Changes associated with those in the AST. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javasym.h: Regenerate. 2002-12-07 Eric Blake * configure.in: * src/m4/ac_cxx_bool.m4: * src/m4/ac_try_encoding.m4: Remove warnings, to allow configuration with CXXFLAGS='-W -Werror'. * configure: Regenerate. 2002-12-06 Eric Blake * src/ast.h: Code cleanup. * src/definite.cpp (DefiniteMethodBody): Fix regression in last commit. 2002-12-06 Eric Blake * src/ast.h (AstBrackets, AstModifiers, AstArguments): Consolidate common code into fewer locations. * src/ast.cpp: * src/body.cpp: * src/bytecode.cpp: * src/decl.cpp: * src/definite.cpp: * src/expr.cpp: * src/java.g: * src/modifier.cpp: * src/parser.cpp: * src/parser.h: * src/semantic.h: * src/symbol.cpp: * src/unparse.cpp: Use modifications to Ast tree. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: Regenerate. 2002-12-06 Elliott Hughes * src/stream.cpp (ReadInput, RereadInput): * src/symbol.h (buffer): Remove dead code pertaining to buffer files, whatever they were. 2002-12-06 Chris Dennis * src/control.cpp (ProcessBodies): Fix compile error in Windows. 2002-12-05 Eric Blake * src/ast.h (AstDeclaredType, AstInitializerDeclaration): More AST backporting from generics-branch. Also change all Num* methods to return unsigned counts, instead of int. * src/Makefile.am: * src/ast.cpp: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/class.h: * src/control.cpp: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/getclass.cpp: * src/init.cpp: * src/java.g: * src/modifier.cpp: * src/parser.cpp: * src/parser.h: * src/semantic.h: * src/spell.h: * src/symbol.cpp: * src/symbol.h: * src/unparse.cpp: Associated back-ports. Also fix all compiler warnings. * src/Makefile.in: * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: Regenerate. 2002-12-04 Eric Blake * src/ast.h (AstType, AstInstanceofExpression, AstClassLiteral): Backport abstract syntax tree improvements from generics-branch. * src/java.g: Backport grammar improvements from generics-branch, now allowing LALR(1) instead of LALR(2) parsing. * src/ast.cpp * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/decl.cpp: * src/definite.cpp: * src/expr.cpp: * src/modifier.cpp: * src/parser.cpp: * src/parser.h: * src/semantic.h: * src/symbol.cpp: * src/unparse.cpp: Backport changes associated with AST update. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: Regenerate. 2002-12-02 Eric Blake * src/bytecode.cpp (InitializeArray): Fix bug 3399. 2002-12-02 Eric Blake * src/bytecode.h (EmitBinaryExpression, ConcatenateString), (AppendString): Add need_value argument to emit less code. * src/bytecode.cpp (EmitBinaryExpression): Fix logic in evaluation of a||true, bug 3398. 2002-11-30 Eric Blake * src/bytecode.cpp (EmitSwitchStatement): * src/body.cpp (ProcessSwitchStatement): Fix regression in switch statements from recent commit. 2002-11-27 Eric Blake * src/ast.h: * src/ast.cpp (Clone): Remove covariance, for the sake of our friends at Microsoft who don't believe in standards. 2002-11-27 Eric Blake * doc/jikes.1 (+a): New option to omit asserts. (-target, -source): * src/jikes.cpp: Improve documentation to match new behavior. * src/body (ProcessAssertStatement): * src/bytecode.cpp (CompileClass, EmitAssertStatement), (GenerateAssertVariableInitializer): Update to allow forward compatibility to old VMs with proper command line options. * src/error.h: * src/error.cpp (ASSERT_UNSUPPORTED_IN_TARGET): New error. * src/jikesapi.h (SDK1_4_2, SDK1_5): New Java release levels. * src/option.cpp: * src/option.h: Add long names for sevaral +options, improve handling of +a, -source, -target. * src/semantic.h: Fix typo. 2002-11-26 Eric Blake * src/ast.h (Ast): Remove unnecessary destructors (Ast nodes are allocated from a storage pool; hence reclaiming the pool reclaims all the nodes at once rather than using destructors). * src/ast.cpp: * src/unparse.cpp: Remove pure virtual method implementations. * src/bytecode.h (CompileConstructor, GenerateClassAccessMethod): Remove dead parameters. * src/bytecode.cpp (EmitSwitchStatement): Remove dead comment. * src/double.h (operator++, operator--): * src/long.cpp (operator++, operator--): * src/scanner.cpp (ScanKeyword0): * src/unzip.cpp (UncompressFile*): * src/op.h (OpLine): * src/op.cpp: * src/class.h (Print, Describe): Remove dead parameters. * src/definite.cpp (DefiniteDefault*): Move to... * src/semantic: Here. (DefiniteDefaultStatement): Rename from DefiniteEmptyStatement. (DefiniteBlockStack): Remove dead parameter. 2002-11-26 Eric Blake * doc/jikes.1 (-Xswitchcheck): Document new option added for javac compatibility - patch 374. * src/ast.h (AstSwitchLabel): Consolidate AstCaseLabel and AstDefaultLabel into one class. (CaseElement, AstSwitchStatement): Rework the sorting and storage of labels to allow for better emission of switch statements. (Clone()) Partial backport of covariant clone method from generics-branch. * src/bytecode.cpp (EmitSwitchStatement): Optimize simple forms of switch statements. (EmitSwitchBlockStatement, CloseSwitchLocalVariables): New methods. * src/error.h (SemanticError::WarningLevel) Increase capabilities, to allow more flexibility with named warnings. (SemanticError::NamedError) Move here from error.cpp. (SWITCH_FALLTHROUGH): New warning message. * src/error.cpp (EnableDefaultWarnings): Improve handling of named warnings. * src/option.cpp: Add support for -Xswitchcheck (and +Pswitchcheck). * src/semantic.h (SemanticStack): Consolidate ExceptionTableStack, StatementStack, and NestingLevelStack into one typesafe template. (ReportSemError): Add version that takes single AST node. * src/double.h (Fraction): Silence compiler warning. * src/stream.cpp (getErrorMessage): Fix formatting. * src/ast.cpp: * src/body.cpp (ProcessSwitchStatement): * src/bytecode.h: * src/decl.cpp: * src/definite.cpp: * src/java.g: * src/modifier.cpp: * src/parser.cpp: * src/parser.h: * src/symbol.cpp: * src/unparse.cpp: Update to changes in AST and semantic. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: Regenerate. 2002-11-25 Eric Blake * configure.in: Bump version following the 1.18 release. * configure: * src/config.h.in: Regenerate. * src/ast.h (DYNAMIC_CAST<>) Move to... * src/platform.h: Here. Fix up includes of standard headers. 2002-11-21 Eric Blake * 1.18 release. 2002-11-18 Eric Blake * NEWS: * jikes.spec: * configure.in: Prepare for releasing 1.18. * configure: Regenerate. 2002-11-16 Eric Blake * src/definite.cpp (DefiniteBlock): Don't mark variables declared in a loop with continue as multiply assigned - bug 3306. 2002-11-14 Eric Blake * COPYING: Revert - Jikes is not under the GPL. * autogen.sh: * configure.in (AM_INIT_AUTOMAKE): Fix so that COPYING will not be overwritten again. * Makefile.in: * doc/Makefile.in: * src/Makefile.in: Regenerate. 2002-11-14 Eric Blake * src/Makefile.in: Regenerate after fixing a bug in automake 1.7.1 - see patch 371. 2002-11-12 Eric Blake * configure.in: Modify version, update to autoconf 2.54 and friends. * src/m4/ac_cxx_bool.m4: * src/m4/ac_cxx_check_set_new_handler.m4: * src/m4/ac_cxx_const_cast.m4: * src/m4/ac_cxx_dynamic_cast.m4: * src/m4/ac_cxx_exceptions.m4: * src/m4/ac_cxx_explicit.m4: * src/m4/ac_cxx_have_std.m4: * src/m4/ac_cxx_member_constants.m4: * src/m4/ac_cxx_namespaces.m4: * src/m4/ac_cxx_reinterpret_cast.m4: * src/m4/ac_cxx_rtti.m4: * src/m4/ac_cxx_static_cast.m4: Update obsolete autoconf-isms. * COPYING: * INSTALL: * aclocal.m4: * config.guess: * config.sub: * configure: * depcomp: * install-sh: * missing: * mkinstalldirs: * Makefile.in: * doc/Makefile.in: * src/config.h.in: * src/Makefile.in: Regenerate. 2002-11-11 Eric Blake * src/symbol.h (ContainingPackageName): New method. * src/body.cpp: * src/bytecode.cpp: * src/control.cpp: * src/decl.cpp: * src/definite.cpp: * src/expr.cpp: * src/init.cpp: * src/symbol.cpp: * src/system.cpp: Use the method. 2002-11-09 Eric Blake * src/bytecode.cpp (AppendString): String concatenation broken when using (int)char - bug 3363. * src/expr.cpp (ProcessAmbiguousName): Another case of placeholder_type assertion - bug 3359. 2002-11-09 Chris Dennis * src/error.cpp (InitializeMessages): For loop variables (again). 2002-11-07 Eric Blake * src/error.cpp (NotDot): Fix logic. 2002-11-06 Eric Blake * src/error.h: * src/error.cpp (FILE_FILE_CONFLICT): Restore error I accidentally deleted in last patch. 2002-11-05 Elliott Hughes * src/error.cpp: * src/error.h: Massive rewrite. Use printf style strings and consolidate formatting into common routines. Improves output of filenames, and adds some infrastructure for naming (and thus suppressing) arbitrary errors - based on patch 368. (ErrorString::Array): Fix a memory leak. * src/body.cpp: * src/diagnose.h: * src/diagnose.cpp: * src/jikes.cpp: * src/jikesapi.h: * src/modifier.cpp: * src/option.cpp: * src/option.h: * src/semantic.h: * src/stream.cpp: * src/stream.h: * doc/jikes.1: Fallout from the error changes. More const safety, slight changes to command line arguments. * src/Makefile.am: Update dependences. * src/Makefile.in: Regenerate. 2002-11-02 Eric Blake * src/semantic.h (class Semantic): Fix prototype. 2002-11-02 Eric Blake * src/modifier.cpp (ProcessAccessFlag): Overdid last commit - restore behavior of pedantic_modifier_order. 2002-11-02 Eric Blake * src/expr.cpp (ReportConstructorNotFound, ProcessTypeExpression), (GetAnonymousType): Minor touchups. * src/bytecode.cpp (ByteCode): Move ACC_SUPER logic here... * src/class.h (class ClassFile): from here, since modifier.cpp should not implicitly set it. 2002-11-02 Elliott Hughes * src/access.h: Helper functions for the changes to modifier.cpp. * src/error.cpp: * src/error.h: Consolidate some modifier error messages. * src/modifier.cpp: Removal of duplicate code, regularization of checking. * src/semantic.h (ReportSemError) A new form for the common case where there's only a single token involved, not a span. (ProcessAccessFlag) New prototype. 2002-10-31 Eric Blake * src/unparse.cpp (Unparse): Fix unparse output typo. 2002-10-28 Eric Blake * src/error.cpp (PrintCATCH_ARRAY_TYPE): Fix typo. * src/body.cpp (ProcessTryStatement): Detect array catch types, and reduce spurious catch clause duplication warnings - bug 3343. 2002-10-14 Eric Blake * src/body.cpp (ProcessExecutableBodies): Pedantic warning for strange interface throws clauses - bug 3232. * src/expr.cpp (ProcessTypeExpression), (ProcessClassInstanceCreationExpression): Catch bad types that were found in right file but have invalid contents - bugs 3318, 3319. * src/error.h: * src/error.cpp (INVALID_TYPE_FOUND): New error message. * src/symbol.cpp (GetArrayType): Don't make array of bad type. 2002-10-14 Eric Blake * src/expr.cpp (GetAnonymousType): Avoid segfault on bad anonymous class - bug 3322. 2002-10-14 Eric Blake * src/decl.cpp (ReadType): Always report when a type is not found - solves core dumps reported in bug 3319. 2002-10-14 Eric Blake * src/expr.cpp (CanCastConvert): Fix recognition of incompatible casts between classes - bug 3320. 2002-10-10 Eric Blake * src/scanner.cpp (ScanKeyword7): Fix fallthrough that treated "befault" as a keyword. 2002-10-07 Eric Blake * src/m4/ac_define_integer_bits.m4: New file. * acinclude.m4: Include it. * configure.in: Determine types of exact bitwidths required. * src/Makefile.am: Update file dependencies. * aclocal.m4: * configure: * Makefile.in: * doc/Makefile.in: * src/Makefile.in: * src/config.h.in: Regenerate. * src/platform.h (i1, i2, i4, i8, u1, u2, u4, u8): Use types of known size. * src/ast.h: * src/bytecode.h: * src/class.h: * src/control.h: * src/error.h: * src/option.h: * src/platform.h: * src/scanner.h: * src/semantic.h: * src/set.h: * src/stream.h: * src/symbol.h: Optimize to include fewer unnecessary headers; helping to speed compilation time slightly. * src/ast.cpp (CaseElement::Value, AstExpression::Type): * src/body.cpp: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/diagnose.cpp: * src/error.cpp (Semantic::PrintMessages, class ErrorString): * src/expr.cpp: * src/getclass.cpp: * src/jikesapi.cpp: * src/modifier.cpp: * src/option.cpp: * src/platform.cpp: * src/scanner.cpp: * src/stream.cpp (RightColumn, NameString, NameStringLength), (LineLength, LineSegmentLength, FindColumn): * src/symbol.cpp (IsClassSuffix, IsJavaSuffix): * src/system.cpp: Include necessary headers, and move some code around to avoid dependencies. 2002-10-04 Eric Blake * src/symbol.cpp (GetReadAccessConstructor): Avoid bug when accessor constructor is created during final field evaluation - bug 3310. * src/ast.h (AstBreakStatement, AstContinueStatement): Initialize nesting_level, to avoid coredump found on generics-branch. 2002-10-02 Eric Blake * src/bytecode.cpp (EmitConditionalExpression): Fix verifyerror in non-boolean ?: expressions - bug 3311. 2002-09-27 Chris Abbey * 1.17 release. 2002-09-25 Andrew M. Inggs * src/m4/ac_try_encoding.m4: Use positive return values to avoid a bug on MSYS (Mingw native build system) where negative return values are seen as 0 at the shell level. * configure: regen (by cabbey) * src/stream.cpp (DecodeNextCharacter): If byte-swapping is needed, swap bytes in var next and not those pointed to by chp (since chp is modified by calls to iconv). 2002-09-13 Alan Donovan * src/symbol.cpp (ReadDirectory): Ignore unreadable files (such as broken links) - bug 3207. 2002-09-11 Eric Blake * src/double.cpp (IEEEfloat(LongInt)): Fix bug in (float)long - bug 3272. 2002-09-11 Eric Blake * src/bytecode.h: * src/bytecode.cpp (InitializeArray, EmitArrayCreationExpression): Allow for discarded creation in instanceof - bug 3267. (EmitBranchIfExpression, EmitConditionalExpression): Further optimizations of ?:, including a fix for VerifyError - bug 3271. (EmitCastExpression, StripNops): Elide further unnecessary widening casts. * src/decl.cpp (CheckMethodOverride): More covariance. * src/error.h (InClone): New method. * src/expr.cpp (GetAnonymousType): In context of a clone, do not process anonymous classes - bug 3273. (CanMethodInvocationConvert, CanAssignmentConvertReference), (CanCastConvert): Simplify type comparison checks. * src/symbol.h (IsSubtype): New method. 2002-09-09 Eric Blake General type-handling improvements, including bug 413, 426: * src/decl.cpp (ProcessTypeNames): Allow java.java in the unnamed package, which does not have subpackages. (FindTypeInShadow): Find only accessible types. (FindNestedType): Return only accessible types, without error if none exists. (ReadType): Look for clash with package on failure. (ProcessImportQualifiedName): Improve type searching. (ProcessPackageOrType): Improve searching, along with error messages when not found. (ImportType): Return any imported type, accessible or not. (FindType): Find only accessible types. (MustFindType): Improve error messages when types are not found. * src/error.h: * src/error.cpp (PACKAGE_NOT_TYPE): New error. * src/semantic.h: * src/expr.cpp (SimpleNameAccessCheck, TypeNestAccessCheck): Delete dead code. (TypeAccessCheck): Change to a silent check. 2002-09-05 Eric Blake * src/semantic.h: * src/decl.cpp (FindTypeInLayer): Delete dead code. (MustFindType): Perform type access check even when loading from CLASSPATH, to fix some jacks results. (CheckMethodOverride): * src/getclass.cpp (ProcessClassFile): Add limited support for covariance in .class files - bug 3088. * src/error.h: * src/error.cpp (CONSTRUCTOR_OVERLOAD_NOT_FOUND): New error. * src/expr.cpp (ReportConstructorNotFound): Improve to report about access and overload problems. 2002-09-03 Eric Blake * src/expr.cpp (FindMethodInEnvironment, FindVariableInEnvironment): Reduce shadowing warnings to pedantic level - bugs 119, 324, 2145. * src/decl.cpp (FindType): According to Neal Gafter, inherited member types shadow the current type. * src/error.h: * src/error.cpp (INHERITANCE_AND_LEXICAL_SCOPING_CONFLICT_WITH_TYPE): Add a caution to detect this case (which is opposite C++). 2002-09-03 Eric Blake * src/decl.cpp (ProcessTypeHeader, ProcessTypeHeaders), (ComputeTypesClosure): Make member types visible early enough. (ProcessSingleTypeImportDeclaration): Create place-holder type for bad imports to silence further errors. (FindNestedType): Check for inaccessible nested types before reporting type not found. * src/semantic.h (AddDependence): Check for bad types. * src/expr.cpp (ProcessMethodName, GetAnonymousType), (ProcessClassInstanceCreationExpression): * src/body.cpp (ProcessTryStatement): Silence chain-reaction error messages when try block contains semantic error - bug 670. * src/error.h: * src/error.cpp (DUPLICATE_IMPORT_NAME), (ANONYMOUS_TYPE_CANNOT_OVERRIDE_DEFAULT_ABSTRACT_METHOD): New error messages. 2002-08-29 Eric Blake * src/expr.cpp (ReportMethodNotFound, FindMethodInType), (ProcessMethodName, FindMethodMember): * src/decl.cpp (CompleteSymbolTable, CheckMethodOverride), (AddInheritedMethods): Allow for multiple inheritance of abstract methods, including when one of the set is not public - bug 3253. * src/error.h: * src/error.cpp (UNIMPLEMENTABLE_CLASS): New caution. 2002-08-29 Eric Blake * src/error.h: * src/error.cpp (*_THROWS_CLAUSE_CLASS): New pedantic warnings. * src/semantic.h (CheckThrow): * src/body.cpp (CheckThrow): Improve to give pedantic warnings regarding throws clauses - bug 3232. (ProcessMethodBody, ProcessConstructorBody): Use new features. 2002-08-28 Elliott Hughes * src/set.h (primes): g++ 3.1 on Mac OS X 10.2 has trouble with static arrays in template classes; avoid these and remove duplication of hash-resizing code as a side-effect - patch 349. 2002-08-28 Eric Blake * src/expr.cpp (FindMethodMember): One more case of bug 3240. (ProcessClassInstanceCreationExpression): * src/body.cpp (UncaughtExceptionContext): Fix error messages. * src/init.cpp (ComputeFinalValue): Provide correct context for evaluating final variables - bug 3245. 2002-08-26 Eric Blake * src/symbol.cpp (GetWriteAccessMethod, GetReadAccessMethod): Special case access of field via classname.super. * src/expr.cpp (FindMethodMember, FindVariableMember): Check for accessor methods required for classname.super when inner class and enclosing class extend same superclass - bug 3240. 2002-08-26 ?? * src/option.cpp (Option): Fix bad logic with drive letters in -d for Windows - bug 3238. 2002-08-26 Eric Blake * src/symbol.cpp (BlockSymbol): * src/body.cpp (ProcessTryStatement), (ProcessSynchronizedStatement): Fix bug when multiple synchronized statements appear in static method with no params - bug 3205. * src/decl.cpp: Fix typo in last commit. 2002-08-26 Eric Blake * src/decl.cpp (ProcessTypeHeader, ProcessInterface), (ProcessTypeHeaders): Fix inner classes subclassing something in the same .java file - bug 3202. * src/scanner.cpp (ScanSlashComment): Comment dead code. * src/stream.h (LAST_CHARACTER_NOT_NEWLINE): New warning. * src/stream.cpp (ProcessInputAscii, ProcessInputUnicode): Give pedantic warning if file doesn't end in \n (or its variants). 2002-08-22 Eric Blake * src/scanner.cpp (ScanSlashComment): Revert change that gave error on //EOF, based on Sun bug 4386773. 2002-08-21 Eric Blake * src/bytecode.cpp (StripNops): Minor bytecode optimization - assignment conversion to superinterfaces was emitting useless checkcast. 2002-08-15 Eric Blake * src/error.cpp: * src/error.h (TYPE_NOT_PRIMITIVE, TYPE_NOT_VALID_FOR_SWITCH), (TYPE_NOT_CONVERTIBLE_TO_SWITCH_TYPE): Delete. (TYPE_NOT_*): Improve wording. * src/body.cpp: Use improved error wording. (ProcessSwitchStatement): Improve handling of sub-integer cases. (ProcessThisCall, ProcessSuperCall): Detect void arguments to constructors. * src/semantic.h (BinaryNumericPromotion): New method, to collapse common code from existing 3 overloads. * src/expr.cpp (Process*): General cleanup: detect more cases of void subexpressions, don't cause errors in outer expression if inner one was bad, use improved error wording, improve formatting. (ProcessEQUAL_EQUAL, ProcessNOT_EQUAL): Fix problems when void or reference types compared - bug 3201. (ProcessConditionalExpression): Fix problems with sub-integer cases in ?:. * src/bytecode.cpp (DefineLabel): Undo optimization of goto next bytecode when local variable table is created, as that was the cause of bug 3212. (VariableTypeResolution): Add -target 1.4 control to static fields of interfaces, bug 3218. (EmitConditionalExpression): Fix bug in cond?0:-0.0. 2002-08-06 Eric Blake * src/lookup.h (Hash): Improve hash function for strings. * src/lookup.cpp: Use improved hashing for compilation speed-up on large number of classes with similar string constants (for example, the code in bug 222). 2002-08-06 Eric Blake * src/ast.h: * src/bytecode.cpp: Formatting. (EndMethod): Fix assertion with oversize method body. * src/decl.cpp (GetStaticInitializerMethod), (ProcessInstanceInitializers): Assign return type to generated methods to avoid coredump with oversize initializer body. 2002-08-05 Eric Blake * src/ast.cpp (AstClassBody::Clone): Correctly clone. * src/bytecode.h (last_parameter_index): * src/expr.cpp (ProcessCastExpression): * src/semantic.h: * src/symbol.h (initializer_constructors): * src/symbol.cpp: * src/ast.h (CHECK_AND_CAST): Delete dead code. (AstMethodBody, AstSwitchBlock): * src/parser.cpp (Initializer): * src/unparse.cpp: Fix unparsing bugs, related to switch blocks and instance initializers. * src/error.cpp: * src/bytecode.cpp: Add more JVMS violation tests, for array dimensions and method parameter count. (EmitCastExpression): Improve to handle all casts within a single method. * src/segment.h: * src/segment.cpp: Fix constant pool overflow - bug 222. 2002-08-02 Eric Blake * src/bytecode.h (EmitCheckForNull): * src/bytecode.cpp (EmitCheckForNull, EmitSuperInvocation), (LoadVariable, EmitInstanceCreationExpression): Fix two corner cases of null checks - bugs 2991, 3170. 2002-08-02 Eric Blake Overhaul line ending and error message output. Solves bug 2879, and makes errors more unified in appearance. * src/gencode.java (IsNewline): Redefine. (IsWhitespace): New category, necessary for @deprecated - bug 519. * src/code.cpp: * src/code.h: Regenerate. * src/control.cpp (ProcessBodies): Do not output .class file after parse error, even if we were able to recover. * src/diagnose.h (ParseErrorInfo): * src/diagnose.cpp: * src/error.h (ErrorInfo): * src/error.cpp: * src/stream.h (StreamError): * src/stream.cpp: Unify, using new features of LexStream. * src/option.cpp: * src/parser.cpp: * src/unparse.cpp: * src/dump.cpp: Fix outputting bugs, plus file formatting. * src/expr.cpp (ProcessCharacterLiteral, ProcessStringLiteral): Allow a known bad token to not kill semantic analysis. * src/lookup.cpp (FindOrInsertChar, FindOrInsertString): Keep the quotes surrounding literals. * src/platform.h (operator<<): Make sure non-printable characters do not cause display problems. * src/scanner.cpp: Improve comment and literal parsing. * src/stream.cpp (ProcessInputAscii, ProcessInputUnicode): Improve parsing, especially with end-of-file issues. * src/stream.h (RightColumn, OutputLine, OutputSource): Added. (ComputeColumns, InitializeColumns): Deleted. * src/tab.h: * src/tab.cpp (Tab): Improve tab expansion. 2002-07-31 Eric Blake * src/symbol.cpp (FindOrInsertClassLiteral): Fix coredump with class literal in static local class, reported on jikes list. 2002-07-31 Eric Blake * src/option.cpp (Option): Formatting, and some option improvements. Fix memory leak on repeated options - bug 2813. * src/jikesapi.h: * src/jikesapi.cpp: Formatting. * src/jikes.cpp: * doc/jikes.1: Improve documentation of options. 2002-07-30 Eric Blake * src/ast.cpp: * src/control.cpp: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/diagnose.cpp: * src/diagnose.h: * src/double.h: * src/dump.cpp: * src/error.h: * src/getclass.cpp: * src/init.cpp: * src/javaprs.h: * src/jikes.cpp: * src/jikesapi.cpp: * src/jikesapi.h: * src/long.cpp: * src/long.h: * src/modifier.cpp: * src/op.cpp: * src/option.cpp: * src/parser.h: * src/platform.cpp: * src/platform.h: * src/scanner.cpp: * src/stream.cpp: * src/stream.h: * src/symbol.h: * src/tuple.h: * src/unzip.cpp: * src/unzip.h: * src/zip.cpp: Formatting changes. 2002-07-29 Eric Blake * src/semantic.h: Various method signature updates. * src/expr.cpp (MoreSpecific, NoMethodMoreSpecific), (FindMethodInType, FindMethodInEnvironment, FindMethodMember), (ProcessMethodName): When a type inherits multiple methods with the same signature, merge the throws clauses together - bug 2395. * src/bytecode.cpp (GenerateClassAccess): Optimize class literal when result is not needed. 2002-07-26 Eric Blake * src/symbol.h (class_literal_class): Share with placeholder class, when possible. * src/symbol.cpp (FindOrInsertClassLiteralClass), (FindOrInsertClassLiteralMethod, FindOrInsertClassLiteral): * src/expr.cpp (ProcessAmbiguousName): * src/bytecode.cpp (EmitExpression, GenerateClassAccessMethod) (GenerateClassAccess): Don't initialize classes when using class literals - bug 3142. (EmitCheckForNull): Optimize null check to use less bytecode. (GenerateAssertVariableInitializer): Optimize assert initialization to use less bytecode. 2002-07-25 Eric Blake * src/definite.cpp: Improve definite assignment analysis to use the updated rules of try-catch blocks - bug 3125. In the process, remove lots of dead code. * src/semantic.h (DefinitePairs, DefiniteTryStack): Delete unused classes. (DefiniteBlocks): Prune unused structures. (ReachableAssignments): New for try-catch blocks. * src/set.h (DefinitePair): Add default constructor. 2002-07-23 Eric Blake * src/definite.cpp (DefiniteBreakStatement), (DefiniteContinueStatement, DefiniteTryStatement): Fix definite assignment when break or continue is interrupted by an abrupt finally clause - bug 3117. * src/expr.cpp (ProcessAmbiguousName): Fix bug when method is qualified by constant string variable - bug 3124. 2002-07-22 Eric Blake * src/expr.cpp (CheckSimpleName): Fix use of shadow variables in explicit constructor - bug 3119. * src/error.cpp (PrintEXPRESSION_NOT_CONSTANT): Improve message - bug 655. (PrintBLOCKED_CATCH_CLAUSE): Improve message - bug 1858. * src/body.cpp (ProcessTryStatement): Use improved message. 2002-07-19 Eric Blake * src/ast.h (processing_try_block): Add. * src/body.cpp (UncaughtException, ProcessTryStatement): Fix try-block handling, when a catch clause is interrupted by an abrupt finally, and when a try-finally is the sole statement in a do-while loop - bug 613. 2002-07-19 Eric Blake * src/decl.cpp (CheckMethodOverride, AddInheritedMethods): Fix method overriding to detect package scope method conflicts when the method was not inherited. * src/error.cpp: Improve error message wording related to method inheritance. 2002-07-19 Eric Blake * src/scanner.cpp (ScanStarComment): Only the most recent doc comment applies to a declaration. * src/getclass.cpp (ReadTypeFromSignature): * src/symbol.cpp (FindOrInsertClassLiteralClass): Missed a case in previous commit. * src/expr.cpp (FindConstructor, FindMethodInType), (FindMethodInEnvironment, FindVariableInType), (FindVariableInEnvironment, ProcessAmbiguousName): * src/decl.cpp (ProcessTypeHeader, ProcessInterface), (ProcessFieldDeclaration, ProcessMethodDeclaration), (MustFindType): * src/semantic.h (InDeprecatedContext): * src/stream.h (ResetDeprecated): * src/symbol.h (TypeSymbol::ResetDeprecated): Silence deprecation warnings inside a deprecated context. 2002-07-18 Eric Blake * src/expr.cpp (FindConstructor, FindMethodInType), (FindVariableInType, ProcessAmbiguousName), (GetAnonymousConstructor): Improve error messages for @deprecated. * src/body.cpp (ProcessSuperCall): Avoid repeating work, and thus duplicate error messages. * src/scanner.cpp (ScanStarComment): Fix @deprecated parsing - bug 519. 2002-07-18 Eric Blake * src/bytecode.cpp (EmitStatement): Fix case of infinite do-while loop emitting dead code - bug 3085. * src/expr.cpp (ProcessMethodName): Fix handling of non-inherited enclosing instance methods in explicit constructors - bug 3082. (CreateAccessToType): Fix access of non-inherited members. * src/symbol.cpp (GetReadAccessMethod): More fixes of X.super.m(), detected by bug 246. * src/depend.cpp (ProcessSubtypes): * src/error.cpp (CIRCULAR_*): * src/getclass.cpp (ProcessClassFile): * src/decl.cpp: Fix handling of cyclic inheritance - bug 338. (AddInheritedMethods): Make warning become pedantic. * src/semantic.h: Improve some documentation, as well as redo methods involved in cyclic inheritance changes. 2002-07-15 Mo DeJong * configure: Regen. * configure.in: Set CXXFLAGS when compiling with VC++. This gets us closer to being able to compile with VC++, but does not yet work. An autoconf patch will be required since VC++ thinks .cc files are object files. 2002-07-12 Mo DeJong * configure: Regen. * configure.in: Define HAVE_ENCODING if iconv or icu is supported. * src/config.h.in: Regen. * src/jikes.cpp: * src/option.cpp: * src/stream.cpp: * src/stream.h: Replace HAVE_LIBICU_UC || HAVE_ICONV_H checks with HAVE_ENCODING check. 2002-07-12 Eric Blake * src/bytecode.cpp (EmitTryStatement): Fix case with empty try statement - bug 3071. (EmitStatement): Fix case with empty if clause - bug 3076. (EmitBinaryExpression): Fix case with mixed-type addition and subtraction with constant 0 on left - bug 3078. (EmitSwitchStatement, DefineLabel): Fix case with infinite loop caused by if() continue; - bug 3077. * src/symbol.cpp (GetReadAccessMethod): Fix case with X.super.m() in an accessor method - bug 169. 2002-07-11 Chris Abbey * configure.in: redefine version number to differentiate cvs builds post 1.16. * jikes.spec: ditto * configure: regen 2002-07-10 Chris Abbey * 1.16 release. 2002-07-10 Eric Blake * src/expr.cpp (ProcessPLUS): Fix the (hopefully) last bug with string concatenation - bug 3066. 2002-07-10 Eric Blake * src/class.h (AddException): Add optimizations. * src/bytecode.h (handler_range_start, handler_range_end): New fields to allow better handling of exception handler ranges. (monitor_handler_pc, monitor_start_pc): Remove, as their functionality was duplicated by new fields. * src/bytecode.cpp (EmitTryStatement, ProcessAbruptExit), (EmitSynchronizedStatement): Use newer form of exception handling, to solve bug 3055. * src/ast.h (AstBlock::TRY_CLAUSE_WITH_CATCH): New block tag. 2002-07-09 Eric Blake * src/definite.cpp (DefiniteAssignmentExpression), (DefinitePLUSPLUSOrMINUSMINUS): Detect shadow variables better. * src/expr.cpp (CreateAccessToScopedVariable): Avoid assertion when illegally accessing non-final local - bug 3057. 2002-07-09 Eric Blake * src/expr.cpp (TypeAccessCheck): Perform type checks in all cases, including supertypes - bug 3054. * src/decl.cpp (ProcessTypeHeader, ProcessInterface): Remove duplicate error report. 2002-07-09 Eric Blake * src/expr.cpp (ProcessAmbiguousName): Fix handling of byte.class and friends, bug 3053. 2002-07-09 Eric Blake * src/symbol.h (VariableSymbol): Silence HP-UX aCC warning about trailing comma. 2002-07-08 Eric Blake * src/decl.cpp (ProcessTypeHeader, ProcessTypeHeaders), (ProcessImportQualifiedName, ProcessSingleTypeImportDeclaration), (ProcessTypeImportOnDemandDeclaration, ImportType), (ProcessInterface, CheckNestedTypeDuplication): Improve detection of inaccessible supertypes and bad type importing - bugs 122, 412, 2686, 2688, 2695. * src/error.h: * src/error.cpp (IMPORT_NOT_CANONICAL): Add new error. 2002-07-08 Eric Blake * src/class.h (SetMax): New function. * src/bytecode.cpp (EmitStatement, DefineLabel): Improve dead branch handling in if statements - bug 2895. 2002-07-08 Eric Blake * src/bytecode.cpp (LoadVariable): Fix assertion in bug 3044. * src/decl.cpp (InitializeVariable): Improve variable initialization procedure. * src/expr.cpp (ProcessSimpleName, FindVariableMember): Improve final variable inlining. * src/getclass.cpp: Ditto. * src/symbol.cpp: Ditto. * src/init.cpp (ComputeFinalValue): Fix regression mentioned in bug 3044, introduced by patch 310. * src/semantic.h (ComputeFinalValue): Change method signature. * src/symbol.h (MarkInitialized, IsInitialized): Add flag for initialization value computed, to be orthogonal from declaration complete. 2002-07-07 Bu FeiMing * src/stream.cpp (getErrorMessage): duplication of "to make use of" in error message. 2002-07-05 Chris Abbey * doc/jikes.1: explain that windows doesn't have -encoding by default, and how to tell if a given binary has -encoding support or not. 2002-07-04 Eric Blake * src/set.h (Resize): Fix bug in patch 316, which was causing multiple definite assignment bugs - bug 3040. 2002-07-02 Chris Dennis * src/definite.cpp (DefiniteSetup): Another VC++ scoping patch. 2002-07-02 Eric Blake * src/set.h (Resize): Followup to patch 310: Fix a thinko that was causing a coredump on jacks 4.10-jvms-12. 2002-07-02 Eric Blake * src/ast.cpp: * src/ast.h (original_constructor_invocation), (local_init_statments): Delete unused fields. * src/decl.cpp (ProcessConstructorDeclaration), (AddDefaultConstructor): Mark the this$0 parameter synthetic. * src/definite.cpp: Delete dead comments. (DefiniteThisCall, DefiniteSuperCall): Add methods for definite analysis in explicit constructor calls - bug 2999. (DefiniteConstructorBody): Use new methods. * src/semantic.h: Add new method signatures. (DefiniteClassDeclaration): Delete unused method. 2002-07-02 Eric Blake * src/bytecode.cpp (EmitCheckForNull): Revert part of patch 296, as well as detect one more case of guaranteed non-null reference. 2002-07-01 Eric Blake * src/bytecode.cpp (EmitFieldAccess): Eliminate code duplication, by deferring to LoadVariable. (LoadVariable): Fix handling of constant variables - bug 2991. Also, fix shadow variable handling. * src/error.cpp (ENCLOSING_INSTANCE_ACCESS_ACROSS_STATIC_REGION): Improve error message wording. * src/expr.cpp (FindLocalVariable, FindEnclosingInstance), (CreateAccessToType): Improve variable resolution to detect anonymous classes in static regions. (UpdateLocalConstructors, GetAnonymousType), (ProcessClassInstanceCreationExpression): Improve shadow variable handling - bug 2986. 2002-07-01 Eric Blake * src/body.cpp (ProcessExecutableBodies): * src/decl.cpp (CompleteSymbolTable, InitializeVariable), (ProcessInitializer, ProcessStaticInitializers), (ProcessInstanceInitializers): * src/definite.cpp: Refactor definite assignment of fields to use O(n) performance instead of O(n^2) performance, as well as saving assignment status on a stack - bugs 118, 500. * src/error.cpp: * src/error.h (FINAL_FIELD_ASSIGNMENT_NOT_SIMPLE): Add an error message as part of the definite assignment fix. * src/expr.cpp (CheckSimpleName, ProcessSimpleName), (FindVariableMember, ProcessAssignmentExpression): Fix remaining cases of accessing a field before declaration - bug 603. * src/init.cpp: Improve constant variable analysis - bug 2991. * src/semantic.h (SemanticEnvironment): Move definite assignment status here, to store state on the stack, necessary for processing anonymous classes inline. (Semantic): Change definite assignment to use the state stack. * src/set.h (BitSet, DefinitePair): Improve functionality to be more efficient by allowing resizing, as well as fix a few bugs in things like operator==. * src/symbol.cpp (LocalVariableIndex): Add method to allow the definite assignment analysis speedup. * src/symbol.h (MarkIncomplete, *Assigned): Delete methods that are redundant with definite assignment refactoring. 2002-06-28 Eric Blake * src/bytecode.cpp (EmitPreUnaryExpression): Fix bug in ! when used in optimized && - bug 3011. 2002-06-28 Eric Blake * src/ast.h (shadow_parameter_offset): Delete from here... * src/body.cpp (ProcessThisCall, ProcessSuperCall): Ditto. * src/bytecode.h (shadow_parameter_offset): ... and move to here, to fix bug 3001. * src/bytecode.cpp (CompileConstructor, EmitThisInvocation), (ByteCode): Ditto. * src/symbol.h (VariableSymbol::ContainingType): Add. * src/semantic.h: Some formatting improvements, use new method. * src/expr.cpp: Ditto. (GetAnonymousType): * src/symbol.cpp (GetReadAccessConstructor): More of the bug fix. 2002-06-28 Eric Blake * src/expr.cpp (ProcessMOD): Fix bug from incomplete patch on the 22nd - bug 3006. 2002-06-28 Eric Blake * src/bytecode.cpp: Minor formatting improvements. (EmitTryStatement): Emit exception handlers in correct order - jikes bug 3003. (EmitCheckForNull): Update emitted code to match javac. 2002-06-27 Eric Blake * src/symbol.cpp (EnclosingType): Update logic to work for classes read from .class file - bug 2995. 2002-06-27 Eric Blake * src/expr.cpp (CanCastConvert): Don't allow conversion to null type - bug 2982. 2002-06-24 Eric Blake * src/bytecode.cpp: * src/bytecode.h: * src/control.cpp: * src/decl.cpp: * src/expr.cpp: * src/symbol.cpp: * src/symbol.h: Fix formatting, comments, and improve some naming issues; but no code changes. 2002-06-19 Eric Blake * src/control.cpp (ProcessHeaders): * src/decl.cpp (ProcessSuperTypeDependences, SetDefaultSuperType), (ProcessTypeHeader, CompleteSymbolTable): Fix core dump of Jacks test 8.1.4-object-1. 2002-06-18 Eric Blake * src/bytecode.cpp (CompileConstructor), (GenerateClassAccessMethod): Make compile output decisions based on target JVM level, not source JDK level. (EmitSwitchStatement): Remove dead code in switch statements - followup to patch 279. 2002-06-18 Eric Blake * src/expr.cpp (ConstructorAccessCheck): Fix regressions not covered by patch 280 - still bug 2899. 2002-06-18 Eric Blake * src/symbol.h (HasEnclosingInstance): * src/symbol.cpp (HasEnclosingInstance): * src/expr.cpp (CreateAccessToType, ProcessAmbiguousName), (ProcessThisExpression, ProcessSuperExpression): Fix test of enclosing instances to not bypass uninitialized current instance. This is on advice from Gilad Bracha (author of JLS 2nd edition), and highlights some bad Jacks tests - bug 2920. 2002-06-18 Eric Blake * src/bytecode.cpp (AppendString): * src/expr.cpp (ProcessAssignmentExpression): * src/lookup.cpp (EndsInKnownString): Correctly concatenate 1-character constant strings - bug 2919. 2002-06-18 Eric Blake * src/bytecode.cpp: * src/bytecode.h: * src/expr.cpp: Formatting. * src/error.cpp (SELF_IN_EXPLICIT_CONSTRUCTOR), (ENCLOSING_INSTANCE_ACCESS_FROM_CONSTRUCTOR_INVOCATION): Improve error wording. 2002-06-17 Eric Blake * src/expr.cpp (ConstructorAccessCheck): Allow access of protected superconstructors - bug 2899. 2002-06-17 Eric Blake * src/body.cpp (ProcessSuperCall): Remove duplicate error message, final cleanup for bug 386. 2002-06-17 Eric Blake * src/decl.cpp (AddInheritedMethods): Synthetic methods do not need to be inherited - bug 2924. 2002-06-17 Eric Blake * src/bytecode.cpp (EmitSwitchStatement, EmitBlockStatement), (DeclareLocalVariable): * src/bytecode.h (Push, Pop): Mark local variables uninitialized regardless of JIKES_DEBUG, and fix problems when a declaration statement is not executed because a prior statement ended abruptly - bug 2907. 2002-06-17 Eric Blake * src/bytecode.cpp (EmitSwitchStatement): Don't optimize gotos with no-op default label - bug 2895. 2002-06-15 Chris Abbey * src/unparse.cpp (AstCompilationUnit::Unparse): fix definition signature to match declaration signature in ast.h; AIX's xlC compiler isn't as sloppy as gcc about signature constnes. 2002-06-05 Chris Abbey * src/bytecode.cpp (EmitAssertStatement): produce proper error instead of assertion if user requests -source 1.4 and uses asserts in their code but doesn't have Ljava/lang/AssertionError; available because they used a 1.3 rt.jar in BOOTCLASSPATH for example. 2002-06-04 Andrew G. Tereschenko * src/double.cpp: additional parenthesis near shift operators to make MSVC v7 (.NET) happier. 2002-06-03 Chris Dennis * src/expr.cpp (ProcessClassInstanceCreationExpression): deal with VC++'s inability to support the new ANSI 'for' scoping rules; again. 2002-05-31 Chris Abbey * src/stream.cpp (getErrorMessage): clarify error message for assert as a keyword. 2002-05-23 Eric Blake * src/definite.cpp (DefinitePLUSPLUSOrMINUSMINUS): Yet another corner case - bug 2398. 2002-05-23 Eric Blake * src/expr.cpp (CheckSimpleName): One last bug in nested classes - bug 440. 2002-05-22 Eric Blake * src/error.h (ZERO_DIVIDE_ERROR): * src/error.cpp (ZERO_DIVIDE_ERROR): * src/expr.cpp (ProcessSLASH, ProcessMOD), (ProcessAssignmentExpression): Remove ZERO_DIVIDE_ERROR, since http://java.sun.com/docs/books/jls/clarifications-2-2nd-ed.html - the JLS2 clarification page - states division by 0 is legal Java. 2002-05-22 Eric Blake * src/ast.h (NewAstArray): Make this a global function, to workaround egcs-1.1.2 bug. 2002-05-22 Eric Blake * src/decl.cpp: Allow interface int clone(); - see bug 2878. * src/error.cpp: Add new UNIMPLEMENTABLE_INTERFACE warning. * src/error.h: Ditto. * src/symbol.cpp: Fix core dump caused by last patch. 2002-05-22 Eric Blake * src/ast.h: Minor touchups to previous patch. * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/code.cpp: * src/decl.cpp: * src/definite.cpp: * src/expr.cpp: * src/modifier.cpp: * src/semantic.h: * src/symbol.cpp: * src/symbol.h: * src/unparse.cpp: 2002-05-22 Eric Blake * src/java.g: Change grammar to detect this() and super() anywhere in method - bug 2805. * src/javaact.cpp: Regenerate. * src/javaact.h: Ditto. * src/javadcl.h: Ditto. * src/javadef.h: Ditto. * src/javaprs.h: Ditto. * src/javasym.h: Ditto. * src/ast.cpp: Update handling of AST components to match grammar. * src/ast.h: Ditto. * src/unparse.cpp: Ditto. * src/semantic.h: Improve semantic analysis of constructors, initializer blocks, and nested classes. * src/body.cpp: Ditto. * src/decl.cpp: Ditto. * src/expr.cpp: Ditto. * src/symbol.cpp: Improve handling of nested type representations. * src/symbol.h: Ditto. * src/bytecode.cpp: Improve bytecode emission of constructors, and squash a few latent bugs. * src/bytecode.h: Ditto. * src/error.cpp: Improve errors related to constructors. * src/error.h: Ditto. * src/class.h: Related code touchups, such as formatting or name changes. * src/control.cpp: Ditto. * src/control.h: Ditto. * src/definite.cpp: Ditto. * src/depend.cpp: Ditto. * src/getclass.cpp: Ditto. * src/parser.cpp: Ditto. * src/parser.h: Ditto. * src/platform.cpp: Ditto. * src/platform.h: Ditto. * src/system.cpp: Ditto. 2002-05-20 Chris Abbey * src/expr.cpp (ProcessClassInstanceCreationExpression): fix asserts so that they actually assert instead of segv. 2002-05-16 Eric Blake * HACKING: Update instructions for patch submission to mention ChangeLog entries. 2002-05-16 Andrew Pimlott * src/stream.h (ReportMessage): New method, to silence syntax warnings. * src/stream.cpp: Use it. * src/scanner.cpp: Use it. 2002-05-16 Eric Blake * src/expr.cpp (ProcessAssignmentExpression): Fix coredump in Jacks test 15.26.2-left-shift-12 and others. * src/symbol.h (IsLocal): Workaround coredump in jacks test 8.1.2-static-15. 2002-05-16 Eric Blake * src/bytecode.cpp (EmitStatement): Fix bug 2871, where infinite loops were not properly detected. 2002-05-16 Eric Blake * src/dump.cpp (token_type): One more update. 2002-05-16 Eric Blake * src/error.cpp (PrintINHERITANCE_AND_LEXICAL_SCOPING_CONFLICT_WITH_LOCAL): * src/decl.cpp (FindType): Improve error message. 2002-05-15 Andrew Pimlott * src/bytecode.cpp (EmitConditionalExpression): Fix bug in the patch on 11 May. 2002-05-15 Eric Blake * src/dump.cpp (token_type): Missed a case in previous commit. 2002-05-15 Eric Blake Updated version of patch 40. * src/bytecode.cpp: * src/bytecode.h: * src/definite.cpp: * src/expr.cpp: Add support for parenthesized variables - bug 105. * src/error.cpp: * src/error.h: Add new errors UNNECESSARY_PARENTHESIS, NOT_A_VARIABLE. * src/java.g: Update grammar to allow parenthesized variables in assignment expressions. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javasym.h: Regenerate. 2002-05-15 Eric Blake * src/bytecode.cpp (EmitStatement): Fix definite assignment analysis of for loops - bug 2780. * src/definite.cpp (DefiniteForStatement): Fix abrupt completion bug in loops. 2002-05-15 Eric Blake * src/bytecode.cpp (CompileClass): Fix bug 2256 for default private constructors, jacks test 8.8.7-runtime-default-3. (CompileClass): * src/expr.cpp (UpdateLocalConstructors): Fix bug 206, when accessing private superconstructor from local class. 2002-05-15 David Lum * src/bytecode.cpp (EmitThisInvocation): Workaround for bug 2256 - fix constructors in local and anonymous classes. 2002-05-14 Mo DeJong * src/bytecode.cpp (EndMethod): Invoke new Code_attribute::CodeLengthExceeded() method instead of checking the return value of Code_attribute::CodeLength(). The check was not valid since CodeLength() was returning a u2 value which would never be greater than 65535. * src/class.h (CodeLength, CodeLengthExceeded): Return 65535 when the value of CodeLength() exceeds the maximum allowable length to avoid an invalid conversion from int to u2. Bytecode for such a class will not be generated since CodeLengthExceeded() is checked before the class file is emitted. Fixes Jacks 4.10-jvms-2. 2002-05-14 Mo DeJong * src/bytecode.cpp: Add casts to avoid compiler warning on signed/unsigned comparison. 2002-05-14 Eric Blake * src/expr.cpp (ProcessAmbiguousName): Fix name parsing to load packages that weren't imported - bug 2550. 2002-05-14 Eric Blake * src/class.h (AddLocalVariable): Remove dead code. 2002-05-11 Max Gilead * doc/jikes.1: * src/jikes.cpp: * src/modifier.cpp: * src/option.cpp: * src/option.h: Add +Pno-modifier-order option, to silence pedantic warnings about recommended modifier ordering. 2002-05-11 Eric Blake * src/class.h: * src/bytecode.h: * src/bytecode.cpp: More bytecode optimizations: dead code removal, from bug 2849; goto next op removal; ?: optimizations; one more bug with asynchronous exceptions in try-finally and synchronized statements. 2002-05-09 Mo DeJong * configure.in: Bump version, require autoconf 2.53 - patch 270. * configure: Regenerate. 2002-05-06 Eric Blake * src/depend.h: * src/depend.cpp: * src/incrmnt.cpp: * src/symbol.cpp (TypeSymbol): Templatize cycle checking. 2002-05-01 Eric Blake * src/expr.cpp (ConvertToType): Don't cast to missing return type - bug 2814. 2002-05-01 Eric Blake * src/platform.cpp (SystemFopen): Add workaround for obscure bug in cygwin file inode hashing. 2002-04-29 Eric Blake * src/bytecode.cpp (PrintCode): Add casts for g++ 3.1 problem. * src/platform.h (operator<<): Ditto. * src/jikesapi.cpp (stat): Fix resolution issue for g++ 3.1. 2002-03-22 Eric Blake Update to automake 1.6, autoconf 1.53. * .cvsignore: Ignore new configuration file. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/config.h.in: Regenerate. * src/platform.h: Remove name conflict. 2002-03-14 Eric Blake * src/expr.cpp (ProcessAmbiguousName): Fix bug 2761. 2002-03-12 Eric Blake * src/double.cpp (operator<, operator>): The commit on Feb 25 was flawed. THIS patch finally fixes bug 2700. 2002-03-12 Eric Blake * src/expr.cpp (ProcessAND_AND): Fix bug 2750. 2002-03-08 Eric Blake * src/option.cpp (makeStrippedCopy): Let -bootclasspath '' override $BOOTCLASSPATH. 2002-03-06 Andrew M. Inggs * src/control.cpp (Control): Check for null in +DR reports - bug 1792, patch 262. 2002-03-06 Eric Blake * src/ast.h: * src/ast.cpp: * src/dump.cpp: * src/semantic.h: * src/unparse.cpp: * src/java.g: Rename FloatingPointLiteral to FloatLiteral. * src/gencode.java: Add IsHexDigit, IsOctalDigit. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: * src/code.h: Regenerate. * src/scanner.h (CheckOctalLiteral): Delete. * src/scanner.cpp (ClassifyNumericLiteral): Correctly tokenize numeric literals according to JLS chapter 3. (ClassifyCharLiteral, ClassifyStringLiteral): Detect bad escape sequences during parsing, not syntax or semantic analysis. * src/stream.h: * src/stream.cpp: * src/error.cpp: Fix error messages for parsing literals. * src/error.h (INVALID_STRING_VALUE): Delete. * src/lookup.cpp: * src/expr.cpp: Update to changes in scanner. (ProcessAmbiguousName): Remove assertion failure from bad java.lang. 2002-03-06 Eric Blake * src/decl.cpp (ProcessTypeNames): Fix crash in compiling java.lang with syntax errors. * src/double.cpp (operator>, operator<): Quick optimization. 2002-03-05 Eric Blake * src/scanner.cpp (ScanStarComment): Fix bug 2721. 2002-03-05 Eric Blake * src/bytecode.cpp (LoadVariable): Fix bug 2728. (EmitStatement): Fix bug 2729. (ProcessAbruptExit): Fix bug 2731. * src/bytecode.h (FindInteger): Fix bug 2730. 2002-02-26 Eric Blake * src/bytecode.cpp (ProcessAbruptExit): Fix bug 2713. 2002-02-25 Chris Abbey * configure.in: Fix spacing error. * configure: Regenerate. 2002-02-25 Eric Blake * src/double.cpp (operator>, operator<): Fix bug 2700. 2002-02-25 Eric Blake * src/init.cpp (ProcessVariableInitializer): Fix bug 2702. 2002-02-25 Eric Blake * src/semantic.h (DefiniteLoopBody): Update signature. * src/definite.cpp (DefiniteLoopBody, DefiniteWhileStatement), (DefiniteForStatement, DefiniteDoStatement): Fix loop semantics for definite unassignment - bug 2675, patch 265. 2002-02-21 Eric Blake * src/expr.cpp (ProcessMethodInvocation): Check for void arguments. (ProcessNOT_EQUAL, ProcessEQUAL_EQUAL): * src/error.cpp: * src/error.h (VOID_TYPE_IN_EQUALITY_EXPRESSION): Use TYPE_IS_VOID instead. 2002-02-20 Eric Blake * src/jikesapi.cpp (DefaultFileReader): Silence a warning. * src/bytecode.cpp (GenerateClassAccessMethod): Use exception chaining for class literals when -source == 1.4. * src/control.cpp: * src/control.h (Throwable_initCauseMethod), (NoClassDefFoundError_InitStringMethod): Add methods. * src/platform.cpp: * src/platform.h (US_initCause, U8S_LP_Throwable_RP_Throwable): Add fields. Also, shorten names of other long fields. * src/set.h: * src/system.cpp: Reformat code. 2002-02-20 Eric Blake * src/error.cpp (PrintNEGATIVE_ARRAY_SIZE): * src/error.h: * src/expr.cpp (ProcessArrayCreationExpression): Add caution for NEGATIVE_ARRAY_SIZE. 2002-02-20 Eric Blake * src/ast.h (AstBlock): Add ABRUPT_TRY_FINALLY, to correctly emit synchronized blocks in try-finally. * src/bytecode.cpp (EmitSynchronizedStatement), (ProcessAbruptExit, EmitTryFinally): Correct synchronized statement to be safe with asynchronous exceptions, bug 2647. (EmitExpression, LoadVariable): Don't optimize away class literal or volatile variable qualifying a static reference, because of their potential side effects. * src/bytecode.h (class MethodStack): Improve, to work with synchronized statement fixes - patch 263. 2002-02-18 Eric Blake * src/ast.h (NewTokenIndexArray): Remove dead code, which was responsible for bug 2652 before I reworked labeled statements. 2002-02-18 Eric Blake * src/gencode.java: Add more optimizations, to reduce the size of the Unicode lookup table. * src/code.h: * src/code.cpp: Regenerate. 2002-02-12 Andrew M. Inggs * doc/jikes.1: Updated description of @file option to match changes made on 2001-12-11. 2002-02-09 Eric Blake * doc/jikes.1: * src/platform.cpp (U8S_help_header): Update copyright. 2002-02-09 Eric Blake * configure.in: Bump version to 1.15b, to mark a stable CVS version for use with GNU Classpath. * configure: * src/config.h.in: Regenerate. 2002-02-09 Eric Blake * src/bytecode.cpp (EmitStatement): Fix emission of dead code. 2002-02-08 Eric Blake * src/platform.cpp: * src/platform.h (U8S_false, U8S_true): Added. * src/expr.cpp (CastValue): Simplified string conversion of boolean. (ProcessPLUS): * src/bytecode.cpp (LoadLiteral): Optimize loading -1L, 2L to 5L, -1.0f, -0.0f, 2.0f to 5.0f, -0.0, -1.0, 2.0 to 5.0. (EmitExpression): Fix bug with over-optimization of casts. (EmitBinaryExpression): * src/lookup.h: * src/lookup.cpp (CollectStrings): Renamed from EvaluateConstant. (EndsInKnownString): Renamed from IsConstantString. In general, adjusted string concatenation to work with known, non-constant strings (such as (Object)string, the null literal). Now jikes performs fully associative string concatenation, resulting in less bytecode! 2002-02-07 Eric Blake * src/bytecode.cpp (ConcatenateString, AppendString): Fix one more case of non-const String + primitive. (LoadImmediateInteger): Optimize case of 0xffff. 2002-02-06 Eric Blake * src/scanner.cpp: Silence '$' in identifier warnings when -nowarn specified. * src/parser.cpp (PackageHeaderParse): Allocate memory to prevent core dump when compiling GNU's Classpath. * src/lookup.cpp (IsConstantString): * src/expr.cpp (CastValue, IsIntValueRepresentableInType): Fix missing cases in previous commit, exposed by Classpath. (ProtectedAccessCheck): * src/symbol.cpp (GetWriteAccessMethod): * src/semantic.h (ProtectedAccessCheck): Update rules to fix bug exposed by Classpath. * src/decl.cpp (CompleteSymbolTable): Special case java.lang.Object when checking concrete classes. 2002-02-05 Eric Blake * src/definite.cpp (DefiniteExpression): Optimize DA/DU analysis of constant expressions. * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/expr.cpp: Use IsConstantTrue and IsConstantFalse in more places, and convert LiteralValue* casts to DYNAMIC_CASTs. * src/lookup.cpp: * src/lookup.h (IsConstantString): Rename from IsConstant, and update to work with string concat changes. * src/semantic.h: * src/expr.cpp (CastPrimitiveValue): Inline into CastValue. (ProcessPLUS, ProcessAssignmentExpression): * src/bytecode.cpp (AppendString): Update string concatenation to avoid useless compiler-generated cast in the middle, the cause of bug 2625 - patch 259. 2002-01-31 Eric Blake * src/class.h: * src/op.h: * src/op.cpp: Format to 80 columns, and standardize capitalization to rest of Jikes. Use Opcode enum for type safety and easier debugging. * src/bytecode.h (EmitBranch(unsigned, Label&)): Inline into the more powerful EmitBranch(Opcode, Label&, AstStatement*). * src/bytecode.cpp: Fix more cases where EmitBranch was not checking for wide jumps - bug 2538. (EmitTryStatement): More optimizations - patch 258. 2002-01-11 Eric Blake * src/expr.cpp (ProcessSLASH, ProcessMOD): Fix core dump when caution instead of error occurs on divide by 0 - bug 2568. 2002-01-11 Marko Kreen * src/bytecode.cpp (ByteCode): Improve verbose output in debug build to track down errant class files - patch 256. 2002-01-06 Eric Blake * src/op.h (class Operators): * src/op.cpp (opdesc): Make protected, and allow null arguments. * src/bytecode.h (PutNop): Delete dead code. * src/bytecode.cpp (EmitAssignmentExpression): Fix bad bytecode, caused by typo in patch 231 - bug 2541. (PutOp): Improve debugging code. Delete giant switch statement since it was duplicating op.cpp. (ChangeStack): * src/jikes.cpp: * src/scanner.cpp: * src/option.cpp (Option): * src/option.h: Replace static #ifdef TRACE_STACK_CHANGE with new dynamic +S option and debug_trace_stack_change, to allow easier debugging of bug 2541 - patch 254. 2002-01-06 Eric Blake * src/bytecode.cpp (EmitBranchIfExpression, EmitBinaryExpression): More optimizations of boolean result operations. (EmitCheckForNull, EmitSuperInvocation): Remove redundant check for null in anonymous constructors. (ConcatenateString): Fix overzealous assertion (idea courtesy of Mo DeJong) - bug 2540. * src/table.h (Overload): Fix subtle logic error which caused assertion failure - bug 2536, patch 253. 2001-12-21 Eric Blake * src/bytecode.cpp (EmitBranchIfExpression): Another bug detected by test cases written for bug 2530. 2001-12-21 Mo DeJong * src/bytecode.h (IsZero, IsOne): Include the byte, short, and char types in the checks made by these methods - bug 2530, patch 252. 2001-12-19 Eric Blake * src/java.g: Fix core dump caused by patch on Dec 8 - bug 2518. * src/javaact.cpp: * src/javadcl.h: * src/javadef.h: * src/javasym.h: Regenerate. 2001-12-19 Eric Blake * src/jikes.cpp (main): Provide help message when no command-line arguments are given. 2001-12-18 Eric Blake * src/bytecode.cpp (EmitBranchIfExpression): Missed a case in the prior commit. 2001-12-18 Eric Blake * src/expr.cpp (BinaryNumericPromotion): Improve formatting and delete useless conditionals. * src/bytecode.h (IsNull): Delete dead code. (IsOne): Add for better optimizing. (EmitCastExpression): Add argument to track optimized expression. * src/bytecode.cpp: Fix incorrect code generation when optimizing &, *, <<, >>, and ?:, also perform more optimizations of binary operations - bugs 2509, 2513, patch 249. 2001-12-18 Eric Blake * src/expr.cpp (ProcessAmbiguousName): Report invalid package name sooner, rather than creating and discarding the package. As a result, more error messages can detect mispelled names. 2001-12-14 Eric Blake * src/expr.cpp (ProcessMethodName): Fix another core dump from my recent patching frenzy. 2001-12-13 Mo DeJong * src/zip.cpp (Zip): Avoid core dump when zip file on CLASSPATH does not exist by checking to make sure the zipbuffer has been allocated - patch 247. * src/error.cpp (PrintCANNOT_OPEN_ZIP_FILE): Improve message give to user when a zip file cannot be opened. The file could be invalid but it could also just not exist - patch 248. 2001-12-12 Chris Abbey Eric Blake * src/zip.cpp: Reformat to 80 columns. 2001-12-12 Mo DeJong * src/zip.cpp (Zip, ReadDirectory): Use constants instead of hard coded numbers. If a valid END header can't be found at the end of the file we need to scan the file backwards. This matches the implementation of the command line unzip utility. The Zip file format is so brain damaged that this is the only option. * src/zip.h (Zip, IsValid): Add enum constants for ZIP header sizes and magic numbers - bug 261, patch 246. 2001-12-12 Eric Blake * src/bytecode.cpp (AppendString): Fix regression from patch 237, when doing string concatenation with primitives. 2001-12-11 Mo DeJong Patch 243, based on poll of user base. * src/option.cpp (ExpandAtFileArgument, GetErrorMessage): Revert modifications to @file processing made on 2001-11-01. Only one file name per line is supported. Remove unused error condition. * src/option.h (UNTERMINATED_QUOTE): Remove unused error condition. 2001-12-10 Chris Dennis * src/expr.cpp (ProcessClassInstanceCreationExpression): Yet another case of bug 2377, bad for-loop scoping in VC++. 2001-12-09 Eric Blake * src/body.cpp (ProcessTryStatement): Update finally blocks to "interrupt" other abrupt completions when the finally block itself completes abruptly. Also, check for duplicated unchecked exceptions in catch clauses - bug 1858. * src/bytecode.cpp (EmitTryStatement, ProcessAbruptExit, IsNop): Add optimizations for empty finally statement. * src/bytecode.h (IsNop): New method. * src/error.h: * src/error.cpp (UNREACHABLE_DEFAULT_CATCH_CLAUSE): Delete, since it is no longer possible to detect. * src/expr.cpp: * src/init.cpp: Remove attempts to track unchecked exceptions in the TryExceptionTableStack: since Sun claims that all non-duplicate unchecked exception clauses are reachable, it was not worth the extra effort. * src/semantic.h (class NestingLevelStack): Added to track abrupt finally clauses - patch 240. 2001-12-08 Eric Blake * src/java.g: Update parser to track generated blocks. * src/javaact.cpp: Regenerate. * src/ast.cpp: Fix some AST display issues. * src/unparse.cpp (AstBlock::Unparse): Revert patch 134, while still ensuring that bug 638 does not have problems. 2001-12-08 Eric Blake * src/java.g: Update parser to have only one label per block. * src/javaact.cpp: Regenerate. * src/ast.cpp: * src/ast.h: * src/body.cpp: * src/definite.cpp: * src/unparse.cpp: Update label handling - bug 2483. * src/stream.h (BadToken): Rename from Badtoken. * src/decl.cpp: * src/diagnose.cpp: * src/semantic.h: * src/symbol.cpp: Update spelling of BadToken. * src/bytecode.cpp: * src/error.cpp: * src/expr.cpp: Other minor fixes - patch 239. 2001-12-08 Eric Blake * src/java.g: Update parser rules for qualified this and super to favor types over variables. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: Regenerate. * src/expr.cpp (ProcessAmbiguousName): Redo patch 235 from previous attempt, which was causing core dumps - bug 2465. 2001-12-08 Eric Blake * src/error.h: * src/error.cpp (NO_ABSTRACT_METHOD_IMPLEMENTATION), (NON_ABSTRACT_TYPE_INHERITS_ABSTRACT_METHOD_FROM_ABSTRACT_CLASS): Remove dead code as followup to patch 236 on Miranda methods. (UNCAUGHT_*_EXCEPTION): Rename from UNCAUGHT_*_CHECKED_EXCEPTION. (UNCAUGHT_EXPLICIT_*_EXCEPTION): Rename from CONSTRUCTOR_DOES_NOT_THROW_*_EXCEPTION. (UNCAUGHT_THROWN_EXCEPTION): Rename and collapse BAD_THROWABLE*. * src/semantic.h (UncaughtException): Rename and reverse sense from CatchableException. (UncaughtExceptionContext): Add method to make error messages more versatile - followup to previous commit. * src/decl.cpp: * src/expr.cpp: * src/body.cpp: Incoporate above changes - patch 238. 2001-12-08 Eric Blake * src/symbol.h: * src/symbol.cpp: * src/expr.cpp: Code cleanup from -Wall. (ProcessClassInstanceCreationExpression): Propagate exceptions from anonymous class instance creation expressions outward. * src/error.h: * src/error.cpp (UNCAUGHT_METHOD_CHECKED_EXCEPTION), (UNCAUGHT_CONSTRUCTOR_CHECKED_EXCEPTION): Rename from UNCATCHABLE_*_THROWN_CHECKED_EXCEPTION. (UNCAUGHT_ANONYMOUS_CONSTRUCTOR_CHECKED_EXCEPTION): New error. * src/semantic.h: Reformat comments to 80 columns. (CheckedException): Add bad types to list of unchecked exceptions. * src/body.cpp (CatchableException): Update the behavior of exceptions in anonymous classes and instance initializers - bugs 46, 359, 2472, patch 238. 2001-12-07 Eric Blake * src/access.h: * src/body.cpp: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/diagnose.cpp: * src/getclass.cpp: * src/init.cpp: Code cleanup, in part from -Wall compilation. * src/bytecode.cpp (DeclareLocalVariable): Avoid assigning unused constants when not compiling with -g - bug 2482. (EmitAssignmentExpression, EmitBinaryExpression), (ConcatenateString, AppendString): Improve String concatenation, to optimize longer concats starting with a constant, and to avoid concatenating "" - bug 1788, patch 237. 2001-12-07 Eric Blake * src/bytecode.cpp (CompileClass): Remove the emission of Miranda methods (generated place-holder abstract methods in abstract classes which inherit but don't declare the method) - bug 2356, patch 236. 2001-12-06 Eric Blake * src/expr.cpp (ProcessAmbiguousName): Update name resolution to search for type in Foo.this - bug 2465, patch 235. 2001-12-05 Eric Blake * src/body.cpp: Reformat comments to 80 columns. Improve error messages for uninitialized finals. * src/definite.cpp: Improve error messages for assignment to blank vs. regular final variables. * src/error.cpp: * src/error.h (PARENT_TYPE_IN_UNNAMED_PACKAGE): Delete as unused. (TARGET_VARIABLE_IS_FINAL, FINAL_VARIABLE_TARGET_IN_LOOP): Rename to VARIABLE_NOT_DEFINITELY_UNASSIGNED, VARIABLE_NOT_DEFINITELY_UNASSIGNED_IN_LOOP. (FINAL_VARIABLE_NOT_BLANK, ABRUPT_INITIALIZER), (UNINITIALIZED_FINAL_VARIABLE_IN_INTERFACE): New errors. (METHOD_NOT_CLASS_METHOD, NAME_NOT_CLASS_VARIABLE): Improve wording, to make it clear that member exists - bug 2452. * src/semantic.h (AddDependence): Update to account that imports from unnamed package are no longer legal. * src/decl.cpp (ProcessInitializer): Update to account for fact that initializers are always reachable, and must complete normally - bug 2454, patch 234. 2001-11-30 Eric Blake * src/definite.cpp (DefiniteAssertStatement): Fix a bug in assert statement definite unassignment analysis. 2001-11-26 Eric Blake * src/symbol.cpp (GetReadAccessMethod): * src/expr.cpp (FindMethodMember): Update to patch 142; qualified super methods require an accessor where fields did not, since the invokespecial bytecode can only occur in subclasses - bug 2430, patch 233. 2001-11-26 Henner Zeller * jikes.spec: Mandrake compresses man-pages with bzip, not gzip - bug 335, patch 232. 2001-11-25 Eric Blake * src/bytecode.h: * src/bytecode.cpp: Reformat to fit more in 80 columns. (semantic, control): Rename from this_semantic and this_control. (StripNops): Rename from UnParenthesize, and include check for widening casts. (EmitCast): Update to treat (short)byte as a nop. (LoadReference): Remove, as it was duplicating EmitExpression. (EmitNewArray): Update to use ANEWARRAY instead of MULTIANEWARRAY when only one dimension provided - patch 231. 2001-11-13 Brian Sullivan * src/platform.cpp (class StringConstant): Code reformating to support IA-64 compilation: the aCC compiler does not recognize comma-chained class-member initializers. * src/body.cpp: * src/bytecode.cpp: * src/control.h: * src/decl.cpp: * src/depend.cpp: * src/dump.cpp: * src/error.cpp: * src/expr.cpp: * src/getclass.cpp: * src/lookup.cpp: * src/option.cpp: * src/platform.h: * src/symbol.cpp: * src/system.cpp: Change all US__ and U8S__ prefixes to US_ and U8S_, for consistency - patch 230. 2001-11-13 Eric Blake * src/error.cpp: * src/error.h (PROTECTED_INTERFACE_METHOD_NOT_ACCESSIBLE): Add new error. * src/expr.cpp (MemberAccessCheck, ReportMethodNotFound): Update to account for the fact that interfaces do not inherit protected methods from Object, bug 1787, patch 229 update. 2001-11-12 Eric Blake * src/double.cpp (IntValue, LongValue): Fix a bug in float to integral-type conversion, bug 2403. 2001-11-12 Eric Blake * src/bytecode.cpp (GenerateAssertVariableInitializer), (EmitAssertStatement): Fix regressions caused by patch 225. 2001-11-12 Eric Blake * src/system.cpp (InitObjectInfo): Delete. * src/control.h (Object): * src/control.cpp (Object_getClassMethod): Rearrange evaluation dependencies to allow compilation of java.lang.Object, fixing regression caused by patch 139. 2001-11-12 Eric Blake * src/bytecode.cpp (LoadImmediateInteger): Fix a regression from my patch of bug 220. 2001-11-12 Eric Blake * src/expr.cpp (FindVariable*): Another regression in patch 229. 2001-11-11 Eric Blake * src/decl.cpp: * src/expr.cpp: * src/modifier.cpp: Fix some more random regressions caused by patch 229. 2001-11-11 Eric Blake * src/decl.cpp (NeedsInitializationMethod): Fix assertion error in previous commit. 2001-11-10 Eric Blake * src/decl.cpp (CheckMethodOverride, AddInherited*): Consolidate all the work of CompleteSymbolTable, CheckMethodOverride, and CheckInheritedMethodThrows into one place, which is now called when building the inheritance tables. Fixes bugs 190, 1787, 1801. * src/error.h: * src/error.cpp: More error cleanups: Collapse REDUNDANT_* and OBSOLESCENT_ABSTRACT into REDUNDENT_MODIFIER, add RECOMMENDED_MODIFIER_ORDER, collapse VOLATILE_FINAL and FINAL_VOLATILE to VOLATILE_FINAL_FIELD, add MISMATCHED_IMPLICIT_METHOD, FINAL_IMPLICIT_METHOD_OVERRIDE, and MISMATCHED_IMPLICIT_OVERRIDDEN_EXCEPTION, and delete some unused errors. * src/modifier.cpp: Add checking (in pedantic mode) for the recommended ordering of modifiers. * src/platform.cpp: Fix a core-dump caused during my testing when I accidentally passed NULL as an error message parameter. * src/semantic.h: Update some method headers. * src/table.h (RemoveConflicts): Delete this method, as saving the method conflicts is essential for determining the merged throws clause mentioned in bug 2395 (although I don't have that bit working yet) - patch 229. 2001-11-09 Eric Blake * src/decl.cpp (ProcessImportQualifiedName): Detect attempts to import from the unnamed package. * src/error.h: * src/error.cpp (IMPORT_FROM_UNNAMED_PACKAGE): Add new error. (UNKNOWN_ON_DEMAND_IMPORT): Rename from UNKNOWN_QUALIFIED_NAME_BASE, bug 601, patch 228. 2001-11-08 Eric Blake * src/access.h (AccessString): Add, for easier error messages. * src/ast.h (AstClassInstanceCreationExpression): Add field for storing class declaration of anonymous types. * src/body.cpp (ProcessConstructorBody): Constructor bodies are always reachable. * src/bytecode.cpp (CompileClass): Emit some accessor methods directly, instead of generating on the fly. (EmitMethodInvocation): Emit invokespecial instead of invokestatic in accessor method, as needed, bug 169. * src/decl.spp: Minor code cleanup. * src/error.cpp: Lots of reformatting, improved error messages. * src/error.h: Remove dead errors: FIELD_NAME_NOT_FOUND, NAME_NOT_VARIABLE, METHOD_NAME_NOT_FOUND, UNREACHABLE_CONSTRUCTOR_BODY. Add new error: METHOD_OVERLOAD_NOT_FOUND. * src/expr.cpp: Lots of work to improve access of fields and methods (work remains to be done on nested types and constructors, as well as some cleanup of error reporting). Fix at least these bugs: 182: access of inherited protected methods in other packages does not require an accessor method 213: access of protected static members is legal regardless of the qualifier 215: when a field is not found, check for a method before a misspelled field name 219: when a method is not found, check for overloaded versions before reporting no method found 246: Classname.this.member and Classname.super.member do not point to subclasses of Classname 427: access of a private field gives better error message 666: Classname.super.member does not point to inaccessible supertype 2376: correctly grab the only inherited field when a superclass has two ambiguous fields of differing accessibility * src/lookup.h (HashCode): Add a hash to VariableSymbol for use by symbol.cpp * src/semantic.h: Improve various method calls, consolidating some error reporting, and passing necessary information to do accessibility checks. * src/set.h (class Map): Add new class for more efficient accessor method mapping in symbol.cpp * src/stream.h (Badtoken): Make static * src/symbol.cpp: Update the generation and retrieval of accessor methods, since there can be as many as three accessor methods for an instance variable. The updated accessors can be emitted directly to bytecode, with no extra effort. Work still remains for constructor accessors. * src/symbol.h: Update accessor method storage - patch 142. 2001-11-08 Eric Blake * src/bytecode.cpp (LoadImmediateInteger): Comment why we emit ldc instead of sipush if the constant already appears in the pool; but emit sipush instead of ldc_w - bug 220. 2001-11-08 Eric Blake * src/double.h (NAN_BITS): Rename from NAN, which happened to expand as a pre-processor macro in gcc 3.0.1 - bug 2255. 2001-11-08 Eric Blake * src/decl.cpp (CompleteSymbolTable): Improve the tests for abstract method implementations, bug 2382. (AddInherited*): Improve tests for ambiguous names, as the public member of a superclass' interface is inherited even if the default member of the grandparent class is not. This is a first of two parts for addressing bug 2376. * src/table.h (class ExpandedMethodTable): Fix method return types for use in AddInheritedMethods - patch 227. 2001-11-07 Chris Dennis * src/symbol.cpp: Fix for-loop scoping for the non-compliant VC++ compiler (this seems to be a recurring problem!) - bug 2377. 2001-11-06 Eric Blake * src/error.h: * src/error.cpp (FIELD_NAME_NOT_FOUND, METHOD_NAME_NOT_FOUND): Rename from NAME_NOT_FOUND, METHOD_NAME_NOT_FOUND_IN_TYPE. (FIELD_NOT_ACCESSIBLE, METHOD_NOT_ACCESSIBLE), (CONSTRUCTOR_NOT_ACCESSIBLE): Consolidate from several similar errors. (PROTECTED_INSTANCE_FIELD_NOT_ACCESSIBLE), (PROTECTED_INSTANCE_METHOD_NOT_ACCESSIBLE): Add to give better error message in protected access violation. (STATIC_PROTECTED_FIELD_ACCESS, STATIC_PROTECTED_METHOD_ACCESS): Delete these errors, as JLS2 made them legal. * src/symbol.h: * src/symbol.cpp (GetReadAccessConstructor): Split from GetReadAccessMethod. * src/expr.cpp: * src/body.cpp (ProcessSuperCall): Update to use above changes - patch 226. 2001-11-06 Eric Blake * src/body.cpp (ProcessExecutableBodies): Suppress spurious warning messages about finals not assigned in a constructor which contains semantic errors, bug 669. * src/symbol.cpp (CleanUp): Fix core dump from patch 225. 2001-11-05 Eric Blake Patch 139. * src/scanner.cpp (ScanKeyword6, ClassifyIdOrKeyword) (ClassifyId): * src/stream.h: * src/stream.cpp: * src/java.g (AssertStatement): Add syntax rules for assert statement: bug 602. Also, add lexical warning for use of $ in identifier: bug 505. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: Regenerate. * src/unparse.cpp: * src/ast.cpp: * src/ast.h (AstAssertStatement): Add AstAssertStatement, the AST object. * src/semantic.h: * src/definite.cpp (DefiniteAssertStatement): * src/decl.cpp (ProcessStaticInitializers) (GetStaticInitializerMethod): * src/symbol.h: * src/symbol.cpp (FindOrInsertAssertVariable, AssertVariable): * src/body.cpp (ProcessAssertStatement): Add semantic rules for assert statement. * src/bytecode.h: * src/bytecode.cpp (EmitAssertStatement): Add bytecode emission for assert statement. * src/control.h: * src/control.cpp (Object, Class, AssertionError): * src/system.cpp: * src/platform.h: * src/platform.cpp (StringConstant): Add necessary hooks for getting strings and library methods used in compiling assert statement. * src/error.cpp: * src/platform.h (ErrorString): Use endl instead of '\n'. 2001-11-05 Eric Blake * src/bytecode.cpp: Reformat comments to 80 columns. Update stack_depth tracing to actually trace stack depth, bug 211. Optimize generation of class literals. Also, update field and method references to point to their qualifying class type, per JLS 13.1, bug 353. * src/op.cpp: Update to correctly track stack depth. * src/symbol.cpp: Update generation of class literals. Update some code formatting - patch 225. 2001-11-05 Eric Blake * src/bytecode.cpp (DeclareField): Correct the use of ConstantValue attributes to obey JLS2, bug 183 - patch 224. 2001-11-04 Eric Blake * src/control.h (StringBuffer_*Method): Fix some typos. * src/control.cpp: * src/expr.cpp: * src/symbol.cpp: * src/symbol.h (NumAnonymousTypes): Rename from num_anonymous_types, to be consistent. * src/ast.h: Add Ast::IsSuperAccess to complement IsSuperAccess. Initialize a number of fields that were never being assigned in the grammar. 2001-11-03 Eric Blake * src/option.h (INVALID_SDK_ARGUMENT): Add error message. * src/option.cpp: Use error message, and fix stupid typo. 2001-11-02 Eric Blake * src/ast.h: Reformat comments to 80 columns. Remove unused AstAssignmentExpression::DEFINITE_EQUAL. * src/bytecode.cpp: Reformat comments to 80 columns. Update when local variable table data is generated, to start when a varible is declared (rather than first assigned), bug 422; this also solves the core dump of bug 2353. Optimize boolean conditional expressions when one term is constant, bug 65. * src/definite.cpp: Remove dead code for tracking when a variable is first assigned, since the local variable table now only cares when it is declared. Patch 223. 2001-11-02 Eric Blake * src/symbol.cpp: Reformat comments to 80 columns. * src/expr.cpp: Reformat comments to 80 columns. Fix one last corner case in TypeAccessCheck. * doc/jikes.1: Fix some wording to match @file behavior. 2001-11-02 Eric Blake * src/decl.cpp: Reformat comments to 80 columns. 2001-11-02 Eric Blake * src/expr.cpp (TypeAccessCheck): * src/symbol.cpp (HasProtectedAccessTo): Update to be in line with JLS 6.6.1 for array types, bug 675 - patch 222. 2001-11-02 Eric Blake * src/expr.cpp (ConstructorAccessCheck): Fix access check for anonymous classes which call a default constructor in another package, bug 193 - patch 221. 2001-11-02 Mo DeJong * configure.in: Add --enable-jikes-namespace flag. Jikes classes and functions will be defined in a C++ namespace when enabled. * configure: Regen. * src/config.h.in: Regen. Patch 220. 2001-11-01 Eric Blake * src/option.cpp (enum ParseState): Inline into the single method where it was used. * src/scanner.h: * src/scanner.cpp (ScanStarComment): Update comment scanning to allow embedded Ctrl-Z, bug 2352. Also, detect @deprecated only if it begins a line in the comment, bug 519 - patch 219. 2001-11-01 Eric Blake * src/option.h: * src/option.cpp (ArgumentExpander): Update @file parsing to match Sun's javac, bug 1905. Rearrange error reporting so that parse errors can be easily detected. * src/jikesapi.cpp (parseOptions): * src/control.h (ProcessNewInputFiles): * src/control.cpp (ProcessNewInputFiles): Update to account for earlier error detection. 2001-10-31 Eric Blake * src/jikesapi.cpp: Fix up formatting. * src/control.cpp: Fix up formatting. Fix report of # of .java files processed, bug 1818. 2001-10-31 Eric Blake * src/option.h (OptionError): * src/platform.cpp (U8S_help_header): Fix compile issues with HP-UX aCC. 2001-10-31 Eric Blake Patch 211: * doc/jikes.1: Update the man page to reflect options changes. * src/jikesapi.h: * src/jikesapi.cpp: * src/option.h: * src/option.cpp (Option): Add -encoding option on builds without encoding, which prints an error message - bug 2242. Add various options synonyms - bug 339. Add -source, -target, and -J options, as well as making -g work like in javac - bug 273. * src/bytecode.cpp: * src/class.h (Write): * src/control.cpp: * src/definite.cpp: * src/error.cpp: * src/error.h: * src/platform.cpp: * src/platform.h: * src/semantic.h: Update to use improved options. * src/jikes.cpp: Add --help and --version support. Print usage to stdout - bug 225. 2001-10-30 Eric Blake * src/decl.cpp (ProcessTypeHeader): Fix infinite recursion with invalid local class, bug 2293 - patch 215. 2001-10-30 Eric Blake * src/decl.cpp (AddDefaultConstructor): Default constructor should have access modifier of enclosing class, bug 391 - patch 214. 2001-10-27 Chris Dennis * src/definite.cpp: Change all uses of pair to def_pair, to avoid conflict with MS VC++ compiler mentioned in bug 2283 - patch 212. Also, reindent some code in #ifdef blocks. 2001-10-26 Chris Dennis * src/platform.cpp (SystemFopen, SystemMkdirhierForFile): * src/jikesapi.cpp (JikesAPI::stat): Fix namespace issues mentioned in bug 2250 - patch 210. 2001-10-25 Eric Blake * src/ast.h: * src/java.g (SwitchBlock): Mark blocks inside a switch statement with AstBlock::SWITCH, for use in definite assignment analysis. * src/javaact.cpp: Regenerate. * src/definite.cpp: * src/semantic.h: * src/expr.cpp: * src/set.h: Overhaul definite assignment analysis, to bring it line with 2nd edition JLS. In the process, fixed bugs: 192, 603, 606, 610, 623 - patch 209. 2001-10-17 Eric Blake * src/long.cpp (operator/, operator%): Suppress a warning in the HP aCC compiler. 2001-10-16 Eric Blake * src/op.h: * src/op.cpp: * src/bytecode.cpp: Change OP_INVOKENONVIRTUAL to OP_INVOKESPECIAL, the new name in the second edition JVMS - patch 208. 2001-10-16 Michael Ernst * src/unparse.cpp: Adjust bodies to use LexStream*. Replace a use of "\n" by endl. Add comment. Make line breaks in if statements consistent. * src/ast.h: Adjust Unparse prototypes to take LexStream*, not LexStream&. * src/control.cpp (CleanUp): Use LexStream* - patch 198. 2001-10-16 Michael Ernst * src/bytecode.cpp (EmitAssignmentExpression): * src/control.cpp (Serializable_type): * src/depend.cpp (OutputMake): * src/dump.cpp (Dump): Disambiguate error messages - patch 200. 2001-10-16 Michael Ernst * src/ast.cpp (AstSwitchBlockStatement): Fix some debug output formatting errors - patch 197. 2001-10-16 Michael Ernst * src/decl.cpp (ProcessFieldDeclaration): * src/diagnose.cpp (getErrorMessage): * src/stream.cpp (ProcessInputUnicode): Explicitly initialize some variables, restrict scope of temporaries, and fix some comment typos - patches 202, 203. 2001-10-16 Michael Ernst * src/platform.h: Add prototype SystemMkdirhierForFile. * src/platform.cpp (SystemMkdirhierForFile): Add definition. * src/unparse.cpp (Unparse): Use SystemMkdirhierForFile - patch 199. 2001-10-15 Michael Ernst * src/platform.h: Fix typos, and reindent comments to 80 columns - patch 204. 2001-10-15 C. Scott Ananian * src/body.cpp (ProcessClassDeclaration): Hack to fix bug 1954: patch 86 broke behavior of local classes in a static context; this needs to be fixed correctly before 1.16 - patch 195. 2001-10-15 Michael Ernst * src/stream.cpp: * src/stream.h (class LexStream): Change file_read to bool, to match its use - patch 201. 2001-10-14 Eric Blake * src/bytecode.h (InvertIfOpCode): Fix regression caused by patch 167, as reported in bug 1982 - patch 205. 2001-10-14 Eric Blake * src/bytecode.h: * src/bytecode.cpp (GenerateClassAccess): Fix a regression reported in bug 2016 with class literal - patch 206. 2001-10-13 Daniel Resare * jikes.spec: Properly set the file ownership to root 2001-10-13 Chris Abbey * jikes.spec: set version to make it obvious if someone is using CVS versions. 2001-10-12 Eric Blake * jikes.spec: Update to version 1.15. * configure.in: Change version to 1.15a to make it obvious when bug reports are made against CVS. * configure: * src/config.h.in: Regenerate. 2001-09-28 Chris Abbey Released 1.15, thanks for driving this one Eric. 2001-09-28 Chris Abbey * src/option.cpp: Correct regression with cygwin classpath handling, consolidate options and envvars to common code. 2001-09-21 Eric Blake * configure.in: Update the version to 1.15 in preparation for release candidate. * configure: Regenerate. 2001-09-21 Mo DeJong * HACKING: Add note about running ./autogen.sh to regenerate autotools files - patch 193. * autogen.sh: Run automake before autoconf. * src/Makefile.am: Update the dependencies to be current. * Makefile.in: * doc/Makefile.in: * src/Makefile.in: Regen, without auto dependency tracking for now. 2001-09-20 Mo DeJong * configure.in: Change --enable-debug option so that CXXFLAGS is automatically set to -g when the CXXFLAGS variable was not set by the user - patch 192. * configure: Regen. 2001-09-20 Chris Abbey * src/double.h (BigInt): Fixed friend class issues, to correct build breakage with compilers stricter than gcc is (like AIX) - patch 186. 2001-09-20 Mo DeJong * configure.in: Add check for __int64 type which is supported by VC++ under Windows - patch 191. * configure: Regen. * src/config.h.in: Regen. * src/platform.h: Revert incorrect #ifdef checks added by patch 190. These checks need to be done in the configure.in file so config.h gets the right #ifdefs. * src/double.cpp: * src/long.cpp: * src/long.h: Use HAVE_64BIT_TYPES instead of HAVE_UNSIGNED_LONG_LONG. 2001-09-20 Eric Blake * src/bytecode.cpp (EmitFieldAccess): Fix another reported regression caused by patch 90. 2001-09-17 Eric Blake * src/jikesapi.cpp: * src/jikes.cpp: * src/platform.h: Revert patch 168. Too many complaints. See bug 1900, among others. 2001-09-15 Chris Abbey * src/m4/ac_try_encoding.m4: Add fallback test for ISO8859-1 to fix AIX's iconv (and others without ISO-8859-1) - patch 188. * configure: regenerate 2001-09-15 Chris Abbey * configure.in: enable users to activate rtti tests without hacking configure script, just by setting envvar - patch 187. * configure: regenerate 2001-09-15 Chris Dennis * src/platform.h: Add support for MS VC++ __int64 - patch 190, from bug 1897. 2001-09-15 Chris Dennis * src/java.g: Fix namespace typo - patch 189, from bug 1896. * src/javaact.h: regenerate 2001-09-14 Jerry Veldhuis * src/symbol.h (IsInner): Fix a regression caused by patch 90. This patch is a hack, and a cleaner version should be made before jikes 1.16 - patch 185, from bug 1895. 2001-09-13 Eric Blake Michael Ernst * src/Makefile.am: * src/Makefile.in: fix typo that broke --enable-maintainer-mode * src/access.h: * src/ast.cpp: * src/ast.h: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/case.cpp: * src/case.h: * src/class.h: * src/code.cpp: * src/code.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/depend.h: * src/diagnose.cpp: * src/diagnose.h: * src/double.cpp: * src/double.h: * src/dump.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/gencode.java: * src/getclass.cpp: * src/getclass.h: * src/incrmnt.cpp: * src/init.cpp: * src/java.g: * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: * src/jikes.cpp: * src/jikesapi.cpp: * src/jikesapi.h: * src/long.cpp: * src/long.h: * src/lookup.cpp: * src/lookup.h: * src/lpginput.cpp: * src/lpginput.h: * src/modifier.cpp: * src/op.cpp: * src/op.h: * src/option.cpp: * src/option.h: * src/parser.cpp: * src/parser.h: * src/platform.cpp: * src/platform.h: * src/scanner.cpp: * src/scanner.h: * src/segment.cpp: * src/segment.h: * src/semantic.h: * src/set.cpp: * src/set.h: * src/spell.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/tab.cpp: * src/tab.h: * src/table.h: * src/tuple.h: * src/unparse.cpp: * src/unzip.cpp: * src/unzip.h: * src/zip.cpp: * src/zip.h: Patches 135, 136 - Fix whitespace and comment typos for a more consistent style. Update copyright notice years where necessary. Also centralize some #includes in platform.h. Headers now open up in emacs under c++-mode. 2001-09-10 Eric Blake * src/bytecode.cpp (EmitFieldAccess): Fix a regression in class literals, caused by the previous patch. 2001-09-09 Eric Blake * src/bytecode.h: * src/bytecode.cpp (EmitExpression) (EmitConditionalExpression, EmitFieldAccess): Added the flag need_value, for optimal code generation when a qualifying expression to a static reference is encountered - patch 90, from bug 435. * src/bytecode.cpp (EmitStatementExpression): Removed case Ast::PARENTHESIZED_EXPRESSION, since the JLS forbids them as statements. (EmitAssignmentExpression, EmitFieldAccess) (EmitMethodInvocation, LoadVariable, LoadReference): Update to use added need_value flags. * src/symbol.h (AccessesInstanceMember): Added a method for easier detection when a static accessor method is accessing an instance member. 2001-09-08 Gregory Steuck Andrew M. Inggs Eric Blake * src/option.cpp (Option): Consolidated classpath related option processing into a single routine, along with fixes that were causing segfaults with cygwin. Based in part on patches 122 and 129, and comments on those patches. 2001-09-08 Norris Boyd * src/bytecode.cpp: Follow-on patch to the previous, to cover jsr_w as well - patch 177. 2001-09-08 Norris Boyd * src/bytecode.h: * src/bytecode.cpp: Instrument wide jump capabilities into branches. For branching opcodes like ifeq, if the branch offset requires more than two bytes, generate a branch around a goto_w. Uses the hueristic of the number of tokens branched over, to avoid the difficulty of regenerating or patching code in order to insert the additional goto_w op - patch 167, from bug 161. 2001-09-08 Eric Blake * src/body.cpp (ProcessSynchronizedStatement, ProcessIfStatement): Detect illegal synchronized(null){}, bug 1882, and clean up impossible check for statements that complete normally - patch 182. 2001-09-08 Eric Blake * src/expr.cpp (UpdateGeneratedLocalConstructor): Removed the cause of a core dump when a method omits a return type in a local class - patch 91, from bug 179. * src/error.h: * src/error.cpp (PrintMISSPELLED_CONSTRUCTOR_NAME): Added an error to differentiate between behavior taken when bad constructor is interpreted as misspelling instead of missing return type. Improved the wording of various constructor-related error messages. * src/decl.cpp (ProcessConstructorDeclaration): Added some better handling of misspelled name vs. missing return type. * src/spell.h (Spell): Added some documentation to better explain this (useful) class. 2001-09-08 Eric Blake * src/jikesapi.cpp (JikesOption): Attempt a workaround to a segv encountered with bad encoding from patch 168. 2001-09-07 Eric Blake * src/decl.cpp (ProcessMembers, ProcessFieldDeclaration) (ProcessMethodDeclaration, ProcessStaticInitializers): Improve the error handling of inner classes and static members - patch 86, from bugs 247, 343, 348, 349. * src/error.h: * src/error.cpp (PrintSTATIC_FIELD_IN_INNER_CLASS): Split into: (PrintSTATIC_FIELD_IN_INNER_CLASS_NOT_FINAL) (PrintSTATIC_FIELD_IN_INNER_CLASS_NOT_CONSTANT): Report error messages on static fields in inner types located in static context (bug 348). (PrintSTATIC_METHOD_IN_INNER_CLASS, PrintSTATIC_TYPE_IN_INNER_CLASS) (PrintSTATIC_INITIALIZER_IN_INNER_CLASS): Improved the error message wording to be consistent. * src/symbol.cpp: * src/symbol.h (TypeSymbol): Deleted IsTopLevel(), since it was redundant with IsInner(). Fixed IsInner() to correctly detect local and anonymous classes in static contexts. * src/body.cpp (ProcessClassDeclaration): Local classes should never have the ACC_STATIC attribute set when emitting bytecode. (ProcessExecutableBodies): Remove cause of assertion failure when called after syntax errors in anonymous class (bug 343). * src/init.cpp (ProcessVariableInitializer): Fix error detection of non-constant static fields in inner classes (bug 247). 2001-09-07 Eric Blake * src/error.h: * src/error.cpp: Added PrintSTRICTFP_NATIVE_METHOD(). Updated error messages concerning modifiers. * src/decl.cpp (ProcessMethodDeclaration): Uncomment code to set methods that are implicitly final. * src/expr.cpp (GetAnonymousType): Fix code so that anonymous types are implicitly final, but never static. * src/modifier.cpp: Update calls to improved error message for duplicate modifiers. (ProcessMethodModifiers): Add check for illegal abstract/strictfp and native/strictfp pairs - patch 72, from bug 407. 2001-09-07 Michael Ernst * src/platform.h (StringConstant): * src/platform.cpp (StringConstant): * src/control.h (Control): Remove references to US_Vector and Vector_type, which is unused - patch 161. 2001-09-07 Michael Ernst * src/unparse.cpp (Unparse AstBlock): Labels need to be within, not outside, added braces - patch 134, from bug 638. 2001-09-06 Takashi Okamoto * configure.in: check for needed headers. * configure: * src/config.h.in: Regenerate. * src/jikesapi.cpp: * src/jikes.cpp: * src/platform.h: set character encoding based on the one for the default locale - patch 168. 2001-09-06 Eric Blake * src/Makefile.am: Added src/gencode.java to the .tar ball, along with hardcoded maintainer target gencode. Also, install jikesapi.h in the include directory. * src/.cvsignore: * Makefile.in: * doc/Makefile.in: * src/Makefile.in: Regenerate with automake dependency tracking. * src/gencode.java: Improved the code with more comments, notification in the generated files, and a 4x reduction to the size of src/code.cpp with no runtime cost (by sharing more common array entries) - patch 140, from bug 640. * src/code.h: * src/code.cpp: Regenerate from new gencode.java. * src/scanner.cpp (Scanner): Add a sanity check. 2001-09-06 Eric Blake Patch 85: * src/java.g: Fixed some copyright and namespace code transferred to generated files. Fixed up some comments (in particular, where JLS2 clarifies questions posed by JLS1), typos, and whitespace consistency problems. (ExplicitConstructorInvocation): Removed this illegal production - from bug 420. (Primary, ArrayCreationExpression, ArrayAccess) (ArrayCreationInitialized, ArrayCreationUninitialized): Split ArrayCreationExpression into two parts, to allow legal array access of initialized array, added in JLS2 - from bug 123. * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: Regenerate with CVS version of jikespg - from bug 516. * src/bytecode.cpp (EmitThisInvocation): * src/body.cpp (ProcessThisCall): * src/symbol.cpp (GetReadAccessMethod): Remove code for qualified explicit this constructor, which is not legal Java - from bug 420. * src/ast.cpp (Print): * src/ast.h (AstThisCall): Remove base_opt and dot_token_opt, as they are not necessary in legal Java - from bug 420. 2001-09-06 Russ Trotter * src/bytecode.cpp (GenerateAccessMethod) (GenerateClassAccessMethod): Second half of JPDA patches, to work around bug in Sun's software - patch 119, from bugs 210, 473. 2001-09-06 Michael Ernst * src/bytecode.cpp (EmitAssignmentExpression): * src/getclass.cpp (ProcessSignature): * src/decl.cpp (ProcessMethodDeclaration): Fix some warnings triggered by some versions of gcc -Wall - patch 137. 2001-09-06 Michael Ernst * src/stream.h (SetUpComments): Prevent duplicate work, by checking if comment_buffer already exists - patch 133. 2001-09-05 Eric Blake * src/bytecode.cpp (EmitSwitchStatement): Fix assertion failure when -g is enabled - patch 143, from bug 136. 2001-09-05 Eric Blake * src/body.cpp (ProcessSynchronizedStatement, ProcessReturnStatement): * src/expr.cpp (ProcessAmbiguousName, ProcessMethodName): Fix remaining cases of string constants not being compiled inline - patch 121, from bug 66. 2001-09-05 Eric Blake * src/segment.h (PairSegment, TripletSegment): * src/op.h (Operators): * src/op.cpp (opline): * src/platform.h (Ostream): * src/body.cpp (ProcessLocalVariableDeclarationStatement): Fix compiler warnings on HP-UX 11.00 aCC. 2001-09-05 Ian P. Cardenas * src/semantic.h (AddDependence): changed pedantic error reporting to use ReportSemError as to avoid segfault when error is NULL - patch 108, from bug 491. 2001-09-05 Eric Blake * src/platform.h (Ostream operator<<): Add missing operator<<(ostream&(&)(ostream&)). * src/access.h: * src/ast.cpp: * src/bytecode.cpp: * src/class.h: * src/control.cpp: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/dump.cpp: * src/error.cpp: * src/getclass.cpp: * src/incrmnt.cpp: * src/jikesapi.cpp: * src/op.cpp: * src/stream.cpp: * src/unparse.cpp: Use endl instead of '\n' for platform independence. 2001-09-04 Eric Blake * depcomp: One more autotool file, but only useful when configuring with dependency tracking enabled. * src/.cvsignore: Add gencode.class. * ChangeLog: Fix some whitespace issues. 2001-09-04 Eric Blake Chris Abbey * .cvsignore: * doc/.cvsignore: * src/.cvsignore: Add for convenience. * AUTHORS: * COPYING: * HACKING: * INSTALL: * NEWS: * TODO: Some updates in preparation for 1.15. * src/m4/ac_find_encoding.m4: * configure.in: Fix some bugs with the autotool chain, add --enable-debug to configuration - patch 127. * Makefile.in: * aclocal.m4: * config.guess: * config.sub: * configure: * missing: * mkinstalldirs: * doc/Makefile.in: * src/Makefile.in: * src/config.h.in: Regen with latest version of Autotools. 2000-09-04 Eric Blake * src/body.cpp (ProcessLocalVariableDeclarationStatement) (ProcessExecutableBodies): Reduce check for local variable/formal parameter duplication to occur only in innermost enclosing class, per JLS 14.4.2 - patch 62, from bug 197. 2001-09-04 Eric Blake * src/body.cpp (ProcessSynchronizedStatement) (ProcessTryStatement): Fix VerifyErrors caused by reusing local variables between try and finally blocks - patch 50, from bug 204. * src/bytecode.cpp (ProcessAbruptExit) (EmitSynchronizedStatement): Likewise. Also optimized the emitted bytecode for synchronized. 2001-09-03 Eric Blake * src/expr.cpp (ProcessAssignmentExpression): Fix the regression caused by the patch committed 2001-05-06 - patch 118, from bug 493. 2001-09-02 Eric Blake * src/stream.cpp (ProcessInputUnicode): Remove side effect from assert statement - patch 145, from bug 657. 2001-08-31 Chris Abbey * README: * jikes.spec: * doc/jikes.1: * src/access.h: * src/ast.cpp: * src/ast.h: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/case.cpp: * src/case.h: * src/class.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/depend.h: * src/diagnose.cpp: * src/diagnose.h: * src/double.cpp: * src/double.h: * src/dump.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/getclass.cpp: * src/getclass.h: * src/incrmnt.cpp: * src/init.cpp: * src/java.g: * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: * src/jikes.cpp: * src/long.cpp: * src/long.h: * src/lookup.cpp: * src/lookup.h: * src/lpginput.cpp: * src/lpginput.h: * src/modifier.cpp: * src/op.cpp: * src/op.h: * src/option.cpp: * src/option.h: * src/parser.cpp: * src/parser.h: * src/platform.cpp: * src/platform.h: * src/scanner.cpp: * src/scanner.h: * src/segment.cpp: * src/segment.h: * src/semantic.h: * src/set.cpp: * src/set.h: * src/spell.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/tab.cpp: * src/tab.h: * src/table.h: * src/tuple.h: * src/unparse.cpp: * src/zip.cpp: * src/zip.h: * src/jcl/Makefile: * src/jcl/README: * src/jcl/jcl.cpp: * src/jcl/jcl_access.h: * src/jcl/jcl_bc_op.cpp: * src/jcl/jcl_bc_op.h: * src/jcl/jcl_bool.h: * src/jcl/jcl_class.cpp: * src/jcl/jcl_class.h: * src/jcl/jcl_dynamic.h: * src/jcl/jcl_iclass.cpp: * src/jcl/jcl_iclass.h: * src/jcl/jcl_int.h: * src/jcl/jcl_long.cpp: * src/jcl/jcl_long.h: * src/jcl/jcl_unicode.h: fix URLs. (no, that *isn't* every file in the repository, it just looks like it.) 2001-06-02 Mo DeJong * src/unzip.cpp (UncompressFile0): * src/zip.cpp (Zip): Use SystemFread() instead of fread(). 2001-06-01 Mo DeJong * config.guess: * config.sub: Update from net versions to add the new windows32 host option. * src/m4/acx_check_pathname_style.m4 (ACX_CHECK_PATHNAME_STYLE_DOS): Add *windows32* to the set of targets that support DOS style pathnames. 2001-06-01 Mo DeJong * src/option.cpp (ArgumentExpanded, ArgumentExpander): Rename ArgumentExpanded to ExpandAtFileArgument. Change parsing so @files are treated as one filename per line instead of space or tab separated file names. * src/option.h (ArgumentExpanded): Rename ArgumentExpanded to ExpandAtFileArgument. 2001-05-28 Pascal Davoust * src/double.h: Add (u4) cast to IEEEfloat constructor calls to avoid bad code generation with VC++. 2001-05-26 Eric Blake * src/expr.cpp (Semantic::ProcessConditionalExpression): Add a missing return that caused a regression in Jikes 1.14. An assertion was being raised when a ?: expression mixed a primitive and reference type in the second and third operands. 2001-05-17 Chris Abbey * option.cpp: * control.cpp: Completed the removal of EBCDIC related code that Vadim started in October 1999. (it was all dead code after the preprocessor ran anyway.) If support for EBCDIC is ever put back in it should be done through the API and ICU/iconv. * platform.h: replaced comment explaining the U_ enums. 2001-05-13 Chris Abbey Released Jikes 1.14, Happy Mother's Day. 2001-05-13 Chris Abbey * jikes.spec: added %doc for documentation files, and changed jikes.1 to jikes.1.gz because the rpm build process automatically compresses man pages, but doesn't reflect this in the %files section. 2001-05-11 Chris Abbey * src/stream.cpp (Stream::DecodeNextCharacter): fixed core fault in parser because we cast a char to a wchar_t without preventing sign expansion. 2001-05-11 Chris Abbey * jikes.spec: takes Dave's name out so people stop claiming to be him. Also update the version to 1.14 2001-05-10 Chris Abbey * src/option.cpp (Option::Option): make sure classpath, bootclasspath, sourcepath and extdirs are not null before being handed over to cygwin to convert the paths. Also flagged some potential memory leaks. 2001-05-09 Chris Abbey * acinclude.m4: * src/config.h.in: * src/m4/ac_check_iconv.m4: * src/m4/ac_find_encodign.m4: * src/m4/ac_try_encoding.m4: add support to probe for the correct combo of target encoding and byteswapping for iconv on this platform. * src/stream.cpp: make use of probed values instead of hardcoded. Correct byteswapping to handle all four bytes when sizeof(wchar_t) is 4, bypass swapping if possible. * aclocal.m4: * configure: regenerated 2001-05-07 Pascal Davoust * long.cpp (LongInt::ConstantCleanup): fix MSVC build break because the compiler doesn't allow automated conversion of a const X* to a void*. Explicit cast (without const modifier) used. * definite.cpp (DefiniteSwitchStatement): fix MSVC build break because of duplicate variables in 'for' loops. 2001-05-06 Eric Blake * src/bytecode.h: * src/bytecode.cpp (EmitCheckForNull): Add a method which emits a check for null-qualified expressions, shared between... (EmitClassInstanceCreationExpression): (EmitSuperInvocation): Use EmitCheckForNull to improve checks of qualified expressions (bugs 171, 419). * src/body.cpp (ProcessSuperCall): Fix qualified super calls to allow subclasses of the enclosing class, in line with JLS 8.8.5.1 (bug 401). 2001-05-06 Eric Blake * src/bytecode.cpp (EmitFieldAccessLhsBase): Removed redundant code. (EmitAssignmentExpression, EmitMethodInvocation) (LoadVariable, LoadReference): Fix assignments to static fields, calls to static methods, increments of static fields, and accesses to static methods, so that qualifying expressions are evaluated (bug 132). Improve the error checking by adding asserts on dead code branches. 2001-05-06 Eric Blake * src/expr.cpp (ProcessAssignmentExpression): Fixed a bad cast, which was causing bug 234. 2001-05-06 Eric Blake * src/bytecode.cpp (EmitPostUnaryExpressionField) (EmitPreUnaryIncrementExpressionArray): Fix bad bytecodes when performing increment operators on sub-integers (bugs 127, 223). 2001-05-06 Eric Blake * src/definite.cpp (DefiniteBlock) (DefiniteSwitchStatement, DefiniteTryStatement): Changed the definite algorithm to quit checking variables that went out of scope, fixing bug 253 and related. 2001-05-06 Kumaran Santhanam * src/control.cpp (ProcessBodies): fix timestamp assert failure on Windows builds fixes bugs 128, 406. (by way of Eric). 2001-05-04 Pascal Davoust * control.cpp (Control): fix MSVC build break because of duplicate variables in for loops. 2001-05-04 Eric Blake * src/lookup.h (IsConstant): * src/lookup.cpp (IsConstant, CheckStringConstant): Fix the regression from 1.12, bug 417 - constant string expressions should now be correct. 2001-05-04 Andrew Vajoczki * src/bytecode.cpp (EmitSwitchStatement): Workaround for Sun JVM TABLESWITCH bug in JDK 1.2, 1.3 which causes a VerifyError (bug 167, jacks 14.10-runtime-verifier-1) 2001-05-01 Eric Blake * src/expr.cpp (FindVariableMember) (ProcessAmbiguousName, ProcessFieldAccess): Fixed and consolidated code which processes qualified field access, to wipe out core dumps mentioned in bug 178. (ProcessSuperExpression): Fixed typo 2001-05-01 Eric Blake * src/Makefile.am (jikespg): * src/Makefile.in (jikespg): Use $(JIKESPG) instead of hardcoded jikespg. 2001-05-01 Mo DeJong * src/ast.h (DYNAMIC_CAST): * src/lookup.cpp: Add new DYNAMIC_CAST method, it will make use of the dynamic_cast<> operator and RTTI to check for downcast errors. Use it for all Ast and Symbol cast conversions. 2001-05-01 Eric Blake * expr.cpp: use control.IsSimpleIntegerValueType(x) instead of x == control.int_type. 2001-05-01 Eric Blake * expr.cpp: A string expression was not being treated as a constant, thus breaking some instanceof tests. 2001-04-26 Mo DeJong * src/stream.cpp (DecodeNextCharacter): Use u2 type instead of wchar_t type to address a 16 bit value from a char*. 2001-04-23 Adam Hawthorne * doc/jikes.1: Added options and changed text at the bottom to reflect those options. * src/control.cpp (Control): * src/control.h (Control): Add support for distinguishing directories specified with -sourcepath option. Add bad_dirnames for better error reporting because of the way the new options work. Add new methods ProcessBootClassPath(), ProcessExtDirs(), ProcessClassPath(), and ProcessSourcePath(). * src/jikes.cpp (main): Added new options to usage message. * src/jikesapi.cpp (JikesOption): * src/jikesapi.h (JikesOption): Add new member variables bootclasspath, extdirs, and sourcepath. * src/option.cpp (Option): Add parsing of new options * src/symbol.cpp (DirectorySymbol, SymbolTable): * src/symbol.h (DirectorySymbol): Add source_dir_only flag in DirectorySymbol. Add new source_dir_only_ parameter to DirectorySymbol constructor, and check it in ReadDirectory(). Change SymbolTable::InsertDirectorySymbol() and DirectorySymbol::InsertDirectorySymbol() to require the flag. * src/system.cpp (Control): Change calls DirectorySymbol constructor, DirectorySymbol::InsertDirectorySymbol() and SymbolTable::InsertDirectorySymbol() to include source_dir argument. Change ProcessPath to delegate path processing to ProcessBootClassPath(), ProcessExtDirs(), ProcessClassPath(), and ProcessSourcePath(). Change ProcessSubdirectories() calls to include source_dir argument. * src/zip.cpp (Zip): Change calls to InsertDirectorySymbol to include source_dir flag. 2001-04-20 Eric Blake * src/long.h: fix another HP-UX aCC enum 2001-04-19 Eric Blake * src/double.cpp (IEEEfloat, Adjust): * src/double.h (IEEEfloat, Adjust, IEEEfloat, IEEEdouble): Add IEEEfloat::Adjust(), which simply segregates a portion of IEEEfloat(char *) from being inline, where it caused an ICE in mingw 2.95.2 (bug 433). Fix friend declarations to include the keyword class, to support the HP-UX aCC compiler. Fix enums, along with... * src/semantic.h (Semantic): Fixed enum to not end in trailing comma (it's valid in C99, but not C++98); not all compilers support this extension to the language yet. * src/platform.cpp (Format): Move declaration of int i out of for loop inside switch statement, since some compilers (aCC, VC++) are broken and don't do scoping correctly. 2001-04-16 Eric Blake * doc/jikes.1: Include mention of other copyright code sources in jikes, including David M. Gay's dtoa.c that inspired much of this patch. * src/Makefile.am: * src/Makefile.in: Add dependency of double.h on long.h. * src/double.h: * src/double.cpp (IEEEfloat, IEEEdouble, BigInt): Add better const support to existing methods. Change IEEEfloat(char *) and IEEEdouble(char *) to be 100% accurate. Fix a bug in conversion from negative longs to floating point. Clean up magic numbers, and got enum constants working cleanly. Add methods Bias() and FractSize(). Add the BigInt class for use in string/floating-point conversions. * src/expr.cpp (CastPrimitiveValue): Clean up the casts to work with more compilers. * src/semantic.h: * src/expr.cpp (Process*_SHIFT): Get rid of magic numbers with shifts. * src/long.h: * src/long.cpp: Add better const support to existing methods. Remove some magic numbers. * src/platform.h: * src/platform.cpp (FloatToString, DoubleToString) Rewrite the conversions from floating point to strings to be 100% accurate. Replace use of raw literals for "NaN" and others with constants in StringConstant, for use on non-ASCII machines. Correct MAXIMUM_STRING_LENGTH to be large enough. 2001-04-15 Eric Blake * src/expr.cpp: fix Assertion failure with string concat and divide by 0, bug 184 2001-04-13 Mo DeJong * src/ast.h: * src/lookup.cpp: Don't place a large #ifdef HAVE_DYNAMIC_CAST around a whole set of cast definitions. Instead, we conditionally compile only the cast itself. 2001-04-05 Chris Abbey * configure.in: set release date for 1.14 in stone. Mo can breathe easier now. 2001-04-05 Chris Abbey * src/bytecode.cpp: removed debugging printfs that idiot Abbey just commited. * ChangeLog: spacing police 2001-04-04 Russ Trotter * src/bytecode.cpp: Add line number table generation to class variable initializers not inside static initializer blocks. 2001-04-04 Eric Blake * src/expr.cpp: comply with JLS 15.28 by substituting final expressions of type TypeName.identifier. 2001-04-04 Eric Blake * src/bytecode.h: parenthesized expressions can be constant expressions. fixes Jacks 3.10.5-runtime-1 and bug 66. 2001-04-04 Eric Blake * src/control.h (Control): Remove NullLiteral(), as it is not needed when null is not compile-time constant. * src/bytecode.cpp (DeclareField, EmitExpression) (EmitStringAppendMethod, LoadLiteral): * src/expr.cpp (ProcessNullLiteral) (CastPrimitiveValue, ProcessPLUS) (ProcessAssignmentExpression): Remove references to NullLiteral(). Now null is not a compile-time constant. Fixes bug 62. 2001-04-03 Eric Blake * src/expr.cpp: Make const expressions involving binary operators & ^ | && || and trinary ?: correctly const. Fixes Jacks tests 15.28-primitive-13, -primitive-15, -primitive-17, -string-13, and -string-16, and a pair of bugs. 2001-04-01 Eric Blake * src/bytecode.cpp (ByteCode::EmitStringAppendMethod): Do not use append(char[]) because it does not do the same as char[].toString(). Fixes jacks tests 15.18.1.1-runtime-1 and 15.26.2-runtime-1 2001-04-01 Eric Blake * src/ast.h: * src/lookup.h: * src/lookup.cpp: Add use of reinterpret_cast<>() and dynamic_cast<>() to remove warnings when compiling with aCC. This includes moving blocks of code so that dynamic_cast<>() is not operating on incomplete classes. * src/op.h: * src/op.cpp (Operators): Changed access to string literals to be through const char * instead of char *, to remove warnings when compiling with aCC. * src/symbol.h: Remove the use of overload as an identifier, as it conflicts with the (obsolete) C++ keyword. 2001-03-30 Eric Blake * src/jikesapi.cpp (DefaultFileWriter): Fixed the call to the superconstructor to work with g++ 2.7 (bug 390). * src/expr.cpp (CastPrimitiveValue): Improved the casting calls, in particular repairing one detected as an ambiguity in g++ 2.7 (bug 390). 2001-03-30 Chris Abbey * src/jikes.cpp: * src/option.cpp: * src/platform.cpp: * src/stream.cpp: * src/stream.h: Change LIB_ICU to LIBICU in #defs so that it matches with what autoconf emits and the ICU code actually get's compiled in. One of the best schroedinbugs I've seen in quite a while. :( 2001-03-30 Eric Blake * src/platform.h (operator<<): Add a cast to work around broken ostream << const unsigned char * with aCC on HP-UX. 2001-03-30 Mo DeJong * configure.in: Add --enable-fp-emulation back in and default it to enabled. 2001-03-29 Chris Abbey * configure.in: * acinlclude.m4: * src/m4/ac_check_broken_ostream.m4: * src/m4/ac_cxx_check_ostream_const_unsigned_char_ptr.m4: renamed the define, and reversed the logic in concensuous with the lists opinions. 2001-03-28 Eric Blake * configure.in: * acinclude.m4: * src/config.h.in: * src/m4/ac_check_broken_ostream.m4: add detection for HP/UX's broken ostream class that can't handle << const unsigned char *. 2001-03-28 Chris Abbey * configure.in: * src/m4/ac_check_iconv.m4: add configure support for Bruno Haible's libiconv for cygwin. 2001-03-27 Pascal Davoust * configure.in: Fix ICC FP bug detection so compiler name is tested before trying to compile the code snippet (garbage was printed when using VC++ on Win32). 2001-03-27 Eric Blake * configure.in: Fix typos related to UINT_MAX needed for aCC on HP/UX. 2001-03-19 Mo DeJong * src/m4/ac_cxx_check_set_new_handler.m4: Use AC_TRY_LINK not AC_TRY_COMPILE. This should correctly detect a C++ implementation of std::set_new_handler that compiles but fails to link for some odd reason. 2001-03-04 Mo DeJong * src/stream.cpp (Stream, HaveDecoder, SetEncoding, DestroyEncoding, ProcessInputAscii, ProcessInputUnicode, DecodeNextCharacter): Add new HaveDecoder method, use it in SetEncoding and DestroyEncoding. Conditionally compile the ProcessInputAscii method. Call new InitializeDataBuffer in the ProcessInputAscii and ProcessInputUnicode methods. Use new HasMoreData method instead of dealing with source_ptr and source_tail directly. Move all decoding code into the DecodeNextCharacter method. Check for error conditions using the ErrorDecodeNextCharacter method. No functional changes made, the code was simply moved into the super class. * src/stream.h (InitializeDataBuffer, HasMoreData, ErrorDecodeNextCharacter, ProcessInputAscii): Add source_ptr, source_tail, data_buffer, and error_decode_next_character fields to the Stream class. Rename _converter to _decoder in Stream class. Add new ErrorDecodeNextCharacter, HaveDecoder, and HasMoreData methods to query the state of a Stream. Add new InitializeDataBuffer method to setup source data pointers. Conditionally compile the ProcessInputAscii method in the LexStream class. 2001-03-03 Eric Blake * src/dump.cpp (Dump): Fix typo, the ASCII range does not include 128. 2001-03-03 Mo DeJong * src/dump.cpp (Dump): Add debugging Dump method. The method signature is char* Dump(wchar_t*), it takes a wchar_t* and returns a char* with the chars outside the ASCII range escaped with \uXXXX ids. 2001-03-01 Mo DeJong Released Jikes 1.13. 2001-02-27 Mo DeJong * TODO: Add note about reverted patch. * doc/jikes.1: Fixup man page. * src/jikes.cpp: Fixup copyright year. 2001-02-27 Mo DeJong * HACKING: * INSTALL: * README: * jikes.spec: Update URLs and instructions for 1.13 release. * doc/Makefile.am: Removed file in doc dir. * doc/contrib.html: * doc/jikes.gif: * doc/jikes.html: * doc/news.html: Removed. 2001-02-26 Mo DeJong * src/jikesapi.cpp (DefaultFileReader): Use const_cast operator only when HAVE_CONST_CAST is defined. Comment out an assert that depends on the binary mode of SystemFread. 2001-02-24 Mo DeJong * src/option.cpp: * src/option.h: Revert @file patch applied on 2001-02-17. 2001-02-21 Christopher Abbey * src/option.cpp (Option): Reset the encoding field to NULL in the case where the -encoding option is not valid. 2001-02-20 Eric Blake * src/stream.cpp (Stream, ~Stream): Fix typos that break the build on systems without iconv or icu. 2001-02-19 Mo DeJong * src/jikes.cpp (main): Only print the -encoding option when compiled with iconv or icu support. * src/option.cpp (Option): Move iconv and icu code to Stream class. Use encoding field to store the name of the encoding in use. Remove converter field, use encoding instead. Call Stream::IsSupportedEncoding method to determine if a given encoding is valid. * src/option.h (Option): Remove iconv and icu headers and the converter field. * src/platform.cpp (U8S_command_format): Only print the -encoding option when compiled with iconv or icu support. * src/stream.cpp (Stream, ~Stream, IsSupportedEncoding, SetEncoding, DestroyEncoding, LexStream, ProcessInputAscii, ProcessInputUnicode): Extract new Stream class from LexStream. Stream will handle encoding issues. * src/stream.h (Stream): Add iconv and icu includes. Add Stream class, LexStream inherits from Stream. 2001-02-18 Andrew M. Inggs * src/jikes.cpp (main): Update Jikes home page URL in help output. 2001-02-18 Mo DeJong * src/platform.cpp (LongToDecString): Add cast to ?: operator to make the gcc shipped with Red Hat 7 happy. 2001-02-18 Mo DeJong * src/body.cpp (ProcessSuperCall): Fix assert caused by cast expression that was attempting to cast a primitive type argument in a super invocation to the synthetic argument type. Jikes passes a synthetic class type as the first argument to a synthetic constructor. It was failing to take that into account when checking the argument types. * src/bytecode.cpp (EmitCast): Add comment explaining why an assert might be generated on an invalid cast of a primitive type. 2001-02-17 Mo DeJong * src/option.cpp (ArgumentExpanded, ArgumentExpander): Rename the ArgumentExpanded method to ExpandAtFileArgument. Implement proper string trimming for file names in ExpandAtFileArgument. Reformat some lines so they fit in one screen width. * src/option.h (ArgumentExpander): Update class declaration to reflect ExpandAtFileArgument name change. 2001-02-16 Mo DeJong * src/lookup.cpp (EvaluateConstant, IsConstant, CheckStringConstant): Use type safe utf8_literals tuple instead of using a nasty bug causing down cast in EvaluateConstant. Check that a given final is of type string before adding it to the utf8_literals tuple in IsConstant. If dynamic_cast and RTTI are supported, use them to better diagnose invalid input conditions. Modify the IsConstant method to pass a pointer to the String type so that the expression type can be checked. This change fixes a bunch of core dumps related to string concatenation. * src/lookup.h (Utf8LiteralTable): Change Tuple *expr to Tuple *utf8_literals. The new name is more descriptive and a type safe container avoid some nasty down casting problems later on. 2001-02-16 Mo DeJong * TODO: Update items in the TODO list. * acinclude.m4: Add new macro files. * configure.in: Add macros to check for C++ style casts, the explicit keyword, and RTTI (disabled by default). Reorder a couple of macro calls so that header check appear together. * src/double.h: * src/long.h: Add explicit keyword to some constructor declarations. * src/m4/ac_cxx_const_cast.m4: * src/m4/ac_cxx_dynamic_cast.m4: * src/m4/ac_cxx_explicit.m4: * src/m4/ac_cxx_reinterpret_cast.m4: * src/m4/ac_cxx_rtti.m4: * src/m4/ac_cxx_static_cast.m4: Add new macro files. 2001-02-16 Eric Blake * src/platform.cpp (LongToDecString, FloatToString, DoubleToString): Fix typo in abs calculation. Avoid core dump during float and double conversion. 2001-02-15 Eric Blake * src/expr.cpp (ProcessPLUS): Prevent core dump when the + operator is applied to the null literal. 2001-02-15 Eric Blake * src/error.cpp (StaticInitializer, PrintINTERFACE_NOT_INNER_CLASS): * src/error.h (SemanticError): Add INTERFACE_NOT_INNER_CLASS error message. * src/expr.cpp ( ProcessClassInstanceCreationExpression): Generate error and return from function when a qualified class instance creation expression makes use of an interface. See JLS 15.9.1 for more information. 2001-02-14 Mo DeJong * acinclude.m4: Add the M4 macro file ac_cxx_member_constants.m4. * configure.in: Add parens to all macro invocations. Add call to AC_CXX_MEMBER_CONSTANTS. * src/double.cpp: * src/double.h: Check for HAVE_MEMBER_CONSTANTS, use static const members if it is defined. Remove uses of the explicit keyword. * src/long.cpp: Change some bit pattern comparisons to avoid VC++ warning. * src/long.h: Remove uses of the explicit keyword. * src/m4/ac_cxx_member_constants.m4: Add new AC_CXX_MEMBER_CONSTANTS macro. 2001-02-12 Eric Blake * configure.in: Add --enable-fp-emulation flag to configure. * src/double.cpp (IEEEFloat, IEEEDouble): * src/double.h (IEEEFloat, IEEEDouble): Add emulation code for IEEE 754 compliance. Rename FloatValue() and DoubleValue() to FloatView(), DoubleView(). Remove unused FloatRoundedValue() and DoubleRoundedValue(). IEEEDouble now extends BaseLong, for easier manipulation of 64 bit data. Replace Fmodulus() and Divide() with operator% and operator/. Add equals(), hashCode(), and compareTo(), which follow the semantics of java.lang.Float, Double. Add ctor(char *, boolean) to allow detection of underflow or overflow. * src/expr.cpp (ProcessLEFT_SHIFT, ProcessRIGHT_SHIFT, ProcessUNSIGNED_RIGHT_SHIFT, ProcessMOD): Simplify calls to shift operations using unsigned right shift. Simplify calls to double and float modulus to using modulus operator instead of Fmodulus. * src/long.cpp (BaseLong, LongInt, ULongInt): * src/long.h (BaseLong, LongInt, ULongInt): Add use of native 64 bit operations when HAVE_UNSIGNED_LONG_LONG is defined. Fix bugs in shift operators and in multiply. Add hashCode(), which mirrors java.lang.Long. * src/lookup.cpp (LongLiteralTable::Rehash, LongLiteralTable::FindOrInsert, FloatLiteralTable::FindOrInsertFloat, FloatLiteralTable::FindOrInsert, DoubleLiteralTable::FindOrInsertDouble, DoubleLiteralTable::FindOrInsert): Make use of new Hash method to simplify finding of a hash index. Check for NaN when inserting into the float or double table. Use new IEEEfloat and IEEEdouble equals method instead of operator equals. Use new flag in IEEEFloat, IEEEDouble ctors to detect overflow, underflow. * src/lookup.h (Hash::Function, LongLiteralTable::Hash): Use hashCode method for IEEEfloat and IEEEdouble classes. Add new Hash method to LongLiteralTable. * src/platform.cpp (FloatToString, DoubleToString): Replace use of FloatValue with FloatView and DoubleValue with DoubleView. * src/platform.h: Add i8 datatype via signed long long typedef. Fix up some comments that got the ranges wrong. 2001-02-01 Mo DeJong * TODO: Note that deps have been added to Makefile.am. * src/Makefile.am: Add deps for .h files. * src/set.h: * src/tuple.h: Removed unused #includes. 2001-01-31 Mo DeJong * config.guess: * config.sub: Update from GNU sources. * configure.in: Minor comment fixup. 2001-01-31 Mo DeJong * TODO: Update TODO list. 2001-01-28 Mo DeJong * src/jikesapi.cpp (~DefaultFileWriter): Don't call fclose() unless the earlier fopen() worked. 2001-01-26 C. Scott Ananian * src/option.cpp (Option, ~Option): Create a copy of the argument string for the dependence_report_name field. Deallocate it when finished. 2001-01-16 Mo DeJong * src/bytecode.cpp: Add additional cast so that both branches of the ?: operator have the same result type. The AT&T compiler generated an error for this case. * src/jikesapi.cpp: * src/jikesapi.h: Use int instead of the bool type in jikesapi.h because bool is not supported by all compilers. * src/platform.h: Move the bool compat typedef before the include of tuple.h because tuple.h uses the bool type. * src/m4/ac_check_wcs_funcs.m4: Check for the wint_t type using out own #include files. 2001-01-14 Christopher Abbey * src/dump.cpp: * src/unparse.cpp: Fix for build problems when JIKES_DEBUG is defined. 2001-01-10 Mo DeJong * src/jikesapi.cpp: * src/platform.h: Move include of or to platform.h. * src/unparse.cpp: Comment out headers that are already included in platform.h. 2001-01-10 Mo DeJong * src/stream.cpp (LexStream::LiteralSymbol, LexStream::NameSymbol): Added class qualifier to fix compiler error when LexStream was defined in the Jikes namespace. 2001-01-10 Christopher Abbey * src/jikesapi.cpp: Move DefaultFileReader and DefaultFileWriter classes into the Jikes namespace. 2001-01-10 Mo DeJong * src/ast.cpp: * src/body.cpp: * src/bytecode.cpp: * src/case.cpp: * src/code.cpp: * src/control.cpp: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/diagnose.cpp: * src/double.cpp: * src/dump.cpp: * src/error.cpp: * src/expr.cpp: * src/getclass.cpp: * src/incrmnt.cpp: * src/init.cpp: * src/javaact.cpp: * src/jikesapi.cpp: * src/long.cpp: * src/lookup.cpp: * src/lpginput.cpp: * src/modifier.cpp: * src/op.cpp: * src/option.cpp: * src/parser.cpp: * src/platform.cpp: * src/scanner.cpp: * src/segment.cpp: * src/set.cpp: * src/stream.cpp: * src/symbol.cpp: * src/system.cpp: * src/tab.cpp: * src/unparse.cpp: * src/unzip.cpp: * src/zip.cpp: Replace "using namespace Jikes" statements with "namespace Jikes { ... }" blocks. This moves most of the classes and methods defined by Jikes into the Jikes namespace. 2001-01-04 Mo DeJong * configure.in: Replace check for namespace support with check for HAVE_JIKES_NAMESPACE env var. If defined, classes and functions will be defined in the Jikes namespace. * src/access.h: * src/ast.cpp: * src/ast.h: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/case.cpp: * src/case.h: * src/class.h: * src/code.cpp: * src/code.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/depend.h: * src/diagnose.cpp: * src/diagnose.h: * src/double.cpp: * src/double.h: * src/dump.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/getclass.cpp: * src/getclass.h: * src/incrmnt.cpp: * src/init.cpp: * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: * src/jikes.cpp: * src/jikesapi.cpp: * src/long.cpp: * src/long.h: * src/lookup.cpp: * src/lookup.h: * src/lpginput.cpp: * src/lpginput.h: * src/modifier.cpp: * src/op.cpp: * src/op.h: * src/option.cpp: * src/option.h: * src/parser.cpp: * src/parser.h: * src/platform.cpp: * src/platform.h: * src/scanner.cpp: * src/scanner.h: * src/segment.cpp: * src/segment.h: * src/semantic.h: * src/set.cpp: * src/set.h: * src/spell.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/tab.cpp: * src/tab.h: * src/table.h: * src/tuple.h: * src/unparse.cpp: * src/unzip.cpp: * src/unzip.h: * src/zip.cpp: * src/zip.h: Replace check for HAVE_NAMESPACES with HAVE_JIKES_NAMESPACE. 2001-01-03 Mo DeJong * configure.in: Don't check for iostream.h. * src/platform.h: Remove HAVE_IOSTREAM_H test since this file is required. Remove HAVE_NEW and HAVE_NEW_H checks since both of these files are required. * src/m4/ac_cxx_check_set_new_handler.m4: Remove checks for new and new.h headers. Use HAVE_STD instead of HAVE_NEW and HAVE_NEW_H. 2001-01-01 Pascal Davoust * src/platform.h: * src/m4/ac_cxx_check_set_new_handler.m4: Rework detection and use of VC++ style _set_new_handler(). The include will always be used when compiling with VC++. 2000-12-29 Andrew G. Tereschenko * src/ast.h: * src/control.cpp: * src/depend.cpp: * src/dump.cpp: * src/jikesapi.cpp: * src/option.cpp: * src/platform.cpp: * src/symbol.cpp: * src/system.cpp: * src/unparse.cpp: * src/zip.cpp: Removed extra :: qualifiers from in front of method and type names. 2000-12-29 Mo DeJong * src/platform.cpp: Fix minor typo in comment. No functional changes made. 2000-12-29 Diane Holt * src/error.cpp (SemanticError::PrintPACKAGE_NOT_FOUND): Change format of error message printed when a package can not be found. Print the name of the package once and then print each of the paths in the classpath. 2000-12-26 Mo DeJong * src/incrmnt.cpp (Control::IncrementalRecompilation): Use char instead of u1 as the argument passed to the cin.get() method. 2000-12-20 Mo DeJong * src/m4/ac_cxx_check_set_new_handler.m4: * src/m4/ac_cxx_namespaces.m4: Use HAVE_NAMESPACES not HAVE_NAMESPACE. 2000-12-20 Mo DeJong * Makefile.am: Add RPM spec file to `make dist` target. * TODO: Mark TODO items fixed. * src/Makefile.am: Add java.g file to `make dist` target. Fix up efence target. 2000-12-20 Mo DeJong * HACKING: Add new file that gives users a bit more hacking info. * INSTALL: Fix problems with CXXFLAGS and more autotools notes to HACKING. * README: Touch up minor errors, mention the HACKING file. * TODO: Update the TODO list with a number of issues TDB in 1.13. 2000-12-19 Mo DeJong * autogen.sh: Pass the --ignore-deps flag to automake. We don't want to use depcomp, it breaks in too many places. * config.guess: * config.sub: Update guess and sub platform detection files. * configure.in: * jikes.spec: Set version to 1.13. * src/depcomp: Remove depcomp, now that we pass --ignore-deps to automake, it is no longer needed. 2000-12-03 Mo DeJong * src/stream.cpp (ProcessInputUnicode): Use correct form of delete for an array variable. 2000-12-03 Mo DeJong * src/jikesapi.cpp (compile): Revert change that allocated a Control object on the stack. 2000-12-03 Mo DeJong * src/jikesapi.cpp (parseOptions): Revert the change that allocated an ArgumentExpander on the stack. Moving the object onto the stack masked test suite failures, causing them to pass even though memory was getting corrupted. From now on, we should never allocate an object on the stack. 2000-11-29 Mo DeJong * src/jikesapi.h: Re-order instance declaration to avoid compiler warning. 2000-11-29 Eric Blake * src/jikesapi.cpp (JikesAPI, parseOptions, cleanupOptions): Initialize the parsedOptions member to avoid deleting uninitialized memory. Set the parsedOptions member to NULL in cleanupOptions to avoid a double delete of memory. Set the parsedOptions member inside parseOptions() so that it can be deleted later. 2000-11-27 Mo DeJong * src/jikes.cpp (main): Don't attempt to manage memory returned by JikesAPI::parseOptions(). * src/jikesapi.cpp (cleanupOptions, parseOptions): Add new method to delete memory allocated to options. Construct an ArgumentExpander on the stack to avoid a memory leak. * src/jikesapi.h (parseOptions, cleanupOptions): Add note to documentation for parseOptions() method. Add declaration of private cleanupOptions() method. * src/symbol.h (~FileSymbol): Call array delete. 2000-11-26 Mo DeJong * src/Makefile.am: Add efence rule. This rule will build an efence malloc debugging version of jikes. * src/error.cpp: Minor code reformat to improve readability. No functional changes made. * src/option.cpp: Minor comment reformat. 2000-10-28 Mo DeJong * src/Makefile.am: Remove commented out bits. 2000-10-18 Mo DeJong * src/incrmnt.cpp (Control::IncrementalRecompilation): Rewrite incremental compile loop so that only a single character at a time is read. 2000-10-14 Mo DeJong * src/lookup.cpp: Remove #ifdef JIKES_DEBUG blocks from around blocks of code to free memory. 2000-10-14 Mo DeJong * src/jikesapi.cpp (compile): Minor code reformat. Allocate a control instance on the stack instead of the heap. * src/jikesapi.h: Minor code reformat. 2000-10-09 Mo DeJong * acinclude.m4: Include iconv macro file. * configure.in: Move iconv related tests to AC_CHECK_ICONV. * src/stream.cpp (ProcessInputUnicode): Cast the 2nd argument to iconv to a non const if the compiler would generate an error. * src/m4/ac_check_iconv.m4: Add AC_CHECK_ICONV macro. 2000-09-11 Mo DeJong * src/error.cpp (PrintUNREACHABLE_DEFAULT_CATCH_CLAUSE): Reword the error message, hopefully for the last time. 2000-08-23 Andrew G. Tereschenko * src/incrmnt.cpp (IncrementalRecompilation): Both 'q' and 'Q' are now acceptable to quit incremental mode. 2000-08-21 Mo DeJong * src/incrmnt.cpp (IncrementalRecompilation): Rewrite the user interaction loop for incremental re-compilation. We now look for the letter 'q', if that is what the user typed, we quit. 2000-08-21 Mo DeJong * src/platform.h (Ostream::setf): Remove the setf method, it is not used anywhere and it causes the build to fail on the Mac. 2000-08-21 Mo DeJong * src/error.cpp (PrintUNREACHABLE_DEFAULT_CATCH_CLAUSE): Reword warning for try block that catches Exception but does not contain a method that can raise a checked exception. 2000-08-13 Chris Abbey * src/stream.cpp (~LexStream): Set columns to NULL after deleting it. Don't delete comment_buffer again, it is already done in DestroyInput(). 2000-08-01 Mo DeJong Released Jikes 1.12. 2000-07-30 Mo DeJong * jikes.spec: Add default -O3 flag when building the release verison of jikes under Red Hat Linux. 2000-07-30 Mo DeJong * src/decl.cpp (CompleteSymbolTable, AddInheritedMethods): Revert change meant to fix bug 102. The fix for 102 causes crashes in CheckInheritedMethodThrows. We will need to re-address this problem after the 1.12 release. 2000-07-30 Mo DeJong * TODO: Updated TODO list with things we did not get done before 1.12 release. 2000-07-30 Mo DeJong * src/option.cpp (ArgumentExpanded): Fix core dump when processing a @file argument that contains the sequence "\n\n". 2000-07-27 Mo DeJong * src/system.cpp (GetOutputDirectory): Check for a NULL semantic member of a FileSymbol when writing dependencies. A .class file can have a NULL semantic member which was causing a core dump. 2000-07-26 C. Brian Jones * src/option.cpp (Option): Create a copy of the -classpath string so it can be deleted correctly later. 2000-07-26 Mo DeJong * src/unparse.cpp: Uncomment #includes, they need to be moved to platform.h but without them the compile would fail if -DJIKES_DEBUG was set. 2000-07-25 Mo DeJong * src/configure: * src/configure.in: Remove files from the old build system. These files were removed before but somehow they showed up in the CVS again. 2000-07-25 Chris Abbey * configure.in: Disable check for namespace support. * src/access.h: * src/ast.cpp: * src/ast.h: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/case.cpp: * src/case.h: * src/class.h: * src/code.cpp: * src/code.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/depend.h: * src/diagnose.cpp: * src/diagnose.h: * src/double.cpp: * src/double.h: * src/dump.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/getclass.cpp: * src/getclass.h: * src/incrmnt.cpp: * src/init.cpp: * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: * src/jikes.cpp: * src/jikesapi.cpp: * src/long.cpp: * src/long.h: * src/lookup.cpp: * src/lookup.h: * src/lpginput.cpp: * src/lpginput.h: * src/modifier.cpp: * src/op.cpp: * src/op.h: * src/option.cpp: * src/option.h: * src/parser.cpp: * src/parser.h: * src/platform.cpp: * src/platform.h: * src/scanner.cpp: * src/scanner.h: * src/segment.cpp: * src/segment.h: * src/semantic.h: * src/set.cpp: * src/set.h: * src/spell.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/tab.cpp: * src/tab.h: * src/table.h: * src/tuple.h: * src/unparse.cpp: * src/unzip.cpp: * src/unzip.h: * src/zip.cpp: * src/zip.h: Use HAVE_NAMESPACES not HAVE_NAMESPACE. 2000-07-23 Mo DeJong * TODO: Added a todo list. * jikes.spec: Updated version to 1.12. Updated URLs. Install documentation with Makfile not spec file. * doc/Makefile.am: Install HTML files. * doc/jikes.1: Remove dates and old URLs. * src/README: Removed old README. 2000-07-23 Andrew G. Tereschenko * src/jikesapi.cpp (parseOptions): Use expanded argv not passed in argv. This fixes the bug that was causing @ argument to not get expanded. 2000-07-23 Mo DeJong * INSTALL: Added detailed build instructions. * README: Added note about OSI certification. Removed mention of Makefile.hand and jikestst. Removed dead links. * doc/ChangeLog: Removed old ChangeLog. * doc/jikes.html: Updated FAQ. * doc/news.html: Updated news. * doc/news_v1.html: Removed old news page, if someone wants this info the be retained then they should merge it into the docs/news.html file. 2000-07-22 Mo DeJong * configure.in: Do not check for the stdc++ library. * src/java.g: Include platform.h not config.h. 2000-07-22 C. Scott Ananian * src/error.cpp (PrintRETURN_STATEMENT_IN_INITIALIZER, PrintMISPLACED_RETURN_WITH_EXPRESSION, PrintMISPLACED_RETURN_WITH_NO_EXPRESSION): Fix typos introduced during JikesAPI changes. 2000-07-22 Chris Abbey * configure.in: Add check for iconv library. * src/m4/ac_cxx_check_set_new_handler.m4: Add missing "using namespace std" statement. 2000-07-15 Mo DeJong * src/depcomp: Added missing file. 2000-07-12 Mo DeJong * configure.in: Add JIKES_VERSION_STRING. * src/jikes.cpp: Use JIKES_VERSION_STRING, update project homepage URL. * src/platform.h: unset values in config.h that conflict with other symbols in jikes. * src/m4/acx_check_pathname_style.m4: Use three argument form of AC_DEFINE to keep autoheader happy. 2000-07-12 Mo DeJong * src/Makefile.hand: Removed the Makefile used in the old build system. All builds should now be done with ./configure ; make. 2000-07-12 Mo DeJong * missing: * mkinstalldirs: Added files that did not make it into the CVS for some strange reason. 2000-07-09 C. Scott Ananian * src/stream.cpp (ProcessInputUnicode): Fix for unicode line termination problems in Jacks section 3.4. This is a followup patch for jitter bug number 253. 2000-07-08 Mo DeJong * configure.in: Add AM_MAINTAINER_MODE macro. This will stop regeneration of configure related file when timestamps do not match. 2000-06-26 Andrew G. Tereschenko * src/diagnose.cpp (MergeCandidate): * src/diagnose.h (MergeCandidate): Change return type of method from bool to int. 2000-06-26 C. Scott Ananian * src/code.h: Fix comment. * src/gencode.java: Fix comment. * src/stream.cpp: Fix for jitter bug number 253. 2000-06-22 Andrew G. Tereschenko * src/platform.h: Avoid using #if ! to avoid bugs in the VC++ preprocessor. 2000-06-07 Mo DeJong * src/control.cpp (ProcessSubdirectories): Fixed up compiler warnings in the Windows code. * src/jikesapi.cpp (DefaultFileReader): Added check for number of bytes read. * src/option.cpp (Option): Reorder declarations to make compiler happy. * src/platform.cpp (IntToString, IntToWstring): Avoid compiler warnings. * src/stream.cpp (ProcessInputUnicode): Avoid compiler warnings. Added FIXME. 2000-06-06 Mo DeJong * configure: Regen to fix Solaris build. * configure.in: Removed some comments, fixed up a minor path issue. * src/stamp-h.in: Regen. 2000-06-03 Mo DeJong * src/decl.cpp (CheckPackage): Removed error generated by jikes when a package named in a package statement could not be found on the CLASSPATH. This behavior did not match javac or other compilers and it makes it very difficult to use jikes for regression testing. 2000-05-30 Mo DeJong * src/config.cpp: * src/config.h: Removed. These two files were part of the old build system. They should have been removed when the new build system was merged. 2000-05-23 Mo DeJong * Makefile.in: * src/Makefile.in: Removed to make way for new automake based build system. * AUTHORS: * COPYING: * INSTALL: * Makefile.am: * Makefile.in: * NEWS: * acinclude.m4: * aclocal.m4: * autogen.sh: * configure.in: * doc/Makefile.am: * doc/Makefile.in: * src/Makefile.am: * src/Makefile.in: * src/stamp-h.in: Added or updated files to support automake version of the build system. 2000-05-22 Mo DeJong * src/error.cpp (PrintTYPED_METHOD_WITH_NO_RETURN): Fixed typo in error message. * src/zip.cpp (Zip): Removed extra semicolon. * src/m4/acx_check_pathname_style.m4: Removed comment. 2000-05-13 Mo DeJong * configure.in: Fixed up mkdir test so that it should work under a Mac style build environment. src/platform.cpp (SystemMkdir): Added mkdir() call for the Mac. 2000-05-12 Mo DeJong * configure.in: Added patches for ICC floating point bug detection sent in by Chris Abbey . 2000-05-11 Mo DeJong * src/access.h: * src/ast.cpp: * src/ast.h: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/case.cpp: * src/case.h: * src/class.h: * src/code.cpp: * src/code.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/depend.h: * src/diagnose.cpp: * src/diagnose.h: * src/double.cpp: * src/double.h: * src/dump.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/getclass.cpp: * src/getclass.h: * src/incrmnt.cpp: * src/init.cpp: * src/java.g: * src/javaact.cpp: * src/javaact.h: * src/javadcl.h: * src/javadef.h: * src/javaprs.h: * src/javasym.h: * src/jikes.cpp: * src/jikesapi.cpp: * src/long.cpp: * src/long.h: * src/lookup.cpp: * src/lookup.h: * src/lpginput.cpp: * src/lpginput.h: * src/modifier.cpp: * src/op.cpp: * src/op.h: * src/option.cpp: * src/option.h: * src/parser.cpp: * src/parser.h: * src/platform.cpp: * src/platform.h: * src/scanner.cpp: * src/scanner.h: * src/segment.cpp: * src/segment.h: * src/semantic.h: * src/set.cpp: * src/set.h: * src/spell.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/tab.cpp: * src/tab.h: * src/table.h: * src/tuple.h: * src/unparse.cpp: * src/unzip.cpp: * src/unzip.h: * src/zip.cpp: * src/zip.h: Moved all jikes classes into the Jikes namespace. Only used when the HAVE_NAMESPACE macro is defined. * src/m4/ac_check_error_discard_const.m4 * src/m4/ac_check_mathlib.m4 * src/m4/ac_check_wcs_funcs.m4: Added author's email address. * src/m4/ac_cxx_check_set_new_handler.m4: Added note about namespace std and author's email address. 2000-05-08 Mo DeJong * Makefile.in: Fixed rule so it runs ./config.status. Also remove the src directory if it is empty in the make distclean rule. * src/Makefile.in (install-api): Fixed install rule so that it grabbed the .h file from the src dir not the build dir. Moved Makefile.in dep to parent Makefile. * src/stream.h (LexStream): Fixed up declaration of Dump() so that it compiles with icc. 2000-05-08 Mo DeJong * configure: * configure.in: * src/config.h.in: Added autoconf test for Mac style mkdir(). 2000-05-08 Mo DeJong * src/jikesapi.cpp (~DefaultFileReader): Added (void *) cast to fix strict const error raised by g++. Also fixed an old constructor call in DefaultFileWriter(). * src/option.cpp (Option): Moved Cygwin path conversion so that it also works on a -classpath passed in on the command line. * src/option.h (Option): Added declaration for SaveCurrentDirectoryOnDisk() method. * src/m4/acx_check_pathname_style.m4: Fixed detection of mingw32 compiler toolchain. 2000-05-05 Mo DeJong * src/Makefile.in: * src/access.h: * src/ast.cpp: * src/ast.h: * src/bytecode.cpp: * src/bytecode.h: * src/class.h: * src/control.cpp: * src/control.h: * src/dump.cpp: * src/error.cpp: * src/getclass.cpp: * src/jikes.cpp: * src/lookup.cpp: * src/lookup.h: * src/stream.cpp: * src/stream.h: * src/unparse.cpp: Changed all uses of #ifdef TEST to #ifdef JIKES_DEBUG. 2000-05-05 Mo DeJong * README: Merged in contents from src/README. * src/README: Removed. 2000-05-04 Vadim Zaliva * src/Makefile.in: Add code to install jikesapi.h on 'install' goal. * src/jikesapi.h: * src/jikesapi.cpp: DefaultFileReader and DefaultFileWriter have been moved from jikesapi.h to jikesapi.cpp to avoid platform dependant code in API headers. 2000-05-04 Mo DeJong * Makefile.in: * aclocal.m4: * autogen.sh: * config.guess: * config.sub: * configure: * configure.in: * install-sh: * src/config.h.in: * src/platform.cpp: * src/platform.h: * src/m4/ac_check_error_discard_const.m4: * src/m4/ac_check_mathlib.m4: * src/m4/ac_check_wcs_funcs.m4: * src/m4/ac_cxx_bool.m4: * src/m4/ac_cxx_check_set_new_handler.m4: * src/m4/ac_cxx_exceptions.m4: * src/m4/ac_cxx_have_std.m4: * src/m4/ac_cxx_namespaces.m4: * src/m4/acx_check_pathname_style.m4: Added new files to support the new autoconf based build system. * src/config.cpp: * src/config.h: * src/configure: * src/configure.in: Removed old autoconf based build files as they are no longer needed. * README: updated ChangeLog location, added build notes. * src/Makefile.in: * src/access.h: * src/ast.cpp: * src/ast.h: * src/body.cpp: * src/bytecode.cpp: * src/bytecode.h: * src/case.cpp: * src/case.h: * src/class.h: * src/code.h: * src/control.cpp: * src/control.h: * src/decl.cpp: * src/definite.cpp: * src/depend.cpp: * src/depend.h: * src/diagnose.cpp: * src/diagnose.h: * src/double.cpp: * src/double.h: * src/dump.cpp: * src/error.cpp: * src/error.h: * src/expr.cpp: * src/gencode.java: * src/getclass.cpp: * src/getclass.h: * src/incrmnt.cpp: * src/init.cpp: * src/javaact.cpp: * src/jikes.cpp: * src/jikesapi.cpp: * src/jikesapi.h: * src/long.cpp: * src/long.h: * src/lookup.cpp: * src/lookup.h: * src/lpginput.cpp: * src/lpginput.h: * src/modifier.cpp: * src/op.cpp: * src/op.h: * src/option.cpp: * src/option.h: * src/parser.cpp: * src/parser.h: * src/scanner.cpp: * src/scanner.h: * src/segment.cpp: * src/segment.h: * src/semantic.h: * src/set.cpp: * src/set.h: * src/spell.h: * src/stream.cpp: * src/stream.h: * src/symbol.cpp: * src/symbol.h: * src/system.cpp: * src/tab.h: * src/table.h: * src/tuple.h: * src/unparse.cpp: * src/unzip.cpp: * src/unzip.h: * src/zip.cpp: * src/zip.h: Added support for new autoconf based build by switching from #include "config.h" to #include "platform.h". Additional minor fixups were required in some files. 2000-05-03 Mo DeJong * src/double.cpp: * src/double.h: * src/long.cpp: * src/long.h: Fixed endian dependence when HAVE_UNSIGNED_LONG_LONG is defined. If not defined, we still used the old way which depends on WORDS_BIGENDIAN. This patch is not optimal, you are invited to suggest better ways to deal with 64 bit datatypes. * src/stream.cpp: Fixed endian dependence. This patch is not optimal, you are invited to examine the code and suggest a better approach. 2000-05-03 Mo DeJong * src/ast.h: * src/symbol.h: Use "friend class Foo" instead of "friend Foo" in class declarations to make some compilers (xlC) happy. * src/diagnose.cpp(getErrorReport): Added missing return statement on non-void method. Patches care of Chris Abbey . 2000-05-03 Mo DeJong * src/incrmnt.cpp: Fixed use of dynamically sized buffer on stack. It was not legal code even though g++ accepted it. Also fixed up some small style issues (if () instead of if()). 2000-05-03 Mo DeJong * src/stream.cpp: Use memcpy instead of wmemcpy which is not supported on all systems. 2000-05-03 Mo DeJong * src/bytecode.cpp: Commented out else block that was added as part of the fix for bug #198 because it was core dumping. 2000-05-03 Mo DeJong * src/jikesapi.h: Moved inner classes into the public scope. This was causing compiler errors with non g++ compilers. 2000-05-02 Mo DeJong * src/config.h: * src/control.cpp: * src/jikesapi.cpp: Removed all uses of #ifdef NO_LEAKS. 2000-04-09 Mo DeJong * src/decl.cpp: * src/modifier.cpp: * src/semantic.h: Renamed Semantic::ProcessAbstractMethodModifiers to Semantic::ProcessInterfaceMethodModifiers. 2000-04-09 Mo DeJong * src/Makefile.in: Added install-unstripped, install-stripped, and install-docs rules. Made install-unstripped the default. Fixed the install rules to use exec_prefix instead of the prefix. Fixed problem installing the docs when build dir != src dir. 2000-04-09 Vadim Zaliva * ChangeLog moved from doc/ to project root per Mo DeJong suggestion. * error.cpp (PrintMISMATCHED_INHERITED_METHODS_IN_BASE): * error.h (class SemanticError): * decl.cpp (CompleteSymbolTable): corrected bug #102 related to not reporting return type conflicts for same signature methods inherited from 2 super-interfaces. Added new error message MISMATCHED_INHERITED_METHODS_IN_BASE to report this situation. 2000-04-07 Vadim Zaliva * error.cpp (StaticInitializer): type mismatch corrected. Fix suggested by foad@tao-group.com. Bug #156. * bytecode.cpp (EmitMethodInvocation): Corrected bug #198. 2000-04-05 Vadim Zaliva * expr.cpp (ConstructorAccessCheck): corrected problem with not reporting illegal access to protected constructor from other pckage. problem reportred by: Garrick Olson 2000-03-31 Chris Abbey * configure.in: enable --with-icc=PROG, also prevent gcc-isms in the tests when using icc/xlC by setting GXX accordingly. 2000-04-03 Vadim Zaliva * jikes.html: corrected +DR option description (was confused with +M). reported by "Hessler, Matthias" 2000-04-02 Chris Abbey * config.cpp: * configure.in (EXEEXT): Correcting problem copiling jikes on non x86 architecture using --with-icc option. 2000-03-30 Gregory Steuck * configure.in (EXEEXT): Check for OpenBSD 2000-03-26 Mo DeJong * Makefile.in: This patch fixes a compile error. 2000-03-15 Vadim Zaliva * stream.cpp (ProcessInputUnicode): corrected problem with losing last source file character when using 'iconv' function for charset conversion. 2000-03-14 Vadim Zaliva * modifier.cpp (ProcessStaticNestedInterfaceModifiers): simplification. (ProcessNestedInterfaceModifiers): possibility of specifying duplicate 'static' declarations removed. 2000-03-08 Ziqiang Tang * decl.cpp: * semantic.h: * modifier.cpp: added correct support for interface-contained interfaces (public, static) using Semantic::ProcessStaticNestedInterfaceModifiers. 2000-03-13 Vadim Zaliva * double.h: Commited slightly optimized version of Peter Naulls patch which corrects problem with casting float/double to int. * config.cpp: updated brief command line options description (inconsistency reported by Chris Abbey ) 2000-03-09 Joe Berkovitz * option.h: * option.cpp: * jikes.cpp: * system.cpp: rename +CSO option and classpath_search_order variable to +OLDCSO and old_classpath_search_order, and invert sense of option correspondingly. 2000-02-29 Vadim Zaliva * Switched to ICU-1.4.0 * option.cpp (Option): small problem with compilation while both ICU and ICONV are present. * stream.cpp: * option.h: new ICU header names. * configure.in (LDFLAGS): checking for u_getVersion to check is ICU is installed. 2000-02-21 Vadim Zaliva * jikesapi.h (class JikesAPI): reader and writer factories removed - they are duplicating read/write methods functionality. read/write made virtual. * jikesapi.cpp: * jikesapi.h: method of readers and writers renamed to follow project naming conventions. * jikes.cpp (main): removed conditional creation of JikesAPI. * jikesapi.cpp: indentation, comsetics. * jikesapi.h: indentation, comsetics. 2000-02-21 Martin York Some Vadim remarks taken in account: 1) The default read object now always opens files with the mode "rb". 2) The classes to manipulate files have been renamed: FileReader (Reader was causing problems) DefaultFileReader FileWriter (Writer was causing problems) DefaultFileWriter 3) Small fixes that I had overlooked in the UNIX code since I was working on an NT box. * jikes.cpp: If no object of type jikesAPI is defined then main will create an object of JikesAPI and use this as the default. * jikesapi.h * jikesapi.cpp: Made the methods JikesAPI::read() and JikesAPI::write() non virtual. These methods now do error checking. The methods JikesAPI::readerFactory() and JikesAPI::writerFactory() are now the virtual methods that can be overridden. 2000-02-20 Martin York * control.h * getclass.cpp * getclass.h * lookup.cpp * lookup.h * semantic.h * stream.cpp * stream.h * symbol.h * system.cpp: As the content of a file is represented by "const char *" I have modified a few functions in the following files so that they are "const char *" rather than "char *". * error.cpp * jikesapi.h * stream.cpp: As Windows already defines a macro "ERROR" I have renamed ERROR to JIKES_ERROR. * getclass.cpp * jikesapi.cpp * jikesapi.h * stream.cpp * tuple.h: moved all actual file reading/writing to JikesAPI. 2000-02-18 Vadim Zaliva * stream.cpp (ProcessInputUnicode): igniring BOM at the beginning of the file. * config.h (U_chars): added U_BOM and U_REVERSE_BOM 2000-02-17 Vadim Zaliva * parser.h (ParseErrorCode): DiagnoseParser error codes definitions moved to here from javadefs.h and grouped as new Enum. * diagnose.h: * diagnose.cpp: DiagnoseParser uses JikesAPI for error reporting. 2000-02-14 Vadim Zaliva * config.h: * config.cpp: * stream.h: * stream.cpp: funneling Lexical errors thrue JikesAPI. 2000-02-13 Vadim Zaliva * error.h: * error.cpp: * jikes.cpp: * jikesapi.cpp: * jikesapi.h: initial version of API for integration of jikes into various IDEs. 2000-02-03 Vadim Zaliva * stream.cpp (ProcessInputUnicode): * option.cpp (Option): Using 'iconv' (if found) for encoding conversions. * error.cpp (StaticInitializer): unsupported encoding is now treated as an error, not warning. * configure.in: added check for 'iconv.h' header. 2000-02-02 Vadim Zaliva * stream.cpp (ProcessInputUnicode): better conversion error reporting. corrected problem with buffer underflow on last character. Better handling of end of input data while converting to Unicode. * option.cpp (nowrite): better handling of -encoding option when compiled w/o ICU. 2000-02-01 C. Scott Ananian * java.g: corrected "converting to Token" twice problem. which was causing crash compiling empty case statement with empty default clause. 2000-01-18 Vadim Zaliva * stream.cpp (ProcessInputUnicode): buffer resize on surrogate characters use more accurate memory allocation. * configure.in: check for wmemcpy added. 2000-01-18 C. Scott Ananian * bytecode.cpp: * control.cpp: * lookup.cpp: * symbol.cpp: * symbol.h: * system.cpp: Debugging malloc libraries are marvelous things. The attached patch fixes five small memory leaks and one instance of delete given a null pointer (not actually incorrect, but bad practice and something memory profiling tools complain heartily about). 2000-01-18 C. Scott Ananian * ast.cpp: Printing out ASTs involving for-statements may segfault do to a swapped loop bound test. You only see this if you have more for-initialization expressions than for-update expressions. Patch fixes this problem. 2000-01-18 C. Scott Ananian * java.g (SwitchBlock): Fixed segfault when compiling certain switch-statement constructs. 2000-01-13 C. Scott Ananian * configure.in: Fix compilation on libc5 based systems. 2000-01-14 C. Scott Ananian * option.cpp: Fixed an off-by-one error in a string allocation. Debugging-malloc libraries are a Good Thing. 2000-01-13 Vadim Zaliva * jikes.spec: ChangeLog included in RPM package. * Big structure reorganisation. Following files are moved to 'doc' directory: contrib.html jikes.1 jikes.gif jikes.html license.htm news.html news_v1.html * src/ChangeLog and ChangeLog merged and result placed in 'doc' as well. 2000-01-07 Vadim Zaliva * long.cpp: Changed "(BaseLong)*this" into "+(*this)" This compiles fine under CodeWarrior. It also makes it look logical as a bonus :-) (suggested by Martin York ). * option.h: CodeWarrior does not cope well with the definition as it stands. I have commented out the bit it does not like. This should not effect the meaning of the code. (suggested by Martin York ). 2000-01-06 Vadim Zaliva * +1.0 command line option and all related code and documentation removed (approved by David Shields). 2000-01-06 Vadim Zaliva * long.cpp (operator+): implemented already declared operator. (suggested by Martin York ). * depend.h (class CycleChecker): the macro INFINITY is defined in the standard headers of Standard Libraries used on the MAC. Thus it causes chaos when it hits the enum INFINITY values used in Jikes. Jikes macro renamed to CYCLE_INFINITY. (suggested by Martin York ). * stream.h (class LexStream): The macro INFINITY is defined in the standard headers of Standard Libraries used on the MAC. Thus it causes chaos when it hits the enum INFINITY values used in Jikes. Jikes macro renamed to LEX_INFINITY. (suggested by Martin York ). * config.h: * configure.in: More accurate check for broken USHRT_MAX as proposed by Moses DeJong . * +1.0 command line option and all related code and documentation removed (approved by David Shields). 2000-01-06 Vadim Zaliva * semantic.h: check for wchar.h header presense. * double.cpp (operator/): Added extra () to avoid error message under FreeBSD. (Divide): Added type casts suggested by Archie Cobbs to compile under FreeBSD. 2000-01-05 Vadim Zaliva * configure.in: * Makefile.in: autoconf modified to use CXX, not CC macro everywhere. Using standard macros to check headers presence and endianess. Autoconf detected macros naming convention unified to be HAVE_something instead of NEED_something. Check for wint_t and w* functions now aware of possible absence of wchar.h (for FreeBSD compatibility). * libc5-fix: removed as obsoleted by last patch from Mo DeJong 1999-12-27 * option.cpp: * option.h: Fix handling of CLASSPATH under cygwin. This required using a dynamically allocated array for the classpath and getting rid of the instance variable default_path. I added this cygwin specific code in #ifdef CYGWIN blocks. 1999-12-27 * configure.in: * Makefile.in: Moved building of code.cpp and code.h into configure. The current method of building code.h and code.cpp is broken under unix and windows. I changed it so that these files would be regenerated when ./configure is run if both java and javac can be found. It now works under both unix and windows. 1999-12-27 * configure.in: * config.h: * config.cpp: * libc5-fix.h: Added cygnus mingwin32 build support. Mingwin uses the native win32 API with the gcc compiler. When built with mingwin, the executable will not require a cygwin dll to run. The new flag to configure is --with-mingwin. A number of automatic tests for wide string functions like wcslen() were also added to the configure script. The configure.in script was also changed so that is uses C++ as the default language when doing tests, this gets rid of the need to check for both gcc and g++. The fix for problems with the wint_t type has been moved from libc5-fix.h into config.h, so the libc5-fix.h file is no longer needed. There were also a number of places where I reformatted the configure script so that it had the correct number of spaces. 2000-01-04 Vadim Zaliva * configure.in (EXECUTABLE): patch provided by Igor Khavkine will enable Jikes to build successfully on Debian GNU/Hurd. * jikes.cpp (main): version changed to 1.11 * bytecode.cpp, decl.cpp: some bug fixes from Phillippe. 1999-12-08 This is a test (just a year and a day since Jikes went open-source) 1999-11-24 * jikes.cpp: Install patch from Mike Ernst to provide more up to date listing of program options. * option.cpp: * option.h: Drop 'ascii' option fields. This option is no longer supported. Drop 'applet_author' option fields. Also no longer supported. 1999-11-17 * ast.cpp: * config.h: * control.cpp: * expr.cpp: * lookup.cpp: * option.cpp: * symbol.h: * system.cpp: Patches from Mike Ernst that correct a few minor problems with Jikes 1.10: * some formatting * repeated declarations * parenthesize assignments used as conditionals, to flag that use and to suppress gcc -Wall warnings * reorder constructor initializers, to put them in the same order as the declarations. This makes them easier to read and suppresses gcc -Wall warnings. * a couple of comments * add #ifdef around a declaration used only under Win32 1999-11-15 * config.cpp: Add fix in conditional definition so can compile with Microsoft VC++. This based on Jitterbug #27 filed by John Bley, jbley@cs.cmu.edu. * depend.cpp: Add code from Brian Jones (cbj@gnu.org) so that use of +M and -d causes generated Makefiles to be written to the -d directory. * Makefile.in: * configure: * configure.in: * code.cpp: * gencode.java: Add changes from Vadim Zaliva to provide interpretation of whitespace based on Java Language Specification (Jul 96) and not the use of isWhiteSpace library procedure. 1999-11-08 * double.cpp: Add patch from Gregory Steuck (greg@nest.cx) to allow Jikes to compile under the old version of egcs used by OpenBSD. 1999-11-03 * jikes.spec: * news_v1.html (new): Save old news from Research as news_v1.html. 1999-11-03 * jikes.1: * jikes.html: * jikes.spec: Revise for version 1.10. Update option description to include CSO and DR (former +M=). Also include in the "What is Jikes" part of jikes.html, some introductory material from an article written for developerWorks by Lou Grinzo (lgrinzo@stny.lrun.com). Thanks for Lou for permitting us to use this material. 1999-11-03 --- Release v1.10 --- * control.cpp: * option.cpp: * option.h: * jikes.cpp: Rename +M= option to +DR= to avoid confusion of the experimental dependence report with the +M option. Set version number and release date. * unparse.cpp: Minor edit to replace tabs with blanks and to follow our usual indenting rules. 1999-11-02 * ast.cpp: * bytecode.cpp: * class.h: * config.cpp: * config.h: * control.cpp: * decl.cpp: * diagnose.h: * error.cpp: * expr.cpp: * getclass.cpp: * long.cpp: * option.h: * stream.h: Code from Philippe to remove detritus from prior updates, mostly by replacing tab characters with appropriate number of blanks. 1999-11-03 * control.cpp: Exit with error return code if semantic errors, including absence of base classes (java.util, java.lang, etc.) detected. This fixes a problem of special concern to the Debian folks. 1999-11-01 * unparse.cpp: minor change needed to compile with xlC for AIX. 1999-10-31 * error.cpp: * error.h: * option.cpp: * stream.cpp: * stream.h: Fix some problems with Unicode extensions caused by recent cvs update errors on my part, and also make a few changes. The former ProcessInput in stream.cpp is now ProcessInputAscii. ProcessInput now just selects ProcessInputAscii or ProcessInputUnicode, the encoding version under development. Eventually ProcessInput should be represented as an array of function pointers, with the default being ProcessInputAscii. that 1999-10-28 * code.h: * gencode.java: Drop conditional code related to EBCDIC from gencode.java, and rebuild code.h (code.cpp was unchanged). The EBCDIC support will be provided by Unicode extensions. 1999-10-27 * config.cpp: * config.h: * double.cpp: * double.h: * long.cpp: * long.h: * lookup.cpp: * symbol.h: Changes from Philippe to revise floating point conversions to more closely follow Sun's specification. 1999-10-24 * unparse.cpp: fix from Mike Ernst 1999-10-22 * system.cpp: More re Ernst * symbol.h: * symbol.cpp: Add code from Mike Ernst to help resolve compilation problems on Win/NT. 1999-10-20 * expr.cpp: Add another fix from Mike Ernst, part of -Wall cleanup. 1999-10-19 -- Release 1.09 -- * jikes.1: Update change date. * jikes.spec: update version number. 1999-10-19 Makefile.in: ast.cpp: ast.h: body.cpp: bytecode.cpp: config.h: configure: control.cpp: control.h: decl.cpp: error.cpp: expr.cpp: java.g: javaact.cpp: lookup.cpp: lookup.h: option.cpp: semantic.h: stream.cpp: symbol.cpp: symbol.h: system.cpp: Install patches from Mike Ernst. Patch complained about the patch to option.cpp. I tried to fix it manually. Result doesn't compile -- will sort out later. --- Release v1.09 --- * control.h: * jikes.cpp: * option.cpp: * system.cpp: Re-install code to support CSO option that was wrongly deleted. 1999-10-18 --- Release v1.08 --- * jikes.cpp: Set version to 1.08 and release date * lookup.cpp: Plug a memory leak. * decl.cpp: Use conditional ifdef ERNST to disable assertions that Mike Ernst inserted to stay on the safe side, but which are probably not needed. Mike and I discussed this a while ago; we just haven't yet had the time to sort it out. * Makefile.hand: Add clause for unparse.cpp * option.h: add declaration for 'ascii' option * stream.cpp: delete code from Ernst that caused compilation problems, using ifdef ERNST, etc. * error.cpp: * error.h: * incrmnt.cpp: * jikes.cpp: * option.cpp: Add code from Philippe. Fix bug in incremental, and re-enable ++ option. Implement Neil Martin's suggestion for divide by zero, namely to treat as caution and not error. Update version date. 1999-10-18 * jikes.spec (Summary): Add news_v1.html to list of documentation files. -- Release 1.08 -- * jikes.1: Drop BUGS section since incremental again supported. * Save old "Research News" as news_v1.html (new file). * Start news.html with news from developerWorks. * Rename contrib.htm to contrib.html * Rename jikes.htm to jikes.html * Update README to reflect above changes * Update jikes.spec to 1.08. 1999-09-17 -- Release 1.06 -- * jikes.1: Add 'BUGS' section for 1.06 since '++' disabled. * contrib.htm: minor html cleanup * jikes.spec (Summary): Update version number to 1.06, add proper URL for source at New Project URL (www10...) * jikes.1: document -Xdepend (synomym for -depend) Revise 'Source:' clause to use new project home 'pub' directory. * contrib.htm: Add Ken Coar to Core Team, revise format to reflect new project organization. 1999-10-16 * ast.cpp: * body.cpp: * bytecode.cpp: * bytecode.h: * control.cpp: * control.h: * definite.cpp: * error.cpp: * error.h: * expr.cpp: * java.g (and related files): * jikes.cpp: * lookup.cpp: * lookup.h: * semantic.h: * symbol.cpp: * symbol.h: * system.cpp: more changes from Philippe re access methods for protected. 1999-10-16 * configure.in: Add fix from Moses DeJong for patch submitted yesterday. 1999-10-16 * configure.in: Add check from Moses DeJong for sufficiently recent version of autoconf. 1999-10-16 * lookup.cpp: Make some changes to Mike Ernst's recent changes will compile using the more restrictive IBM xlC compiler. 1999-10-15 * error.cpp: * error.cpp: Incorporate changes from Vadim sent in yesterday re ICU. 1999-10-15 * unparse.cpp: Add to source base. 1999-10-15 * ast.h: * decl.cpp: * expr.cpp: * java.g: * symbol.cpp: (look for TODO-ERNST) * system.cpp: Make changes, in some case commenting out code, or making it conditional, so can compile cleanly on Win/NT. 1999-10-15 * configure.in: * configure: I have applied Mo's patch to add Cygwin support. 1999-09-15 * news.htm: revise the 1.05 announce. 1999-09-14 * news.htm: 1.04 news 1999-10-14 * Makefile.in: * ast.cpp: * ast.h: * body.cpp: * bytecode.cpp: * class.h: * config.cpp: * config.h: * control.cpp: * control.h: * decl.cpp: * depend.h: * diagnose.cpp: * diagnose.h: * error.cpp: * expr.cpp: * java.g: * javaact.cpp: * long.cpp: * lookup.cpp: * lookup.h: * option.cpp: * option.h: * parser.h: * segment.cpp: * semantic.h: * stream.cpp: * stream.h: * symbol.cpp: * symbol.h: * system.cpp: * tuple.h: * unparse.cpp: (new) * error.h: * error.cpp: Add substantial patch from Mike Ernst: (1) add "unparse" function (2) produce many fewer messages when compiling with -Wall option. 1999-09-13 * jikes.1: * jikes.spec: Moved here from ./src subdirectory * contrib.htm: Fix Peter B' e-mail address. 1999-10-13 * configure.in: Added cygwin build support. * config.h, config.cpp: Added #if defined(CYGWIN) blocks for wchar functions that are not implemented in cygwin. 1999-10-13 vz1014: more unicode patches from Vadim, this one should have been in 1.07 (it's my fault it wasn't), and is needed to get clean compile with ICU enabled. 1999-10-13 * stream.h: Delete extraneous ",' that causes AIX xlC to complain * jikes.cpp: Update version to 1.07, and revise descriptive text printed when Jikes is invoked with no arguments. * expr.cpp: * symbol.cpp: * symbol.h: pc1013b: add infrastructure needed for upcoming revison of access functions for protected (Philippe Charles). * stream.cpp: vz1013a: code from Vadim, who writes: Attached is modified version of stream.cpp. It handles very rare situation when one code page character could be repesented by more that one unicode chars. One of situations, when this could happen is when character is represented by UNICODE "surrogates"* Anyway, even though not tested, I suggest to include this code. It will not make current implementation worse (currently it dumps core if such character will be used in source). * class.h: * pc1013b: add code that should have been in pc1013a. * ast.cpp: * ast.h: * body.cpp: * bytecode.cpp: * bytecode.h: * definite.cpp: * error.cpp: * error.h: * expr.cpp: * jikes.cpp: (version number, date) * symbol.cpp: * symbol.h: pc1013a: more code from Philippe for unified block stack, and also a number of bug fixes (though Philippe forgot to record just what was fixed). 1999-10-12 * control.h: * jikes.cpp: * option.cpp: * option.h: * system.cpp: Add Joe Berkovitz's (joeb@atg.com) classpath search order code, as method FindFileBoth in system.cpp. Dave added option +CSO with default to maintain current behavior, while selecting the option enables Joes's code. 1999-10-11 * bytecode.cpp: * bytecode.h * pc1011a, more mods from Philippe for unified block stack. 1999-10-11 * code.h: * stream.cpp: * vz1011a: more unicode code from Vadim. 1999-09-10 * README: * contrib.htm: * jikes.htm: Drop 'Research' from name of project, just 'IBM Jikes' will do. * jikes.htm: Delete the part about VA Java and other IBM products. That may have relevant back in Dec 98 when source first came out, but is no longer needed. * ChangeLog: Start change log for main directory. 1999-10-10 * option.cpp: Fix compilation error by adding conditional defines for ICU * stream.cpp: Fix typos: TRUE->true, FALSE->false 1999-10-10 Dave Shields Incorporate recent changes from Vadim, including some that I forgot to include in vz1009a changes. Mark this set vz1010a. 1999-10-08 Vadim Zaliva All EBCDIC code removed. * stream.cpp (ProcessInput): Tested and now in conformance with JLS. * code.h (class Code): aIsAlpha, IsDigit etc, checks now using ICU. 1999-10-07 Vadim Zaliva * stream.cpp (ProcessInput): reimplemented to facilitate ICU for code page conversion. * option.cpp (Option): added test for unsupported encoding end error reporting. 1999-10-06 Vadim Zaliva * option.h (class Option): * option.cpp (Option): * config.cpp: * jikes.cpp (main): Added -encoding option * Makefile.in (LIBS): added LIBS variable to link with extra libraries (detected by autoconf). * configure.in (LDFLAGS): Added checks for "IBM Classes for Unicode" library. 1999-10-09 Dave Shields * Makefile.in: * code.cpp * code.h * configure.in: * depend.cpp: * diagnose.cpp: * dump.cpp: * error.cpp: * error.h: * option.cpp: * option.h: * scanner.cpp: * stream.cpp: * stream.h: Merge in some, but not all, of Vadim's recent Unicode work. All this code is Vadim's. The working tag is vz1009a. 1999-10-08 Vadim Zaliva All EBCEDIC code removed. * stream.cpp (ProcessInput): Tested and now in conformance with JLS. * code.h (class Code): aIsAlpha, IsDigit etc, checks now using ICU. 1999-10-07 Vadim Zaliva * stream.cpp (ProcessInput): reimplemented to facilitate ICU for code page conversion. * option.cpp (Option): added test for unsupported encoding end error reporting. 1999-10-06 Vadim Zaliva * option.h (class Option): * option.cpp (Option): * config.cpp: * jikes.cpp (main): Added -encoding option * Makefile.in (LIBS): added LIBS variable to link with extra libraries (detected by autoconf). * configure.in (LDFLAGS): Added checks for "IBM Classes for Unicode" library. 1999-10-09 * ast.cpp: * ast.h: * bytecode.cpp: * bytecode.h: * class.h: * config.cpp: * control.cpp: * decl.cpp: * definite.cpp: * expr.cpp: * java.g: * javaact.cpp: * jikes.cpp: * semantic.h: * set.h: * symbol.h: Install Phillipe's current updates as 'pc1009a'. This code fixes a known problem in generating the LocalVariableTable, needed for -g, and also contains part, but not all, of the changes needed to install a unified block stack. This version is known to fail some tests; we are working on this. 1999-09-17 * jikes.cpp: Release as version 1.06 * error.cpp: * error.h: * option.cpp: Disable '++' option due to observed erratic behavior -- will try to fix soon. * config.cpp: * control.cpp: * decl.cpp: * expr.cpp: * getclass.cpp: * incrmnt.cpp: * jikes.cpp: * lookup.cpp: * lookup.h: * option.cpp: * semantic.h: * symbol.cpp: Fixes for 489, 490, 491. Add new option -Xdepend, synomym for -depend. 1999-09-15 * expr.cpp: Fix for Problem Report 483. * jikes.cpp: Update version number to 1.05, change URLs to devloperworks. 1999-09-14 * Makefile.in: Update install section to use new home for jikes.1 * bytecode.cpp: Fix for Problem Reports 434 and 460 related to line-numbers with -g option. * jikes.1: * jikes.spec: Move to parent directory. * jikes.1: revise man page. * expr.cpp: Fix for Problem Report 465 * jikes.cpp: Update release date 1999-09-13 * Makefile.hand: Update clause for use with Microsoft Visual C++ (cl) compiler * body.cpp: * config.cpp: * config.h: * config.cpp: * control.cpp: * control.h: * error.cpp: * error.h: * expr.cpp: * init.cpp: Clean up code for try/catch related to Query #34 to Sun. Fixes for problem reports 474, 480. 1999-09-12 * body.cpp: * bytecode.cpp: * config.cpp: * config.h: * control.cpp: * control.h: * decl.cpp: * expr.cpp: * jikes.cpp: * semantic.h: * symbol.cpp: * system.cpp: Additional code related to PR 484 (array clone() problem), and fixes for Problem Reports 459, 469 and 476. Set version to 1.04. * diagnose.cpp: Add patch from Michael Sinz (Michael.Sinz@sinz.org) to fix error in reporting syntax errors when +E in effect. 1999-09-10 * jikes.cpp: * jikes.spec Drop 'Research' from project name. * news.htm: Update for v1.03 1999-09-10 * bytecode.cpp: * config.cpp: * config.h: * control.cpp: * control.h: * decl.cpp: * error.cpp: * expr.cpp: * jikes.cpp: * system.cpp: Misc. bug fixes, including the nasty 484 array clone bug. 1999-09-08 * expr.cpp: Fix for Problem Report 481. 1999-09-01 * bytecode.cpp: * control.cpp: * decl.cpp: * getclass.cpp: * lookup.cpp: * lookup.h: * semantic.h: * set.cpp: * symbol.cpp: * symbol.h: * system.cpp: Fixes for Problem Reports 478, 479, and some misc. changes. 1999-08-26 * --many --: eliminate trailing blanks. 1999-08-25 * config.h: Add include for , as is needed when use stat fields. * control.cpp: * control.h: * expr.cpp: * lookup.cpp: * lookup.h: * symbol.cpp: * symbol.h: * system.cpp: Add changes needed to fix Problem 466, related to handling of classpath. This may also clear up some previously reported problems in use of -d. * configure.in: * configure: Add patch from Roman Hodek (rnhodek@faui22c.informatik.uni-erlangen.de) to support m68k -- all that is needed is to specify -DBIG_ENDIAN. This patch picked up via deja.com from a debian mailing list. 1999-08-23 * README: reflect renaming of (old) Makefile to Makefile.hand. * configure.in: * Makefile.in: Apply patches from Niels Kristian Bech Jensen (nkbj@image.dk) to remove version number from Makefile.in and configure.in, and to avoid duplicate setting of "-ansi" flag. * Makefile.hand: Rename Makefile to Makefile.hand so by default there is no file named Makefile, as it is generated by running ./configure. * contrib.htm: Fix spelling error in PB's name, add Ernst. * news.htm: Include this file in distribution: * README: update and rename (was README.TXT) * Makefile.in: strip executable when install; also install man page. * jikes.1: update version number. * jikes.spec: update to include new documentation files. * jikes.cpp: Set version number to 1.01, update copyright date. 1999-08-20 * bytecode.cpp: * jikes.cpp: * Makefile.in: FIx problem that caused javap to list 'null' method. Update major version number to 1. Add code to install man page. * config.cpp: * config.h: * double.cpp: * expr.cpp: * long.cpp: * long.h: More cleanups for 64-bit arithmetic. 1999-08-19 * ast.cpp: * ast.h * body.cpp: * bytecode.cpp: * bytecode.h: * config.cpp: * config.h: * control.cpp: * control.h: * decl.cpp: * definite.cpp: * error.cpp: * error.h: * expr.cpp: * java.g: * javaact.cpp: * jikes.cpp: * lookup.cpp: * lookup.h: * semantic.h: * symbol.cpp: * symbol.h: * system.cpp: Change handling of "builtin" procedures so bytecode.cpp no longer maintains their signatures, but have the front-end look up any needed signatures from the library files. This simplifies code generation for string concatenation, etc. Add code to special case ++ to use IINC where possible. Fix a few bugs. * Makefile.in: Fix problem in compiling segment 1999-07-28 * body.cpp: * bytecode.cpp: * bytecode.h: * definite.cpp: * expr.cpp: * jikes.cpp: Fixes for problems 437, 443, 446, 449, 453, 454, 455, 456. Add segment.h and segment.cpp to implement functions to avoid duplicate entries in ConstantPool. This for v0.55. 1999-07-27 * configure.in: * configure: Applied patch from Moses DeJong: Moses DeJong on 07/27/99 03:57:26 PM To: jikes-bugs@Watson.IBM.Com Subject: [jikes-bugs] Bug in Jikes configure.in script It looks like the --with-gas option defined in the configure.in script should not be included. It would only work on a MIPS system and there is no working gnu assembler on mips right now so there is no reason to keep the --with-gas option in the configure.in file. This patch removes the unneeded option. The g++ compiler does not even accept -mgas as a valid option so if someone gave the --with-gas option then jikes would not compile (only the gcc compiler accepts it). Mo DeJong dejong@cs.umn.edu 1999-07-26 * ast.cpp: * bytecode.cpp: * bytecode.h: * class.h: * control.cpp: * control.h: * definite.cpp: * error.cpp: * error.h: * expr.cpp: * getclass.cpp: * jikes.cpp: * lookup.cpp: * semantic.h: * set.cpp: * symbol.h: * table.h: More changes for v0.54. 1999-07-14 * jikes.spec: Include jikes.spec provided by Henner Zeller on 07/06/99 and used by him to build a RPM file for Jikes Relocatable. Also available at http://linux.fh-heilbronn.de/~zeller/download/jikes/ * configure.in: Add patch from Larry Gensch (larry.gensch@digital.com) who wrote: Date: Tue, 6 Jul 1999 14:09:30 -0400 (EDT) From: larry.gensch@digital.com Reply-To: larry.gensch@digital.com Subject: Patch for jikes to auto-determine -DTYPE_bool To: jikes-bugs@watson.ibm.com I've added a test in your configure.in script in jikes-052 to auto-detect the presense of the "bool" keyword (ANSI C++). This was necessary for me to get Jikes to compile on Compaq Tru64 Unix (prerelease 5.0) with Digital C++ (prerelease 6.2). What I have done here is simply create a one-line test program: bool some_boolean_value = true; And see if the compile is successful or unsuccessful, setting the CCREQUIREDFLAGS variable appropriately. Thus, I can use: CXX=cxx ./configure This should work with other platforms supporting the "bool" keyword as well, as there is nothing really Compaq-specific in the test that I have added. Feel free to incorporate this into a future release of Jikes. 1999-07-13 * bytecode.cpp: Revise EmitTryStatement to more closely follow the spec and examples in the JVM discussion of code generation. This fixes some problems reported with Jikes on Solaris. 1999-07-12 * body.cpp: * bytecode.cpp * bytecode.h: * class.h: * config.cpp: * config.h: * control.cpp: * control.h: * decl.cpp: * error.cpp: * error.h: * jikes.cpp: * lookup.cpp: * lookup.h: * symbol.cpp: * symbol.h: * system.cpp Many changes for v0.54, including some bug fixes that required substantial changes. 1999-07-06 * --amost-all-files Miscellaneous, and extensive, changes from Philippe, including revised grammar. Due to removal of files bool.h and unicode.h, almost all files are affected. This revision also includes some fixes and clarifications for comments from Michael Ernst (mernst@cs.washington.edu) * configure.in: * Makefile.in: * Makefile: Add -DBIGENDIAN for HP-UX (change from Kero van Gelder, gelderk@natlab.research.philips.com). Remove files bool.h and unicode.h. 1999-06-23 * body.cpp: * jikes.cpp: * unicode.h: Fixes for Problem Report 427. Update build date for v0.53. 1999-06-22 * bytecode.cpp: * class.h: * config.cpp: * config.h: * decl.cpp: * dump.cpp: * error.cpp: * error.h: * expr.cpp: * getclass.cpp: * option.cpp: * scanner.cpp: * scanner.h: * stream.cpp: * stream.h: * symbol.h: Add support for -deprecation option. Fix problem that raised assertion if reference to undefined interface. Adjust version to 0.53. 1999-06-21 * configure.in: Add code for mips from Henner Zeller (zeller@stud.fh-heilbronn.de). 1999-06-17 * ast.h: * body.cpp * decl.cpp: * expr.cpp: * jikes.cpp: * semantic.h: More cleanups, complete v0.52 updates 1999-06-16 * decl.cpp: * jikes.cpp: * semantic.h: More for v0.52, slight cleanup, new build date. 1999-06-15 * ast.h: * body.cpp: * bytecode.cpp: * control.h: * control.cpp: * decl.cpp: * error.cpp: * expr.cpp: * getclass.cpp: * jikes.cpp: * lookup.cpp: * semantic.h: * set.cpp: * set.h: * symbol.cpp: * symbol.h: * system.cpp: * table.h: * zip.cpp: * zip.h: Miscellaneous changes from Philippe for v0.52 with several bug fixes. * config.cpp: Add patch from Paul Michael Reilly (pmr@pajato.com) to properly set directory permissions when creating a directory. 1999-06-03 * configure.in: Add patch from Niels Kristian Bech Jensen (nkbj@image.dk) to use the canonical way of looking for the GNU C++ compiler. 1999-05-28 * symbol.cpp: Add version with initialization of 'unit_index'. This should have been part of v0.51, but probably no harm since this field only set, not yet used. 1999-05-27 * jikes.cpp: Change version info to 0.51, 27 May 99. * configure.in: * libc5-fix.h (new): Include patch from C. Scott Ananian (cananian@lesser-magoo.lcs.mit.edu) submitted to jikes-patches on 3 April 1999, who wrote: The following short patch using autoconf lets jikes build properly on libc5 systems -- or others where wchar.h is broken. This has allowed me to release RPMs of jikes for RedHat 4.2 and earlier linux systems. * jikes.1: Start man page, first draft generously provided by Pierpaolo Fumagili (p_fumagili@fumagili.com). * ast.cpp: * ast.h: * body.cpp: * bytecode.cpp: * config.cpp: * config.h: * control.cpp: * decl.cpp: * depend.cpp: * error.cpp: * error.h: * incrmnt.cpp: * option.cpp: * semantic.h: * symbol.h: Miscellaneous edits, including: more source cleanup related to switch statements, new error message if can't find zip/jar file, fix for problems handling/parsing options, fix for problem in booleans in constant-folding code added in 0.50, move template definitions to avoid complains from some compilers. 1999-05-07 * ast.cpp: * ast.h: * Fix problem due to ill-formed assert * body.cpp: * bytecode.cpp: * bytecode.h: * Clean up for code generation for switch statements * jikes.cpp: * Update version and date 1999-05-05 * ast.cpp: * ast.h: * body.cpp: * bytecode.cpp: * bytecode.h: * class.h: * code.h: * config.cpp: * config.h: * control.cpp: * decl.cpp: * definite.cpp: * depend.cpp: * diagnose.cpp: * error.cpp: * error.h: * expr.cpp: * getclass.cpp: * java.g: * javaact.cpp: * jikes.cpp: * lookup.cpp: * op.cpp: * op.h: * option.cpp: * option.h: * parser.cpp: * semantic.h: * set.h: * stream.cpp: * stream.h: * symbol.cpp: * symbol.h: * system.cpp: * tuple.h: * unicode.h: * zip.cpp: Carry out major "spring cleaning", mainly to provide a cleaner interface between front-end and code generator, as the code generator was recomputing some information known to the front-end. 1999-04-20 * bytecode.h: * bytecode.cpp * miscellaneous source cleanup 1999-04-16 * jikes.cpp: * bytecode.cpp * fix problem calling private method from inner class * update version number to v0.49 1999-04-12 * stream.cpp: * Mask on input to avoid problems on systems where whcar_t is * not unsigned 16 bit type. * bytecode.cpp: * bytecode.h: * Revise to use static methods to update private fields of * enclosing parent class. * jikes.cpp: * Update version number and date. * ast.cpp: * body.cpp: * decl.cpp * depend.cpp * diagnose.cpp * dump.cpp * error.cpp * error.h * modifier.cpp * stream.h * Rename Name to NameString 1999-04-05 * gencode.java: * code.cpp * code.h * Add gencode.java and use it to generate code.h and code.cpp, so * that Jikes uses the same classification of Unicode characters * as the reference JVM (Sun's 1.2 JVM). 1999-03-24 * access.h * ast.cpp * ast.h * body.cpp * bool.h * bytecode.cpp * config.cpp * config.h * control.cpp * control.h * decl.cpp * depend.cpp * depend.h * error.cpp * error.h * expr.cpp * incrmnt.cpp * jikes.cpp: * scanner.cpp * semantic.h * stream.cpp * symbol.cpp * symbol.h * table.h Bug fixes. Generate static access methods for accessing private enclosed members. Process private constructors in inner classes. Implement +M=file to report raw dependence information. Add full checking to make sure that Synthetic members are never illegally accessed. 1999-03-22 * yet more change for the sake of change... This text added just to test cvs_jikes feature 1999-03-12 * Add minor change here to provide sample commit for Ken Coar to use at test for cvs mailer facility. 1999-03-10 * configure.in: * configure Add change for FreeBSD to add -DIEEE_DIV_0, provided by Archie Cobbs (archie@whistle.com) * bytecode.cpp: * bytecode.h: * control.cpp: * definite.cpp * depend.cpp * depend.h * error.cpp * incrmnt.cpp * jikes.cpp: now version v0.47 * option.cpp * option.h * semantic.h Code from Philippe to: fix some bugs in v0.46, and add option +M=filename to write dependence info (this is really early stuff, and format may change soon). 1999-03-09 * jikes.cpp: Update release date * Makefile.in: * configure * configure.in Add first cut at autoconf support, courtesy of Moses DeJong (dejong@cs.umn.edu) * Makefile: Comment out all clauses as suggested by many users * README.TXT: Add short description of build process 1999-03-08 * java.g: * access.h * ast.h * body.cpp * bytecode.cpp * bytecode.h * config.cpp * config.h * decl.cpp * definite.cpp * error.cpp * error.h * expr.cpp * getclass.cpp * jikes.cpp * modifier.cpp * stream.cpp * symbol.cpp * symbol.h More changes for 1.2, including strictfp, various bug fixes from Philippe 1999-02-26 * jikes.cpp: Update release date * decl.cpp: Fix for Problem Report 363 * error.cpp: * expr.cpp: Misc. changes, some based on recent notes from Roly 1999-02-25 * spell.h: Fix problems that caused g++ to complain * javadcl.h: * javadef.h * javaprs.h * javasym.h * javaact.cpp * javaact.h Make spurious edit (add a blank near top) just to update date of these files so jikespg won't be run on normal build. * Makefile: Add IRIX/gcc clause from Moses DeJong (dejong@cs.umn.edu) 1999-02-24 * jikes.cpp (main): update version number to v0.45 * Makefile: Add info for new file misspell.h * decl.cpp: * diagnose.cpp * error.h * error.cpp * expr.cpp * modifier.cpp * semantic.h * symbol.h * symbol.cpp: Misc. bug fixes, better error messages re possible misspellings 1999-02-19 * body.cpp: * config.cpp: * config.h * decl.cpp: * error.cpp * error.h * expr.cpp: * jikes.cpp: * option.cpp: Fix "swing" problem related to Section 14 of JDK 1.2 Compatibility document, some other bug fixes, revise layout of option descriptions. 1999-02-17 * Makefile: Add clause for HP-UX/gcc contributed by Kero van Gelder (gelderk@natlab.research.philips.com). * double.cpp (IEEEfloat): Merge in code from BSD group to emulate division by zero, (using conditional symbol IEEE_DIV_0) contributed by Amancio Hasty (hasty@rah.star-gate.com). * bytecode.cpp: fix pr 350 (cute bug!) 1999-02-16 * Makefile: Add support for tab.cpp added in v0.43 * semantic.h: fix problem in abstract * decl.cpp: * expr.cpp: fix problem with shift if right operand long * option.h: * option.cpp: * jikes.cpp: * getclass.cpp drop +$ option, change +V to +P * bytecode.cpp: delete code causing problems with abstract 1999-02-12 * jikes.cpp: Update release date * bytecode.cpp: * expr.cpp: * control.h: add support for null literal * Makefile: * Files lcase.h and lcase.cpp no longer needed 1999-02-11 * Makefile: Add clause for egcs, RH 5.*, courtesy of Vadim Zaliva Also add CVS Id 1999-02-10 * Makefile: Add clause for gcc and Solaris based on e-mail from Phil Brown (phil@bolthole.com). * decl.cpp: * error.cpp: * error.h: Revise to reflect clarification of term "package-private", raised as Query #20 to Sun. * jikes.cpp: Update release date * long.cpp (LongInt): Add patch from Stepan Sokolov (sts@crocodile.org) to avoid "internal compiler errors" while compiling jikes with gcc-2.8.1 under solaris 2.6. The patch replace three return statements with ternary expressions with ifs statements containg the expansion of the ternary expression into a form more acceptable to the compiler. 1999-02-09 * ast.h: * body.cpp: * bytecode.cpp: * decl.cpp: * error.cpp: * error.h: * expr.cpp: * java.g: * javaact.cpp: * javaact.h: * javadcl.h: * javadef.h: * javasym.h: * lookup.cpp: * lookup.h: * scanner.cpp: * semantic.h: * symbol.cpp: Much new code from Philippe to support more of the new features added in 1.2, fix regression bugs from v0.42 for clone() and problem with 'protected' caused by too literal reading of 6.6.2 (fourth bullet that says 'or subclass of S' should be 'or superclass of S'). 1999-02-08 * config.cpp: changes for OS/2 from John Price, jgprice@ozemail.com.au 1999-02-03 * bytecode.cpp: Include fix by C. Scott Ananian (cananian@mit.edu), 8 Dec 98, for array clone() problem (PR 294). Note this patch was submitted just over a day after the source was first posted. Well done Scott! * Makefile: Add clause for Sun Solaris CC (SunOS), provided by mo dejong (dejong at cs.umn.edu), 2 Feb 1999 1999-02-02 * symbol.h (class MethodSymbol): Delete \" construct that causes MS C++ compiler to burp Delete extraneous "Open" in license header text. 1999-02-01 * decl.cpp: fix for pr335 - don't propagate FINAL to method * symbol.cpp: " * symbol.h: " * have also included misc. bug fixes from PC today 1999-01-25 * Change header text to reflect license revision 1999-01-13 * Add Id keyword at start of source files