Friday, 6 January 2012

Announcement

The members of the Components Team at Lawrence Livermore National Laboratory components@llnl.gov are pleased to announce Babel 2.0.0, the next major step in Babel research.

What's New

The following features have been added, or completed, in this release:

(Also refer to the CHANGES file for more details.)

What Babel Is

Babel is designed to address problems of language interoperability, particularly in scientific/engineering applications. At the simplest level, Babel generates glue code so that libraries written in one programming language are callable from other programming languages. Babel generates this glue code from an interface description written in SIDL, our Scientific Interface Definition Language. Babel supports full Object-Oriented features and exception handling even in non-OO languages such as C or FORTRAN 77.

Babel also addresses platform interoperability through its support for Remote Method Invocation (RMI), an object-oriented form of remote procedure calls (RPC). Babel RMI gives programmers the ability to write distributed programs with minimal change to their existing source.

Supported Languages

Babel currently supports calling libraries written in C, C++, FORTRAN 77, Fortran 90/95, Fortran 2003/2008, Java, or Python from drivers written in either C, C++, FORTRAN 77, Fortran 90/95, Fortran 2003/2008, Python or Java. (Python support also requires the Numerical Python set of extensions at http://numpy.sourceforge.net/ ).

Babel is 100% compatible with BRAID, a related project, which will implement support for Chapel, X10 and UPC. (see http://compose-hpc.sourceforge.net/ ). An experimental version supporting Chapel clients is included in the Babel distribution. The relevant files including documentation are located in

contrib/braid/README
contrib/braid/braid-0.2.2.tar.gz

FAQ: Fortran 2003 finally got native C bindings, why still use Babel?

By using Babel you get several advanced features, such as object-oriented programming and virtual method calls. You can also save time by letting Babel sort out the right type declarations for you multi-dimensional arrays. See README for a more complete list of features to decide whether Babel is for you.

We also spent a lot of time to figure out the subset of Fortran 2003 that works on all platforms/compilers. It makes it also possible to mix Fortran and other languages like Python, Java, or Chapel. Babel can even generate the appropriate Makefile for your platform to link the two together.

Supported Platforms

Caveat

Babel is research in progress. This is a release candidate for a production release, but it is still supported by a research effort. Babel has been used on numerous projects now. Documentation for the newest features may not be complete. We suggest checking our WWW site for our recent presentations about new features.

Availability

The software is available for free download at https://www.llnl.gov/CASC/components/

LICENSE

Babel is released under the GNU Lesser General Public (LGPL) license, which is an OSI Certified open source license. It can be freely copied, modified, and distributed under the terms of this license.

User Resources

Two email lists have been set up for the Babel community:

    babel-users@llnl.gov    (unmoderated discussions)
    babel-announce@llnl.gov (announcements only)

To subscribe to one or both of these email lists, send email to majordomo@lists.llnl.gov with the text "subscribe babel-announce", "subscribe babel-users", or both (one per line).

Contacting the Authors

If you have any questions or concerns with the installation process or usage of Babel, feel free to contact the project team at components@llnl.gov. To report bugs or suggest feature enhancements, please submit a report in the bug database at https://www.cca-forum.org/bugs/babel/, or send email to babel-bugs@cca-forum.org.