GNU bug report logs - #71573
[PATCH] seconds-to-string-approximate

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: wishlist; Reported by: JD Smith <jdtsmith@HIDDEN>; Keywords: patch; merged with #71572; dated Sat, 15 Jun 2024 17:25:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 71573 <at> debbugs.gnu.org:


Received: (at 71573) by debbugs.gnu.org; 22 Jun 2024 21:54:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 22 17:54:47 2024
Received: from localhost ([127.0.0.1]:33424 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sL8h5-0005rv-FK
	for submit <at> debbugs.gnu.org; Sat, 22 Jun 2024 17:54:47 -0400
Received: from blue.aspen.relay.mailchannels.net ([23.83.221.20]:1853)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <adam@HIDDEN>) id 1sL8h2-0005rj-Pu
 for 71573 <at> debbugs.gnu.org; Sat, 22 Jun 2024 17:54:46 -0400
X-Sender-Id: dreamhost|x-authsender|adam@HIDDEN
Received: from relay.mailchannels.net (localhost [127.0.0.1])
 by relay.mailchannels.net (Postfix) with ESMTP id EFE43829B7;
 Sat, 22 Jun 2024 21:54:43 +0000 (UTC)
Received: from pdx1-sub0-mail-a235.dreamhost.com (unknown [127.0.0.6])
 (Authenticated sender: dreamhost)
 by relay.mailchannels.net (Postfix) with ESMTPA id 8A3DE8343F;
 Sat, 22 Jun 2024 21:54:43 +0000 (UTC)
ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1719093283; a=rsa-sha256;
 cv=none;
 b=I5Qs79jKvJdeQyJBk+QXwdILVADjLZTIiwtLlamZlfTigwoISDkWuop6OCzecdPYSR60om
 qjPXFvh1TJE4XZDU/Tr1nG44AGPWb07wgDt7eP7n+HUOOwL7NJWlMWYgKVJkEllK35bZuC
 4H1qLZ9DijrmA1R62W3keir7g1hKtMWyJQh0GaBkmCld3TUwLMPW8lCa2sbe0iCt9V6WoG
 exUceqnrRAxlJw2qWq0A9pd/lzfI2FyUUR1kqKI8DIk0YJZXkyFTeB7px9PGVmKJ/ec+8+
 JaUJqFVIzFz7X1LszApz6j3TaxFUMvw8MNw68i6n0mJij/N2aZhIRS+27Dcptg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mailchannels.net; s=arc-2022; t=1719093283;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references:dkim-signature;
 bh=hwJdZyAP8rTCf+g4pvCXrRU2EeoqbcRPvocxImHbX3c=;
 b=R4zriHqXinTRg1IYYvHJmCTOkEDQJYGPZrFoMHZjHFV9DcCzGEPq6e0y5nOkr2lgqzdv+0
 vA9yC2LeBoE1VWByWUXiQ7o170El+xbKTtjRtViW/XUpYC8ZtsdWWn6G6v5fQErvuH0gGs
 4c6ROkgZr9fzpmXaglcezNO/AglvuNnjhmPofXrnoC1m4tA7bHhQVYakvoo//5ce9n8BN/
 3wPDsfmjfzPHqQVX/EDXni1laujbpus/hq812as475VuBIX8APsShwJ2+2aXIbUN73W0em
 P6GsW7csXMEc3OANa2piIP2ZbQpxJq5e5RFxxEtbg4hoRpuv+Z3DN/ztHk1hlw==
ARC-Authentication-Results: i=1; rspamd-7f76976655-9hqsp;
 auth=pass smtp.auth=dreamhost smtp.mailfrom=adam@HIDDEN
X-Sender-Id: dreamhost|x-authsender|adam@HIDDEN
X-MC-Relay: Junk
X-MailChannels-SenderId: dreamhost|x-authsender|adam@HIDDEN
X-MailChannels-Auth-Id: dreamhost
X-Tart-Attack: 1a5e75a53e162b2e_1719093283798_2798637829
X-MC-Loop-Signature: 1719093283797:2643423600
X-MC-Ingress-Time: 1719093283797
Received: from pdx1-sub0-mail-a235.dreamhost.com (pop.dreamhost.com
 [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384)
 by 100.102.231.70 (trex/6.9.2); Sat, 22 Jun 2024 21:54:43 +0000
Received: from [10.17.178.125] (unknown [172.98.33.7])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 (Authenticated sender: adam@HIDDEN)
 by pdx1-sub0-mail-a235.dreamhost.com (Postfix) with ESMTPSA id 4W67LC14GWz2D; 
 Sat, 22 Jun 2024 14:54:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alphapapa.net;
 s=dreamhost; t=1719093283;
 bh=hwJdZyAP8rTCf+g4pvCXrRU2EeoqbcRPvocxImHbX3c=;
 h=Date:Subject:To:From:Content-Type:Content-Transfer-Encoding;
 b=jiqtIftku81odNTPdXLF+MXugTvVJ2PG85sGJKXRNDBGg6YJ74cMzlzDanm97HwK9
 nc2jXGAmrG1Y02NrlLWk/2p2Av6Sv5BT/k9RlnOfPxaEmA4RGah/dHesDwiQ8vkxho
 xopTE+Tayh/t6FeCPCWc9lX6xRKbKn87WHM2aPVuIIN2l0BXCoVykVfMqq/VevYeUX
 HDjOTO97D14Q/4uOVta5Pp6CnwzrYp+IDUv38Eqg8wOuAL7+IymId2fC85M7fbNg76
 SfsMxJG4jxO654o4vxc7yB8yq3jUYriKQ2QrzlCJaTNmsDLQjkD90VpRdva0W8D2mj
 OFiefCoZ1rWzQ==
Message-ID: <b513e478-8bad-403d-92ab-722e08fed7f0@HIDDEN>
Date: Sat, 22 Jun 2024 16:54:42 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#71573: Related functions from ts.el
To: Stefan Kangas <stefankangas@HIDDEN>, 71573 <at> debbugs.gnu.org
References: <D91AFAEE-C909-4238-AFF2-226727D4B0F6@HIDDEN>
 <0f564d69-2d04-49b9-935d-15ed8741c7ba@HIDDEN>
 <CADwFkm=NsER5DZxCFve9AGUKbxz8QY-ZMYN__Fb=W+NxigmQEw@HIDDEN>
Content-Language: en-US
From: Adam Porter <adam@HIDDEN>
In-Reply-To: <CADwFkm=NsER5DZxCFve9AGUKbxz8QY-ZMYN__Fb=W+NxigmQEw@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.6 (/)
X-Debbugs-Envelope-To: 71573
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.4 (/)

On 6/22/24 05:55, Stefan Kangas wrote:
> Adam Porter <adam@HIDDEN> writes:
> 
>> ;; See also the built-in function `format-seconds', which I seem to have
>> ;; overlooked before writing this.  However, a quick benchmark, run
>> ;; 100,000 times, shows that, when controllable formatting is not needed,
>> ;; `ts-human-format-duration' is much faster and generates less garbage:
>>
>> ;; | Form                     | x faster than next | Total runtime | #
>> of GCs | Total GC runtime |
>> ;;
>> |--------------------------+--------------------+---------------+----------+------------------|
>> ;; | ts-human-format-duration | 5.82               |      0.832945 |
>>      3 |         0.574929 |
>> ;; | format-seconds           | slowest            |      4.848253 |
>>     17 |         3.288799 |
> 
> Is this used a lot in hot loops?  IOW, is it worth optimizing?

It can be.  Imagine formatting timestamps for thousands of items in a 
vtable.  And imagine that happening frequently, e.g. if the vtable is 
redrawn automatically to account for data having arrived over the network.

> If yes, how about adding something like what you have as an optimization
> to `format-seconds` for when the format is very simple?  Would that
> remove the need for `ts-human-format-duration'?

I don't know what form such an optimization would take.  Perhaps someone 
could profile it and optimize some hot spots in it, but I'll have to 
decline that to-do for now, as my list is much too long already.  :)

BTW, please note that I don't claim that ts-human-format-duration is 
superior to format-seconds, because the latter is different and has some 
additional features.  Rather, ts-human-format-duration is an alternative 
that can sometimes be worth using instead.  I present it as food for 
thought when considering to implement related functionality.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#71573; Package emacs. Full text available.

Message received at 71573 <at> debbugs.gnu.org:


Received: (at 71573) by debbugs.gnu.org; 22 Jun 2024 10:56:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 22 06:56:53 2024
Received: from localhost ([127.0.0.1]:44526 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sKyQP-0003ei-Dz
	for submit <at> debbugs.gnu.org; Sat, 22 Jun 2024 06:56:53 -0400
Received: from mail-lj1-f171.google.com ([209.85.208.171]:44060)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1sKyQK-0003eQ-4J
 for 71573 <at> debbugs.gnu.org; Sat, 22 Jun 2024 06:56:51 -0400
Received: by mail-lj1-f171.google.com with SMTP id
 38308e7fff4ca-2ebeefb9a7fso31992931fa.0
 for <71573 <at> debbugs.gnu.org>; Sat, 22 Jun 2024 03:56:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1719053742; x=1719658542; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:mime-version:references:in-reply-to:from
 :from:to:cc:subject:date:message-id:reply-to;
 bh=m8NmohMeAaELX/SnI17bqtjo8SOJC+LEtR98VEJPITc=;
 b=FNdgzlNJIjw7M3YGo1XWSdpmfthkEyE1NsXzU080Mb7k+fXJqqcyIjwpcVUXX0geT8
 X5kCEGFAbgCMbUAFU5MoWd+X5fp8BBMXh+2JVVeiVcQNWNqZ6hj56MXuCtjBZyBGGCB4
 DnavGsUIPqLAzD8O8VlB8vqOBugN8yu4X979VqkNgCW+5fGzAw5O9Mwx6eU3NeMfY+fA
 PspgdgGXyHPwIAtXway6UIUlmiRinEWefUhsZ1YTiaZ3I/yefAHHQkJXy+XEKcKROy2X
 2dM7seeCoVm3IZXOqQVHPrdPQo9JgsejUTTE2CgCAG9P4HilMZlj+7HjHkqE9QZH1J4a
 UUmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1719053742; x=1719658542;
 h=to:subject:message-id:date:mime-version:references:in-reply-to:from
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=m8NmohMeAaELX/SnI17bqtjo8SOJC+LEtR98VEJPITc=;
 b=WfzNRO/mgMjNa4fkeJQqwuYuPlPYLF5cR/5WNkjDGEBvIeS9ibILO4I5MlzRqh2Ubf
 rxN/03IdQ7pmX3/YAazMfxvjFKBjObxjtu4zeqpE3NPlIuDgF6vBTuycNMJm2b/t+xbP
 Ed4FD/04+1TFxRfQ0/8QJF1m5fTk6JJSsL3i1RfmTstxGVv9YN5hzsD1890t27gGlF1s
 /E0pMfTQp7lwtPQbUKqSrLouT5PieRt+oKteTkVA3iu1FVua85yY6uLHnXqm1V8WJBeT
 AfTDRqH7sntRmTVjaZvva9h6yGnO4P0mizHASMadVdeI81TOSJnKBRk2LrGab1fL7IXk
 ipqg==
X-Forwarded-Encrypted: i=1;
 AJvYcCVHugRJXtd/yuDMJq9D2IzAE699yR25XzDYPmA7BivQCCCXVQ1yCw7gQ7whDP2y2HVtfgAib7iMFK6TN+ZrQJQaMXcH6Lg=
X-Gm-Message-State: AOJu0YzDb9tTrsOsDoStZdVkwZw/8bgY5l/iC+d550OHZArCfUUUvWeX
 PKi2uT4Frk8YQGIWLWC1b9zb9URk6IaglT7Ww4FLYqkXJORs5I03rqGNIPsh5RHEAaIzOGTiM2V
 fd8XdWwlue8Iyl/dDm3D808hBrQHzX+LK
X-Google-Smtp-Source: AGHT+IHKvyF/sHHSSLnJ9jOi7R8/uPwKjxjbVZn8eWNOck4GG0p1mBCzojJE+ag11ExWYboRqU4HR30axPhwqYutmZk=
X-Received: by 2002:a2e:8717:0:b0:2ec:4f0c:3705 with SMTP id
 38308e7fff4ca-2ec579ffb4dmr4404241fa.46.1719053741904; Sat, 22 Jun 2024
 03:55:41 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 22 Jun 2024 03:55:41 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <0f564d69-2d04-49b9-935d-15ed8741c7ba@HIDDEN>
References: <D91AFAEE-C909-4238-AFF2-226727D4B0F6@HIDDEN>
 <0f564d69-2d04-49b9-935d-15ed8741c7ba@HIDDEN>
MIME-Version: 1.0
Date: Sat, 22 Jun 2024 03:55:41 -0700
Message-ID: <CADwFkm=NsER5DZxCFve9AGUKbxz8QY-ZMYN__Fb=W+NxigmQEw@HIDDEN>
Subject: Re: bug#71573: Related functions from ts.el
To: Adam Porter <adam@HIDDEN>, 71573 <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 71573
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Adam Porter <adam@HIDDEN> writes:

> ;; See also the built-in function `format-seconds', which I seem to have
> ;; overlooked before writing this.  However, a quick benchmark, run
> ;; 100,000 times, shows that, when controllable formatting is not needed,
> ;; `ts-human-format-duration' is much faster and generates less garbage:
>
> ;; | Form                     | x faster than next | Total runtime | #
> of GCs | Total GC runtime |
> ;;
> |--------------------------+--------------------+---------------+----------+------------------|
> ;; | ts-human-format-duration | 5.82               |      0.832945 |
>     3 |         0.574929 |
> ;; | format-seconds           | slowest            |      4.848253 |
>    17 |         3.288799 |

Is this used a lot in hot loops?  IOW, is it worth optimizing?

If yes, how about adding something like what you have as an optimization
to `format-seconds` for when the format is very simple?  Would that
remove the need for `ts-human-format-duration'?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#71573; Package emacs. Full text available.

Message received at 71573 <at> debbugs.gnu.org:


Received: (at 71573) by debbugs.gnu.org; 17 Jun 2024 06:20:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 17 02:20:15 2024
Received: from localhost ([127.0.0.1]:59330 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sJ5iw-0007kO-U6
	for submit <at> debbugs.gnu.org; Mon, 17 Jun 2024 02:20:15 -0400
Received: from bonobo.banana.relay.mailchannels.net ([23.83.217.22]:58647)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <adam@HIDDEN>) id 1sJ5is-0007kC-4Z
 for 71573 <at> debbugs.gnu.org; Mon, 17 Jun 2024 02:20:13 -0400
X-Sender-Id: dreamhost|x-authsender|adam@HIDDEN
Received: from relay.mailchannels.net (localhost [127.0.0.1])
 by relay.mailchannels.net (Postfix) with ESMTP id EC6314284D
 for <71573 <at> debbugs.gnu.org>; Mon, 17 Jun 2024 06:20:05 +0000 (UTC)
Received: from pdx1-sub0-mail-a313.dreamhost.com (unknown [127.0.0.6])
 (Authenticated sender: dreamhost)
 by relay.mailchannels.net (Postfix) with ESMTPA id 842CA427C0
 for <71573 <at> debbugs.gnu.org>; Mon, 17 Jun 2024 06:20:05 +0000 (UTC)
ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1718605205; a=rsa-sha256;
 cv=none;
 b=x8ReSYWmlg8+V0IXhNqRGikRIzXdRKe9AIYd8TziYjbSJtgM1lCBIaydBilH5JyJrphUS0
 49utZOVHOcDcdSOfiO7qR4DIZ86kZre1x0ffPSOP/GyUclutDhBEoxI/uBw1CPI9pntWYl
 NnJh1ETj1VXTz8Hbee7Eops+R5+b7r267STTAsChLLZxrtAkNSxQF770Dhs3m94elGuEnD
 mHT1rtLETD542g0Khc/tNQ/68QmXYSrkaTQa5QY7YbmdYO3gBqWsGyE+sIbcsKCvH9MOrK
 RQjomsEmINfXWm08/2Z5vCMWhfGjIZ4AdfPQuyAqjdVkmH0JhK/zWzQKpCgGPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mailchannels.net; s=arc-2022; t=1718605205;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:dkim-signature;
 bh=ZxiXVsF7QMEKEtzTG4MzsMiWpaT84kSc+T8AROwXUlk=;
 b=yPLLd0SfmFmcu2mFtrFaFNvHDwFBQOS7PRQAbTjmGG5xEIGqE4Hx4jEgi2iZO17Lg3r7yl
 VMC0UJ295F+zAM96xLFF6Z1h0K7YumuNR4un8uOedAXfUAsMhuYbOlTRTDpEaTNbH6dRuQ
 JaCtilIUzxSbUSy5EufzW86mL88Fui+6V1mpMS8sixvz2LiCekNuhbNe6W3B+1s72qUlin
 NII+w9IYvawAY5lqnV8WN0LZ4Fxc3TV7dNrzPhEhmkW9MY/PKL1UE/iruba0I54xnuHun9
 EoQc6t6i6Gfd94PsCw66woX+TmIotewQl/n47YvQtR9ti9lY+aJYeVb5OERtYA==
ARC-Authentication-Results: i=1; rspamd-79677bdb95-pq7kx;
 auth=pass smtp.auth=dreamhost smtp.mailfrom=adam@HIDDEN
X-Sender-Id: dreamhost|x-authsender|adam@HIDDEN
X-MC-Relay: Junk
X-MailChannels-SenderId: dreamhost|x-authsender|adam@HIDDEN
X-MailChannels-Auth-Id: dreamhost
X-Little-Invention: 674a568e2bcb89e5_1718605205749_541955930
X-MC-Loop-Signature: 1718605205749:385998355
X-MC-Ingress-Time: 1718605205749
Received: from pdx1-sub0-mail-a313.dreamhost.com (pop.dreamhost.com
 [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384)
 by 100.121.33.136 (trex/6.9.2); Mon, 17 Jun 2024 06:20:05 +0000
Received: from [10.144.73.185] (unknown [172.98.33.227])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 (Authenticated sender: adam@HIDDEN)
 by pdx1-sub0-mail-a313.dreamhost.com (Postfix) with ESMTPSA id 4W2fr51frcz6F
 for <71573 <at> debbugs.gnu.org>; Sun, 16 Jun 2024 23:20:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alphapapa.net;
 s=dreamhost; t=1718605205;
 bh=ZxiXVsF7QMEKEtzTG4MzsMiWpaT84kSc+T8AROwXUlk=;
 h=Date:To:From:Subject:Content-Type:Content-Transfer-Encoding;
 b=Z2iFYTy/5EggbbMrxRctKmfuVQMLPBvtHj6YsAa3VZkcwiPr2isMnOgKzATHfbMmp
 XVhbCqImLBLSjqOUTrhbXXC06ZuJyvdHPEOrEhuCzno9uDepdR4Po/LqBG0CBnMrO1
 rcjIijL10/BmM8FegxyxUpLc/LTxm1yImxarUQ5FNETlJUChVSAF9s0MLmlA82VBI1
 QhVV6h5KvziXnbciSXndB5vaANF7CW9ZMAeiYVimKS19finne6hJjFaoRd8HNBqlXX
 wwllxgw1HeHvoNMWzTNhcFsxbdUxVpmPx0nx9UbpAFIHGA00SJXN9S+8J8TD2S5BnL
 jCDysX7KBvaqw==
Message-ID: <0f564d69-2d04-49b9-935d-15ed8741c7ba@HIDDEN>
Date: Mon, 17 Jun 2024 01:20:04 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: 71573 <at> debbugs.gnu.org
From: Adam Porter <adam@HIDDEN>
Subject: Related functions from ts.el
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 4.2 (++++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  Hi all, FWIW,
 my ts.el timestamp library has the related functions
 `ts-human-duration' and `ts-human-format-duration'. See
 <https://github.com/alphapapa/ts.el/blob/552936017cfdec89f7fc20c254ae6b37c3f22c5b/ts.
 [...] Content analysis details:   (4.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [172.98.33.227 listed in zen.spamhaus.org]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
 no trust [23.83.217.22 listed in list.dnswl.org]
 0.7 SPF_NEUTRAL            SPF: sender does not match SPF record (neutral)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
X-Debbugs-Envelope-To: 71573
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 3.2 (+++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  Hi all, FWIW, my ts.el timestamp library has the related functions
    `ts-human-duration' and `ts-human-format-duration'. See <https://github.com/alphapapa/ts.el/blob/552936017cfdec89f7fc20c254ae6b37c3f22c5b/ts.
    [...] 
 
 Content analysis details:   (3.2 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [172.98.33.227 listed in zen.spamhaus.org]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [23.83.217.22 listed in list.dnswl.org]
  0.7 SPF_NEUTRAL            SPF: sender does not match SPF record (neutral)
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

Hi all,

FWIW, my ts.el timestamp library has the related functions
`ts-human-duration' and `ts-human-format-duration'.  See 
<https://github.com/alphapapa/ts.el/blob/552936017cfdec89f7fc20c254ae6b37c3f22c5b/ts.el#L440-L491> 
and code below.

They work a bit differently, but I've found them very useful in my other
Elisp projects, and my profiling has shown that they perform very well 
relative to, e.g. the existing `format-seconds' function in terms of 
runtime and GC (see benchmarks in source comments).

If any of the code in ts.el would be helpful, I'd be glad to contribute
it to Emacs (some discussion about upstreaming parts of ts.el has also 
been going on in other, Org-related contexts).

--Adam

Elisp follows:

(defun ts-human-duration (seconds)
   "Return plist describing duration SECONDS.
List includes years, days, hours, minutes, and seconds.  This is
a simple calculation that does not account for leap years, leap
seconds, etc."
   ;; TODO: Add weeks.
   (cl-macrolet ((dividef (place divisor)
                          ;; Divide PLACE by DIVISOR, set PLACE to the 
remainder, and return the quotient.
                          `(prog1 (/ ,place ,divisor)
                             (setf ,place (% ,place ,divisor)))))
     (let* ((seconds (floor seconds))
            (years (dividef seconds 31536000))
            (days (dividef seconds 86400))
            (hours (dividef seconds 3600))
            (minutes (dividef seconds 60)))
       (list :years years :days days :hours hours :minutes minutes 
:seconds seconds))))

;; See also the built-in function `format-seconds', which I seem to have
;; overlooked before writing this.  However, a quick benchmark, run
;; 100,000 times, shows that, when controllable formatting is not needed,
;; `ts-human-format-duration' is much faster and generates less garbage:

;; | Form                     | x faster than next | Total runtime | # 
of GCs | Total GC runtime |
;; 
|--------------------------+--------------------+---------------+----------+------------------|
;; | ts-human-format-duration | 5.82               |      0.832945 | 
    3 |         0.574929 |
;; | format-seconds           | slowest            |      4.848253 | 
   17 |         3.288799 |

(cl-defun ts-human-format-duration (seconds &optional abbreviate)
   "Return human-formatted string describing duration SECONDS.
If SECONDS is less than 1, returns \"0 seconds\".  If ABBREVIATE
is non-nil, return a shorter version, without spaces.  This is a
simple calculation that does not account for leap years, leap
seconds, etc."
   ;; FIXME: Doesn't work with negative values, even though 
`ts-human-duration' does.
   (if (< seconds 1)
       (if abbreviate "0s" "0 seconds")
     (cl-macrolet ((format> (place)
                            ;; When PLACE is greater than 0, return 
formatted string using its symbol name.
                            `(when (> ,place 0)
                               (format "%d%s%s" ,place
                                       (if abbreviate "" " ")
                                       (if abbreviate
                                           ,(substring (symbol-name 
place) 0 1)
                                         ,(symbol-name place)))))
                   (join-places (&rest places)
                                ;; Return string joining the names and 
values of PLACES.
                                `(->> (list ,@(cl-loop for place in places
                                                       collect `(format> 
,place)))
                                      -non-nil
                                      (s-join (if abbreviate "" ", ")))))
       (-let* (((&plist :years :days :hours :minutes :seconds) 
(ts-human-duration seconds)))
         (join-places years days hours minutes seconds)))))




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#71573; Package emacs. Full text available.
Merged 71572 71573. Request was from Eli Zaretskii <eliz@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 71573 <at> debbugs.gnu.org:


Received: (at 71573) by debbugs.gnu.org; 15 Jun 2024 18:05:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 15 14:05:07 2024
Received: from localhost ([127.0.0.1]:37531 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sIXlz-0005zY-4b
	for submit <at> debbugs.gnu.org; Sat, 15 Jun 2024 14:05:07 -0400
Received: from eggs.gnu.org ([209.51.188.92]:41848)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>)
 id 1sIXlx-0005yl-Dj; Sat, 15 Jun 2024 14:05:06 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sIXJu-0002CH-MI; Sat, 15 Jun 2024 13:36:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=DiXeSMmNTyG6TCNdz0dvi5dKl4hhbuH3uEHKrna1FKY=; b=lIx1FGSQVAGckmH3UQ90
 UefpTybSDyF0/N+I3dMvbL9CKhul+ewKbGr7fkL/OaNKS19Ybdha6rXSeePWh5b61sTqOtSt+5cAB
 KqbJUoDCfqBPIyTyF3iO3jFeWVHMnu04tq2ot9cX18ONjnqza9p4b7YwKlyQv0eBwGR3y0LRKLdju
 DUOY0mVPWGhq+HQYn93ow21nMJgaLxW9PFSj4OeW2rj+wIAoO02InL1oC0lobM5gExV3Y/TsgXkLT
 vKaACWh+gbFQhvmFI/G6yn4CqwfjTGD2Df2qZk1cpqAQkw6cWXWYz6sEZawAt47LzaCR367WLpaqq
 TG67wxQReuvPDw==;
Date: Sat, 15 Jun 2024 20:36:01 +0300
Message-Id: <8634pet8fy.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: JD Smith <jdtsmith@HIDDEN>
In-Reply-To: <D91AFAEE-C909-4238-AFF2-226727D4B0F6@HIDDEN> (message from JD
 Smith on Sat, 15 Jun 2024 13:24:00 -0400)
Subject: Re: bug#71573: [PATCH] seconds-to-string-approximate
References: <D91AFAEE-C909-4238-AFF2-226727D4B0F6@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 71573
Cc: 71573 <at> debbugs.gnu.org, adam@HIDDEN, jonas@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

merge 71573 71572
thanks

> Cc: Adam Porter <adam@HIDDEN>, jonas@HIDDEN
> From: JD Smith <jdtsmith@HIDDEN>
> Date: Sat, 15 Jun 2024 13:24:00 -0400
> A very useful and widely used time operation is to approximate a given delay or age (in seconds) using a human-readable unit — think "2 hours", "5 days",  "3 weeks", or "7 months".  We have `seconds-to-string', but it provides more precision than is often required, skips some meaningful "human readable" duration units like weeks and months, and uses abbreviated units exclusively.  
> 
> For those familiar with magit, the `magit--age' function has provided this capability for quite some time (e.g. for short commit age), and other packages have adapted it.  It would be useful to have a version in core.
> 
> This patch provides a `seconds-to-string-approximate' function based loosely on `magit--age' and `seconds-to-string'.  It allows using abbreviated or full units, and can optionally round to the nearest half-unit.

This is a duplicate of bug#71572, merging.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#71573; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 15 Jun 2024 17:24:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 15 13:24:26 2024
Received: from localhost ([127.0.0.1]:34684 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sIX8b-0004A8-CU
	for submit <at> debbugs.gnu.org; Sat, 15 Jun 2024 13:24:25 -0400
Received: from lists.gnu.org ([209.51.188.17]:40980)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1sIX8X-00049h-Vl
 for submit <at> debbugs.gnu.org; Sat, 15 Jun 2024 13:24:24 -0400
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 <jdtsmith@HIDDEN>)
 id 1sIX8W-0004Ug-Sb
 for bug-gnu-emacs@HIDDEN; Sat, 15 Jun 2024 13:24:20 -0400
Received: from mail-yw1-x112f.google.com ([2607:f8b0:4864:20::112f])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <jdtsmith@HIDDEN>)
 id 1sIX8S-0008FK-63
 for bug-gnu-emacs@HIDDEN; Sat, 15 Jun 2024 13:24:17 -0400
Received: by mail-yw1-x112f.google.com with SMTP id
 00721157ae682-6316253dc2aso25853447b3.0
 for <bug-gnu-emacs@HIDDEN>; Sat, 15 Jun 2024 10:24:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1718472254; x=1719077054; darn=gnu.org;
 h=to:cc:date:message-id:subject:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=tEgXJ0zt2kVwQ7fz1Bay67qQEr2ZrCy6pptRY+wP0hA=;
 b=DNxRcji5wZt4+zQpLfoVYJJIqIIGVqe8X5vgMBh6fiJHwkNYYvCQL2OeMuS1atN9Z9
 Qm/ZH7lTYDJgJiHagQQhJfSd3i422idtV6ZN/BDn+FOj28x1UR8PWcwlf7IRQrZu47wX
 2y4YgoR7z0y3cEuj/LRjrFMJupKK52Vis8dnI32hRtmCCpA4OjKSqthzZ00d9/XDqINP
 rJQzCA22SUpMR6ObM9TP3lZU/78oc1UVFXErjkoFJk+gvWviVxjMshYs59W5cZvef0iv
 ITFhmd4CuIIsZEQErU6XEl+stvtF+PoUBXcdC8ofOS/mV4ug1pj24ePfMQ47HSnv6rfN
 6clQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1718472254; x=1719077054;
 h=to:cc:date:message-id:subject:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=tEgXJ0zt2kVwQ7fz1Bay67qQEr2ZrCy6pptRY+wP0hA=;
 b=Zkh7FeTH+t5CgVn21N8uZART60gN7sG3lSWKlIYLlPommk9pa2TbfJsHcf/CRnew+g
 eRarAQURdL/HH87YwU/GWqGO3T/WOprURV2SuKS5K1ZHmPmfxzWov8mH1AK56wlHA6pw
 uUHd8qbeWPlQT7trwCVSqu6jkhD9KHbpDZvg0tDKFkXrbhNU5EaoQseVxb0bYvcsA5Tv
 02lfUZ11KHrH00skJ3aX/+nFLS45Mif5b8GUWacgVmVaLVB8LTRpj/y6ky9EcXdHjM1m
 6AkFHvcWsWhchNVdDCzuFQEfN67QtgVRX7Fvgp2vvbfGqzatmdxzA0djeriOHMNnoE5W
 OTQA==
X-Gm-Message-State: AOJu0Yw6Kd+fdoCssnJmlWNdL+k/IBkodbAblpY3hcfe6xV6YFkUHg7w
 t5kxWnSY6s023vZZBlh3hGUYAdiaaQtukp82lilTCa7R3sundupb9SLtqw==
X-Google-Smtp-Source: AGHT+IEaxK25QSCv+U887olBduaQkZN2Nfj4caCfqp4QNTlT9aorv5m71aLbJr7wJORORD0PRQ1VgQ==
X-Received: by 2002:a81:b554:0:b0:630:c168:d23d with SMTP id
 00721157ae682-632226609acmr46361427b3.21.1718472253532; 
 Sat, 15 Jun 2024 10:24:13 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b2a5eb4a23sm33956936d6.75.2024.06.15.10.24.11
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 15 Jun 2024 10:24:12 -0700 (PDT)
From: JD Smith <jdtsmith@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_DF256C8E-CD44-4309-983F-3A06CCC42DF6"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\))
Subject: [PATCH] seconds-to-string-approximate
Message-Id: <D91AFAEE-C909-4238-AFF2-226727D4B0F6@HIDDEN>
Date: Sat, 15 Jun 2024 13:24:00 -0400
To: bug-gnu-emacs@HIDDEN
X-Mailer: Apple Mail (2.3774.600.62)
Received-SPF: pass client-ip=2607:f8b0:4864:20::112f;
 envelope-from=jdtsmith@HIDDEN; helo=mail-yw1-x112f.google.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, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
Cc: Adam Porter <adam@HIDDEN>, jonas@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


--Apple-Mail=_DF256C8E-CD44-4309-983F-3A06CCC42DF6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

A very useful and widely used time operation is to approximate a given =
delay or age (in seconds) using a human-readable unit =E2=80=94 think "2 =
hours", "5 days",  "3 weeks", or "7 months".  We have =
`seconds-to-string', but it provides more precision than is often =
required, skips some meaningful "human readable" duration units like =
weeks and months, and uses abbreviated units exclusively. =20

For those familiar with magit, the `magit--age' function has provided =
this capability for quite some time (e.g. for short commit age), and =
other packages have adapted it.  It would be useful to have a version in =
core.

This patch provides a `seconds-to-string-approximate' function based =
loosely on `magit--age' and `seconds-to-string'.  It allows using =
abbreviated or full units, and can optionally round to the nearest =
half-unit.


--Apple-Mail=_DF256C8E-CD44-4309-983F-3A06CCC42DF6
Content-Disposition: attachment;
	filename=seconds-to-string-approximate.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="seconds-to-string-approximate.patch"
Content-Transfer-Encoding: quoted-printable

diff=20--git=20a/lisp/calendar/time-date.el=20=
b/lisp/calendar/time-date.el=0Aindex=20eca80f1e8b6..079001bafe2=20100644=0A=
---=20a/lisp/calendar/time-date.el=0A+++=20b/lisp/calendar/time-date.el=0A=
@@=20-420,6=20+420,37=20@@=20seconds-to-string=0A=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(<=3D=20(car=20=
here)=20delay)))=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20(concat=20=
(format=20"%.2f"=20(/=20delay=20(car=20(cddr=20here))))=20(cadr=20=
here))))))=0A=20=0A+(defvar=20seconds-to-string-approximate=0A+=20=20=
`(("Y"=20"year"=20=20=20"years"=20=20=20,(round=20(*=2060=2060=2024=20=
365.2425)))=0A+=20=20=20=20("M"=20"month"=20=20"months"=20=20,(round=20=
(*=2060=2060=2024=2030.436875)))=0A+=20=20=20=20("w"=20"week"=20=20=20=
"weeks"=20=20=20,(*=2060=2060=2024=207))=0A+=20=20=20=20("d"=20"day"=20=20=
=20=20"days"=20=20=20=20,(*=2060=2060=2024))=0A+=20=20=20=20("h"=20=
"hour"=20=20=20"hours"=20=20=20,(*=2060=2060))=0A+=20=20=20=20("m"=20=
"minute"=20"minutes"=2060)=0A+=20=20=20=20("s"=20"second"=20"seconds"=20=
1))=0A+=20=20"Formatting=20used=20by=20the=20function=20=
`seconds-to-string-approximate'.")=0A+;;;###autoload=0A+(defun=20=
seconds-to-string-approximate=20(delay=20&optional=20abbreviate=20half)=0A=
+=20=20"Convert=20the=20time=20interval=20DELAY=20in=20seconds=20to=20a=20=
string=20approximation.=0A+Abbreviate=20the=20units=20if=20ABBREVIATE=20=
is=20non-nil.=20=20If=20HALF=20is=20non-nil,=0A+round=20to=20the=20=
nearest=20half-unit,=20otherwise=20round=20to=20the=20nearest=20unit."=0A=
+=20=20(cond=20((>=200=20delay)=0A+=20=20=20=20=20=20=20=20=20(concat=20=
"-"=20(seconds-to-string-approximate=20(-=20delay)=20abbreviate=20=
half)))=0A+=20=20=20=20=20=20=20=20((=3D=20(round=20delay=20(if=20half=20=
0.5=201.))=200)=0A+=20=20=20=20=20=20=20=20=20(format=20"0%s"=20(if=20=
abbreviate=20"s"=20"=20seconds")))=0A+=20=20=20=20=20=20=20=20(t=20(let=20=
((stsa=20seconds-to-string-approximate)=20here=20cnt)=0A+=20=20=20=20=20=20=
=20=20=20=20=20=20=20(while=20(and=20(setq=20here=20(pop=20stsa))=20stsa=0A=
+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20(<=20(/=20delay=20(nth=203=20here))=201)))=0A+=20=20=20=20=20=20=20=20=
=20=20=20=20=20(setq=20cnt=20(round=20(/=20(float=20delay)=20(nth=203=20=
here))=20(if=20half=200.5=201.)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20(concat=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let=20((c=20(if=20=
half=20(/=20cnt=202)=20cnt)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20(if=20(>=20c=200)=20(number-to-string=20c)=20""))=0A+=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20(if=20(and=20half=20(=3D=20(mod=20cnt=202)=20=
1))=20"=C2=BD"=20"")=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20=
abbreviate=20""=20"=20")=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
(cond=20(abbreviate=20(car=20here))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20((<=3D=20cnt=20(if=20half=202=201))=20(nth=201=20=
here))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(t=20=
(nth=202=20here))))))))=0A+=0A=20(defun=20date-days-in-month=20(year=20=
month)=0A=20=20=20"The=20number=20of=20days=20in=20MONTH=20in=20YEAR."=0A=
=20=20=20(unless=20(and=20(numberp=20month)=20(<=3D=201=20month=2012))=0A=

--Apple-Mail=_DF256C8E-CD44-4309-983F-3A06CCC42DF6--




Acknowledgement sent to JD Smith <jdtsmith@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#71573; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 30 Jun 2024 05:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.