On Sat, 20 Nov 2021 11:31:41 GMT, Claes Redestad <redes...@openjdk.org> wrote:

>> Regarding the slot limit in `StringConcatFactory`, it's not clear to me the 
>> limit of 200 is normative or is merely an implementation note. The limit of 
>> 200 slots seems to be arbitrary and shouldn't be baked into the spec. 
>> Perhaps this limit can be removed if the splitting logic is moved into 
>> `StringConcatFactory`.
>
> @stuart-marks yes, a general purpose splitting logic moved into the 
> `StringConcatFactory` would be able to get rid of the arbitrary 200 slot 
> limit (we would hit a harder but less arbitrary limit at around 253 instead).
> 
> @JimLaskey I don't see why it wouldn't work generally from the point of view 
> of the `StringConcatFactory`: Vicente's code operates on a `MethodHandle[]` 
> with getters as inputs to the `SCF` bootstrap method, whereas `SCF` would 
> deal with arguments directly (retrieved from an `Object[]`). I think the code 
> changes from the patch here after moving the logic into `SCF` should be 
> pretty minimal and straightforward: if I'm not missing anything we'd only 
> conceptually be replacing the `filterArguments` on line 313 with an 
> `insertArguments`.

@cl4es I was thinking of the more general case 200 < N. You were in the 200 < N 
< 253 case. I think it would be better to pass in a chunk size (<= 200) and an 
array of ptype and get an array of method handles each taking a chunk size of 
arguments plus result of prior call. This is more like what javac does.

-------------

PR: https://git.openjdk.java.net/jdk/pull/6403

Reply via email to