Make system now working for build, rebuild-all, clean, pristine, distclean, clean-classes, runtests, and javadocs targets
Added a useful script for renaming packages.
Added script to compare the bytecode produced by javac with that produced by mjc.
First cut at separating mjc from JML
updated prj.el (JDE for Emacs config file) to be MultiJava specific
Tweaked build system to support extensible checks of environment variables
renaming completed for packages
Changed cygwin script to use cygpath to convert to Windows style path name. This is more robust, and I think easier to read, than using sed
Added a test for recursive definition of JDLINKS environment variable.
Added check and error message for directories as command line arguments
Fixed use of TEMP redirect for javadocs target
Removed some previously completed items
Added code to Comment Mining Browser case study for extracting keywords from comments in source code
Fleshed out CMB example
Backing out incomplete change to error messages.
Removed a vestigial error message. Cleaned up some white space.
Moved JUnit test suite for MJ into the org.multijava package. Note that having this test suite at the top level resulted in ambiguity vs. the JML2 test suite. The ambiguity was silently resolved based on the local CLASSPATH. I will be moving the JUnit test suite for JML2 into the org.jmlspecs package next.
Added test case for index building
Fixed clean-classes target to convert PACKAGE variable to directory path
Added directory structure and initial files for a new MultiJava case study, the Comment Mining Browser
cleaned up some lint in the CMB sample
Added helper target so the runtests target does not repeatedly call the build target at every level of the recursion
Updated mjc and jml to use relative paths in error messages
Improved handling of case-sensitivity by localizing this code to Index.java
candidate_mjc-0_9a-9
Added flag controlling whether or not an index is case-sensitive
Changed options to use a default release number defined in org.multijava.util.Options unless overridden with a version declaration in the *.opt file. Removed version declarations from all MJ *.opt files so that these utilities are all synchronized to the same release number
candidate_mjc-0_9a-2
candidate_mjc-0_9a-5
candidate_mjc-0_9a-7
candidate_mjc-0_9a-8
Cleaned up some documentation
Extended option file grammar to allow *.opt files to give a URL for additional project information (in lieu of hardcoding the multijava.org reference as before
candidate_mjc-0_9a-4
candidate_mjc-0_9a-1
Added more of the Comment Mining Browser user interface
Updated version message to CVS
candidate_mjc-0_9a-10
Added another step to the release procedure.
Added package description for the org.multijava.mjc package. This description includes the specification of the custom bytecode attributes used to add MultiJava-specific type information to generate *.class files.
Added prototype of dialog for selecting files to open
Some changes to tests for platform indepence. Changed default version to indicate CVS snapshot after 0.9a
Fixed to refer to MultiJava directory in source code download instructions (instead of MJ)
removed javadocs from release procedure, fixed bug in automatic setting of PROJ_JCLASSROOT from PROJ_CLASSROOT
Corrected some verbage and expanded the definition of the mm_count field.
candidate_mjc-0_9a-11
candidate_mjc-0_9_1a-1
several minor fixes: removed redundant ./ from paths in error messages, added quiet-tests target, removed redirection from javadocs target
fixed release code bugs in creating jars and tars
Removed some completed item and reordered some others
Added target 'packages-list' that prints the packages configured for javadocing.
Fixed HTML error, missing opening body tag.
Adding user interface to comment mining browser case study
commented out println that you would probably find annoying
Implicit include of local generic functions now handles private generic functions as well. Implicit include of package-local generic functions is not yet working.
Added implicit include of local declared generic functions. Added test cases for this and revised existing test cases to remove unnecessary includes. Not yet handling implicit include of local private generic functions--that's next
Added test case for some bugs in the typechecking (failing to report errors when catch or throws type is not a subclass of Throwable). Named new testcase in 'skip'. Added entry to TODO file
Continued refinement of the Comment Mining Browser example. Adding query user interface.
reorganized TODO list and promoted items related to bytecode encoding of MultiJava to the top
Separated mm_info as a separate structure allowing encoding of multimethods with specialized exception sets and privileged access modifiers.
Completed user interface for selecting the files making up a program in the Comment Mining Browser case study
Added code to parse query strings to the Comment Mining Browser case study
Fixed CTopLevel.loadClass() to never return null. Removed vestigial check for null return value in CClassNameType.checkType()
Tweaked the TODO.txt to indicate work completed.
Added implicit include of package-local external generic function, but only if they are compiled in the same invocation of the compiler
cleaned up some whitespace and formatting things
Added support for implicit import of package-local generic functions. Extended FileFinder functionality to support the name difference between a generic function declaration file 'function.java' and its binary representation 'function$anchor.class'. Tweaked ParseTask to avoid reprocessing files and triggering duplicate declaration errors. Note that reading of external generic functions from bytecode is not yet supported and an invocation of the compiler that would trigger such a read now r...
Fixed some bugs in the implicit lookup of external generic functions. Added missing test case results. Added new test case for on-demand import of external generic functions, though this capability is not yet in the compiler so the new test is skipped. Began refactoring of attribute infrastructure in the classfile package to support extension of the set of attributes generated and parsed.
Refactored mjc.CClassNameType, extracting a subclass for names that are known to be fully qualified. Added a RuntimeException that is thrown if we try to resolve a non-fully qualified CClassNameType without a context. Fixed a bug in CClassType.lookup() to eliminate many attempts to resolve non-fully qualified CClassNameTypes without a context.
Fixed bug in name resolution. Move resolution of superclass types into internalizeAndGroup pass. Made that pass the first checking pass so all superclass types are resolved before checkInterface. Improved error reporting on unknown types and variables.
Added an item on eliminating calls to System.exit.
Fixed erroneous flag in jar command example.
Completed basic implementation of comment mining browser case study
Fixed bug in name resolution. Move resolution of superclass types into internalizeAndGroup pass. Made that pass the first checking pass so all superclass types are resolved before checkInterface. Improved error reporting on unknown types and variables.
Changed call of System.exit to a throw of CompilationAbortedError
Changed Make.Defs so javadocs uses the JAVADOC environment variable. Hacked CGenericFunctionCollection to work around bug in javadoc 1.3.1_01 that prevents us from using an anonymous class in the initializer of a constant within an interface. Tweaked javadocs in various classes to eliminate warnings the appear in jdk 1.4.0.
Committing some minor documentation and TODO file tweaks before trying some hacking to the superclass name resolution mechanism.
Added CompilationAbortedError, a subclass of RuntimeException.
Moved a couple of tests from junit to make based tests
Added better error message for runtime exception
Added instructions for creating javadocs of the ANTLR classes.
Fixed bug whereby external generic functions were loaded that a constructor might override. Constructors cannot override anything so this search was a waste.
Fixed bug in resolution of top methods for transitively compiled external methods. The bug was exposed when implicit inclusion of external methods was enabled. With explicit includes the mapping from compilation units to the set of a class's augmenting methods was generated in the internalize pass. But with implicit includes this mapping was not established until a call to resolveMaybeExtMethod in the typecheck pass. But the topMethod calculation in the typecheck pass assumed that all aug...
Refactored classfile attribute parsing to use a chain-of-responsibility to make the attribute parsing extensible
Moving a test from JUnit to make-based testing. Actual code commits are just to comments and include some commented out code that would fix one bug but introduces a bunch of others.
Changed a RuntimeException to a CompilationAbortedError
Added test case for filtered error messages
Added bytecode encoding of multimethod signatures. New disassembler flag causes disassembler to read multimethod signatures. Compiler does not yet consider multimethod signature read from bytecode during typechecking so the new test cases (BytecodeAttr1*) are currently skipped. Bytecode encoding of external generic functions is not yet completed.
Reading and writing of bytecode attributes for internal multimethods of internal generic functions now supported. Bytecode encoding for value specializers and external generic functions is not yet finished. Added a new compiler pass, resolveTopMethods, between checkInitializers and typecheck. Several new test cases added or enabled.
Tweaked ambiguity and completeness checking for multimethods to skip generic functions without any explicit specializers.
Fixed typo in generic function name that caused regression test failure on case-sensitive platforms. Sorry.
Fixed bug in the checking of definite assignment for try-catch statements.
Extended check of visible types (used in testing generic function completeness and unabiguousness) to include transitively visible types from bytecode. This exposed several bugs in the ambiguity checking, including a faulty sorting algorithm on CType and a faulty type tuple iterator both of which prevented the checking of some legal argument tuples. The set of visible types for ambiguity checking is _much_ larger now, so I expect some decline in typechecking performance. I'll work on a cou...
Added filter to error messages for incomplete generic functions to eliminate redundant error messages.
Reading of external generic functions from bytecode now supported. Support only includes _invocation_ of external generic functions read from bytecode. I have one more method to override before support for _specializing_ of external generic functions read from bytecode is available. I also implemented a sorting algorithm for the set of visible generic functions during ITC (previously the type tuples were sorted but the functions were not resulting in false failures on the regression tests).
Added new tests that demonstrate bug in transitive resolution of visible types when reading from source code. Tests are currently skipped
Added a TODO item for dying gracefully and generating an error report file when an uncaught exception is thrown during processing.
Cleaned up TODO.txt, sorted items based on priority
Added error message reporting on misuse of the new flags constructs
Removed several test cases that were failing because of variations in order of generated bytecode on different platforms. These tests will be added to a new runtime directory that tests semantics of generated code independent of specific ordering