From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39881) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dBK1J-0002IE-Rk for guix-patches@gnu.org; Thu, 18 May 2017 07:55:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dBK1G-0006ww-MB for guix-patches@gnu.org; Thu, 18 May 2017 07:55:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:49376) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dBK1G-0006wk-Iz for guix-patches@gnu.org; Thu, 18 May 2017 07:55:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dBK1G-0003Fc-9X for guix-patches@gnu.org; Thu, 18 May 2017 07:55:02 -0400 Subject: bug#26966: [PATCH 01/22] gnu: Add jikes. Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87y3tvqupw.fsf@elephly.net> <20170517171905.7840-1-rekado@elephly.net> Date: Thu, 18 May 2017 13:54:21 +0200 In-Reply-To: <20170517171905.7840-1-rekado@elephly.net> (Ricardo Wurmus's message of "Wed, 17 May 2017 19:18:44 +0200") Message-ID: <87wp9e5qj6.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ricardo Wurmus Cc: Ricardo Wurmus , 26966@debbugs.gnu.org Ricardo Wurmus skribis: > From: Ricardo Wurmus > > * gnu/packages/java.scm (jikes): New variable. [...] > +;;; > +;;; Java bootstrap toolchain. > +;;; > + > +;; The Java bootstrap begins with Jikes, a Java compiler. We use it to = build > +;; the SableVM standard library and virtual machine. This is sufficient= to > +;; build an older version of Ant, which is needed to build an older vers= ion of > +;; ECJ, an incremental Java compiler. Maybe you could mention the implementation language of these three tools to clarify this choice? > +;; ECJ is needed to build the latest release of GNU Classpath (0.99). > +;; Classpath (> 0.98) is a requirement for JamVM, a more modern implemen= tation > +;; of the Java virtual machine. > +;; > +;; With JamVM we can build the latest development version of GNU Classpa= th, > +;; which has much more support for Java 1.6 than the latest release. Si= nce > +;; the previous build of JamVM is limited by the use of GNU Classpath 0.= 99 we > +;; rebuild it with the latest development version of GNU Classpath. > +;; > +;; Finally, we use the bootstrap toolchain to build the OpenJDK with the > +;; Icedtea 1.x build framework. We then build the more recent JDKs Iced= tea > +;; 2.x and Icedtea 3.x. This process looks future proof to me, which is really nice. That is, Jikes is in C++ so when a new architecture comes out we won=E2=80=99t have difficulties building it natively; tools implementing the old Java language and librairies are =E2=80=9Cstuck in time=E2=80=9D but that=E2=80= =99s OK because they don=E2=80=99t rely on anything special beyond C/C++/POSIX. Ludo=E2=80=99.