@Dispatch_Graph Not saying I agree with the meme, but a lot of open source projects are written with Linux in mind, and to compile them on Windows you have to use an emulation layer (msys/cygwin/wsl).
I will often just give up if I see that a project is using autoconf. (cmake is great though)
Attaching is facilitated through a file in the hsperfdata_<user> directory within the temp directory, which can (probably) not be created without these environment variables set, since the default temp dir is C:\WINDOWS, which is typically not write-accessible.
Hint for Java devs on Windows: if you can't attach to a particular Java process, and jcmd doesn't show the process either, make sure that the target process has the TMP, or TEMP environment variable set.
Great talk by @BrianGoetz https://t.co/LXhfvW7H6H
The first preview of the full FFM API was in JDK 19. I think that was our peak of complexity. We spent a little over a year more, with many long discussions, to refine the programming model and get it ready for the final release.
MacOS users rejoice: -prof xctraceasm comes to JMH and allows perfasm-like profiling without any additional system configuration mess. Courtesy @fzhinkin: https://t.co/HonrUvYvSL
Do you know the #Java Panama Effect?
Listen to #InsideJavaPodcast https://t.co/7BSPyDS8ZJ - @JornVernee explains it in the context of Foreign Function and Memory API. Find out how to integrate a native library within your code with FFM API and benefit from the Panama effect😉!
Babylon is OpenJDK's newest big project to improve Java, specifically aimed at easing execution of #Java code on the GPU.
@nipafx takes a deeper look in this edition of the Inside Java Newscast. https://t.co/Bsic6ZFOoW
@tvaneerd operator() of the lambda is a non-static member function -> first argument is the lambda instance -> arg_type<0> is the lambda type -> arg_type<1> is 'int'
That's a wrap! I just finished my extensive deep dive on how JRuby utilizes modern JVM features like Loom and Panama at @javazone! Hopefully the 10 people in the audience enjoyed the talk, but more importantly the video will be online soon for everyone to enjoy.
NQOH: "A lot of these APIs weren't really designed, they just sort of happened".
This reflects my experience working on the FFM API the last few years as well: Once you have a set of individually working features, it takes time to polish it into something that works as a whole.
Virtual threads on the JVM will be a massive game-changer. I presented at #JVMLS a decade ago pointing out all the reasons we needed this, and now it’s finally happening. I’ll be demonstrating Virtual Threading with JRuby at conferences this fall: @javazone, @devoxx, @devoxx_ma.
@cl4es @spyced Once you have an allocation, you're out of luck. Allocations are safe points. So the IR node is 'pinned', and can't be hoisted out of the loop.
@cl4es @spyced Even capturing lambdas are scalar replaceable though, right?
I'm guessing in this case the variable used for the lambda is non-local to the loop body, but re-assigned on every iteration. So, you get a phi node which kills escape analysis.
@richardstartin Ok, true. If you need uniqueness of the Keys, scanning an entire ArrayList to look for duplicates is probably not a great idea😅
So, Maps are useful in cases where inserting a duplicate Key is actually an update of the previous Value. (Or might want to throw an error on dups)
If you're creating a Map<Key, Value> just to iterate over all the entries, you don't want a Map, you want a List<KeyValue>, where KeyValue is an aggregate of Key & Value.
@munificentbob Also has a big effect on function call chains:
c(b(a(xyz))) vs xyz.a().b().c()
The former has the operations listed in reverse order (when reading left to right).