Commits on Sep 26, 2013
  1. Undo wrongPC change

    now has correct one from kilim/master
    committed Sep 26, 2013
  2. Make sure to always call mv.visitEnd()

    The MethodWeaver is not following protocol; it
    needs to call mv.visitEnd() even for abstract
    methods.
    committed Sep 26, 2013
Commits on Sep 10, 2013
  1. @sriram-srinivasan

    Cosmetic fix to checking content length.

    	modified:   src/kilim/http/HttpResponse.java
    sriram-srinivasan committed Sep 10, 2013
  2. @sriram-srinivasan

    Check content-length property before setting it.

    	modified:   src/kilim/http/HttpResponse.java
    sriram-srinivasan committed Sep 10, 2013
Commits on Aug 26, 2013
  1. @sriram-srinivasan

    Fiber.wrongPC() was incorrectly being called with invokestatic.

    	modified:   src/kilim/analysis/MethodWeaver.java
    sriram-srinivasan committed Aug 26, 2013
  2. @sriram-srinivasan
Commits on Aug 22, 2013
  1. Fix usage of Detector.commonSuperClass

    The code was a bit messy, sometimes passing
    "Lfoo/Bar;" and sometimes "foo/Bar".  This
    cleans up matters to always use the latter.
    committed Aug 22, 2013
  2. Fix wrongPC call

    The codegen calls Fiber.wrongPC using INVOKESTATIC
    but the implementation is non-static.  To make 
    matters simple we just declare the wrongPC
    function static.
    committed Aug 22, 2013
Commits on Aug 19, 2013
  1. Erjang specific methods inside Kilim

    These are some special methods (mostly on Mailbox)
    to provide the look-ahead semantics needed for
    Erlang's selective receive.
    committed Aug 19, 2013
  2. Make line numbers work again

    committed Aug 19, 2013
  3. Make cached stateClasses be a ThreadLocal

    In Erjang, we need to run multiple Kilim
    "instances" concurrently, so we need this
    static state to be thread-local.
    committed Aug 19, 2013
Commits on Aug 15, 2013
  1. @zbigniew-mandziejewicz
Commits on Jul 28, 2013
  1. @sriram-srinivasan

    Stackmaps + ASM 4.x support, version upgraded to 1.0 (finally)

    	modified:   ../../README.txt
    	modified:   ../../docs/IFAQ.txt
    sriram-srinivasan committed Jul 28, 2013
  2. @kilim

    Merge pull request #25 from pellcorp/classwriter-classloader-support

    add classloader support to classweaver
    kilim committed Jul 27, 2013
  3. @kilim

    Merge pull request #24 from pellcorp/classinfo-duplicate-list-fix

    ClassInfo did not have an equals method and List contains checks would a...
    kilim committed Jul 27, 2013
  4. @kilim

    Merge pull request #23 from pellcorp/basic-maven-support-with-ant

    basic unobtrusive maven support - just wraps the ant build and deploys t...
    kilim committed Jul 27, 2013
Commits on Jul 26, 2013
  1. @pellcorp
  2. @pellcorp
  3. @pellcorp

    simplify up equals and hashCode

    pellcorp committed Jul 26, 2013
Commits on Jul 17, 2013
  1. @pellcorp

    ClassInfo did not have an equals method and List contains checks woul…

    …d always return false resulting in duplicate kilim state classes being generated
    pellcorp committed Jul 17, 2013
  2. @pellcorp

    basic unobtrusive maven support - just wraps the ant build and deploy…

    …s the jar file with a new maven target
    pellcorp committed Jul 17, 2013
Commits on May 26, 2013
  1. @sriram-srinivasan

    (1) Added support for stackmap attribute. (2) Bumped up the version t…

    …o 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
    sriram-srinivasan committed May 26, 2013
Commits on Nov 29, 2012
  1. @sriram-srinivasan

    Fix for Issue #16. If a method is marked pausable, but doesn't make a…

    …ny 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
    sriram-srinivasan committed Nov 29, 2012
Commits on Nov 19, 2012
  1. @sriram-srinivasan

    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
    sriram-srinivasan committed Nov 19, 2012
Commits on Oct 31, 2012
  1. @sriram-srinivasan

    Fix for issue #15. Contribution by tstockwell.

    	modified:   src/kilim/analysis/BasicBlock.java
    sriram-srinivasan committed Oct 31, 2012
Commits on Oct 28, 2012
  1. @sriram-srinivasan

    Accept http header with leading crlf.

    	modified:   src/kilim/http/HttpRequest.java
    sriram-srinivasan committed Oct 28, 2012
  2. @sriram-srinivasan

    Fixes for issues #11,12,13 contributed by tstockwell.

    	modified:   src/kilim/mirrors/CachedClassMirrors.java
    	modified:   src/kilim/mirrors/Detector.java
    sriram-srinivasan committed Oct 28, 2012
Commits on Oct 27, 2012
  1. @sriram-srinivasan

    Issue #14. Task.invoke now invokes static methods correctly via refle…

    …ction.
    
    	modified:   .classpath
    	modified:   examples/kilim/examples/Reflect.java
    	modified:   src/kilim/Task.java
    	modified:   src/kilim/mirrors/CachedClassMirrors.java
    sriram-srinivasan committed Oct 27, 2012
Commits on Oct 13, 2011
  1. @kilim

    insignificant fix

    	modified:   examples/kilim/examples/Ping.java
    kilim committed Oct 12, 2011
Commits on Oct 6, 2011
  1. @kilim

    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
    kilim committed Oct 5, 2011
Commits on Oct 5, 2011
  1. @kilim

    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
    kilim committed Oct 5, 2011
Commits on May 8, 2011
  1. @kilim

    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
    kilim committed May 8, 2011
  2. @kilim

    Added jar support to WeavingClassLoader

    	modified:   src/kilim/WeavingClassLoader.java
    	modified:   src/kilim/analysis/FileLister.java
    kilim committed May 8, 2011