|
From: | Adam Porter |
Subject: | bug#50214: 28.0.50; cl-struct changes may affect user packages in the wild |
Date: | Mon, 22 Aug 2022 16:24:24 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 |
Hi Lars, Thanks for following up on this report. On 8/22/22 09:35, Lars Ingebrigtsen wrote:
Philipp <p.stephani2@gmail.com> writes:Unfortunately, I know of no other way to implement what ts.el does without modifying the accessors, which requires accessing the internal struct details after it is defined.I haven't checked the code in detail, but AIUI ts.el tries to initialize structure members lazily? Why not just use a wrapper function for that? (defun ts-hour (ts) (or (ts--hour ts) (setf (ts--hour ts) (string-to-number (format-time-string "%H" (ts-unix ts))))) Here ts--hour is the actual accessor, which is private and shouldn't be used outside of ts.el.Adam, does this suggestion work for you?
That seems like a good idea to me. I guess if I define it as an inline function, it should have a similar optimization as the current code. And the implementation would be much simpler and future-proof as well. In hindsight, I should probably have tried that first. :)
I'll see if I can implement this in ts.el soon and release a new version accordingly. In the meantime, I guess this bug report should be closed. Thanks to all for your help.
Adam
[Prev in Thread] | Current Thread | [Next in Thread] |