I did mention at the end “that `is DEPRECATED` could use a new feature for indicating versions.”
Perhaps sub foo () is DEPRECATED( 'other sub', v0.17.10 => v0.20.0 ) {} (Note that it would be a list of two things where the second is a Pair[Version,Version]) Or just three values sub foo () is DEPRECATED( 'other sub', v0.17.10, v0.20.0 ) {} (This second version can be checked using static type checks, while the first can't.) On Sun, Aug 4, 2019 at 3:36 PM Marcel Timmerman <mt1...@gmail.com> wrote: > Hi yary, > > I thought that it would be nice to give some more information to the user > at what version the deprecation is started and what the next version would > be to completely remove the software from the library. It is also nice to > the developer to be able to remove old code after passing the marked > version instead of waiting for some period (how long, a few months, half a > year, or longer?). One can then forget that there is still code left to be > removed. > > Regards, > Marcel > > > > > GTK::Simple isn't part of the Rakudo compiler, its use and this thread > suggests a demand for DEPRECATED in public Perl6. > > > Could it become a module for user code to import from? Pros, cons, and > what would it take to promote it to a documented routine? > > Marcel what's your use-case for DEPRECATED? > > -y > > > On Sun, Aug 4, 2019 at 8:10 AM Marcel Timmerman <mt1...@gmail.com> wrote: > >> Thank you Brad for the answer, I'll better not use it then. Indeed I >> found it interesting because of the version arguments one could pass to the >> call, but alas... >> >> The `DEPRECATED` function is a feature of Rakudo, not Perl6. >> Which means that how it works, and even its existence could be changed >> without warning. >> >> It was added so that the compiler and runtime can mark features of itself >> as deprecated. >> Because of the design of the compiler and runtime, it leaks out into the >> userspace. >> >> It is not in ROAST so it is not Perl6. >> `is DEPRECATED` is >> https://github.com/perl6/roast/blob/master/S02-types/isDEPRECATED.t >> >> my $a; >> my $awith; >> sub a is DEPRECATED { $a++ }; >> sub awith is DEPRECATED("'fnorkle'") { $awith++ }; >> >> The only thing this use of `DEPRECATED` shows, is that `is DEPRECATED` >> could use a new feature for indicating versions. >> >> On Sun, Aug 4, 2019 at 7:20 AM Marcel Timmerman <mt1...@gmail.com> wrote: >> >>> Hi all, >>> >>> Studying GTK::Simple if found about the existence of a routine >>> DEPRECATED which I couldn't find in the Perl6 documents. Reading from >>> the code I see that it needs 3 arguments, start version of deprecation, >>> version when it is removed and a string like in the 'is DEPRECATED()' >>> trait. >>> >>> A use like >>> >>> sub gtk_builder_add_from_file ( ... ) { >>> DEPRECATED( >>> 'other multi version of gtk_builder_add_from_file', '0.17.10', >>> '0.20.0' >>> ); >>> ... >>> } >>> >>> >>> Gives a result like; >>> >>> Saw 1 occurrence of deprecated code. >>> >>> ================================================================================ >>> Sub gtk_builder_add_from_file (from Gnome::Gtk3::Builder) seen at: >>> /home/marcel/Languages/Perl6/Projects/perl6-gnome-gtk3/../perl6-gnome-native/lib/Gnome/N/X.pm6 >>> >>> (Gnome::N::X), line 109 >>> Deprecated since v0.17.10, will be removed with release v0.20.0! >>> Please use other version of gtk_builder_add_from_file instead. >>> >>> Perhaps it should be added to the docs (or I am look in the wrong spot >>> :-) >>> >>> Thanks very much for the documentation as it is now >>> Regards, >>> Marcel >>> >> >> >