From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: John Cowan Newsgroups: gmane.lisp.guile.user Subject: Re: Help making a GNU Guix package for pure GNU Guile library Date: Sat, 30 Jan 2021 13:35:44 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33736"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Guile User To: Zelphir Kaltstahl Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sat Jan 30 19:36:13 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 1l5v6T-0008do-13 for guile-user@m.gmane-mx.org; Sat, 30 Jan 2021 19:36:13 +0100 Original-Received: from localhost ([::1]:42890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5v6S-00076l-2K for guile-user@m.gmane-mx.org; Sat, 30 Jan 2021 13:36:12 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50662) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5v6G-000760-QY for guile-user@gnu.org; Sat, 30 Jan 2021 13:36:01 -0500 Original-Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]:33007) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l5v6E-0003mH-Lx for guile-user@gnu.org; Sat, 30 Jan 2021 13:36:00 -0500 Original-Received: by mail-qt1-x82c.google.com with SMTP id w20so7045727qta.0 for ; Sat, 30 Jan 2021 10:35:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccil-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=M9kXdIgyEWyUTTKhL+LPbFkxyKPVxw5c0wNnz6OHFv0=; b=Y7I3BYZyNFPZ5LOq/01hjk9Rzsad4Bz/MuUci4xxQK3QkJx9fi65vg5tAgDHS4yM65 fvzoHuh1/bfifFIxVlDY/KrMN3V0Ptpu9A2e1QFss03qrbxjPPEqTjl/gehztPl1oz2o X8+CyogKki3N+fOd7zonD00Ikee9PxIf0wAvR6pRTOMaEp6qcTCvUocAbDkkmmODWO/u X5Z6MpswHMfusL/PFyOjQaH6QVggu/lN6mAgY6FaGVOoXnbrsJofNxX+y+LcA3Y0OfL2 MRy9xEc12GhV984xwKu8ZorEE5ZzE2dpL3ZiLE+r8clbMytAc1Q5b+E9DgndKxvZ4Iet kpXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=M9kXdIgyEWyUTTKhL+LPbFkxyKPVxw5c0wNnz6OHFv0=; b=i5Oq3AzJtOTETl9i3pfcRd3XmeGWFSrMlhenjdxwUdiHLKtRyuv4UwIO45eCr740UC GiDzHHiVbJ0PZ1q2zt/zu+239rZNF3DAvhJurTskoop636WBSYrizLRyhJJf7YK+jDys 1bXHU52xwGm0EHZVVf3HTMdlw/x1lGRdbrl3Trv0fJzHYgN06pUZo6IEILJHdqDKm0qb txdP9wFHeIooVbAyxoruFpM2zMPphCIeAbliXlgo4hKBKDBdrzFbQq0hhe3cWK40Ydtg epzwS/mW4lMPLNcH+4Ua1tzqCwuhcOnrQgBfhn3i0h/nYhVSmNIH9uLYhEy8hB0wjsG5 Rrfw== X-Gm-Message-State: AOAM532idH0YcMJPShOckGdkGoFa5Zbfb2xU3UJPGU75BwbhAHmQib0E 8YAdf9LRgSa8ixQ+1i/srqep3avtqTUHTWpmOUtZSw== X-Google-Smtp-Source: ABdhPJxYRKza2AFQAv1zEXwMvZLwzthl511XHPB0JxD0zqzqyeST85ln/ZBLVPEjMVeQy9FrXVKEj8iQ08xrzeXM2/o= X-Received: by 2002:aed:20a8:: with SMTP id 37mr9264717qtb.362.1612031756133; Sat, 30 Jan 2021 10:35:56 -0800 (PST) In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::82c; envelope-from=cowan@ccil.org; helo=mail-qt1-x82c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Content-Filtered-By: Mailman/MimeDel 2.1.23 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:17207 Archived-At: On Sat, Jan 30, 2021 at 12:17 PM Zelphir Kaltstahl < zelphirkaltstahl@posteo.de> wrote: There is a whole jungle of stuff, that I do not yet understand in depth. > You are not alone. Warning: completely partisan posting here. > Why does guile-haunt use Makefile.am? Why is a simple Makefile not > sufficient? > Cargo-cult programming. Autotools was created in a pre-Posix, pre-ANSI-C environment that was *much* more diverse than anything today. Consequently, it makes a whole bunch of unnecessary tests. What's more, the generated ./configure file is a great big mess; if it has a bug, you are pretty much out of luck. I posted this back in 2012 on another forum: Chicken, an excellent implementation of Scheme, has a very badass attitude to configuration, as follows: You tell =E2=80=9Cmake=E2=80=9D if you are ru= nning on Linux, BSD, Mac OS X, Solaris, Haiku, Cygwin, MinGW, or MinGW+MSYS, and then a short platform-specific makefile writes out a little .h file and builds everything else as-is. If you are *not* running one of those, you=E2=80=99r= e on your own =E2=80=94 but the community welcomes patches. [2020 update: You d= on't even have to tell it your OS and toolchain any more; it looks at uname(1), with a hack for MinGW where uname does not exist.] 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 d= idn=E2=80=99t like.) [Supposedly CMake has fixed this problem now.] 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 ins= ists on it) got confused because I hadn=E2=80=99t restored the file timestamps prop= erly, 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). [end of quotation] My own attempt at an answer: Autotools seem to try to be a compatibility > layer for many different systems 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 necessary. John Cowan http://vrici.lojban.org/~cowan cowan@ccil.org Is it not written, "That which is written, is written"?