From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 19 15:46:30 2022 Received: (at 53765) by debbugs.gnu.org; 19 Mar 2022 19:46:30 +0000 Received: from localhost ([127.0.0.1]:60619 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVf1y-0002Kv-5h for submit@debbugs.gnu.org; Sat, 19 Mar 2022 15:46:30 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:57876) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVf1x-0002Ko-0O for 53765@debbugs.gnu.org; Sat, 19 Mar 2022 15:46:29 -0400 Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a]) by albert.telenet-ops.be with bizsmtp id 8KmT2700J4UW6Th06KmT6q; Sat, 19 Mar 2022 20:46:28 +0100 Message-ID: <527643d9fb0884f2f21478f562326fceb0e061c9.camel@telenet.be> Subject: Re: [PATCH v2 05/18] gnu: Add clojure-core-memoize. From: Maxime Devos To: Reily Siegel , 53765@debbugs.gnu.org Date: Sat, 19 Mar 2022 20:46:23 +0100 In-Reply-To: <87czihdamo.fsf@reilysiegel.com> References: <877d8udq44.fsf@reilysiegel.com> <87ilsbd476.fsf@reilysiegel.com> <87czihdamo.fsf@reilysiegel.com> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-cNiXRkrv6AaoAusC+kpT" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1647719188; bh=MdiENfqdHt3oJVdpGttsCZ5wPAw956exVUhDURXuR0o=; h=Subject:From:To:Date:In-Reply-To:References; b=bv2PHkyFhINqqdlqkXJ4lAJoQM+4gUGGUktUCuQq5mKHFBAztJBUhB2gMIaKvLYJN N4PrFD67XNBxaAjhB5iSl5KVCf/gTKhuaHKggDrZrSBDxy+mpfysUitvy/YJU2oJ0/ E1Nprq02OHxh5BJA72l0O4DokA7UgMehY+hGoYSz0XGxHwkSi7ozPDh0CxHWfMa5Y/ mmEq49s3+JrYWH6agox/E4HCDpx5UZcuYJhCz8yyaIZGiNwVwFfYGcx7+8Mb1daNnm dAg1V1keaDRZJb32d/c8W09v8+Z4BLLDMcvU1s+P1stRqZGyE+sxfV9hw5MtG6Ts50 np+jW/v6d1NNg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 53765 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-cNiXRkrv6AaoAusC+kpT Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Reily Siegel schreef op za 19-03-2022 om 20:07 [+0100]: > When I first started running into these issues, I reached out to Clojure > maintainers on the Clojurians Slack, and the response was that AOT > compilation is only meant for complete applications to reduce startup > latency, not individual libraries. That seems backwards to me. Wouldn't AOTing compiling individual libraries be more efficient than AOTing individual applications? More concretely: Suppose app A=C2=A0and B consists of a single source file A.clj and B.clj respectively, and each have library C (with C.clj) as dependency. Then, what Guix currently does, is AOT'ing C.lj when building C, then AOT'ing A.clj when building A and AOT'ing B when building B. In total, AOT'ing a file happens thrice here. What seems to be implied here, is that the AOT'ing needs to be delayed to A and B. In this case, C.clj would be AOT'd twice: once for A, and once for B. In total, AOT'ing a file happens four times here. As such, wouldn't AOT'ing the applications instead of the libraries be less efficient? An additional problem here is grafting. If the AOT'ing was delayed to the application packages, then the libraries cannot be grafted, for the same reason that (C, C++, Go, ...) static libraries cannot be grafted. Greetings, Maxime. --=-cNiXRkrv6AaoAusC+kpT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYjYzDxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7kGkAP94H7PlMRzZR0wYfTGotqcYSeu1 prsNfLG9OHrO/yJvygEAxCFb+uMmKB0fn536RYWQXRAcyzrXAoKKr4rbtlq0+wE= =OC0d -----END PGP SIGNATURE----- --=-cNiXRkrv6AaoAusC+kpT--