some words for intro and overview by andi
[cacao.git] / doc / handbook / intro.tex
index 8bb03c10ec90c82da715897a32d8bd0ef7edf1f2..710574f2cd489f97c7459d88983b8fd749634915 100644 (file)
@@ -1,6 +1,41 @@
 \chapter{Introduction}
 
+Reinhard Grafl and I do not like coffee. Therefore, our Java virtual machine
+could not be named after coffee. We prefer hot chocolate and have chosen to
+name our Java virtual machine CACAO [kaukau].
+
 \section{Introduction}
 
+CACAO is a research Java virtual machine. From the beginning it was designed
+for 64 bit architectures and was based on a just-in-time compiler. To avoid
+two different stack frame formats no interpreter is included. The compiler is
+so fast that it does not matter to compile code which is just executed once.
+One of the aims of CACAO is to keep the system small and simple which makes
+CACAO also well suited for embedded systems. It has been used to explore new
+just-in-time compilation techniques, fast program analyses and improvements
+for run time systems. Many of our developments turned out to be useful and
+had been included in the version of CACAO which we now distribute under the
+GNU general public license.
+
 \section{History}
 
+CACAO started as a master thesis by Rainhard Grafl in the year 1996. It
+included a JIT compiler
+for the Alpha archtecture. It used Sun's library 1.0
+and contained the native functions for {\tt lang}, {\tt io}, {\tt util} and
+{\tt math}. The first version was running in January 1997. This was the first
+Java virtual machine for 64 bit architectures. The binary version 0.1 was made
+available for the public on February 14th 1997. Afterwards I started the
+developement of the new faster JIT compiler. Multithreading was added by
+Mark Probst. Binary version 0.2 was released on September 23rd 1998. On
+October 12th 1998 immediately before the PACT conference in Paris we put the
+binary release 0.3 on our web server. Within ten days around Christmas 1998
+I ported CACAO to the MIPS architecture. In the next four years there was
+very little development on CACAO. Christopher Kr\"ugel added array bound check
+removal, Phil Tomsich wrote a new garbage collector and Roman Obermaisser
+made the change to the Java 1.2 library. In 2003 development became more
+intensive. Dieter Th\"urnbeck added inlining, Christian Thalinger did the
+port to the x86 and AMD64 architecture, Stefan Ring did the port to the
+PowerPC architecture, Josef Wenninger replaced the SUN library by GNU
+classpath and Edwin Steiner added verification.
+