Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!



Linus: Praying for Hammer to Win

I91MM Alpha binary translation (487 comments)

I never had any experience of the Unix-based tools, but I have used VEST[1], which is the VMS-based binary translator.

As you said, it worked like a charm. There were only three major limitations:

  • You couldn't translate "system"[2] images, because they were linked against the system symbol table (SYS.STB).
  • You couldn't translate an image which was compiled on VMS version 3.0 or earlier (well, there has to be a cut-off point for backwards compatibility somewhere!). So, programs compiled before 1984 were untranslatable [including VAX Space Invaders unfortunately (compiled 1981; never found any sources)]
  • You couldn't translate images which used self-modifying code.
Shareable images [=shared libraries] could also be translated, and images could then be pointed at the translated shareable image. So, even to this day, on an Alpha you have two Fortran sharable images: FORRTL (Alpha native) and FORRTL_TV (VESTed image for VAX support).

Object libraries could not be translated, but the compilers still generated (and maybe still do?) VAX object code and the linker could create a VAX executable, which could then be translated.

IIRC, it used recompilation rather than interpretation: the recompilation was not dynamic, but the image activator would generate .HIF files when it came across a piece of code that could be re-organised; these .HIF files could then be used to re-optimise the executable by VESTing the VAX executable and telling VEST to look at the .HIF file.

VEST is no longer available with new Alphas, but you can still get it, if you ask, from Digital...errm, sorry, Compaq...errm, sorry, "the new hp" ;)

A similar binary translator is planned to translate Alpha binaries to IA64 binaries for the IA64 port of VMS.


[1] Officially I believe the name stood for "VAX Executable Symbol Translator" or some such.

[2] Because it could be very bad for system stability, as kernel data structures were radically different.

more than 12 years ago


I91MM hasn't submitted any stories.


I91MM has no journal entries.

Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>