<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Hi,<br>
here's a document that outlines a more general strategy to read
and write strings from/to memory segments:</p>
<p><a class="moz-txt-link-freetext" href="https://cr.openjdk.org/~mcimadamore/panama/strings_ffm.html">https://cr.openjdk.org/~mcimadamore/panama/strings_ffm.html</a></p>
<p>As outlined in this thread, the enabling primitive for the
writing side is a factory that allows to view a Java string as a
read-only heap memory segment.</p>
<p>We believe the proposed strategy should provide better usability,
while at the same time leaving room for the implementation to "cut
corners", to make performance as good as possible.</p>
<p>Let us know what you think.</p>
<p>Cheers<br>
Maurizio<br>
</p>
<div class="moz-cite-prefix">On 05/11/2025 12:45, Liam Miller-Cushon
wrote:<br>
</div>
<blockquote type="cite" cite="mid:CAL4QsgtweEV_rATZFP=BYs4MAjpZE3sNtZ-3DwZ3ZYQOnMpU8A@mail.gmail.com">
<div dir="ltr">Thanks Maurizio, considering all of this
holistically makes sense. I look forward to hearing your
thoughts on it once you've had time to consider the options :)</div>
<br>
<div class="gmail_quote gmail_quote_container">
<div dir="ltr" class="gmail_attr">On Tue, Nov 4, 2025 at
11:21 PM Maurizio Cimadamore <<a href="mailto:maurizio.cimadamore@oracle.com" moz-do-not-send="true" class="moz-txt-link-freetext">maurizio.cimadamore@oracle.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p><br>
</p>
<div>On 04/11/2025 15:23, Jorn Vernee wrote:<br>
</div>
<blockquote type="cite">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div>Do you have thoughts on the best way to proceed
here? Do you think it makes sense to do
incrementally, or would you prefer to see all of
these related changes happen together under a
single issue?<br>
<br>
</div>
</div>
</div>
</blockquote>
<p>I don't have a preference. Since you've already started
a PR for enhancing getString, maybe you can focus on
that for now, and we'll file followup issues for the
others. Splitting things up might be nice since there's
probably some benchmarking work involved for each. I
think the copy and allocateFrom overload can be done in
one patch though.</p>
</blockquote>
<p>I think I sort of do have a preference :-)</p>
<p>My feeling is that we're dealing with 2-3 different APIs
that are all tightly interconnected. We have some ideas on
how to solve some (I think getString with explicit length
seems the most settled), but we're still playing with
other ideas for the others (like copy, or memory segment
views). And we also have to think about relationship with
SegmentAllocator.</p>
<p>For this reason, I'd prefer to think about it more
holistically and think about all the related APIs at once.</p>
<p>Once we get a consensus on how to proceed we can decide
whether to pursue them all in a single PR, or split them
into separate PRs.</p>
<p>But it would be unfortunate, I think, if the first PR
would later reveal to be a dead end for the other use
cases.</p>
<p>I plan to think about this some more (but I need some
more time).</p>
<p>Cheers<br>
Maurizio<br>
</p>
</div>
</blockquote>
</div>
</blockquote>
</body>
</html>