← Back to team overview

n-able-devel team mailing list archive

Binary compatibility

 

It’s a compiled language that targets multiple platforms. I need to define / use a binary compatability format.

Really, this pretty much implies that I’m writing some sort of a VM. Yay. The world needs another one of those.

The goal would be that someone could compile the app & distribute the binaries – which would then work on Windows, Linux, and Mac. They’d also work running in the .Net runtime, the Java VM, or native. Heck, Silverlight and Flash could eventually even be targets.

I’d like to use an existing format, but run into these problems. Perhaps I can find a way to address them:

1. I need to expose classes, parse extensions, type computations, and other such things. .Net supports the greatest number of these, and I could probably convert the others in and out. But other binary formats include none of these higher-level language constructs: just symbol tables, function pointers, and data pointers.

2. I want easy sharing of closed-source code. It should be easy to distribute my commercial app, without worrying about target platform. That’s a huge strength of Java, and one I plan to steal.

3. My tools are examples of problem #2. I don’t want to force my users to first compile the compiler, then the rest of the tools. I want them to just run an installer that drops in some binaries and will work on a bare box with any of the 3 OSes. I’d like to not implement everything 3 times in order to achieve this. I don’t even want to compile it all 3 times and have to have all 3 types of boxes.

Probably some others, but that’s enough that I’m thinking VM & binary format. At least that’ll make it easy to have a common debugging experience across IDEs – since I’ll have to mostly implement my own debugging engines. Sigh.

Arlo