Following up on the Scala/.Net experiments, I took the interfaces for hashes and cyphers from my Java port; and replaced them in the Java world with a set of Scala traits, like:
trait MDA
{
def update(data:Array[byte], offset:int, length:int): unit
def update(data:byte) : unit
def digest() : Array[byte]
}
and it builds happily (though NetBeans 6.5 nightly complains it can't find the interface definition from the library in the code view).
Over to Visual Studio, with a suitable script to build the equivalent .dll -- and the implementing classes in J# fail to build because the Array[byte] maps to ubyte[] while a J# byte[] is an sbyte[], and so the J# compilation fails to match the signature of the Scala.Net trait -- and there's no Java ubyte type I can force everything to. And as byte arrays -- or at least bytes -- are the fundamental building block for streams, it looks like all the Java code has to get the elbow.


No comments:
Post a Comment