Hi Pietro,

On Tue, 21 Feb 2023 10:23:05 +0000 Pietro Cerutti <g...@gahr.ch> wrote:

> On Feb 21 2023, 10:13 UTC, siiky <github-si...@net-c.cat> wrote:
>>If you don't mind me asking, why?
> heh - I don't like to see deprecation warnings when I build stuff :)
>> From my understanding (disclaimer: not a maintainer of the openssl
>> egg nor CHICKEN core maintainer), I think current-milliseconds can
>> stay for now. current-milliseconds has been deprecated in 5.3 but
>> hasn't been removed yet, it's an "alias" for
>> current-process-milliseconds. So everything should work with
>> current-milliseconds in 5.3 and 5.x before it. But if it was changed
>> to current-proess-milliseconds the openssl egg would no longer work
>> with 5.x before 5.3.
> I don't know what's the support policy for older releases in the 5.x
> series, but by your logic, no egg at all can use 
> current-process-milliseconds for the same reason of it not being
> available before 5.3. Eggs are versions by major release, so I would 
> guess that the support policy would be the same for all 5.x eggs?
> If breaking 5.X | X < latest is a concern, this means
> current-milliseconds must stay in 6.x and can only be removed in 7.x?

I tend to agree with you.

In my opinion, the deprecation of current-milliseconds was too late for
5.X and is too early for 6.X, for the reason you stated.

So egg authors have basically the following options:

1. Use current-process-milliseconds and assume that users will be using
   a recent enough version of CHICKEN (users of older versions will just
   get an error).

2. Use current-milliseconds and annoy users with a deprecation warning.

3. Use some convoluted cond-expand clause to match against values of X
   (as in 5.X) as an attempt to prevent the deprecation warning and
   undefined variable errors.

Not sure if there is any other way without custom build scripts doing
some tricks with chicken-version (e.g., to print a clear error message
indicating that CHICKEN 5.3 is required).

Since current-milliseconds is part of the core API, I think it should
have been deprecated when 5.0 was released (when
current-process-milliseconds should have been made available), and
removed in the 6.0 release; or deprecated in the 6.0 release and removed
in 7.0 release.

All the best.

Reply via email to