<feed xmlns='http://www.w3.org/2005/Atom'>
<title>github/lombok.git/src/core/lombok/javac/handlers, branch feat/memoize</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/'/>
<entry>
<title>Initial draft for @lombok.experimental.Memoize</title>
<updated>2023-04-05T23:04:06+00:00</updated>
<author>
<name>nea</name>
<email>nea@nea.moe</email>
</author>
<published>2023-04-05T22:34:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=83c63686d7ef6c745ed9d853e33c293f7d6bb8d5'/>
<id>83c63686d7ef6c745ed9d853e33c293f7d6bb8d5</id>
<content type='text'>
This is an initial draft for how an @Memoize annotation could look like.
It currently lacks features such as:

 - Thread safety
 - Cache invalidation
 - Soft/Weak References for a lower memory profile
 - Avoiding using a Map entirely for parameterless methods

Ideally at least some of these properties should be configurable using
flags and/or annotation properties (some users might prefer a non
thread safe cache for better performance).

Example Usage:

```java
class Test {
    int invocationCount = 0;

    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.x(1, 2));
        System.out.println(test.x(1, 2));
        System.out.println(test.x(1, 3));
        System.out.println("Invocation Count: " + test.invocationCount);
    }

    @lombok.experimental.Memoize
    public int x(int y, int z) {
        invocationCount++;
        return y + z;
    }
}
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is an initial draft for how an @Memoize annotation could look like.
It currently lacks features such as:

 - Thread safety
 - Cache invalidation
 - Soft/Weak References for a lower memory profile
 - Avoiding using a Map entirely for parameterless methods

Ideally at least some of these properties should be configurable using
flags and/or annotation properties (some users might prefer a non
thread safe cache for better performance).

Example Usage:

```java
class Test {
    int invocationCount = 0;

    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.x(1, 2));
        System.out.println(test.x(1, 2));
        System.out.println(test.x(1, 3));
        System.out.println("Invocation Count: " + test.invocationCount);
    }

    @lombok.experimental.Memoize
    public int x(int y, int z) {
        invocationCount++;
        return y + z;
    }
}
```
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce allocations from JavacHandlerUtil.typeMatches()</title>
<updated>2023-03-22T11:36:28+00:00</updated>
<author>
<name>Christoph Dreis</name>
<email>christoph.dreis@freenet.de</email>
</author>
<published>2023-02-21T07:27:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=e051df91a0571676c6230215bdebe23360289994'/>
<id>e051df91a0571676c6230215bdebe23360289994</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[fixes #3364] Generate JCTree clones to prevent duplicate nodes</title>
<updated>2023-03-22T11:33:59+00:00</updated>
<author>
<name>Rawi01</name>
<email>Rawi01@users.noreply.github.com</email>
</author>
<published>2023-03-12T08:05:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=8c0081a806a3c772f29be5c038024a5a941c4be6'/>
<id>8c0081a806a3c772f29be5c038024a5a941c4be6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[fixes #3366] Handle @NonNull type annotations on record components</title>
<updated>2023-03-21T16:13:54+00:00</updated>
<author>
<name>Rawi01</name>
<email>Rawi01@users.noreply.github.com</email>
</author>
<published>2023-03-13T18:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=6f204d98c450092f4a6252677fc44657704b9897'/>
<id>6f204d98c450092f4a6252677fc44657704b9897</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3356 from dreis2211/reduce-allocations-typematch</title>
<updated>2023-03-21T16:10:34+00:00</updated>
<author>
<name>Reinier Zwitserloot</name>
<email>r.zwitserloot@projectlombok.org</email>
</author>
<published>2023-03-21T16:10:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=f494c8efeace03501d5251c08dde0f740d4acf24'/>
<id>f494c8efeace03501d5251c08dde0f740d4acf24</id>
<content type='text'>
Reduce allocations from JavacHandlerUtil.typeMatches()</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reduce allocations from JavacHandlerUtil.typeMatches()</pre>
</div>
</content>
</entry>
<entry>
<title>[jdk20] Adds support for updated JCEnhancedForLoop</title>
<updated>2023-03-21T15:12:22+00:00</updated>
<author>
<name>Rawi01</name>
<email>Rawi01@users.noreply.github.com</email>
</author>
<published>2023-02-18T22:10:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=d96bf4cc364def4f949c00020297c1c6472c1446'/>
<id>d96bf4cc364def4f949c00020297c1c6472c1446</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce allocations from JavacHandlerUtil.typeMatches()</title>
<updated>2023-02-21T07:37:38+00:00</updated>
<author>
<name>Christoph Dreis</name>
<email>christoph.dreis@freenet.de</email>
</author>
<published>2023-02-21T07:27:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=f13750c271accf72bcdb69a67795233aa99931e3'/>
<id>f13750c271accf72bcdb69a67795233aa99931e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3326 from Rawi01/utilityclass-npe</title>
<updated>2023-01-12T01:05:31+00:00</updated>
<author>
<name>Reinier Zwitserloot</name>
<email>r.zwitserloot@projectlombok.org</email>
</author>
<published>2023-01-12T01:05:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=5ed4d0f37f9ab401e2bf4c3bec3fbf8d7c25f014'/>
<id>5ed4d0f37f9ab401e2bf4c3bec3fbf8d7c25f014</id>
<content type='text'>
Reset erasure_field of symbol</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reset erasure_field of symbol</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3325 from Rawi01/builder-default-array</title>
<updated>2023-01-12T01:04:20+00:00</updated>
<author>
<name>Reinier Zwitserloot</name>
<email>r.zwitserloot@projectlombok.org</email>
</author>
<published>2023-01-12T01:04:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=9e6f66c557205bff3c87eefb4c7a7631d0b89ff0'/>
<id>9e6f66c557205bff3c87eefb4c7a7631d0b89ff0</id>
<content type='text'>
Convert short array initializers to long version</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Convert short array initializers to long version</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3312 from Rawi01/extensionmethod-nonstatic</title>
<updated>2023-01-12T00:56:15+00:00</updated>
<author>
<name>Reinier Zwitserloot</name>
<email>r.zwitserloot@projectlombok.org</email>
</author>
<published>2023-01-12T00:56:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=8bb4dc5daa8792e718e88c596812f232a2b73e6e'/>
<id>8bb4dc5daa8792e718e88c596812f232a2b73e6e</id>
<content type='text'>
Ignore non-static/non-public extension methods</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ignore non-static/non-public extension methods</pre>
</div>
</content>
</entry>
</feed>
