[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:
http://forge.objectweb.org/project/showfiles.php?group_id=23
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.
Jaime
More information about the checkers
mailing list