Udanax Gold

Opening Date not yet set

The files available for download from this page are covered by The Udanax Open-Source License, which you may want to read before proceeding.

The two download files, and, are not yet usable without heroic effort. They are in the form of Smalltalk fileouts from a ParcPlace 2.5a Smalltalk system heavily modified by us. In particular, we enhanced the system to automatically translate from a modified subset of Smalltalk, which we called XTalk, to a corresponding heavily macro-ized subset of C++ we called X++. This Smalltalk fileout came from this modified system, and will not filein to a normal Smalltalk system without a lot of work.

  • contains all the Smalltalk code for the backend which was shared by translation between the Smalltalk/XTalk environment and C++/X++ environment. In particular, all the Ent data structures and algorithms are here.

  • contains the most interesting self-contained subset of -- the coordinate space system. This set of abstractions should have wide applicability outside of hypertext. Indeed, the IntegerSpaces from Udanax Gold have already been incorporated into the E language.

  • xugold.tar (33MB) contains the C++ backend as a whole. This can be read and run without intellectual property problems, or major technical problems. However, since major portions of it are the result of automatic translation from Smalltalk, this code is not maintainable. Think of these portions as compiler output (though it's not quite that bad).

Remaining pieces that will be posted soon:

  • The C++ macros, tools, and libraries for turning C++ into X++. This includes

    • A non-conservative incremental generational collector for C++
    • A transactional persistent object system for C++ object groups
    • A proxy/stub generator for remote method invocation, with a message pipelining of much influence on the Joule and E languages.

  • Corresponding Smalltalk tools and libraries for turning Smalltalk into the semantically matching XTalk, including

    • A similar persistent object system
    • A similar stub generator.

More difficult to extract and post, because of the intellectual property entanglements explained here, is

  • The "Browser Hacks", an extensive set of enhancements to the Smalltalk browsing environment, enabling one to manipulate a large body of code with an ease none of us have experienced since. Fortunately, none of the rest of the system depends on these browser hacks.

  • The Smalltalk-to-C++ (or XTalk-to-X++) translator itself. Most of this is un-entangled new code, but some crucial pieces are entangled.