Re: openssl eggs: current-milliseconds -> current-process-milliseconds
> >> 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
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
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
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
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
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
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
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
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
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
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