[Checkers] Questions about annotations repository

Jaime Quinonez jaimeq at MIT.EDU
Mon Jun 2 17:02:40 EDT 2008

Sorry for the late reply.  I don't yet have my internet connection set  
up (someone is, hopefully, coming tomorrow) and since I wasn't  
expecting anything, I did not bother to go to a Starbucks yet.  I have  
discovered a part of my apartment that barely manages to get some  
other wireless connection.

> 1. annotations/asmx/ doesn't contain a README file describing how it  
> differs
> from the distributed ASM, what was the last version of the  
> distributed ASM
> that it was synchronized with, nor how to get an exact diff of all the
> changes.  Could someone add that?

Dialing in to a csail machine runs too slowly to use emacs and commit  
a file, so maybe one of you could add this in:
asmx contains modifications to asm to allow it to read and write JS  
308 annotations to/from class files.  The most modified classes are  
(in org.objectweb.asm): ClassReader (to read classfiles) and  
ClassWriter (to write class files).  Additionally,  
ExtendedAnnotationVisitor and ExtendedAnnotationWriter extend the  
basic annotation visitor in asm, and the two classes above use these  
new visitors.  asmx was branched off of asm 2.2.2, available here:


The only way to extract all the changes is to run diff on the existing  
source files against the 2.2.2 files.

> 2. annotations/shared/ doesn't contain a README indicating its  
> purpose.
> (And, what is it shared between?)  Since we are no longer trying to  
> re-use
> the same file between multiple projects, but rather merely check  
> that they
> are in sync (see "-prep-checkdiff" target in
> annotations/release/release.xml), there is no need to put this in  
> its own
> directory any longer.

  Originally, this was being shared by scene-lib and the first  
compiler.  Now, I think only the scene library uses annotations/shared  
explicitly.  If it is going to be moved, it should be moved into the  
scene library.

> 3. What is the annotations/annotation-file-utilities/workspace/  
> directory?

This directory was supposed to be used by the annotation file  
utilities to include all source files (and some modified build files)  
so that the annotation file utilities could be built from source.  See  
the update-workspace target in annotation-file-utilities/build.xml

> 4. The annotation file utilities are spread out all over the  
> annotations
> directory.  These directories seem to be logically part of the  
> annotation
> file utilities, so far as I can tell:
>  annotation-file-utilities
>  annotator
>  asmx
>  test
>  scene-lib
>  shared
> Is there any reason not to consolidate them all under
> annotation-file-utilities?  Some directories may disappear:  for  
> example,
> "shared" can be merged into a new src/ directory that will contain  
> all of
> the source code of the annotation file utilities.

The current structure is due to the fact that the annotation file  
utilities as a collection of separate tools were almost an  
afterthought.  For example, when Matt McCutchen worked on the scene- 
lib, I worked on asmx since we would also need to write to/read from  
classfiles, and to make the projects work together, I added the  
annotations.io.classfile package to scene-lib.  This way, asmx remains  
strictly a modification to asm that does not depend on any of our  
projects.  I agree that it is confusing to have the annotation file  
utilities spread out like this (and have no source code in annotation- 
file-utilities, which simply gathers everything).  However, I think  
the scene library should be kept in scene-lib.  The  
annotations.io.classfile represents the insert-annotations and extract- 
annotations tool (and no part of the scene library depends on it), so  
that can be cleanly moved to annotation-file-utilities.  Since insert- 
annotations-to-source is the only thing annotator is presently used  
for, annotator could also be moved into annotation-file-utilities.  I  
think asmx should stay as an aside project so that it is clear that it  
is a stand-alone project.  I don't have any idea what annotations/test  
is, but I suspect it was some temporary directory that Matt McCutchen  
didn't delete, or that we didn't delete when we removed pathtool.


More information about the checkers mailing list