Stefan Kangas <stefankangas@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#71573
; Package emacs
.
Full text available.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'?
bug-gnu-emacs@HIDDEN
:bug#71573
; Package emacs
.
Full text available.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)))))
bug-gnu-emacs@HIDDEN
:bug#71573
; Package emacs
.
Full text available.Eli Zaretskii <eliz@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#71573
; Package emacs
.
Full text available.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--
JD Smith <jdtsmith@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#71573
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.