The first general public release of Flick, the Flexible IDL Compiler Kit, is
now available from the Flux Project at the University of Utah. This is an
alpha-level release: version 1.0-alpha. We need external users to advance it
beyond this level.
*** URL:
WHAT IS FLICK?
--------------
Flick is an interface definition language (IDL) compiler (``stub generator'')
supporting remote procedure call (RPC) and remote method invocation (RMI) for
client/server or distributed object systems. What sets it apart from other IDL
compilers is that it is highly optimizing while also supporting several IDLs,
message formats, and transport mechanisms. Flick currently has front ends for
the CORBA IDL and the Sun ONC RPC IDL, and middle and back ends that support
CORBA IIOP, ONC RPC on TCP, MIG-style Mach messages, and Fluke IPC (see below).
It produces stubs in the C language.
Flick is designed to be a ``kit'': the user picks the IDL, language mapping,
and transport components that are required for any particular system. Our goal
is to make it straightforward to add new components to the kit to process new
IDLs, language mappings, and transports. (Volunteers welcome!) Full source is
distributed under the terms of the GNU General Public License.
Flick-generated marshal and unmarshal code generally runs between 2 and 17
times as fast as code produced by other IDL compilers, commercial and free. On
stock hardware and operating systems, Flick-generated stubs can increase
end-to-end client/server throughput by factors between 1.2 and 3.7 or more.
Our paper describing these results will be presented at the major compiler
conference (PLDI '97) this June. (See: .)
Our paper is included as part of the Flick distribution, and is separately
available at .
Full regression tests and their outputs are provided. Flick has been compiled
and tested on the following platforms:
FreeBSD 2.1.7.1-RELEASE (Intel Pentium Pro, gcc/g++ 2.7.2.2)
"" ( "" "" , gcc/g++ 2.6.3)
Linux 2.0.29 (Intel Pentium, gcc/g++ 2.7.2)
SunOS 5.5.1 (SPARCstation SS10/514, gcc/g++ 2.7.2)
SunOS 4.1.3 (Sun 4m SS10, gcc/g++ 2.7.2)
HP-UX 9.03 (HP 9000/712 PA-RISC 1.1, gcc/g++ 2.7.2)
AIX 4.1.4 (IBM RS6000 PowerPC 604, gcc/g++ 2.7.2)
4.3+ BSD (HP 9000/735 PA-RISC 1.1, gcc/g++ 2.7.2)
Flick-generated stubs have also been tested on Mach/Lites and our Fluke OS.
The next release of Flick (beta) will build on Windows 95 and Windows NT.
In addition to supporting standard operating systems and protocols, Flick is
also the IDL compiler for the Fluke kernel and operating system in development
at the University of Utah. See .
WHAT FLICK IS NOT
-----------------
Flick is not a complete CORBA ORB. Flick has an *extremely* minimal ORB-like
runtime, and further, Flick cannot currently replace the IDL compiler that is
part of any commercial ORB. We may support various third-party ORBs in future
releases.
Similarly, Flick is not (yet) a drop-in replacement for `rpcgen' or MIG. The
details can be found in the distribution documentation.
GETTING FLICK
-------------
Flick is available from and from
. The alpha distribution is divided into
two parts: full source (`flick-src-1.0-alpha.tar.gz', 987KB compressed, 4.2MB
uncompressed) and regression test output (`flick-tests-1.0-alpha.tar.gz', 1.4MB
compressed, 29.5MB uncompressed).
NOTE: This is an alpha software release. Although this version of Flick is
generally stable, it has known bugs and missing features. The final Flick 1.0
release will be available from the URLs shown above in mid-June of this year.
MAILING LISTS
-------------
We welcome comments and technical discussion from users and collaborators. If
you start using Flick, please let us know by subscribing to our mailing list of
Flick users. Send mail to with the message
body containing the line
subscribe flick-users
to get on the mailing list. Send bugs and fixes to .
CREDITS
-------
Flick has been developed at the University of Utah under DARPA sponsorship,
with additional support from Hewlett-Packard, IBM, and Novell. The primary
developers have been Eric Eide, Kevin Frei, and Bryan Ford, although many
others have contributed.
Jay Lepreau, lepreau@cs.utah.edu
University of Utah Computer Science Dept.
-------------------------------------------------------------------------------
Flick LSM entry:
Begin3
Title: Flick
Version: 1.0-alpha
Entered-date: 29 April 1997
Description: Flick is a flexible, optimizing IDL compiler kit that supports
multiple IDLs (CORBA IDL and Sun ONC RPC `rpcgen' IDL),
multiple language mappings (CORBA-style, ONC RPC-style, and
MIG-style), and multiple RPC/RMI transport mechanisms (CORBA
IIOP, ONC RPC on TCP, and MIG-style Mach messages). Flick
produces marshal/unmarshal code that is typically 2 to 17 times
faster than equivalent code produced by other IDL compilers.
Keywords: IDL interface definition language compiler RPC RMI CORBA ONC
rpcgen MIG
Author: flick@cs.utah.edu (Utah Flick Team)
Maintained-by: flick-bugs@cs.utah.edu (Flick Bugs List)
Primary-site: flux.cs.utah.edu /flux/flick
987k flick-src-1.0-alpha.tar.gz
1438k flick-tests-1.0-alpha.tar.gz
Platforms: C, C++, UNIX
Copying-policy: GPL
End
-------------------------------------------------------------------------------