From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id UCxcIn7r0GBEQQAAgWs5BA (envelope-from ) for ; Mon, 21 Jun 2021 21:41:50 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id 0NoOHn7r0GBBBAAAB5/wlQ (envelope-from ) for ; Mon, 21 Jun 2021 19:41:50 +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 37249E731 for ; Mon, 21 Jun 2021 21:41:50 +0200 (CEST) Received: from localhost ([::1]:59236 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lvPnp-0007Qa-51 for larch@yhetil.org; Mon, 21 Jun 2021 15:41:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40390) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lvPnX-0007IH-Ki for guix-devel@gnu.org; Mon, 21 Jun 2021 15:41:31 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:42999) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lvPnT-000200-CW for guix-devel@gnu.org; Mon, 21 Jun 2021 15:41:30 -0400 Received: from [10.0.0.4] (62-116-34-49.adsl.highway.telekom.at [62.116.34.49]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4G80Jb2Gh5z1LLyL; Mon, 21 Jun 2021 21:41:19 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4G80Jb2Gh5z1LLyL DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1624304480; bh=7KuJ7NyDAVrvIjFBk+CwNiw1VbpDPIy8LnQxYiFfBMI=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=XLcLjdKhwprOo33zVCP68ZX4BMDlZt5T0tXcAZt/B66yRnpCMyREgOy+Mx03BeHjB fyMuoEUrPnYss2d4UzvjZiWldMlCL5CDJ6yc3WQjWWgekbGxI1qtuCCs58vn2fw9H/ D+wwhaY5aqZDBszeRawOqfKlwgCTe1eWieHw/2MY= Message-ID: Subject: Re: Crystal Bootstrapping Journey From: Leo Prikler To: jgart , guix-devel@gnu.org Date: Mon, 21 Jun 2021 21:40:52 +0200 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit 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: Pjotr Prins , "Bonface Munyoki K." , Raghav Gururajan 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=1624304510; 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=7KuJ7NyDAVrvIjFBk+CwNiw1VbpDPIy8LnQxYiFfBMI=; b=Mk+O0m3Kb6I2wkUvGinprRi3gaHVXgqI+XhxClcHHfVrfV4tFTZf5RbYmjVqNpJwqADFKA /OTclOZoh4qzavyHcq6bppkvuYFPiPYfyeS7CQ32v/LwpBdlQ/IYrggVIjGbmBe70SMc6J rThJWgy5jxeR3Bzd+RTdNeEDMPrxGI5PfhvTlkfNyth5Xxqy15Qo2viA2auxi5zEGGKaIf 4NlIEAS44n0ge2v4WHx9zNUhPCynpok+kTfErfp2y6x/d47HxqLLLTcsFSCrHQGeNw5C9M MBpf/IHgnuvHUM1iLafJxtpm3TyRCTZp9VkwbONxkRAzQMm+2fQfLI0kEnsBMQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1624304510; a=rsa-sha256; cv=none; b=YNy4tQZg6cloCLMmtKaKsVzmDw3G19wetwARm97g0M0kyimIKks8SGN0ATCzvBIh6z3yLu pg79cOwR+8CgnQgyhQhW2b7Ec3gwayfVezTlNcIZIVqNLqlSMyeG6Rhb53nVHL2/pK/Cmw S2sT5d9FeI2Zfn6ZHnvWg4vt3G/kHar2Onn8dD/yZXZrxSIi+L48/MoJrZzXZMfiubigJW FM9IldZHe6sQuIIhS1tYmLcj1LGaqmh0GAudzN2KUEkrtnzPvjnwjvy7qxqAVRDH0J8k1P ZOeYReC1P3TBNu2B+yhCcvf6YyRqnxvoXVQKutHP4lKa6Ob/L8bU6AcfbB7RTg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=tugraz.at header.s=mailrelay header.b=XLcLjdKh; dmarc=fail reason="SPF not aligned (relaxed)" header.from=student.tugraz.at (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.32 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=tugraz.at header.s=mailrelay header.b=XLcLjdKh; dmarc=fail reason="SPF not aligned (relaxed)" header.from=student.tugraz.at (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: 37249E731 X-Spam-Score: -1.32 X-Migadu-Scanner: scn0.migadu.com X-TUID: 5TQq/fCcLHAh Hi jgarte et al. Am Montag, den 21.06.2021, 16:33 +0000 schrieb jgart: > Hi Guix, > > We've (Ryan, David, Raghav, and others) started packaging crystal for > guix: https://crystal-lang.org/ > > See 49142 and 49158 in the issue tracker. > > Here are some notes, questions, and a list of dependencies regarding > what is needed to finish a properly bootstraped crystal package: > > https://github.com/ryanprior/guix-packages/blob/master/testing/crystal.org > > We are trying to recreate this bootstrapping process: > > https://github.com/crystal-lang/bootstrap-script > > There are 160 stages! > > A few questions extracted from the notes follow: > > Is it preferable to have 160 bootstrap packages, one for each stage, > or one big bootstrap package with 160 build-* stages, or somewhere > inbetween? I second Maxime's reply on 49158. 159 hidden packages, plus a final exported one. > Each stage needs a different checkout of the git repository - can we > preserve info in .git such that we can checkout again during the > build, or do we want to have each checkout be an independent input to > the package? Given that we want 160 packages, maybe, but actually no. > How best can we use Guile macros to clean up the large amount of code > implied by executing 160 stages of bootstrap logic? Note how many of the stages (particularly later ones) manage to bootstrap one version from the previous. You might therefore want to make a "one-liner" package (define crystal-stage-N (bootstrap-crystal "version@N" crystal-stage- {N-1})) Then use Emacs macros to generate 160 lines ;P It's not quite as simple, because the arguments to crystal change at some point, but you could spawn off several "phases" from a relative generic boostrap-crystal procedure. E.g. the final phase would have #:crystal-args '("build" "--stats" "-Dwithout_openssl" "-Dwithout_zlib" "-Di_know_what_im_doing") Regards, Leo