×

Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!

Comments

top

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.

-M.

[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

Submissions

I91MM hasn't submitted any stories.

Journals

I91MM has no journal entries.

Slashdot Login

Need an Account?

Forgot your password?