uschindler commented on PR #12311:
URL: https://github.com/apache/lucene/pull/12311#issuecomment-1564310637

   Hi @alessandrobenedetti, the code shown here is indeed crazy to read, but 
this is more a problem of the APIs in general. The Java Vector API is very low 
level and you have to exactly know how lanes, species and so on work. The code 
written by Robert is 100% according to the javadocs guidelines.
   A lot of low level code (in codecs like BlockTermsReader is done like that). 
Also MMapDirectory indexinput look like that. They are not beatiful but 
optimized for performance. To me the variable names are perfectly fine vor 
vector code (`ab`, `a1b`,...). This is typical in that area. It won't get 
better with other names.
   
   The code on official JDK docs looks identical: 
https://docs.oracle.com/en/java/javase/20/docs/api/jdk.incubator.vector/jdk/incubator/vector/package-summary.html
   
   The arbitrary if/else constructs are a problem of underlying hardware 
infratstructure. It is NOT autogenerated, but follows low-level hardware specs, 
so there are arbitrary looking constants and if/else in it. This can be 
improved by moving numbers like 128 as constants, be free to make PRs! For 
performance reasons you should NOT split that up into too many different 
methods, as the code relies on escape analysis of the VM. We may split it 
later, but that's more a cleanup approach.
   
   An additional problem in the whole code is that it is Java version specific, 
so there will me multiple versions of the same code staying in different 
directories (java20, java21,...). Same for MMapDirectory.
   
   The extraction code for the Java APIs is special and a hack, but it is not 
part of Lucene's public library; it is a build tool only. Sorry for it, there's 
a new version now because a rewrite was needed to allow backporting and fix 
incomplete extraction: #12329 (this version looks much better, also technically 
bettrer organized).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to