From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id yEIbAoO4o2DgBAAAgWs5BA (envelope-from ) for ; Tue, 18 May 2021 14:52:19 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id YApwOYK4o2BwdgAA1q6Kng (envelope-from ) for ; Tue, 18 May 2021 12:52:18 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7137E11D75 for ; Tue, 18 May 2021 14:52:18 +0200 (CEST) Received: from localhost ([::1]:53090 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lizCq-0002wi-J9 for larch@yhetil.org; Tue, 18 May 2021 08:52:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liyym-0000p2-0T for guix-devel@gnu.org; Tue, 18 May 2021 08:37:44 -0400 Received: from lepiller.eu ([2a00:5884:8208::1]:55002) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liyyj-0002ml-Is for guix-devel@gnu.org; Tue, 18 May 2021 08:37:43 -0400 Received: from lepiller.eu (localhost [127.0.0.1]) by lepiller.eu (OpenSMTPD) with ESMTP id 67039ff4; Tue, 18 May 2021 12:37:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=lepiller.eu; h=date:from :to:cc:subject:message-id:in-reply-to:references:mime-version :content-type:content-transfer-encoding; s=dkim; bh=7O5tCRiyzdJ6 xMQYf+OtEg2BigDQX/N6y3C28hIF7w4=; b=GvPwpFaeOoobXXLR/yqECaCZye1Y D0YUnaCWAwFWmRb8EcCR1ElquGewUioOLdPjHwh9K5tBu37haX9HIlvtApMfPWV2 vRTlBF9a/jvXoUZr4F+B3W5wAg7WL5onZx9GinknExJFOMREnHPne1FTDY612SmR Eh+YXIffJjO0huwmIos/fma9R+CBn4MX9CWpHVNb6ufSfPHEzXjivGnJvbdHGESw j1vMp/K5bPewInvDaJyqjQY8wWfh3g1MfUU+frBln3YHDuMgSHpNyq9zgu9ALH5S SFMWZjaNc9xK5oBIoiHdqv/k8owOG14HjvZlYlo5LvcIykBL+XA5Hb5dhw== Received: by lepiller.eu (OpenSMTPD) with ESMTPSA id e39db9b4 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Tue, 18 May 2021 12:37:36 +0000 (UTC) Date: Tue, 18 May 2021 14:37:30 +0200 From: Julien Lepiller To: Leo Prikler Subject: Re: Scala package Message-ID: <20210518143730.716c0756@tachikoma.lepiller.eu> In-Reply-To: References: <20210518010111.7eea541a@tachikoma.lepiller.eu> <875yzgjrzp.fsf@elephly.net> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:5884:8208::1; envelope-from=julien@lepiller.eu; helo=lepiller.eu X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1621342338; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=8hVXp5wjm65WaGjE3WiZN+N1OMGGk+s3bmNQLa6Hgbc=; b=uUX1CNLBeiapxUrPzoOfV0Ie34Qq/vGoH7OQ5S9nGutIlzJzQShpRAJ7JtXcMy0cSBvCc9 L/QAKKxwkkCZ2ALw92sTeRKfl5kgeIHV6YWqMmc7ckn3oXtpPYo5qYPydv6JHmoZPst+kW tKtEfBmf+QHov6FbGRedfallGu9J8XyU7BnjAYV9C9f5lW/qagDLp0ot8C7/c0y5uBD5gp BCwiQng1SUmFE53aF8klh3FiwqHWibjV2mhstweB/MiTvOBqaMqvbHodt1wJzdbQDPBuHY 5u4Afq8zk2d0NY54AFoVBQFoL2GLZv7k5q+ZTcpOkLzFt4xXgziFw3sEwD1g/Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1621342338; a=rsa-sha256; cv=none; b=FT98n6Hyw1P4fws+PwYIwC2gH0kAbcyXi9cRENMETwXWTi5RjwNoHmtCFKtXubs2id0CCF o1l3bigrXkekjnaBFnnorIFTXf4FGtVTkMfWqwQKJbTncnY1kjvRGamOGRcPaeNhf5EXjC /ApmJIa2iqhGgGK7UU8/cxaXpFAVsK6ZXT17vn+G469UQLFMHfA93B+yOcqCQhWK7eiTuF LxG4ehiZ5LL1vO5M4JzZwfKXtTeJNxXOEpMFbOQoWe1hWFGTNJAoinn8bfw/YGWvqXZ2mM GIXFQ7SxTJkZpC6N+iqCfyGnWfxJH066ZO0M9DAwoC9EOOLQBlJwCNbDza7Bug== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=lepiller.eu header.s=dkim header.b=GvPwpFae; dmarc=fail reason="SPF not aligned (relaxed)" header.from=lepiller.eu (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -1.34 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=lepiller.eu header.s=dkim header.b=GvPwpFae; dmarc=fail reason="SPF not aligned (relaxed)" header.from=lepiller.eu (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 7137E11D75 X-Spam-Score: -1.34 X-Migadu-Scanner: scn0.migadu.com X-TUID: +nIb2fi/q+jI Le Tue, 18 May 2021 13:36:43 +0200, Leo Prikler a =C3=A9crit : > Am Dienstag, den 18.05.2021, 07:15 -0400 schrieb Julien Lepiller: > > The old scala is written in a superset of java5, that requires PiCo > > to build, and PiCo was built with JaCo. They were developped at > > EPFL, and you can find a binary for it, but no source:=20 > > http://zenger.org/jaco/ > >=20 > > Apparently, JaCo was later reimplemented in Keris, whose source code > > is available. However, KeCo (the Keris compiler) is written in > > Keris. > >=20 > > It is not even clear that building an old version of scala is going > > to work, as the language evolved a lot since then. > >=20 > > I think the best way to bootstrap would be to reimplement Scala in > > another language. I tried that too, but even the parser is crazy. =20 > Thanks Julien and Ricardo for the detailed explanation of what goes > wrong here. >=20 > Would a bootstrap chain from 2.0.x work at least, so that the crazy > Scala parser can target a specific (early) version and we get a > slightly smaller binary or are the gains from that too minimal? This > is also a concern going forward, can we always hope to "bootstrap" the > next Scala version with the one currently packaged in Guix? That's not even clear it would be possible. Citing discussion on Scala's forum (https://contributors.scala-lang.org/t/compiling-scala-and-sbt-for-debian-d= istro/3620/12) The Scala 2.12 compiler is written in Scala 2.12 and uses the Scala 2.12 standard library. Compiling it with 2.11 isn=E2=80=99t an option. and later: If that was the only hurdle you had to clear, you might be fine. But it isn=E2=80=99t the only hurdle; the compiler was re-bootstrapped several doz= en times between 2.11.6 and 2.12.9. (And then a bunch more times after that to get to 2.13.0.) so we would get an enormous bootstrap chain, and it's not even guaranteed that each bootstrap can be replayed nicely. >=20 > > Le 18 mai 2021 05:44:42 GMT-04:00, Ricardo Wurmus > > > > a =C3=A9crit : > > > Leo Prikler writes: > > > =20 > > > > Hi Julien, > > > >=20 > > > > Am Dienstag, den 18.05.2021, 01:01 +0200 schrieb Julien=20 > > > > Lepiller: =20 > > > > > Hi Guix! > > > > >=20 > > > > > I have the attached file that build Scala, although it's not > > > > > bootstrapped at all. It contains %binary-scala, a few=20 > > > > > dependencies of > > > > > Scala we haven't packaged yet, and the final scala, built from > > > > > %binary-scala, without sbt (which requires Scala too). > > > > >=20 > > > > > Since I've tried and failed to bootstrap Scala for so long, I=20 > > > > > think > > > > > it's time to give up. I can't always create miracles. =20 > > > >=20 > > > > Some points relevant to bootstrapping: > > > > - The last version, that ships "scalai" written in Java seems > > > > to=20 > > > > be=20 > > > > v1.4.0+4. Perhaps one can use scalai to bootstrap scalac=20 > > > > within it. > > > > - The last version, that does not "require" sbt is 2.11.x, > > > > though with your workaround we can also build later > > > > versions. =20 > > >=20 > > > We tried building a clean bootstrap chain for Scala for years.=20 > > > Back then I went down the rabbit hole and found that early scalac=20 > > > is written in Pizza; but it turned out that Pizza is written in=20 > > > Pizza and is released under the old Artistic License, which is=20 > > > considered non-free. > > >=20 > > > https://logs.guix.gnu.org/guix/2018-04-08.log#230002 > > > https://logs.guix.gnu.org/guix/2018-04-09.log#073740 > > >=20 > > > I pointed a branch at an old Scala commit that contains the old=20 > > > Socos compiler source, which ostensibly are written in Java, but=20 > > > actually are not: > > >=20 > > > https://github.com/rekado/scala-bootstrap/tree/bootstrap > > >=20 > > > This is at around version 1.4.0.4, as you wrote above. > > >=20 > > > Since the old days Scala Native has grown considerably, and=20 > > > perhaps we can reuse some of its native libraries. I=E2=80=99m not t= oo=20 > > > hopeful, because the bulk of it is still written in Scala,=20 > > > obviously, but there are parts that are written in C / C++, which=20 > > > might come in handy. > > >=20 > > > https://github.com/scala-native/scala-native =20 >=20