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

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

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

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

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

    Removed debug statement

    sriram-srinivasan committed
    	modified:   src/kilim/Cell.java
  2. @sriram-srinivasan

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

    sriram-srinivasan committed
    …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
Commits on Nov 15, 2013
  1. @sriram-srinivasan

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

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

    Line number mapping: two bugs resolved.

    sriram-srinivasan committed
    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
Commits on Sep 26, 2013
  1. @krestenkrab

    Undo wrongPC change

    krestenkrab committed
    now has correct one from kilim/master
  2. @krestenkrab
  3. @krestenkrab

    Make sure to always call mv.visitEnd()

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

    Cosmetic fix to checking content length.

    sriram-srinivasan committed
    	modified:   src/kilim/http/HttpResponse.java
  2. @sriram-srinivasan

    Check content-length property before setting it.

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

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

    sriram-srinivasan committed
    	modified:   src/kilim/analysis/MethodWeaver.java
  2. @sriram-srinivasan
Commits on Aug 22, 2013
  1. @krestenkrab

    Fix usage of Detector.commonSuperClass

    krestenkrab committed
    The code was a bit messy, sometimes passing
    "Lfoo/Bar;" and sometimes "foo/Bar".  This
    cleans up matters to always use the latter.
  2. @krestenkrab

    Fix wrongPC call

    krestenkrab committed
    The codegen calls Fiber.wrongPC using INVOKESTATIC
    but the implementation is non-static.  To make 
    matters simple we just declare the wrongPC
    function static.
Commits on Aug 19, 2013
  1. @krestenkrab

    Erjang specific methods inside Kilim

    krestenkrab committed
    These are some special methods (mostly on Mailbox)
    to provide the look-ahead semantics needed for
    Erlang's selective receive.
  2. @krestenkrab
  3. @krestenkrab

    Make line numbers work again

    krestenkrab committed
  4. @krestenkrab

    Make cached stateClasses be a ThreadLocal

    krestenkrab committed
    In Erjang, we need to run multiple Kilim
    "instances" concurrently, so we need this
    static state to be thread-local.
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)

    sriram-srinivasan committed
    	modified:   ../../README.txt
    	modified:   ../../docs/IFAQ.txt
  2. Merge pull request #25 from pellcorp/classwriter-classloader-support

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

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

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

    simplify up equals and hashCode

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

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

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

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

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

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

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

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

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

    Fix for Issue #17 thanks to ted stockwell.

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

    Fix for issue #15. Contribution by tstockwell.

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

    Accept http header with leading crlf.

    sriram-srinivasan committed
    	modified:   src/kilim/http/HttpRequest.java
  2. @sriram-srinivasan

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

    sriram-srinivasan committed
    	modified:   src/kilim/mirrors/CachedClassMirrors.java
    	modified:   src/kilim/mirrors/Detector.java
Something went wrong with that request. Please try again.