From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Arsen_Arsenovi=C4=87?= Newsgroups: gmane.emacs.help Subject: Re: How many packages do you use? Date: Sun, 25 Feb 2024 14:57:56 +0100 Message-ID: <861q90pq8n.fsf@aarsen.me> References: <87bk892jcv.fsf@dataswamp.org> <878r3crncd.fsf@aarsen.me> <87ttlz27ta.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8642"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sun Feb 25 15:35:00 2024 Return-path: Envelope-to: geh-help-gnu-emacs@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 1reFam-00021C-Ej for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 25 Feb 2024 15:35:00 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1reFaJ-00067s-BA; Sun, 25 Feb 2024 09:34:31 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1reFaH-00067H-SR for help-gnu-emacs@gnu.org; Sun, 25 Feb 2024 09:34:29 -0500 Original-Received: from mout-p-202.mailbox.org ([2001:67c:2050:0:465::202]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1reFaC-00075U-MO for help-gnu-emacs@gnu.org; Sun, 25 Feb 2024 09:34:29 -0500 Original-Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:b231:465::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4TjR8V4m5Pz9sb2 for ; Sun, 25 Feb 2024 15:34:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aarsen.me; s=MBO0001; t=1708871658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5/S3hL6sr9Tx4pPltrkuEkgTz94IqcRLEZDAgW1YcxE=; b=pYjkjrmkFLSg/Q71Fb/SGVEkv3fYlPqOSiAPE7lPCxaIkBTlIKACKn90GMnBVt6xvoZtis +F02vU98CMLnq7bVQHA7VWkt/cplWU8upEn52S9pWxxxQBB/wgnHoI2296zguK8bPLUV14 XQ76TlRpGEhakBUCKvYfBGP3cMZduEXWLyyjudkgv3PGL+WFhN8Vhb9xZ0fRB7//Z4wUH3 rgGXVcNapE7kktnYNQxXypayI4MEcPNrchZlg+Tx86oizgdV1cE7bzlJNA9nTY/dz+f7VB Fq7UwlVaHfTal0k5kAx7IrI/WuI22/IeOwKo38jFFVOQ4MjUFo88Pp/LT4gsfA== In-Reply-To: <87ttlz27ta.fsf@dataswamp.org> (Emanuel Berg's message of "Fri, 23 Feb 2024 04:11:45 +0100") X-Rspamd-Queue-Id: 4TjR8V4m5Pz9sb2 Received-SPF: pass client-ip=2001:67c:2050:0:465::202; envelope-from=arsen@aarsen.me; helo=mout-p-202.mailbox.org 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_HELO_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:145985 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, Emanuel Berg writes: > Arsen Arsenovi=C4=87 wrote: > >>> $ grep -h -o '(require .*)' **/*.el | sort -u | wc -l >>> >>> I use 159! >> >> ~$ qlist -I app-emacs/ | wc -l >> 63 >> >> ... and a few more through USE=3Demacs. > > ? > > What commands and directory are those? 'qlist' is a Gentoo tool for listing installed packages and their files. Gentoo packages many Emacs packages as 'app-emacs/${name}' (Gentoo packages are namespaced by category, in this instance 'app-emacs'). 'USE=3Demacs' enables Emacs support in a few other packages, which enables some more packages (e.g. dev-build/autoconf installs the autoconf mode). I have 24 packages with USE=3Demacs, so that's about 80-some total ($(($(qlist -I app-emacs/ | wc -l) + $(quse -I emacs | wc -l))) =3D 87) >>> Isn't it amazing that one almost never has any collisions >>> doing it? Actually, I can't think of a single time that >>> happened. But maybe it happened once or twice as I don't >>> remember everything that happens. >> >> Depending on what you mean by collisions, I might or might >> not have had some. > > If you bring in a bunch of stuff onto a global namespace, you > get a collision if two things are called the same. Ah, I see. Thankfully, I don't think I've seen that either, which, now that you mention it, is rather impressive! >>> Maybe this shows that built-in and/or enforced modularity >>> is over-rated? >> >> I'm not sure I can agree even if that were true - I don't >> see how one implies the other. > > One way of doing it is to have everything refered to by a full > path or other composition notation involving the module name, > so some function 'sin' from the package 'math' would be called > by 'math:sin' or using some similar syntax to that end. And if > there are two packages called 'math' one would etc etc. > > But any such schemes seems to be unnecessary, at least here. It'd help with some issues I think, for instance, it'd make it easier to tell when a (require) is needed or such. Emacs already has modularity, but out of necessity rather than as a development tool, it seems to me. The Haskell import system by default does unqualified imports (i.e. no prefixes), but can make them qualified with an arbitrary prefix. For Python, the default is inverse but the rest holds. I think both of these are nice compromises and make for quite useful and usable modularity. Have a lovely day! =2D-=20 Arsen Arsenovi=C4=87 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iOYEARYKAI4WIQT+4rPRE/wAoxYtYGFSwpQwHqLEkwUCZdtP6F8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0RkVF MkIzRDExM0ZDMDBBMzE2MkQ2MDYxNTJDMjk0MzAxRUEyQzQ5MxAcYXJzZW5AYWFy c2VuLm1lAAoJEFLClDAeosSTRZQA/0OqOmddNkq9NcLcTwC3wPHNmXKt2VBiQkLf QRlAmHepAP9C9hYztCJQeoUplM+9Jvidzp54k9c6ZyAcJOeik9xRBg== =9AsI -----END PGP SIGNATURE----- --=-=-=--