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: [feature/native-comp] breakage on build Date: Sun, 07 Feb 2021 18:56:04 +0000 Message-ID: <877dnjso57.fsf@russet.org.uk> References: <87lfca7lsb.fsf@russet.org.uk> <83sg6h6s6d.fsf@gnu.org> <8335yf7qtf.fsf@gnu.org> <831rdy5i2r.fsf@gnu.org> <87y2g5p0q8.fsf@russet.org.uk> <87im7799s9.fsf@russet.org.uk> <83o8gzrgsi.fsf@gnu.org> <87eehv7ru1.fsf@russet.org.uk> <83ft2brebq.fsf@gnu.org> <87lfc3mvi1.fsf@telefonica.net> <834kirr2b2.fsf@gnu.org> <87a6sjmqpc.fsf@telefonica.net> <83k0rmpwca.fsf@gnu.org> <875z36mv11.fsf@telefonica.net> <874kiq42zy.fsf@russet.org.uk> <871rdum8ds.fsf@telefonica.net> <87sg69mj6m.fsf@russet.org.uk> <87o8gwlhbr.fsf@telefonica.net> 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="10022"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: =?utf-8?Q?=C3=93scar?= Fuentes Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Feb 07 19:57:44 2021 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 1l8pFf-0002U8-Mu for ged-emacs-devel@m.gmane-mx.org; Sun, 07 Feb 2021 19:57:43 +0100 Original-Received: from localhost ([::1]:34136 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l8pFe-00031t-PX for ged-emacs-devel@m.gmane-mx.org; Sun, 07 Feb 2021 13:57:42 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:32874) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8pEt-0002aN-Ak for emacs-devel@gnu.org; Sun, 07 Feb 2021 13:56:55 -0500 Original-Received: from cloud103.planethippo.com ([78.129.138.110]:35330) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8pEq-00022g-UL for emacs-devel@gnu.org; Sun, 07 Feb 2021 13:56:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=russet.org.uk; s=default; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:Message-ID:Date:In-Reply-To:Subject:Cc:To:From:Sender :Reply-To: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=PzOMQU6tzM3UtvC9yJhE913416SdJZj13EANJG2Qf1c=; b=Xx+FVkZ9e00Td6SUAY3hCBH9od Eaz/ENb46qJlH6teVZOkSi2/Jp9DsDRJ5ggB6N0oe3ptU1FKGpl2PzGUEwb/0hnmRqjpE8tCnvQUc K5hczVoRh3NnmRiQ3NNVHsk8YtAXyRgbXJjlDsChYk6pvEeH+iD/qVqVtn3EU0zEzBys8TF5GLJmg 3TG6MQZNLLH+FQqT68+Pg291Uua7zvGx96zRDGd32C70dkmX8ZDT0sRThJ+NKy99CqLvCwxk8HRgz dmydbOFDJIXTX66mRj8kruOipX4baGjBR4yCMKWeiKggFvHOB0JPn49dsJmol+TpckMz0wFvmcbzW iA+PZvmQ==; Original-Received: from cpc142648-benw12-2-0-cust627.16-2.cable.virginm.net ([82.10.74.116]:51836 helo=russet.org.uk) by cloud103.planethippo.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1l8pE9-0007Y1-F3; Sun, 07 Feb 2021 18:56:09 +0000 In-Reply-To: <87o8gwlhbr.fsf@telefonica.net> (=?utf-8?Q?=22=C3=93scar?= Fuentes"'s message of "Sun, 07 Feb 2021 03:52:56 +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 Received-SPF: none client-ip=78.129.138.110; envelope-from=phillip.lord@russet.org.uk; helo=cloud103.planethippo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:264130 Archived-At: =C3=93scar Fuentes writes: > Phillip Lord writes: > >> =C3=93scar Fuentes writes: >> >> Well I agree. But "fat beast" is an understatement. If I install msys2, >> Emacs and all the dependencies, it comes in at nearly 2Gb on disk. The >> install takes around half an hour on my machine (and only that fast >> because I turn of the Windows antimalware service). > > The dominating factor on my experience is the download time. Telling > pacman to use the right mirror solves this. (See > /etc/pacman.d/mirrorlist.* ) I am running it in an under powered VM, which probably explains the difference. >> It also includes a >> pile of stuff that the user might not want (i.e. python or ruby) because >> they have their own installation already. > > There are some serious python buffs among the MSYS2 maintainers and it > is listed as a dependency of anything that could remotely use it, but > ruby is not in my installs (searched for ruby.*) and they certainly > contain much more than Emacs needs, although I don't install all > optional dependencies. > > Maybe your dependency list would benefit from some review. Just show it. I just said "ruby" as it appeared in the corner of my eye. The full dependency list is this: mingw-w64-x86_64-giflib mingw-w64-x86_64-gnutls mingw-w64-x86_64-harfbuzz mingw-w64-x86_64-jansson mingw-w64-x86_64-lcms2 mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-libpng mingw-w64-x86_64-librsvg mingw-w64-x86_64-libtiff mingw-w64-x86_64-libxml2 mingw-w64-x86_64-xpm-nox I notice that it's missing gmp which I think it should have although it's gets it transitively. On native-comp this also needs: mingw-w64-x86_64-libgccjit >> But, you are correct, a value add with all the tools installation of >> Emacs might as well just be an msys2 install running. I believe you >> already have already done that work! Or a powershell script that pulls >> down msys2 installs it and dependencies and then pulls down >> Emacs-no-deps over the top might be the way to go. > > I have a trivial bash script that installs several packages. I use it > after a fresh MSYS2 install and then I'm ready to go. Downloading MSYS2, > installing it, running the script... it all takes about 30 seconds of > attended work. It's that simple. Yes. I think that is a good way to go; I was looking at something similar, except it would install msys2 as well over the top of an Emacs install. And then update the msys2 install to be useful. >>>> At the moment, number one is working, number two I think needs to be >>>> solved as lots of people will want native comp on windows, and number >>>> three is (and may remain) aspirational. >>> >>> The goal you are pursuing is difficult enough and, IMHO, you are >>> complicating it further by adding (somewhat fuzzy) requirements that lie >>> beyond the point that seems reasonable to me, speaking as an Emacs user. >> >> >> Maybe. What I see is people using Emacs and getting their spelling wrong >> because there is no spell checker. > > This Emacs has an spell checker and I get spelling wrong, as well as > grammar and everything else :-) > > The route of creating an MSYS2 binary package (well, two, if you wish to > support i686) is as easy as it gets: create the package (I can help you > with it if the current PKGBUILD for mingw-w64-emacs-git in > https://github.com/msys2/MINGW-packages-dev/tree/master/mingw-w64-emacs-g= it > needs work). Then instruct the users to install MSYS2, download your > binary package and install it with pacman (copy and paste a command on > the MSYS2 shell). The most difficult step is to create a desktop icon > for runemacs.exe, which can be manually accomplished on the usual way > (and we used to have a tool for that, IIRC). That's about two minutes of > attended work. I was thinking of doing it the other way up. We install Emacs as now (either unzipping or using the installer). Then, Emacs runs, detects the first run and says "do you want to install msys2 also". If it does, then away we go, otherwise, we leave as is -- an editor rather than a pilot of multiple tools. My original though was to bundle this into the install, but having done a little bit of picking, I think a better solution would be to have the first run of Emacs install a package from ELPA, which would actually do the msys install. > At that point, you solved the dependencies problem, the source code > availability problem (for the dependencies) and delegated lots of > maintenance work. > > But we need /mingw64/bin (its native equivalent, actually) on exec-path > for the .exe dependencies to work. We can tell the users to modify their > .emacs.el, but it would be much nicer if Emacs did that itself. I would agree. This would also mean we could point Emacs as an existing msys2 installation. Or install Emacs in one place and msys2 in another. > Oh, and we still miss some dependencies, like `find'. But that can be > added too, once we (the MSYS2 contributors) check that it will not break > other things. > > Oh-2, currently MSYS2's Emacs does not install some things (e/ctags, > IIRC) because there are better alternatives on the repository. And some critical things, like git which is not available as a mingw64 package; I have knocked together an mingw package for it; I have no idea whether the msys2 maintainers would be interested in it. Are you interested in helping with something along these lines? I have only so much time to give to Emacs and it will take me sometime to get any of this done. If so, we can write up a slightly more detailed plan. Phil