From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id SLP0FIUVXl9BYgAA0tVLHw (envelope-from ) for ; Sun, 13 Sep 2020 12:50:13 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id iBBiD4UVXl9vUQAAbx9fmQ (envelope-from ) for ; Sun, 13 Sep 2020 12:50:13 +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 A207B940539 for ; Sun, 13 Sep 2020 12:50:12 +0000 (UTC) Received: from localhost ([::1]:46058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kHRSN-00073K-LM for larch@yhetil.org; Sun, 13 Sep 2020 08:50:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51364) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kHRSD-00072v-9W for guix-devel@gnu.org; Sun, 13 Sep 2020 08:50:01 -0400 Received: from mout01.posteo.de ([185.67.36.65]:39590) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kHRSA-0002vg-O4 for guix-devel@gnu.org; Sun, 13 Sep 2020 08:50:01 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id B5C71160060 for ; Sun, 13 Sep 2020 14:49:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1600001395; bh=5jyPHplhftzvG1dggAYKTXDc3bZbHEsNxIsiUz0GKSo=; h=From:To:Cc:Subject:Date:From; b=GYubg1iwAQSzmkmMX6CpMY4CZ/WG/Om+W7GLEzKrkLzz4Dj5yBNlayUjIqK7gx2L2 sPd44syHPBDaei5DonP0gwHjfuJsWJCs9a6/HuWN741JtSQylpBBrw5zfNxbaIiuGZ 0SSVdxVEjf39tC6CNqFckI+pGzN3Fn+7ZgibbFpbhvHNUT0fMbI+pJ7Ame+NAuQeAo EXAYUvHbA34/zPBLoMjSEey9R5g+2svq6VxGPr1U5xr/Sw8MlA9Liw1V5Ixdd1Z595 qn2AxZoJzIIgEHS1AIKG1i5bl2FUwZw6X0P7ERnG+WD/B5D+tCAXNKPQjt6FpapXsV XGpeRXa/5LCgA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Bq8TY25kyz6tmR; Sun, 13 Sep 2020 14:49:53 +0200 (CEST) References: <87sgbntjz4.fsf@yamatai> <87blibcmuy.fsf@ambrevar.xyz> <87y2lfb67c.fsf@ambrevar.xyz> <87pn6rtd1y.fsf@yamatai> <87y2le9d67.fsf@ambrevar.xyz> User-agent: mu4e 1.4.13; emacs 27.1 From: Guillaume Le Vaillant To: Pierre Neidhardt Subject: Re: Improve ASDF build system for Common Lisp libraries In-reply-to: <87y2le9d67.fsf@ambrevar.xyz> Date: Sun, 13 Sep 2020 14:49:50 +0200 Message-ID: <87pn6phmdt.fsf@yamatai> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=185.67.36.65; envelope-from=glv@posteo.net; helo=mout01.posteo.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/13 06:01:00 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=GYubg1iw; dmarc=pass (policy=none) header.from=posteo.net; 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-Spam-Score: -3.31 X-TUID: SJM1nAu53KoP --=-=-= Content-Type: text/plain Pierre Neidhardt skribis: > Guillaume Le Vaillant writes: > >> I thought about having the sources, SBCL compiled files and ECL compiled >> files respectively in the 'out', 'sbcl' and 'ecl' packages outputs; >> however I thought there could be issues in some cases. >> >> For example, if a profile contained cl-xyz and cl-xyz:sbcl, and if the >> user tried to load this xyz system in ECL, then I think ECL would try >> to compile the system and write the compiled files to cl-xyz:sbcl and >> fail because it is read-only. That's because cl-xyz:sbcl contains the >> ASDF configuration indicating "the compiled files for cl-xyz are in >> cl-xyz:sbcl", and ECL is going to read that configuration. >> >> It might be possible to have smarter ASDF configuration files behaving >> differently depending on the lisp implementation running, but I have not >> investigated this for the moment. > > There is probably a way to tell where to load the libraries from, and > where to compile them. > > By default, each compiler compiles to > ~/.cache/common-lisp/$compiler_name-$compiler_version. > > This is what ECL should do here. The ASDF configuration should be so > that it does not change this behaviour. The ':implementation-type' or ':function' keywords of ASDF configuration files described in [1] and [2] could be useful to do that. Now, let's suppose that we put the sources in cl-xyz, the SBCL pre-compiled files in cl-xyz:sbcl and the ECL pre-compiled files in cl-xyz:ecl. If a user installs only cl-xyz (the sources) and loads the system using SBCL or ECL, I think he would expect the lisp implementation to compile the thing and store the compiled files in the default '$HOME/.cache/common-lisp/...' location, because he didn't install the pre-compiled files. So we would need the ASDF output-translation configuration to be able to say something like: "if the pre-compiled files for the running lisp implementation exist in '/gnu/store/...' and if the Guix package for these pre-compiled files is installed in the current profile or environment, then use them, else use the default $HOME/.cache/common-lisp/...' directory". I guess cl-xyz:sbcl and cl-xyz:ecl would also need to have links to the ASDF configuration and to the sources in cl-xyz, in case the user installs only cl-xyz:sbcl or only cl-xyz:ecl. [1] https://common-lisp.net/project/asdf/asdf/Configuration-DSL.html [2] https://common-lisp.net/project/asdf/asdf/Output-Configuration-DSL.html --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCX14Vbg8cZ2x2QHBvc3Rl by5uZXQACgkQa+ggit8h/j/nrAD/W3tywDscHwm0HmF2esztpVuJU1gyKzFdSaC1 MdOZJ50A/2KvGEXosxWWnROxImbYdo2gQHcJk5VbIuYun+P+r5Dx =2aB7 -----END PGP SIGNATURE----- --=-=-=--