From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Olivier Dion via General Guile related discussions Newsgroups: gmane.lisp.guile.user Subject: Re: Newbie thoughts on Guile Hall + Guix Date: Sun, 06 Feb 2022 18:00:44 -0500 Message-ID: <871r0f7g83.fsf@laura> References: <87iltt846s.fsf@dustycloud.org> <87k0e8t0kr.fsf@laura> <2a3bc56f383806aa28d969ddc092256a9e922579.camel@telenet.be> <87a6f37isj.fsf@laura> <2b524db8e0d851b4cb4519d9c82dca1585ade66f.camel@telenet.be> Reply-To: Olivier Dion 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="27661"; mail-complaints-to="usenet@ciao.gmane.io" To: Maxime Devos , Christine Lemmer-Webber , guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Mon Feb 07 00:01:57 2022 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 1nGqXc-0006zb-C6 for guile-user@m.gmane-mx.org; Mon, 07 Feb 2022 00:01:56 +0100 Original-Received: from localhost ([::1]:33416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nGqXb-0000NH-9H for guile-user@m.gmane-mx.org; Sun, 06 Feb 2022 18:01:55 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:40896) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGqWf-0000N0-9v for guile-user@gnu.org; Sun, 06 Feb 2022 18:00:58 -0500 Original-Received: from smtp.polymtl.ca ([132.207.4.11]:44653) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGqWc-0000it-GJ for guile-user@gnu.org; Sun, 06 Feb 2022 18:00:56 -0500 Original-Received: from localhost (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 216N0iGg009745 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 6 Feb 2022 18:00:49 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 216N0iGg009745 In-Reply-To: <2b524db8e0d851b4cb4519d9c82dca1585ade66f.camel@telenet.be> X-Poly-FromMTA: (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) at Sun, 6 Feb 2022 23:00:44 +0000 Received-SPF: pass client-ip=132.207.4.11; envelope-from=olivier.dion@polymtl.ca; helo=smtp.polymtl.ca X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 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:18022 Archived-At: On Sun, 06 Feb 2022, Maxime Devos wrote: > Olivier Dion schreef op zo 06-02-2022 om 17:05 [-0500]: >> > Is it restricted to Makefiles, or can it also be used without >> > generating Makefiles?=C2=A0 If not, things like progress bars should be >> > easy >> > to implement and file names containing spaces or =E2=80=98special >> > characters=E2=80=99 >> > can be used without any problems. >>=20 >> Since it's glued to my project, and since I'm very familiar with >> Makefiles, it only support Makefiles for now.=C2=A0 What would be the >> other >> targets you have in mind? > > I was thinking of something like > > $ cd ~/the-source-code > # (I haven't looked much yet, possibly the CLI needs to be very > different) > $ cbuild make --target=3Daarch64-linux-gnu --prefix=3D/foo/bar > $ cbuild install --staged-install=3D/blah I'm not a fan of configuration with CLI like `--prefix`. I like to have a configuration file that is configurable like so: .config.scm: ----------------------- '((TARGET . aarch64) (PREFIX . /foor/bar)) ----------------------- > Basically, don't delegate to 'make' or 'ninja' or whatever, just build > it. I agree. In the end `make` is only there for tracking dependencies, which can be done easily in Guile I guess. Although, there might be performance problems at large scale, but I don't think I'm there yet ;-) > That's way less portable than 'make' of course, but people that don't > have 'cbuild' or don't want to learn 'cbuild' can still use the > Makefile. Across distros or OS? For other distros, if the only requirements are Guile and pkg-config then I would say that's quite portabled. As for other OS, I personnaly don't care about them. > I noted that you are using #nil in some places. > #nil (an amalgation of #false and the empty list ()) is mostly an > implementation detail for Emacs Lisp support, and not something that > needs to be used in pure Guile. I would use '() instead; it's > also more portable to other Schemes. I did not know that '() was more portable! I did find out that #nil has some problem during syntaxes expansion though. I will change this in my style! > There's also some potential reproducibility problems: in > https://gitlab.com/oldiob/cbuild/-/blob/master/config.scm#L19, > D1CACHE_LINE_SIZE is set based on the cache size where it was > compiled, instead of the cache size where it is supposed to run on. This is true. Fortunately, on a good amount of architectures, L1 cache is 64 bytes. The only way I can see to fix this is to override the configuration in `.config.scm` if compiling for another system. It's not possible to do this at runtime, because I use it for some struct alignments of static variables. --=20 Olivier Dion Polymtl