cosmetic.
	modified:   .settings/org.eclipse.jdt.core.prefs
	modified:   docs/manual.html
	modified:   src/kilim/analysis/ClassWeaver.java
	modified:   src/kilim/tools/DumpClass.java
1. Moved Detector from kilim.analysis to kilim.mirrors to avoid inter-package
   recursive calling.  That accounts for many of the changes in kilim.analysis.

2. Removed Field/MemberMirror because the weaver doesn't need access to fields.

3. Created two parallel hierarchies as a first step towards runtime weaving:
   Cached{Class,Method}Mirror  to represent class files supplied to the weaver
   that are not in the classpath (or loaded by the context classloader)
   and Runtime{Class,Method}Mirror for those that are. This commit has not
   tested the Cached*Mirror functionality.
See previous commit log. Missed two new files.

	new file:   src/kilim/mirrors/CachedClassMirrors.java
	new file:   src/kilim/mirrors/Detector.java
Working version of run-time weaving. See Weaver.weave(List<ClassInfo>)
Dynamic Weaving enabled:  classes are woven at run time as required.

Introduced a driver kilim.tools.Kilim that launches the supplied classname
under the aegis of a WeavingClassLoader.
All the changes stem from modifications to ClassMirror, MethodMirror.

Their methods no longer return other ClassMirror objects in response to getSuperClass()
or getInterfaces() or getExceptions(). Instead, they return String or String[]. Detector looks up those classes as necessary. This change avoids mirroring classes that we
KNOW to be non pausable, those in "java." or "javax." packages.

Weaving is also faster because the weaver stops looking for a pausable method up in the hierarchy as soon as it encounters a super class name in one of these nonpausable packages.
Added jar support to WeavingClassLoader

	modified:   src/kilim/WeavingClassLoader.java
	modified:   src/kilim/analysis/FileLister.java
FileLister holds on to the embedded FileContainer via a WeakReference now to avoid holding on to an open jar file under memory pressure

	modified:   src/kilim/analysis/FileLister.java
Resolution to github issue #8.

Problem: In Frame.merge the operand stacks were being examined pointwise for differences, but due to an incorrect comparison, the analysis assumed that the stack had not changed.

TestYield/ExLoop are the relevant unit test and example code to exercise this functionality.

	modified:   .classpath
	modified:   src/kilim/analysis/Frame.java
	modified:   src/kilim/analysis/Usage.java
	modified:   src/kilim/tools/Asm.java
	modified:   src/kilim/tools/P.java
	modified:   test/kilim/test/TestYield.java
	new file:   test/kilim/test/ex/ExLoop.java
	modified:   test/kilim/test/ex/ExYieldStack.java
Fix and test for issue#6:
"Local vars not restored properly after exception is thrown"

Thanks to ntherning (https://github.com/ntherning) for both the
test case and the fix.

	modified:   src/kilim/analysis/MethodWeaver.java
	modified:   test/kilim/test/TestYieldExceptions.java
	modified:   test/kilim/test/ex/ExCatch.java
insignificant fix
	modified:   examples/kilim/examples/Ping.java
Issue #14. Task.invoke now invokes static methods correctly via reflection.

	modified:   .classpath
	modified:   examples/kilim/examples/Reflect.java
	modified:   src/kilim/Task.java
	modified:   src/kilim/mirrors/CachedClassMirrors.java
Fixes for issues #11,12,13 contributed by tstockwell.

	modified:   src/kilim/mirrors/CachedClassMirrors.java
	modified:   src/kilim/mirrors/Detector.java
Accept http header with leading crlf.
	modified:   src/kilim/http/HttpRequest.java
Fix for issue #15. Contribution by tstockwell.

	modified:   src/kilim/analysis/BasicBlock.java
Fix for Issue #17 thanks to ted stockwell.

From the issue page:
"The kilim.analysis.ClassWeaver class maintains a static list of state classes that have been generated. Therefore, when used in Eclipse, if kilim.S_L is generated once when one eclipse project is built, then it will not be generated again in a second eclipse project that requires it.
"

	modified:   src/kilim/analysis/ClassWeaver.java
Fix for Issue #16. If a method is marked pausable, but doesn't make any pausable calls, then the prelude was being generated incorrectly: the fiber argument was loaed onto the stack, but not popped on return.

	modified:   src/kilim/analysis/MethodWeaver.java
	modified:   test/kilim/test/ex/ExBasicBlock.java
(1) Added support for stackmap attribute. (2) Bumped up the version to 1.0, because Kilim has been stable for a while.

Future versions of the JVM will make stackmaps mandatory if the classfile major version is >= 50. To enable stackmap support, we upgrade to version 4.x of ASM, which forces upon us a few changes:
1. ASM Visitors are now abstract classes, not interfaces
2. Use LabelNodes instead of Labels everywhere.

The second one deserves some explanation. ASM's MethodNode.InsnList uses the 'AbstractInsnNode.next' to thread together instructions. This means that an instruction cannot belong to two different lists, and instructions cannot be squirreled away and added later on (as used to be the case when MethodNode.instructions was an array). Second, Labels contain flags such as Debug (corresponding to line numbers) that cannot be reset. This means that such labels cannot be made targets at a later stage.
To accomodate this behavior of ASM, we stop dealing with Labels completely, and only deal with LabelNodes. When generating woven code, we strip the Labels off of LabelNodes to ensure that the labels from the original class file are not reused. The LabelNodes will generate new labels automatically.

        modified:   .classpath
        modified:   .gitignore
        modified:   .settings/org.eclipse.jdt.core.prefs
        modified:   build.sh
        modified:   build.xml
        modified:   docs/manual.html
        deleted:    libs/asm-all-2.2.3.jar
        new file:   libs/asm-all-4.1.jar
        modified:   src/kilim/Constants.java
        modified:   src/kilim/analysis/AsmDetector.java
        modified:   src/kilim/analysis/BasicBlock.java
        modified:   src/kilim/analysis/CallWeaver.java
        modified:   src/kilim/analysis/ClassFlow.java
        modified:   src/kilim/analysis/ClassWeaver.java
        modified:   src/kilim/analysis/MethodFlow.java
        modified:   src/kilim/analysis/MethodWeaver.java
        modified:   src/kilim/analysis/NopInsn.java
        modified:   src/kilim/mirrors/CachedClassMirrors.java
        modified:   src/kilim/mirrors/ClassMirror.java
        modified:   src/kilim/mirrors/Mirrors.java
        modified:   src/kilim/mirrors/RuntimeClassMirrors.java
        modified:   src/kilim/tools/Asm.java
        modified:   src/kilim/tools/DumpClass.java
        modified:   src/kilim/tools/FlowAnalyzer.java
        modified:   test.sh
        modified:   test/kilim/test/ex/ExJSR.j
basic unobtrusive maven support - just wraps the ant build and deploys the jar file with a new maven target
ClassInfo did not have an equals method and List contains checks would always return false resulting in duplicate kilim state classes being generated