Bug#115907: ITP: vortex -- an implementation of Cecil, a pure OO language with multimethods
Package: wnpp
Version: N/A; reported 2001-10-16
Severity: wishlist
Package name : vortex-{cecil,java,smalltalk,doc,intermediate-source}
Version : 3.0
Upstream Author : The UW Cecil Group <cecil@cs.washington.edu>
URL : http://www.cs.washington.edu/research/projects/cecil/www/
License : MIT/BSD-style without advertising clause; see below
Description : an implementation of Cecil, a pure OO language with multimethods
Quoting from the aforementioned web page,
Cecil is a purely object-oriented language intended to support rapid
construction of high-quality, extensible software. Cecil incorporates
multi-methods, a simple prototype-based object model, a mechanism to
support a structured form of computed inheritance, module-based
encapsulation, and a flexible static type system which allows
statically- and dynamically-typed code to mix freely. A number of
papers describe language features in more detail.
Vortex is an optimizing compiler infrastructure for object-oriented
and other high-level languages. It targets both pure object-oriented
languages like Cecil and Smalltalk and hybrid object-oriented
languages like C++, Modula-3, and Java. Vortex currently incorporates
high-level optimizations such as static class analysis, class hierachy
analysis, profile-guided receiver class prediction, profile-guided
selective procedure specialization, intraprocedural message splitting,
automatic inlining, and static closure analyses. It also includes a
collection of standard intraprocedural analyses such as common
subexpression elimination and dead assignment elimination. The Vortex
compiler is written entirely in Cecil. A long technical report
describes many of our core implementation techniques, and many shorter
papers describe individual techniques.
The fact that Vortex is written in Cecil is not as much of a problem
as it might seem; upstream distributes binaries I can use to bootstrap
on i386, and Vortex generates semi-machine-independent[1] C++[2] as an
intermediate stage. Consequently, I can stick the generated source in
an arch-all binary package and have my source package build-depend on
either the same version of that binary package or an existing install
of the compiler. The whole procedure is a bit convoluted, but should
work.
The full license appears at the end of this message; the only part
that seems at all problematic is the DFARS clause at the beginning.
However, it should be okay; I brought the issue up on debian-legal a
couple of days ago, and the conclusion seems to be that it does not
discriminate because it merely denies the US government rights that
nobody else has anyway.
Feel free to let me know if you have any questions or comments, or
would like to help out; however, bear in mind that I do not read
debian-devel, so you will need to Cc me on any followups you send
there.
[1] The code is specific to a particular pointer width, but not to any
other factors; the compiler can produce either 32- or 64-bit code from
any platform, and I'm pretty sure running it once in each mode should
cover all of our architectures.
[2] Somewhat confusingly labeled as "C."
------------------------------------------------------------
Full upstream license:
Copyright 1993-1999, by the Cecil Project
Department of Computer Science and Engineering, University of Washington
All Rights Reserved. RESTRICTED RIGHTS LEGEND: Use,
duplication, or disclosure by the government is subject
to restrictions as set forth in subparagraph (c) (1) (ii)
of the Rights in Technical Data and Computer Software
Clause at DFARS 252.227-7013 (Oct. 1988) and FAR
52.227-19(c) (June 1987).
Department of Computer Science and Engineering,
Box 352350
University of Washington, Seattle, WA 98195-2350
cecil@cs.washington.edu
LICENSE:
You may use the software internally, modify it, make
copies and distribute the software to third parties,
including redistribution for profit, provided each copy
of the software you make contains the copyright notice
set forth above, the disclaimer below, and the authorship
attribution below.
DISCLAIMER:
The Cecil Group and the University of Washington make no
representations about the suitability of this software for any
purpose. It is provided to you "AS IS," without express or implied
warranties of any kind. The Cecil Group and the University disclaim
all implied warranties of merchantability, fitness for a
particular purpose and non-infringement of third party
rights. The Cecil Group's and the University's liability for claims
relating to the software shall be limited to the amount,
if any of the fees paid by you for the software. In no
event will the Cecil Group or the University be liable for any
special, indirect, incidental, consequential or punitive
damages in connection with or arising out of this license
(including loss of profits, use, data, or other economic
advantage), however it arises, whether for breach of
warranty or in tort, even if the Cecil Group or the University has
been advised of the possibility of such damage.
AUTHORSHIP:
This software has resulted from the combined efforts of:
Craig Chambers, Jeff Dean, Greg DeFouw, Michael Ernst, Charlie Garrett,
Dave Grove, MaryAnn Joy, Vassily Litvinov, Phiem Huynh Ngoc,
Vitaly Shmatikov, Ben Teitelbaum, and Tina Wong
Reply to: