From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Phillip Lord Newsgroups: gmane.emacs.devel Subject: Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed Date: Wed, 19 Jan 2022 18:28:46 +0000 Message-ID: <87ee53tw9t.fsf@russet.org.uk> References: <86wnj18f7w.fsf@duenenhof-wilhelm.de> <65b2a18bc1a597333b42d35a2717dc33@russet.org.uk> <86lezg95ud.fsf_-_@duenenhof-wilhelm.de> <83h7a4zu89.fsf@gnu.org> <86czks94vl.fsf@duenenhof-wilhelm.de> <86v8yj7vhv.fsf@duenenhof-wilhelm.de> <83v8yjyj21.fsf@gnu.org> <87sftmn1k9.fsf@russet.org.uk> <83sftmwner.fsf@gnu.org> <87mtjump5q.fsf@russet.org.uk> <86h7a25nz7.fsf@duenenhof-wilhelm.de> <878rve85yy.fsf@russet.org.uk> <86a6fu3xb2.fsf@duenenhof-wilhelm.de> <87tue1j8x0.fsf@russet.org.uk> <86wniw3kdq.fsf@duenenhof-wilhelm.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32854"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux) Cc: Eli Zaretskii , corwin@bru.st, emacs-devel@gnu.org To: "H. Dieter Wilhelm" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Jan 19 19:31:58 2022 Return-path: Envelope-to: ged-emacs-devel@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 1nAFkS-0008JT-Df for ged-emacs-devel@m.gmane-mx.org; Wed, 19 Jan 2022 19:31:57 +0100 Original-Received: from localhost ([::1]:50364 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nAFkR-0003X0-8C for ged-emacs-devel@m.gmane-mx.org; Wed, 19 Jan 2022 13:31:55 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:34260) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nAFiA-0001oE-1a for emacs-devel@gnu.org; Wed, 19 Jan 2022 13:29:34 -0500 Original-Received: from [78.129.138.227] (port=55103 helo=cloud103.planethippo.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nAFi7-00066H-FE; Wed, 19 Jan 2022 13:29:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=russet.org.uk; s=default; h=Content-Type:MIME-Version:Message-ID: In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=rSL7dw0v9k57xH0lQ8J3A5grZJtj+WqYEm9A52Fu9Fw=; b=HuLSAOpLHYp3DsM7mGPhDJbtAU 9xWuJf5wT0qMbyXGo+5tCpioDs34UYjXf97LWt9CJSinI+mz5wbQdlA+/sTjiFc390JQ9pLp++g4f a5jP0fuF5lJeaVXE4R1bn8V5BwhLPYLfx5ChVRyv8Np9dQw1cIRDk4sXxAiN+5Pe5Wm1UvY1h4baT thcLv99iLcbzGuR5CWenJJAisVpKe8PC31wDeItMHoZNOpK3mp7xNkESIF7NvwGWC4U1IhOYohse5 w2gnguzcQ6jKukmhHMnquXTxh4q7YcTuqg/en7mKaOpNXlmoBJZszIKI5gp4OIuKnp4D8xgOBGnHU YbFN5dxQ==; Original-Received: from cpc142634-benw12-2-0-cust280.16-2.cable.virginm.net ([81.110.237.25]:33954 helo=russet.org.uk) by cloud103.planethippo.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nAFhS-0000fg-Gl; Wed, 19 Jan 2022 18:28:47 +0000 In-Reply-To: <86wniw3kdq.fsf@duenenhof-wilhelm.de> (H. Dieter Wilhelm's message of "Tue, 18 Jan 2022 20:37:53 +0100") X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cloud103.planethippo.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - russet.org.uk X-Get-Message-Sender-Via: cloud103.planethippo.com: authenticated_id: phillip.lord@russet.org.uk X-Authenticated-Sender: cloud103.planethippo.com: phillip.lord@russet.org.uk X-Host-Lookup-Failed: Reverse DNS lookup failed for 78.129.138.227 (failed) Received-SPF: pass client-ip=78.129.138.227; envelope-from=phillip.lord@russet.org.uk; helo=cloud103.planethippo.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:284998 Archived-At: "H. Dieter Wilhelm" writes: > Phillip Lord writes: >>> And when we are at it, please tell me your recipe how to build a >>> snapshot of the master branch. I think my build tree is damaged, I >>> don't manage to build a snapshot of emacs-29 with a date included.. >>> >>> Shouldn't it be just: >>> >>> $ build-zips.sh -g >>> $ build-zips.sh -s >> >> Yes, I think that should do it. >> >> Then, the I build the source like so. >> >> ./make-dist --snapshot --no-check --no-changelog >> rename .tar _`date +%Y-%m-%d`.tar emacs*.tar.gz >> mv emacs-*.tar.gz ~/emacs-upload >> >> I don't think I ever automated this bit. > > Uups, I thought this - or similar - would be done by below part of > build-zips.sh? > > > make -j 4 $INSTALL_TARGET \ > prefix=$HOME/emacs-build/install/emacs-$VERSION > cd $HOME/emacs-build/install/emacs-$VERSION > zip -r -9 emacs-$OF_VERSION-no-deps.zip * > mv emacs-$OF_VERSION-no-deps.zip $HOME/emacs-upload > > if [ -z $SNAPSHOT ]; > then > DEPS_FILE=$HOME/emacs-build/deps/emacs-$MAJOR_VERSION-deps.zip > else > ## Pick the most recent snapshot whatever that is > DEPS_FILE=`ls $HOME/emacs-build/deps/emacs-$MAJOR_VERSION-*-deps.zip | tail -n 1` > fi > > echo [build] Using $DEPS_FILE > unzip -d bin $DEPS_FILE > > zip -r -9 emacs-$OF_VERSION.zip * > mv emacs-$OF_VERSION.zip ~/emacs-upload I was struggling to remember what was going on there, and then it hit me! This bit of code adds the dependencies. I have to ship the source code for the dependencies also, but that is produced with build-deps-zips.py. That doesn't change for an Emacs release cycle (I normally make a deps bundle at the time of the first pre-test, then do not change it for a major version). Source for Emacs is different. I do *not* make source for an Emacs release build, because I put the Windows binaries on ftp.gnu.org which is also where the main Emacs release goes which is already a source release; and as I don't build the binaries till after the source release happens, this means I fulfil GPL that way. For the snapshot, I have to release the source code along with the binaries because no one builds snapshot tarballs (I mean what would be the point). This bit does that: ./make-dist --snapshot --no-check --no-changelog The overly complicated command line was to stop configure being re-run which then forces a full build when I build snapshots incrementally. When I used to do them every month or so this was a big advantage. > >> The model of build-zips.sh is probably a bit complicated and could be >> simplified. The addition of snapshots and the ability to build from a >> branch makes it much more so and the documentation isn't always well >> done. I have been trying to remember why I called the variable >> "OF_VERSION" so, or what "OF" stands for, and have failed! > > Not only above is confusing, but also why is > > INSTALL_TARGET="install-strip" > > in the script? (Back to pretest building) I've got an error for > > $ build-zips.sh -V28 > > in the emacs-28 worktree, maybe, that is a wrong usage of the scrip? > Anyway, "install-strip" seems not to be a valid target for make!? Eli suggested it! I think install-strip follows the GNU standards. It makes the release smaller and the binaries faster, IIRC. >> Apologies for this. > > No reason to apologise, it was working for you. Rather, thank you for > your work. :-) Yeah, but now I struggle to remember what some of it was for. I always teach my students to comment for this reason and, yet, here I am. Do as I say, I guess. Phil