Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread felix . winkelmann
> >> 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?
> >
> > Hm I don't see how that follows. Removing current-milliseconds in 6.x
> > doesn't break anything 5.x.
>
> Right, but just because that's already kinda broken in 5.X.
>

CHICKEN 6 will have other changes that break existing stuff
because of subtle differences regarding string and port representation in
foreign code and other things that we don't know about yet, that's just
how things go. Issues like "current-milliseconds" vs
"current-process-milliseconds" are, compared to that, trivial and
easy to explain to users, I'd say.

That's what major releases are there for, sometimes one just has
to move on. I agree that the handling of the name change + deprecation
was unwise (likely to be caused be me, initially). Now we will have
to stick with it and learn something for the future.


cheers,
felix




Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread siiky
Then my egg would be listed as a 5 egg, but would only be usable by a 
subset of the 5.X versions.  If that is accepted, then I wonder what 
information the major and minor versions of chicken-core convey.


To me, a deprecation has a meaning when it provides a way forward, so I 
think I agree with Mario when he says that this deprecation came in too 
late for 5.X and too early for 6.X.


I don't disagree that it could've been done a different way, probably 
better.


But eggs have to work with CHICKEN, not the other way around. So for me 
it doesn't matter much whether current-milliseconds should or 
shouldn't've been deprecated in 5.3, but that as an egg author I have 
this choice to support more users or not, because that's the current 
situation.


Hopefully that clarifies my replies. I'm not that interested in what 
"could've been", I'm more interested in "what is" and "what will be" :)






Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread Pietro Cerutti

On Feb 22 2023, 12:17 UTC, siiky  wrote:

Hiya,


heh - I don't like to see deprecation warnings when I build stuff :)


Me neither, but I like it even less when stuff stops working (like 
Doom Emacs just today)


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.


AFAIK there's no hard set of rules about egg compatibility with 
CHICKEN versions, each egg author chooses how and what to support. If 
you want to use current-process-milliseconds in your eggs go right 
ahead! :)


Then my egg would be listed as a 5 egg, but would only be usable by a 
subset of the 5.X versions.  If that is accepted, then I wonder what 
information the major and minor versions of chicken-core convey.


To me, a deprecation has a meaning when it provides a way forward, so I 
think I agree with Mario when he says that this deprecation came in too 
late for 5.X and too early for 6.X.


Ideally, I'd like a deprecation to come in in X.Y, where Y is the last 
minor of the X series, and the deprecated API to be removed in (X+1).0.


Anyway, thanks all for your thoughts. Of course I am not pushing 
anywhere; that deprecation can stay where it is, annoying as it might be 
:)


--
Pietro Cerutti
I have pledged to give 10% of income to effective charities
and invite you to join me - https://givingwhatwecan.org



Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread siiky

It's not that simple, as using current-process-milliseconds would break
things for people using CHICKEN 5.2 or earlier.


Yeah, that's exactly the problem for me, I don't want stuff to break for 
people using 5.2.



People using CHICKEN from Debian stable, for example, get CHICKEN 5.2.


It was a mistake on my part, it should have been "I don't see the 
advantage of using current-process-milliseconds over 
current-milliseconds in eggs."






Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread siiky
However, personally, I don't see the advantage of using 
current-milliseconds over current-process-milliseconds in eggs. As of 
now, both calls work, the userbase is already small, and the amount of 
available libraries is also not huge (comparing to popular languages). 
Why should I artificially restrict which CHICKEN versions users of my 
eggs can use? (I know of at least one person using 5.2 though they 
probably don't use any of my eggs)


derp, silly mistake here... this is the right order:

I don't see the advantage of using current-process-milliseconds over 
current-milliseconds in eggs.






Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread Mario Domenech Goulart
On Wed, 22 Feb 2023 12:17:23 + siiky  wrote:

>> 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.
>
> AFAIK there's no hard set of rules about egg compatibility with
> CHICKEN versions, each egg author chooses how and what to support. If
> you want to use current-process-milliseconds in your eggs go right
> ahead! :)

It's not that simple, as using current-process-milliseconds would break
things for people using CHICKEN 5.2 or earlier.

> However, personally, I don't see the advantage of using
> current-milliseconds over current-process-milliseconds in eggs. As of 
> now, both calls work, the userbase is already small, and the amount of
> available libraries is also not huge (comparing to popular
> languages). Why should I artificially restrict which CHICKEN versions
> users of my eggs can use? (I know of at least one person using 5.2
> though they probably don't use any of my eggs)

People using CHICKEN from Debian stable, for example, get CHICKEN 5.2.

> TLDR: I would choose (2) of Mario's options, but you can choose any
> option you prefer.
>
>> 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?
>
> Hm I don't see how that follows. Removing current-milliseconds in 6.x
> doesn't break anything 5.x.

Right, but just because that's already kinda broken in 5.X.

All the best.
Mario
-- 
http://parenteses.org/mario



Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread siiky

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.


Don't want to pull anyone into an NPM here, but we could have a tiny egg 
to abstract that away ("we" = anyone willing): exports 
current-process-milliseconds if >=5.3, otherwise renames 
current-milliseconds if <5.3. Shouldn't be too hard and egg authors are 
no longer inconvenienced with writing the cond-expand.






Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-22 Thread siiky

Hiya,


heh - I don't like to see deprecation warnings when I build stuff :)


Me neither, but I like it even less when stuff stops working (like Doom 
Emacs just today)


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.


AFAIK there's no hard set of rules about egg compatibility with CHICKEN 
versions, each egg author chooses how and what to support. If you want 
to use current-process-milliseconds in your eggs go right ahead! :)


However, personally, I don't see the advantage of using 
current-milliseconds over current-process-milliseconds in eggs. As of 
now, both calls work, the userbase is already small, and the amount of 
available libraries is also not huge (comparing to popular languages). 
Why should I artificially restrict which CHICKEN versions users of my 
eggs can use? (I know of at least one person using 5.2 though they 
probably don't use any of my eggs)


TLDR: I would choose (2) of Mario's options, but you can choose any 
option you prefer.


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?


Hm I don't see how that follows. Removing current-milliseconds in 6.x 
doesn't break anything 5.x.


siiky





Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-21 Thread Mario Domenech Goulart
Hi Pietro,

On Tue, 21 Feb 2023 10:23:05 + Pietro Cerutti  wrote:

> On Feb 21 2023, 10:13 UTC, siiky  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.
Mario
-- 
http://parenteses.org/mario



Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-21 Thread Pietro Cerutti

On Feb 21 2023, 10:13 UTC, siiky  wrote:

Hi Pietro,

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?


--
Pietro Cerutti
I have pledged to give 10% of income to effective charities
and invite you to join me - https://givingwhatwecan.org



Re: openssl eggs: current-milliseconds -> current-process-milliseconds

2023-02-21 Thread siiky

Hi Pietro,

If you don't mind me asking, why?

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.


Thanks,
siiky