<feed xmlns='http://www.w3.org/2005/Atom'>
<title>github/lombok.git/src/core, 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>[jdk20] Reorder JavacAST child nodes for JCEnhancedForLoop</title>
<updated>2023-03-22T11:35:53+00:00</updated>
<author>
<name>Rawi01</name>
<email>Rawi01@users.noreply.github.com</email>
</author>
<published>2023-02-19T10:30:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=02fe21f27c4dce1fd7525f2da5bdf5d66ff19f7b'/>
<id>02fe21f27c4dce1fd7525f2da5bdf5d66ff19f7b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[jdk20] Adds support for updated JCEnhancedForLoop</title>
<updated>2023-03-22T11:35:38+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=f87b6716bc6f85676d0aaf89bd670b6161e5373f'/>
<id>f87b6716bc6f85676d0aaf89bd670b6161e5373f</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>Merge pull request #3358 from dreis2211/config-parent-cache</title>
<updated>2023-03-21T16:39:34+00:00</updated>
<author>
<name>Reinier Zwitserloot</name>
<email>r.zwitserloot@projectlombok.org</email>
</author>
<published>2023-03-21T16:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=79c5d2dfd3aa5ccdcf164abaff7dc53f55844dbf'/>
<id>79c5d2dfd3aa5ccdcf164abaff7dc53f55844dbf</id>
<content type='text'>
Cache ConfigurationFile.parent()</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cache ConfigurationFile.parent()</pre>
</div>
</content>
</entry>
<entry>
<title>[fixes #3346] Add jakarta Nonnull/Nullable annotations</title>
<updated>2023-03-21T16:38:04+00:00</updated>
<author>
<name>Rawi01</name>
<email>Rawi01@users.noreply.github.com</email>
</author>
<published>2023-02-11T19:33:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=e64c6b5879d36d45ec6a768ff907b7857a2ee217'/>
<id>e64c6b5879d36d45ec6a768ff907b7857a2ee217</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[trivial] code style</title>
<updated>2023-03-21T16:37:24+00:00</updated>
<author>
<name>Reinier Zwitserloot</name>
<email>r.zwitserloot@projectlombok.org</email>
</author>
<published>2023-03-21T16:37:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=984cd1d5cf0af7263efaf167dc308ab59406cd68'/>
<id>984cd1d5cf0af7263efaf167dc308ab59406cd68</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 #3357 from dreis2211/stop-bubbling</title>
<updated>2023-03-21T16:35:23+00:00</updated>
<author>
<name>Reinier Zwitserloot</name>
<email>r.zwitserloot@projectlombok.org</email>
</author>
<published>2023-03-21T16:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/lombok.git/commit/?id=5a2b68c574922b76db098fd2d0e9902d5f39a884'/>
<id>5a2b68c574922b76db098fd2d0e9902d5f39a884</id>
<content type='text'>
Avoid looking up parent if bubbling stopped</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid looking up parent if bubbling stopped</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>
</feed>
