Thu May 14 10:38:37 1998 David Engberg * Expression.C (GenerateCode): Fix for post-increment of static fields (x++). * Compiler.C: Fix to recognize inner class names as types for fields in outer classes. * parser.y: Support for '.class' and '.this' operations. Thanks to Vadim Zaliva (Vadim.Zliva@us.matranet.com) for pointing out an LALR(1) grammar that does this from Dimitri Bronnikov (Bronikov@inreach.com). The parsing isn't quite right ... it doesn't handle '.' after the operations, so it can't do: Foo.this.x but it can do: (Foo.this).x just fine. Sun Apr 12 22:58:35 1998 David Engberg * parser.y: Fix for uninitialized variables. (Bruno Haible) Sun Jan 4 12:55:08 1998 David Engberg * parser.y: Added support for dynamic array initialization syntax: new int[] { 1, 2, 3 } Sat Jan 3 12:12:02 1998 David Engberg * Compiler.C (ImportOneClassPath): Fix to allow location of source references to non-public classes. Sun Nov 9 15:52:55 1997 David Engberg * Expression.C: Fix access to protected fields/methods on non-this. Thu Sep 18 15:36:33 1997 David Engberg * Compiler.C: Add abstract stubs of all interface methods on an abstract class. The verifier started requiring this at 1.1.? Tue Sep 2 08:07:04 1997 David Engberg * Compiler.C: Make all interface methods 'public' by default. Tue Aug 19 14:13:47 1997 David Engberg * Statement.C: Fix to make sure 'finally' gets called after 'catch'es. * Expression.C: Complain about incrementing non-lvalue. * parser.y, Compiler.C, etc: Add support for 'final' local variables. Tue Aug 12 14:37:52 1997 David Engberg * Statement.C: The verifier in JDK 1.1 seems to now require lookupswitch entries to be ascending numerical order. This isn't documented anywhere, but I added it anyway. Wed Jul 9 12:53:57 1997 David Engberg * lexer.l: Fix for numeric constant overflow code to support 0x01234 Wed May 21 09:55:07 1997 David Engberg * lexer.l: Minor fix for deprecation to support /**/ * Compiler.C: Complain about re-used field names. Fri May 16 08:49:32 1997 David Engberg * parser.y: Fix segfault caused by empty statements in 'switch' blocks. * lexer.l: Added support for high characters in literals. (umlauts) Wed May 7 15:13:45 1997 David Engberg * Expression.C: Correct under/overflow in short/char/byte increment and decrement. * parser.y, etc.: Support for @deprecated tag. Mon May 5 20:44:12 1997 David Engberg * Expression.C: Tried to fix increment and decrement again. Need to make sure it gets all of these right: int i; int foo() { return i++; } short blah(short j) { return j++; } int baz(int k) { return k++; } * Compiler.C: Complain about invalid overrides from interfaces. Thu May 1 11:51:26 1997 David Engberg * parser.y: Allow, but warn, about semicolons in class bodies. * CompilerMain.C: Creates directories for destination files if not found. Wed Apr 30 08:28:42 1997 David Engberg * Compiler.C: Fix for 'throws' in constructors. Tue Apr 29 17:14:39 1997 David Engberg * parser.y: Fix for empty 'case' and 'default' clauses. Mon Apr 28 10:06:32 1997 David Engberg * IntermediateFunction.C: Added line number information to methods to report approximate line numbers for method errors. * BinaryExpression.C: Fix for short/char/byte compound assignment (e.g. s *= 500;) * Statement.C: Catch duplicate 'case' labels. * Compiler.C: Support for final constant array assignment in interfaces: final static String s[] = { "a", "b" } Thu Apr 3 09:38:08 1997 David Engberg * Expression.C: Fix for non local-int post-increment. Fix for stack sizes in post-increment (sestoft@dina.kvl.dk) Thu Mar 27 09:22:08 1997 David Engberg * Compiler.C (ImportClass): Fix for class lookup with multiple classes in source file. Tue Mar 25 17:17:13 1997 David Engberg * JavaDirectory.C (CJavaDirectory): Fix to close zip file in CJavaDirectory dtor. (David Spencer ) Sat Mar 15 10:51:51 1997 David Engberg * Expression.C (GenerateCode): Fix for non-int increment and decrement. Wed Mar 5 10:04:09 1997 David Engberg * Compiler.C: Fix for multi-class files with java.lang.Object references in non-first files. Mon Mar 3 10:00:33 1997 David Engberg * lexer.l: Fix for hex literals. Sun Mar 2 11:23:58 1997 David Engberg * Compiler.C (ImportOneClassPath): Fix to Jim Thompson's dependency code. (Jim Thompson ) * lexer.l: Fix for hex integer literals translating into negative values. * zextract.c: Fix to handle certain types of zip files (Thanks to Paul Du Bois ) * Expression.C (HandleEvaluateType): Fix for Object methods on arrays. (CArrayIndex): Fix so every array dereference is an lvalue. Fri Feb 28 14:19:55 1997 David Engberg * Makefile.in (install): Added support to create bin directory. Sun Feb 23 22:47:11 1997 David Engberg * Expression.C (GenerateCode): Fix for 'instanceof' to class arrays. Sat Jan 25 11:15:41 1997 David Engberg * Expression.C (GenerateCode): Fix 'nargs' in invokeinterface to pass the total size of the arguments, not the number of arguments. This isn't what the spec says, but it matches javac's behavior. Sun Dec 1 20:08:20 1996 David Engberg * Expression.C (GenerateCode): Fix a problem with post-increment in array bounds: a[i++] = ...; Wed Oct 2 09:14:05 1996 David Engberg * parser.y: Fixed a bug in symbol interpretation. Mon Sep 23 10:34:29 1996 David Engberg * lexer.l: Added simple support for preprocessor-produced line directives Tue Sep 10 12:04:37 1996 David Engberg * Compiler.C: Fix so it will figure out the proper superclass names during an early compilation stage. * parser.y: Complete replacement of the parser with the grammar found in the current language specification. Sat Aug 17 09:16:30 1996 David Engberg * Expression.C: Fix for casting literals to character type. Fix for assigning int literals to byte, short, char w/o casting. Tue Aug 13 18:38:06 1996 David Engberg * Expression.C, Compiler.C: Fix for method overloading selection. It now finds the correct most specific call or reports an ambiguity. * parser.y: Fix for -x++ Fri Aug 9 12:51:18 1996 David Engberg * Expression.C: Fix for type evaluation in casts. Tue Aug 6 16:20:02 1996 David Engberg * lexer.l: Fixed octal character escape encoding. Fri Aug 2 19:54:11 1996 David Engberg * Makefile.in: Change the name of 'disassemble' to 'guavad' Thu Aug 1 13:35:17 1996 David Engberg * CompilerMain.C: Support for multiple source files. * Compiler.C: Fix so you can cast Objects to array types. Mon Jul 29 10:22:45 1996 David Engberg * BinaryExpression.C, Compiler.C, Expression.C: Fix for implicit type casts in assignment and return statements. Fri Jul 19 10:31:49 1996 David Engberg * CompileContext.C: Don't complain about uncaught Errors and RuntimeExceptions. (ick) * Compiler.C: Fix to allow boolean array initializers. Fix to avoid duplicate initialization by constructors calling this(...) Wed Jul 17 09:57:07 1996 David Engberg * Expression.C: Require catching or declaring constructor exceptions. * Makefile.in: Fixed compilation of zextract.c * Expression.C: Compatibility fix to interpret a.b as 'field b on field a' before trying 'static field b on class a.' Mon Jul 15 19:49:52 1996 David Engberg * CodeSequence.C: Fix so that code after a 'throw' wouldn't be marked as reachable. Fri Jul 12 11:42:33 1996 David Engberg * Release 0.2.4 * CodeSequence.C: Work around a bug in the JDK verifier that prevents exception handlers that include the last instruction in a method. Fix in lookupswitch code generation. Thu Jul 11 15:45:42 1996 David Engberg * Compiler.C: Fix for interfaces. Fix to complain about unimplemented interface methods. Mon Jul 8 12:35:52 1996 David Engberg * Expression.C: Prevent instantiating abstract or interface classes. * Statement.C, etc.: Checking to see if exceptions are caught/declared. Sun Jul 7 14:19:37 1996 David Engberg * Compiler.C: Support for the same package in multiple locations. * CodeSequence.C: Eliminating dead code. * Compiler.C: Added compatibility for interface fields. Fri Jul 5 20:26:51 1996 David Engberg * CompilerMain.C: Added support for a -d flag to specify output dir. Thu Jul 4 15:04:43 1996 David Engberg * JavaDirectory.h: Fix to support compiling against source files. Sat Jun 29 22:37:06 1996 David Engberg * BinaryExpression.C, CodeSequence.C, CodeSequence.h, Compiler.C, Compiler.h, CompilerInstantiations3.C, CompilerMain.C, Expression.C, JavaDirectory.C, JavaDirectory.h, Makefile.in, Statement.C, zextract.h: Release 0.2.3 Thu May 23 17:22:05 1996 David Engberg * Compiler.h: Check in before adding multi-file compilation. * Compiler.C: Check in before trying to add multiple-file compilation. Sat May 4 01:40:52 1996 David Engberg * Expression.C: Fix for 0.2.1 stack code. Fri May 3 23:39:15 1996 David Engberg * BinaryExpression.C, CodeSequence.C, CodeSequence.h, Expression.C, Statement.C, Statement.h, parser.y: Changes for 0.2.1 Thu Apr 25 21:27:09 1996 David Engberg * Makefile.in, BinaryExpression.C, BinaryExpression.h, CodeSequence.C, CodeSequence.h, Compiler.C, Compiler.h, CompilerInstantiations2.C, Expression.C, Expression.h, Statement.C, Statement.h, VariableDeclaration.C, VariableDeclaration.h, parser.y: Changes for 0.2 release Fri Apr 19 03:27:03 1996 David Engberg * Statement.C, Expression.C: Changes before switching over to CCodeSequence Thu Apr 18 02:18:20 1996 David Engberg * BinaryExpression.C, Compiler.C, Compiler.h, Expression.C, Expression.h, Statement.C, lexer.l, parser.y: Changes for 0.1.6 Wed Apr 17 16:21:09 1996 David Engberg * Expression.C, Expression.h: Checking in before trashing field code. Sun Mar 31 19:35:29 1996 David Engberg * BinaryExpression.C, BinaryExpression.h, CompileContext.C, CompileContext.h, Compiler.C, Compiler.h, CompilerInstantiations3.C, CompilerMain.C, Expression.C, Expression.h, IntermediateClass.C, IntermediateClass.h, NonlocalBranch.C, NonlocalBranch.h, Statement.C, Statement.h, VariableDeclaration.C, VariableDeclaration.h, lexer.l, parser.y: Release 0.1.5 * Makefile.in: Initial revision Thu Mar 28 21:52:32 1996 David Engberg * Expression.C: Checking in before trying to add compile context flow information. Sat Mar 9 20:11:14 1996 David Engberg * BinaryExpression.C, BinaryExpression.h, Compiler.C, Compiler.h, Expression.C, Expression.h, IntermediateClass.C, IntermediateClass.h, Statement.C, Statement.h, VariableDeclaration.C, VariableDeclaration.h, parser.y: Changes for 0.1.4 release Sat Mar 2 20:01:34 1996 David Engberg * Expression.C, Expression.h: Checking in before tackling constant folding. * Compiler.C: Checking in current state before tackling constant folding. * Compiler.h: Checking in current state before trying to add constant folding. Thu Feb 8 05:14:56 1996 David Engberg * Compiler.C, Compiler.h, Expression.C, Expression.h, lexer.l, parser.y: Changes for the 0.1.3 release Wed Feb 7 20:48:52 1996 David Engberg * Compiler.C: Checking in some changes before trying to delay package importing. Mon Jan 22 05:33:09 1996 David Engberg * Compiler.C, Compiler.h, CompilerInstantiations2.C, Statement.C, parser.y, Expression.h, Expression.C: Changes for 0.1.2 release Wed Jan 17 20:56:59 1996 David Engberg * Expression.C: Fixed bug in casting from 32-bit integral type to a different 32-bit integral type. Fixed bug preventing comparison of character to another character value. * Expression.C: Added support for array pseudo-field 'length' * CompilerInstantiations3.C: Initial revision Sun Jan 14 03:28:17 1996 David Engberg * CompilerInstantiations2.C: Added instantiations for buggy gcc platforms (0.1.1 release.) * CompilerInstantiations.C: Added instantiations for buggy gcc platforms. (0.1.1 release) Mon Jan 8 03:04:11 1996 David Engberg * lexer.l, parser.y, CompileError.C, CompileError.h, Compiler.C, Compiler.h, CompilerInstantiations.C, CompilerMain.C, DisassembleMain.C, Expression.C, Expression.h, IntermediateClass.C, IntermediateClass.h, IntermediateFunction.C, IntermediateFunction.h, Statement.C, Statement.h, VariableDeclaration.C, VariableDeclaration.h, parser_decls.h: Changes for 0.1 release * CompilerInstantiations2.C: Initial revision Fri Dec 15 10:58:11 1995 David Engberg * CompileError.C, CompileError.h, FilterMain.C, IntermediateClass.C, IntermediateClass.h, IntermediateFunction.C, IntermediateFunction.h, Statement.C, Statement.h, VariableDeclaration.C, VariableDeclaration.h: Initial revision Mon Dec 11 23:34:08 1995 David Engberg * Compiler.C: Checking in 264 report version before trying to defer loading of import files. Wed Nov 29 02:28:47 1995 David Engberg * parser.y: Checking in before trying to rework the variable declaration syntax. Sun Nov 26 04:02:05 1995 David Engberg * CompilerInstantiations.C: Initial revision * parser.y: Check-in before trying to remove the comma operator (',') * Expression.C, Expression.h: Initial revision Thu Nov 23 02:48:26 1995 David Engberg * parser_decls.h: Initial revision Wed Nov 22 05:43:07 1995 David Engberg * DisassembleMain.C: Moved from Main.C to DisassembleMain.C * CompilerMain.C, Compiler.C, Compiler.h, lexer.l, parser.y: Initial revision