2022
DOI: 10.5381/jot.2022.21.1.a1
|View full text |Cite
|
Sign up to set email alerts
|

Deprewriter: On the fly rewriting method deprecations.

Abstract: Deprecations are a common way to indicate that a given feature or API will not be available in subsequent versions of a library or framework. While raising deprecation warnings lets developers of libraries evolve their APIs, the developers of client applications often have to manually rewrite their applications to adapt to the deprecation (removal, new APIs. . . ). Some may use static analysis tools to support the rewriting. However, dynamically-typed languages or the use of reflective features often produce i… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2022
2022
2023
2023

Publication Types

Select...
2
1

Relationship

3
0

Authors

Journals

citations
Cited by 3 publications
(7 citation statements)
references
References 56 publications
(75 reference statements)
0
7
0
Order By: Relevance
“…Pharo allows developers to enrich deprecations with code transformation rules [13]. If a client system invokes the deprecated method, its source code is automatically fixed during execution to call the replacement: ↑ s e l f needsFullDefinition Lines 2-5 of the code above demonstrate the syntax of transforming deprecations in Pharo: method isSpecial (name in the first line) is deprecated with a message for the user 'Renamed to #needsFullDefinition' and a transformation rule that replaces method calls to isSpectial with calls to needsFullDefinition.…”
Section: Deprewriter: Transforming Deprecations In Pharomentioning
confidence: 99%
See 1 more Smart Citation
“…Pharo allows developers to enrich deprecations with code transformation rules [13]. If a client system invokes the deprecated method, its source code is automatically fixed during execution to call the replacement: ↑ s e l f needsFullDefinition Lines 2-5 of the code above demonstrate the syntax of transforming deprecations in Pharo: method isSpecial (name in the first line) is deprecated with a message for the user 'Renamed to #needsFullDefinition' and a transformation rule that replaces method calls to isSpectial with calls to needsFullDefinition.…”
Section: Deprewriter: Transforming Deprecations In Pharomentioning
confidence: 99%
“…To support this practice, Java provides the @Deprecated annotation as well as the @deprecated Javadoc tag that can mark a method or class as deprecated while the @link or @see tags can reference the correct replacement in the source code [18]. Pharo 3 has a powerful deprecation engine called Deprewriter [13]. It allows library developers to add transformation rules to their method deprecations specifying the replacements.…”
Section: Introductionmentioning
confidence: 99%
“…Others are hard and may require a week or more. The answers to the second question about the time to update could have been influenced by Deprewriter [12] the automatic deprecation update mechanism that is used by the Pharo community. It allows library developers to annotate method deprecations with transformation rules that will be used to automatically rewrite the call-sites in the client code.…”
Section: A Rq1 -How Do Library Developers Perceive the Impact Of Libr...mentioning
confidence: 99%
“…For example, when we asked how much time it takes for clients to update, the answer could depend on how much of the API was used by a particular client. • The transforming deprecation mechanism of Pharo [12] may have affected how Pharo developers answered this survey. • Inside the three mentioned communities, the surveys were public and participation was optional.…”
Section: Threats To Validitymentioning
confidence: 99%
See 1 more Smart Citation