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
>>>
>>
>>
>

Reply via email to