9a51e3bc8a
PR: 47997 Submitted by: tadalunch@s5.xrea.com
31 lines
1.8 KiB
Text
31 lines
1.8 KiB
Text
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, Sun ONC RPC, and Mach MIG IDLs, and middle and back ends that support
|
|
CORBA IIOP, ONC/TCP, MIG-style Mach messages, and Fluke IPC (see below). Flick
|
|
produces stubs in the C language. A substantial user's manual is provided.
|
|
|
|
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. (Collaborators welcome!) Flick's
|
|
framework can also be used to support interface annotation. Full source for
|
|
the Flick compiler is distributed under the terms of the GNU General Public
|
|
License; source for the Flick runtime is distributed under a BSD-style 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 was presented at PLDI'97, the major compiler
|
|
conference, in June (see http://www.cs.bu.edu/pub/pldi97/). The paper is
|
|
included as part of the Flick distribution, and is separately available at
|
|
ftp://mancos.cs.utah.edu/papers/flick-pldi-97-abs.html.
|
|
|
|
Jay Lepreau, lepreau@cs.utah.edu
|
|
University of Utah Computer Science Dept.
|
|
|
|
WWW: http://www.cs.utah.edu/flux/flick/
|