Commits on Mar 16, 2014
  1. @sriram-srinivasan

    Issue #35. Value.merge() assumed two values were equal even if the co…

    …nstVal's weren't matching. Fixed, thanks to Andrew Bate.
    
    	modified:   src/kilim/analysis/Value.java
    sriram-srinivasan committed Mar 16, 2014
Commits on Nov 28, 2013
  1. @sriram-srinivasan

    For a pausable method in a class, the Weaver produces two versions: o…

    …ne with the original signature, which throws an error if called, and another, with the Fiber argument in it.
    
    For an pausable method in an _interface_, the Weaver was "intentionally"(*) producing only the second version; it wasn't preserving the original version.
    
    (*) I forget the reason for the explicit check for interfaces.
    
    	modified:   .classpath
    sriram-srinivasan committed Nov 28, 2013
Commits on Nov 26, 2013
  1. @sriram-srinivasan

    Removed debug statement

    	modified:   src/kilim/Cell.java
    sriram-srinivasan committed Nov 26, 2013
  2. @sriram-srinivasan

    Spurious wakeups trigger re-registration. Also, in some cases, the ms…

    …g/space available listeners were not being deregistered. Also renamed Cell.msg to Cell.message, to visually distinguish between local vars and fields by the same name.
    
    	modified:   Cell.java
    	modified:   Mailbox.java
    	modified:   Task.java
    sriram-srinivasan committed Nov 26, 2013
Commits on Nov 15, 2013
  1. @sriram-srinivasan

    merge https://github.com/krestenkrab/kilim

    - for changes to Detector
    - making Task.wrongPC static
    - calling visitEnd even for abstract methods
    sriram-srinivasan committed Nov 15, 2013
  2. @sriram-srinivasan

    Line number mapping: two bugs resolved.

    1. Line numbers for non pausable methods was incorrectly done.
    2. For pausable methods, the line numbers were being mapped correctly, but apparently have to be issued in increasing order of line numbers. Simple fix was to use TreeMap instead of HashMap for MethodFlow.lineNumberNodes.
    	modified:   src/kilim/analysis/MethodFlow.java
    sriram-srinivasan committed Nov 15, 2013
Commits on Sep 26, 2013
  1. @krestenkrab

    Undo wrongPC change

    now has correct one from kilim/master
    krestenkrab committed Sep 26, 2013
  2. @krestenkrab
  3. @krestenkrab

    Make sure to always call mv.visitEnd()

    The MethodWeaver is not following protocol; it
    needs to call mv.visitEnd() even for abstract
    methods.
    krestenkrab 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. @krestenkrab

    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.
    krestenkrab committed Aug 22, 2013
  2. @krestenkrab

    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.
    krestenkrab committed Aug 22, 2013
Commits on Aug 19, 2013
  1. @krestenkrab

    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.
    krestenkrab committed Aug 19, 2013
  2. @krestenkrab
  3. @krestenkrab

    Make line numbers work again

    krestenkrab committed Aug 19, 2013
  4. @krestenkrab

    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.
    krestenkrab 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. Merge pull request #25 from pellcorp/classwriter-classloader-support

    add classloader support to classweaver
    committed Jul 27, 2013
  3. Merge pull request #24 from pellcorp/classinfo-duplicate-list-fix

    ClassInfo did not have an equals method and List contains checks would a...
    committed Jul 27, 2013
  4. Merge pull request #23 from pellcorp/basic-maven-support-with-ant

    basic unobtrusive maven support - just wraps the ant build and deploys t...
    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