From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id aICOM/mmo2DAZAEAgWs5BA (envelope-from ) for ; Tue, 18 May 2021 13:37:29 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id mHgpL/mmo2DWVwAAbx9fmQ (envelope-from ) for ; Tue, 18 May 2021 11:37:29 +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 5D4FE10950 for ; Tue, 18 May 2021 13:37:29 +0200 (CEST) Received: from localhost ([::1]:39228 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liy2S-0004o7-AN for larch@yhetil.org; Tue, 18 May 2021 07:37:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36312) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liy2E-0004me-6z for guix-devel@gnu.org; Tue, 18 May 2021 07:37:14 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:15072) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liy2A-0001wn-JO for guix-devel@gnu.org; Tue, 18 May 2021 07:37:13 -0400 Received: from [10.0.0.4] (91-114-247-246.adsl.highway.telekom.at [91.114.247.246]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Fkv9X2jYXz3wYg; Tue, 18 May 2021 13:37:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1621337824; bh=k0RnIIh2P3AdEEDalvNsrAcMSmcsOgBsW+nNN0Gll4M=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=Y0KrwH5I1aMRZvRQmAXkDp9uKPfWaHFTGzCSdWZP0OaiGyjr0IPUc4qgu+JkmdyMI 0sxlCtMZ0/ZGxfPtSZBC3IOOEYcsahK2yTc5EskFMUcLeKLnzUN//ms53OQLYdm78I 9MnuwAFpFzfPkb2KW/01wroL+qCX/sLGCWQGex0E= Message-ID: Subject: Re: Scala package From: Leo Prikler To: Julien Lepiller , Ricardo Wurmus Date: Tue, 18 May 2021 13:36:43 +0200 In-Reply-To: References: <20210518010111.7eea541a@tachikoma.lepiller.eu> <875yzgjrzp.fsf@elephly.net> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 Received-SPF: pass client-ip=129.27.2.202; envelope-from=leo.prikler@student.tugraz.at; helo=mailrelay.tugraz.at X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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=1621337849; 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=k0RnIIh2P3AdEEDalvNsrAcMSmcsOgBsW+nNN0Gll4M=; b=QtA2yAi3+xb+s3/Xko0j8jO81XIxbS4mjyiNAfg/O5x1UYyzCaxVUt2YdprRUWhsQV5r31 JQBoHw7aRHU3tDZn62SAp2EiLt4oqQ9z9fu1+fXLvkmzDdDj22n6IOJen+n9Ma9v+Ggopt tItDauYc4urKJSp3oSFiHuL/VaXyLBefWl7aed0+b0jUq4shqJe1PCeXRDA9n6v9GGM7iJ MIhsiBef2I7uLdZ/KzRYsfWWMDnWIO/E4NfpasnpyRPGJjvAzvAwUYoVNJvllegFyy0a3F 5cpGLn8qmFg11n8RIJy+ym9Ow5NBZeeF8I7lLB6XOTBIftWnVlTW20Lw6q6hRQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1621337849; a=rsa-sha256; cv=none; b=iJjZElPjIuVUHP4CvS34JhbQxEQx4izuKAOZpcMWhFxL/EBlql/g6EyNQOeeXJi+rYgXuZ Audlu+1U7oK9wS7wlfexybeI87DcnRhaLAmKjufvAuL+VgL68++85kL5GsZk2o7YnZyJOF N87vyCgXtpnoF5zWM+I0tXTozaSAvPyf1aLEoU2LHHB2ltR85fr2tZRlYlWXwJTkUD0Bcx AQuy9mDgj06l0UwH5VbY02Zlch9g9O1pH7osgQTDpL/xG0l17RWQEfZ9X3/kOxtvJkFNf2 3Z4hxorZ4bL6u0mbSobSW4jk9ernQC704W090DjDJu6U8VLZ+TX+68FF/yVAHw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=tugraz.at header.s=mailrelay header.b=Y0KrwH5I; dmarc=pass (policy=none) header.from=student.tugraz.at; 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: -3.14 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=tugraz.at header.s=mailrelay header.b=Y0KrwH5I; dmarc=pass (policy=none) header.from=student.tugraz.at; 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: 5D4FE10950 X-Spam-Score: -3.14 X-Migadu-Scanner: scn0.migadu.com X-TUID: TFfXpH6/Mc8R 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: > http://zenger.org/jaco/ > > Apparently, JaCo was later reimplemented in Keris, whose source code > is available. However, KeCo (the Keris compiler) is written in Keris. > > It is not even clear that building an old version of scala is going > to work, as the language evolved a lot since then. > > 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. Thanks Julien and Ricardo for the detailed explanation of what goes wrong here. 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? > Le 18 mai 2021 05:44:42 GMT-04:00, Ricardo Wurmus > a écrit : > > Leo Prikler writes: > > > > > Hi Julien, > > > > > > Am Dienstag, den 18.05.2021, 01:01 +0200 schrieb Julien > > > Lepiller: > > > > Hi Guix! > > > > > > > > I have the attached file that build Scala, although it's not > > > > bootstrapped at all. It contains %binary-scala, a few > > > > dependencies of > > > > Scala we haven't packaged yet, and the final scala, built from > > > > %binary-scala, without sbt (which requires Scala too). > > > > > > > > Since I've tried and failed to bootstrap Scala for so long, I > > > > think > > > > it's time to give up. I can't always create miracles. > > > > > > Some points relevant to bootstrapping: > > > - The last version, that ships "scalai" written in Java seems > > > to > > > be > > > v1.4.0+4. Perhaps one can use scalai to bootstrap scalac > > > within it. > > > - The last version, that does not "require" sbt is 2.11.x, > > > though with your workaround we can also build later versions. > > > > We tried building a clean bootstrap chain for Scala for years. > > Back then I went down the rabbit hole and found that early scalac > > is written in Pizza; but it turned out that Pizza is written in > > Pizza and is released under the old Artistic License, which is > > considered non-free. > > > > https://logs.guix.gnu.org/guix/2018-04-08.log#230002 > > https://logs.guix.gnu.org/guix/2018-04-09.log#073740 > > > > I pointed a branch at an old Scala commit that contains the old > > Socos compiler source, which ostensibly are written in Java, but > > actually are not: > > > > https://github.com/rekado/scala-bootstrap/tree/bootstrap > > > > This is at around version 1.4.0.4, as you wrote above. > > > > Since the old days Scala Native has grown considerably, and > > perhaps we can reuse some of its native libraries. I’m not too > > hopeful, because the bulk of it is still written in Scala, > > obviously, but there are parts that are written in C / C++, which > > might come in handy. > > > > https://github.com/scala-native/scala-native