From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Dr. Arne Babenhauserheide" Newsgroups: gmane.lisp.guile.user Subject: Re: Help making a GNU Guix package for pure GNU Guile library Date: Sat, 30 Jan 2021 20:43:23 +0100 Message-ID: <87v9be5hyc.fsf@web.de> References: Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5381"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.4.14; emacs 27.1 Cc: guile-user@gnu.org To: John Cowan Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sat Jan 30 20:44:00 2021 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l5wA3-0001HV-OH for guile-user@m.gmane-mx.org; Sat, 30 Jan 2021 20:43:59 +0100 Original-Received: from localhost ([::1]:53958 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5wA2-0003rz-Mj for guile-user@m.gmane-mx.org; Sat, 30 Jan 2021 14:43:58 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59660) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5w9d-0003ri-5y for guile-user@gnu.org; Sat, 30 Jan 2021 14:43:33 -0500 Original-Received: from mout.web.de ([212.227.17.11]:55285) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5w9a-0007Ur-OY for guile-user@gnu.org; Sat, 30 Jan 2021 14:43:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1612035806; bh=/8D1/+LlD2qCPN5bAZ/ypVL+7oqpo1g2+nIEqJYK1y8=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:In-reply-to:Date; b=TcHPc8OwmbCJW+eRplBd0d05Rf3yxAAL8FQSINXKNLRhDf0tWVrfuqM8uTfMjgwnj q4ultM9fowurfvc1nybpm8QRsdG02YqhpOaQFivs4DgA96vBAMUO4yadfmrooegH2f ANpgbdxsQJPmKbY9VckK7eJD0rcAZWuGwbD2IOyE= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Original-Received: from fluss ([84.149.93.44]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MqqTb-1lj4Sl1h0D-00muOn; Sat, 30 Jan 2021 20:43:26 +0100 In-reply-to: X-Provags-ID: V03:K1:fF9W1nEQHiINDbtefwhsL3p7aIkY2K9gVdf7Imo4HvN9DFazULp qlEfK9i6ZKzN9KJWtDv4AZaxRAn16MlOjC9c0aKtGc2S3tvtwIoVKhT6mytsyqyz31ZjwG/ LqfvOt5D91cxQIW8NKJ3YXZDcUMVNmx/v4UPouGCYhJWsAnxmgGkhNUnIyGyzzIxlJjE8bM LV3ba3d6Zj8wCObLZJNIg== X-UI-Out-Filterresults: notjunk:1;V03:K0:09ska+0rlfg=:AiAwUA9cq9cx8+MnkYmTsX ChmlUkMp1KRF6+7u1Sk0Es9LcwuIYDlexGdhf2r3KGowxI+asXr45wogNgnwn0sfdIhQ6H60t gqeQNvd09VSOMY36hGv/0sA0ZZxDAKPApMFojuO19Hli1w2FPKBhExYct6HUUdIfXx0DXao+R 40PDkbQ6OTPN1tRhW5jJaPY8R30U4OaoxrRSY9nRidPXzqgFD6mS4o5ZRs6L4igDKsoukZqf8 rXDGeY096GwLpkqPwQQbbj0YVBxpjTh7Cqg3ChQa0GC3pqze+oCfDtiswEuQK7rA/3DWaIIzv 0PAfAhOvtHxw9LOa1KXfaTyXkNTZe80Dq2iIi5n/wEWqt2Yhgv0fvTxDuXjnb3gbmL8nkJD1x Fi+8WQesd5hz1tRowtDWnoYbg118hFJFMpjkyuU8hEnCP/enomFsBUMu/393FwYS7GttjOoY5 cpHoUW/KS6lLj74sY4z9OeB24WwcCXHLx80olZbScNHbneAomTYu41R1W0gIqljrgJ0NczSfe UQxp4SHXiMViA1s+nG82bCDjVpkPx+S5j/rTev+VDmpgiFkYlRQTvrEd4d3mz7Un9Mn5l9KcJ a8VjXePwKSB9S8nV0gxMQ5iIR9hcmsBWhht6qQzM+WqOyGacExq3CA9yjiE/SnGK1VY+Hteb+ jhee8hadr5j+mKx3HydAaVTf5mD6UMReygg4ypouz5HiUVwX1wFZrj2g/xDi1nIbVBWGmBHYR vRCUcydWW/pX2naR4pOn96oBPb2sPN6Qf8krlC7b6hbbtb5mPynYlH9ot5honsMtlWe2sRhO Received-SPF: pass client-ip=212.227.17.11; envelope-from=arne_bab@web.de; helo=mout.web.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17209 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable John Cowan writes: > This is the outcome of many years struggling with autotools, and several > more struggling with CMake. (Chicken compiles Scheme to C and is written = in > Scheme, so it has to bootstrap itself, something CMake doesn=E2=80=99t or= didn=E2=80=99t > like.) [Supposedly CMake has fixed this problem now.] In my opinion this in-between-step to CMake is a mistake many made. I=E2=80=99ve gone through cmake, scons, setuptools, and waf, with a short involuntary detour to the numpy build system, to end up with autotools, because all the other tools had a too narrow view of what was necessary =E2=80=94 and when I hit their limits, I was pretty much lost. Once I actually hacked systemwide installed numpy sources to provide support for the intel fortran compiler. Nowadays I experience maven and gradle fail at delivering what autotools already provide, with IntelliJ filling the gap of incremental rebuilds by integrating that into the (huge) IDE. > By contrast, I did a bad restore from backup the other day, and Guile > (which uses autotools, small blame to the maintainers =E2=80=94 the FSF i= nsists on > it) got confused because I hadn=E2=80=99t restored the file timestamps pr= operly, so > the byte-compiled Scheme looked out of date relative to the source. No > biggie, I just rebuilt Guile from scratch. Ouch. That took longer than it > would have to *re-restore the backup three times over*, and the hard time > was struggling with autotools; I had to run ./configure about twelve times > before it reported all the missing C-level dependencies (not really > missing, just out of date). Didn=E2=80=99t `make -B` work? Force-rebuild everything. Seeing that this was 8 years ago: Possibly it didn=E2=80=99t because autoto= ols didn=E2=80=99t regenerate the configure automatically. It does that nowaday= s. > Most of which no longer exist. Autotools is the complete opposite of > Scheme: it piles feature on top of feature rather than removing the > weaknesses and restrictions that make additional features appear necessar= y. While autotools does have more features than I personally need, using autotools replaces many usages of =E2=80=9Cspin up a whole OS to run a shell-script=E2=80=9D for me. `make distcheck` is what should always be provided: Create a tarball and ensure that the generated tarball can be used to build your tool so that the tests pass using a separate build-directory. There is some unclean stuff where abstractions got broken (which hurts me, but then I did not report it as bug yet =E2=80=94 that=E2=80=99s on me)= but autotools do actually map the complexity you get in real development. I personally saw the persumably simpler ways fail in real deployment. You say that all this complexity does not exist anymore. I=E2=80=99ve experienced that complexity break every other build tool less than 10 years ago when working on cutting-edge university clusters. Autotools just worked. I think configure-runs should be slimmed down by a first check whether it=E2=80=99s in a known environment (so 90% of the tests can be skipped). B= ut that=E2=80=99s not a general complaint about the approach of autotools. And I think that the autotools documentation is still abysmal for newcomers: There=E2=80=99s no =E2=80=9Chow to solve this task correctly=E2= =80=9D for real-life tasks, and most answers to these questions you find online are wrong, so most autotools-users actually do resort to cargo-culting (=E2=80=9Cthis wor= ked in project X=E2=80=9D). All the while the world has moved on and most new t= ools (like npm, maven, go, cargo, =E2=80=A6) auto-generate their (often very com= plex) build structures. I started a project to provide something similar for autotools, but it still has too little support for different languages: https://hg.sr.ht/~arnebab/conf =E2=80=9Cinitialize modern autotools project= s=E2=80=9D Yet this is where we can actually improve the state of build systems without failing at the same problems over and over again: Make it easier to start clean autotools projects. Best wishes, Arne =2D-=20 Unpolitisch sein hei=C3=9Ft politisch sein ohne es zu merken --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJEBAEBCAAuFiEE801qEjXQSQPNItXAE++NRSQDw+sFAmAVtt0QHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD610kD/4oBd65PwecOmrIO/xQqFa2tmlULGZJGIkr 9LzWLdR0Bx0GPT9PBWs5/TzlVpnFDkoZc8PM3ctll06cu93UlRRUWYWJ7pO86SiB Gfe7DhRfQPZt6DH63NKfwr7vGtjJb7V3yIVFq6n6b/yTAH0uu6dVeEQDhlmn4+R6 yWvWZlWbFqNYKUdGRxnBSabYSKPRT/adXtbwYfERE1cOjAAa8o2R54ONMyw4atlx 62VQLWAy4tSnJReo/S8Y/KKS5JqdfimCEHr+PdGhtVPm1vWLttnsDMShHQ1lfjg8 97TRGSah7Y93DyE+NOuCZm9908fdEE+5ehzbsNoy0cEnIgdxJFeNf9IIUNZBNV1L 0IuJR6OXu2kv7JjAYQ0IZ5/08rF6HtDjXDnKfBnB0bQTAxOy1pFQNhOhWJ4r9sox qtQCEj2InvMWGIYX1lEQ+9iu+vPYqY7Pkj4dzCLb5+a0t7zUXsoOXKfSgKb1GYhf y6eYNvo3Sou24iqIZEiqCFRLqKUeMvNcwcXFesCf3r9jdDNfdgVorBI94ND83JlG hgBUAglwgqBcxnvVaoeUlhVl4diNiPTietzUFetXlmaURxLXsEZCYugipW32xBME tyvCKmJVijY06MYKILs9HaVQ1bGsOLvHaw42RR9ztSVsSt5Xjb1iNOF0cVyjeTh1 YTy1kdHKJIjEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmAVtt0QHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSLizA/0aLlGl4IgWNDYZIYpHHylJPN90 3pxMpdYnI5wx8NjxIf7RwTbUkrbDVNnNj3ncppWKxOKUbcaby7WjzovjEDoXBg9w BEwVB+wfJOjuROEroQ/Tcvbvb8DwXVhK0vj9Ns0HhZuur2hjM1x7A08eH8lftXEI 6vwQN1Cvow4g+w/Qbg== =vqme -----END PGP SIGNATURE----- --=-=-=--