On Mon, 2 Mar 2020 at 14:09, Vladimir Sitnikov <sitnikov.vladi...@gmail.com> wrote: > > >No, that's not exactly what 100% pure Java code means > > Pure Java means nothing. > JMeter has lots of Properties, XML, XSLT, CSS, Groovy, BeanShell, and even, > holy cow, JavaScript files. > > There's no point in making "100% pure X" without having a good definition > of that. >
Properties, XML, etc are not executed by the JVM; they are effectively just data. > >The Java code must of course comply with the appropriate Java language > > >Is Darklaf written entirely in Java? > >Are all its dependencies written in Java? > > It is Java virtual machine compliant. Why does the language matter to you? It does not matter, per se. What matters is that JMeter is secure against crashing, and that it will run on any system with a conforming JVM. The JMeter jars contain Java byte code compiled from Java source files. (Yes, there are properties and XML files, but these are not executable by the JVM). The JVM interprets the Java byte code, so is able to guarantee that it will not cause a crash. If the byte code is invalid, the JVM will throw an error at load time, and similarly if there is a run-time error. It can guarantee not to crash because it controls exactly how the JVMs native code is invoked when processing the byte code. Now the JVM also allows Java byte code to invoke native code in external libraries. It has no control over the content of such libraries, so cannot guarantee that the are being called correctly. Once you add external native code to a Java app, the JVM cannot prevent crashes. Nor can one guarantee that the Java app will run on every conforming JVM. > Vladimir