Permalink
Commits on Nov 21, 2011
Commits on Mar 16, 2010
  1. Fixed duplicate symbols problems (for example NSAttributedStringEnume…

    …rationLongestEffectiveRangeNotRequired in both Foundation & AppKit) by allowing one or more bridgesupport files to be passed into bstool to provide a list of symbols not to duplicate.
    
    So FoundationFull.bridgesupport is be passed to bstool when generating code for AppKit & WebKit (to be on the safe side.)
    
    Unfortunately Clojure's namespace mechanism conspires against us just using a simple 'ifndef' style check at load time - because each clojure file needs to be in a separate namespace (:use and :require can't work correctly if the file's namespace differs from it's place in the resource hierarchy.)
    committed Mar 16, 2010
Commits on Mar 15, 2010
  1. Bridgesupport files now working for appkit and webkit - and have a te…

    …mp workaround for the namespace issues arising from lack of category flags on bridgesupport class info.
    
    Ideally we should be able to identify duplicate class declarations at the bridgesupport file generation stage and then we would be able to :use all of the generated files rather than :requiring them.
    committed Mar 15, 2010
Commits on Mar 13, 2010
Commits on Mar 1, 2010
  1. Added pointer constant types to bstool generated code. Structures wil…

    …l probably not be doable without seriously fighting JNA, am going to wait and see how necessary they are.
    committed Mar 1, 2010
Commits on Feb 25, 2010
  1. So, after a little bikeshed painting, we're back to where things were…

    … a week ago, functionality-wise. Fun trip though.
    committed Feb 25, 2010
Commits on Feb 22, 2010
  1. Implemented clojure code emitter and formatter. The formatting logic …

    …for both java and clojure is consolidated into formatter.clj.
    committed Feb 22, 2010
Commits on Feb 21, 2010
Commits on Feb 20, 2010
  1. The java code model is now about where it needs to be, despite some u…

    …nfortunate use of state in the formatter.
    
    Moved the rather useful deftagged macro into Core.
    Moved the test code out into a unit test.
    
    Now onto doing something about the clojure code output.
    committed Feb 20, 2010
Commits on Feb 19, 2010
  1. Cleaning up nomenclature in the java code model, before seeing if I c…

    …an make indentation better.
    committed Feb 19, 2010
  2. Started building a code-model based java generator, to make JNA (and …

    …possibly future JNI) code generation more maintainable.
    committed Feb 19, 2010
Commits on Feb 16, 2010
  1. Now generating enums and partially handling functions.

    For functions to work we need to split out inlined functions into a separate class (which we'll use to load against the bridgesupport dylibs.)
    
    To get this to work, we're now generating "opaque" types from the XML as subclasses of JNA's PointerType.
    
    TODO:
    Handling inlines
    Clojure wrappers for the generated functions
    Constants (this is a big-ish job as we'll need to invoke dlsym ourselves, and it would help to have the lib handle.)
    Clean up the spaghetti in bstool.clj
    
    KNOWN BUGS:
    CoreSupport breaks us for some reason.
    committed Feb 16, 2010
Commits on Feb 15, 2010
  1. Completing move away from keyword-based type information to using oct…

    …ypes. All of the unit tests use octypes as well as the BasicCocoa example, and all support for the old style has been removed.
    
    The type-encoding parser and the bridgesupport tool bstool also have been moved to use octypes. All of the information about java/JNA and objective-c type-encodings is now derived from either the octypes defined in couverjure.types or by octype definitions in code generated by bstool.
    committed Feb 15, 2010
Commits on Feb 14, 2010
  1. Adding "octype" mechanism for ObjC encoding/Java class pairs - which …

    …should be the preferred way of handling native type info going forward.
    
    bstool now generates octype based clj files.
    committed Feb 14, 2010
Commits on Feb 12, 2010
  1. Progress to the point of having broken unit tests using the generated…

    … structure code - can now package generated code as a jar and import into unit tests.
    committed Feb 12, 2010
Commits on Feb 11, 2010
  1. Continuing work on bstool

    committed Feb 11, 2010
Commits on Feb 10, 2010
  1. Work in progress on bridgesupport - now able to generate valid java c…

    …lass files for imported structures (but array fields are not cooked yet.)
    committed Feb 10, 2010
Commits on Feb 9, 2010
  1. Starting to build some tooling for reading BridgeSupport files, makin…

    …g improvements to the encoding parser along the way.
    committed Feb 9, 2010
Commits on Feb 8, 2010
  1. More README changes.

    committed Feb 8, 2010
Commits on Feb 7, 2010
Commits on Feb 4, 2010
  1. New TypeMappingCallbackProxy is now running the unit tests and example.

    This changes the way the proxy works somewhat from the first cut - dropping the
    chaining mechanism in favour of good old subclassing, because this works better
    with JNA's existing mechanisms for typemapper discover, and also because it will
    make it possible in future for this class to be the base for DefaultCallbackProxy
    without breaking the contract for existing code (especially custom typemappers.)
    committed Feb 4, 2010
Commits on Feb 3, 2010
  1. First attempt, untested, at making JNA's callback argument and return…

    … marshalling available to CallbackProxy implementations.
    committed Feb 3, 2010
Commits on Feb 2, 2010
  1. Adding some support for autorelease pools.

    For now this involves using low level msgSends to avoid releaseOnFinalize behaviour, not sure yet if this is the right solution long-term.
    committed Feb 2, 2010
Commits on Feb 1, 2010
  1. Adding coercions from double/float and (UTF-8) c-string. Also hooking…

    … in the new signature parser into dispatching of return value coercions - as the typical c-string signature on [NSString UTF8String] breaks the old hack.
    committed Feb 1, 2010
  2. Homing in on the right strategy for reference-counting versus GC - th…

    …is should be a lot more robust than what went before.
    
    There are still some edge cases that need to be handled - in particular "new" or "copy" class method invocations (should releaseOnFinalize, not retainAndReleaseOnFinalize) and also we will need some additional work to avoid trying to releaseOnFinalize class references (which could happen in the body of class method implementations - which we don't support yet.)
    committed Feb 1, 2010