BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Pentabarf//Schedule 0.3//EN CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALDESC;VALUE=TEXT:Free Java devroom X-WR-CALNAME;VALUE=TEXT:Free Java devroom X-WR-TIMEZONE;VALUE=TEXT:Europe/Brussels BEGIN:VEVENT METHOD:PUBLISH UID:10717@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T103000 DTEND:20200201T111500 SUMMARY:State of OpenJDK DESCRIPTION:
A review of the past year in the life of the OpenJDK Community, and a look at what's ahead.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/state_openjdk/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mark Reinhold":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10718@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T112000 DTEND:20200201T114500 SUMMARY:Project Loom: Advanced concurrency for fun and profit DESCRIPTION:Project Loom, an OpenJDK project, is "intended to explore, incubate and deliver Java VM features and APIs built on top of them for the purpose of supporting easy-to-use, high-throughput lightweight concurrency and new programming models on the Java platform." These feature include Lightweight Threads, delimited continuations, and tail-call elimination.
The speaker, a Project Loom team member, will describe the project in depth, in particular the gnarly details of how coroutine and continuation scheduling mechanism works, and a new feature, Scoped Locals.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/loom/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Andrew Haley":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10720@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T115000 DTEND:20200201T121500 SUMMARY:TornadoVM: A Virtual Machine for Exploiting High-Performance Heterogeneous Execution of Java Programs DESCRIPTION:The proliferation of heterogeneous hardware in recent years has driven us to consider that every system we program, most likely includes a mix of computing elements; each of which with different hardware characteristics enabling programmers to improve performance while reducing energy consumption. These new heterogeneous devices include multi-core CPUs, GPUs and FPGAs. This trend has been accompanied by changes in software development norms that do not necessarily favor programmers. A prime example is the two most popular heterogeneous programming languages, CUDA and OpenCL, which expose several low-level features to the API making them difficult to use by non-expert users.
Instead of using low-level programming languages, developers in industry and academia tend to use higher-level, object-oriented programming languages, typically executed on managed runtime environments, such as Java, R, and Javascript. Although many programmers might expect that such programming languages would have already been adapted for transparent execution on heterogeneous hardware, the reality is that their support is either very limited or absent.
In this talk, we present TornadoVM (https://github.com/beehive-lab/TornadoVM), a heterogeneous programming framework for Java programs. TornadoVM co-exists with standard JVMs (e.g., OpenJDK) that implement the JVMCI. TornadoVM consists of three components: 1) a simple API for composing pipelines of existing Java methods, 2) an optimizing JIT compiler that extends the Graal compiler with hardware-aware optimizations that generate OpenCL C code, and 3) a runtime system that executes TornadoVM specific bytecodes, performs memory management, and schedules the code for execution on GPUs, multicore CPUs, and FPGAs. Essentially, TornadoVM is a “VM-in-a-VM” that can adapt execution completely dynamically and transparently to the user, always finding the highest-performing combination of hardware accelerators through dynamic reconfiguration.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/tornadovm/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Thanos Stratikopoulos":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10721@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T122000 DTEND:20200201T130000 SUMMARY:ByteBuffers are dead, long live ByteBuffers! DESCRIPTION:Abstract: Direct buffers are, to date, the only way to access foreign,off-heap memory. Despite their success, direct buffers suffer from somelimitations --- stateful-ness, lack of addressing space,non-deterministic deallocation to name a few --- which makes them aless-than-ideal choice under certain workloads. In this talk we paintthe path to the future: a safe, supported and efficient foreign memoryaccess API for Java. By providing a more targeted solution to theproblem of accessing foreign memory, not only developers will be freedby the above limitations - but they will also enjoy improvedperformances, as the new API is designed from the ground-up with JIToptimizations in mind - and all without sacrificing memory access safety.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/bytebuffers/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Maurizio Cimadamore":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10722@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T130500 DTEND:20200201T133000 SUMMARY:Free at Last! The Tale of Jakarta EE DESCRIPTION:In September 2017 Oracle announced that it would be migrating governance of the Java EE platform to the Eclipse Foundation, the home of MicroProfile. Two years later Jakarta EE 8 shipped, signaling the successful completion of that move. As a result, Free Java has a new home for a significant piece of the Java ecosystem. A home which is purely open source, vendor neutral, and community led.
This talk will be about how the long and painful journey from Java EE to Jakarta EE unfolded. But more importantly it will focus on how the new Jakarta EE community works, and how there is a new, open, specification process for Java APIs (other than SE) that is available for the community. We are looking forward to welcoming many of those interested in Free Java to participate in driving new innovation in Java APIs for cloud and other exciting use cases.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/jakartaee/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mike Milinkovich":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10723@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T133500 DTEND:20200201T140000 SUMMARY:Shenandoah 2.0 DESCRIPTION:Shenandoah GC landed in JDK12 about a year ago, giving OpenJDKanother low-pause garbage collector. It has undergone substantialchanges since then. Specifically we have a new barrier scheme, and haveeliminated the extra forwarding pointer word per object, thussubstantially reducing memory footprint. After giving a generalintroduction to OpenJDK GC landscape and Shenandoah GC, this talkfocuses on those recent changes in Shenandoah and what's in it for you.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/shenandoah/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Roman Kennke":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10724@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T140500 DTEND:20200201T144500 SUMMARY:JMC & JFR - 2020 Vision DESCRIPTION:JDK Flight Recorder provides production time profiling and diagnosticsvia a compact events-based infrastructure inside the Hotspot JVMitself. JDK Mission Control is a stand-alone application that providesreal-time monitoring information for Hotspot JVMs, as well as tools toread, automatically analyze and visualize flight recording dataproduced by JDK Flight Recorder.
When this talk is presented, JMC 7.1.0 has (hopefully) been out for alittle while. This presentation talks about what is new and theroadmap for the upcoming JMC 8. We will also discuss recent changes inthe project, such as the move to Skara. Towards the end we will demohow JDK Flight Recorder and JMC core libraries can be used to diagnoseapplications deployed in container orchestration platforms.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/imc/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Jie Kang":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10725@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T145000 DTEND:20200201T151500 SUMMARY:Hacking on GraalVM: A (very) Rough Guide DESCRIPTION:The GraalVM project provides, among other options, a means to deliverJava programs as compact, self-contained, fast-startup native images.GraalVM has been moving from research to development for quite a fewyears now. However, it is only just beginning to be properly integratedwith the latest OpenJDK releases and there is still much to be done toget it fully productized and to improve usability and performance.
This talk will recount our joint experiences of trying to add new and/orimproved capabilities to the the GraalVM code base. Our story willstumble gracelessly from one pitfall to the next cock-up in the hopethat by exposing and explaining our own history of lamentable error andoccasional failure you will be able to avoid being doomed to repeat it.
We will provide a guide to getting started and building GraalVM, anoverview of the how the compiler, native image generator and otherelements of the GraalVM toolkit operate plus a map of what code sitswhere in the source tree and how it fits together and offer tips fordebugging the Graal compiler and native image generator -- all the tasksyou will need to perform in order to attain a vantage point from whichto change or add to the current functionality.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/hacking_graalvm/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Andrew Dinn":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Josh Matsuoka":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10726@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T152000 DTEND:20200201T154500 SUMMARY:Reducing OpenJDK Java Garbage Collection times with stack allocation DESCRIPTION:In this talk we'll explore ways that the JVM can reduce the object allocation rate of Java programs automatically by performing stack allocation of objects that are known to be local to a method, or in compiler terms non-escaping. The discussion is focused on employing the escape analysis optimization in the OpenJDK Hotspot C2 compiler to determine which Java objects can be stack allocated, and how this optimization can reduce pressure on the Java JVM garbage collectors.
We'll show some results on how various real world applications can benefit from such optimizations and describe the methodology of how we prototyped this in OpenJDK. Our work is only in prototype state at this moment and we are looking for more data to understand how broadly applicable this optimizations is. This work wouldn't be possible without free open source access to Java.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/reducing_gc_times/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Nikola Grcevski":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10727@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T155000 DTEND:20200201T161500 SUMMARY:G1: To infinity and beyond DESCRIPTION:Abstract: G1 has been around for quite some time now and since JDK 9 itis the default garbage collector in OpenJDK. The community working on G1is quite big and the contributions over the last few years have made asignificant impact on the overall performance. This talk will focus onsome of these features and how they have improved G1 in various ways. Wewill also take a brief look at what features we have lined up for thefuture.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/g1/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Stefan Johansson":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10728@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T162000 DTEND:20200201T164500 SUMMARY:Just-in-time compiling Java in 2020 DESCRIPTION:Client compiler, server compiler, JVMCI, Graal ... What are we using today and how do they work together?In this talk I'll give and overview of the Just-in-time compilers included in OpenJDK and explain how to play with them.I'll also address Just-in-time compiler threads and resource related issues.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/jit2020/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Martin Doerr":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10729@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T165000 DTEND:20200201T171500 SUMMARY:Helpful NullPointerExceptions - The little thing that became a JEP DESCRIPTION:One of the most prevalent - if not the most prevalent - exception type in Java is the NullPointerException. While Java set out to overcome the possibilitiesto do the mistakes one can do when programming in languages like C/C++ by not exposing pointers in the Java language, the misleading term 'pointer' sneakedinto this exception. To this day, NullPointerExceptions thrown by the runtime system didn't contain messages. All you had was a callstack and a line number.But in typical expressions and statements there are several dereferences where an NPE can occur in one line.
We - some engineers in the SAP team - thought this could be helped by a little enhancement. The new NPE message gives precise information about the locationand tries to explain what was going on when a null reference was encountered. However, due to its prominent nature, it eventually became a JEP.
In my talk I'll demonstrate the improvements that come with this enhancement. I will lift the hood a little and provide a glance at its implementation details.And finally I'll say some words about the current status and share some ideas for further improvements in the area of exception messages.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/npes/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Christoph Langer":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10730@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T172000 DTEND:20200201T174500 SUMMARY:Taming Metaspace: a look at the machinery, and a proposal for a better one DESCRIPTION:When examining memory footprint of a JVM process, the delta between Javaheap usage and actual working set size can be surprisingly large. The JVMuses off-heap memory for a lot of things: thread stacks, compiler arenas,code heap, byte buffers, GC control... however, one of the largestconsumers of off-heap memory can be class metadata. Class metadata arestored in Metaspace, which includes the Compressed Class Space.
The talk will explore what Metaspace actually is and what is stored there;describe the architecture of the Metaspace allocator and the CompressedClass Space; how it interacts with the GC; how it is sized. We willhighlight waste areas and demonstrate how to use jcmd to examine Metaspaceinternals.
The current implementation of the Metaspace allocator suffers from a numberof shortcomings. They can manifest in excessive waste and a certain"clinginess" - an unwillingness to let go of unused memory.
At SAP, we developed an improved version which is more frugal with memoryand provides a much improved elasticity. So the second part of this talkwill concentrate on our new implementation. We will highlight thedifferences to the old architecture, demonstrate advantages and examine howit works.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/metaspace/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Thomas Stüfe":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10731@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T175000 DTEND:20200201T181500 SUMMARY:The OpenJDK JVM : Securing a moving target or What could possibly go wrong? DESCRIPTION:The OpenJDK Java Virtual Machine presents some interesting challengeswhen it comes to guarding against potential vulnerabilities. This talkwill explain how dynamic class-loading, JIT compilation, speculativecompilation and other aspects of the JVM's operation present a movingattack surface that presents some very different challenges to thosefound in other programs or runtimes.
This talk won't say anything about specific vulnerabilities but it willidentify a few areas of the OpenJDK JVM where some of these unique typesof vulnerability have been identified and resolved. It may teach yousome things you didn't know about the complexity of the JVM andhopefully reassure you that the OpenJDK devs are very aware of whatcould possibly go wrong. Whether we have got it all right is left as afollow-up exercise for attendees.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/secure_jvm/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Andrew Dinn":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10719@FOSDEM20@fosdem.org TZID:Europe-Brussels DTSTART:20200201T182000 DTEND:20200201T190000 SUMMARY:JRuby Startup and AOT DESCRIPTION:Rubyists work from a command line, which makes JRuby startup time a critical concern. Traditionally, the JVM has not been optimized for startup, but that's changing. This talk will explore all available options for making a heavy runtime like JRuby start up quickly, from using class data caching services like Hotspot's CDS and OpenJ9's Quickstart to ahead-of-time compilation of JRuby using GraalVM's Native Image. We'll compare approaches and trade-offs.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2020/schedule/2020/schedule/event/ruby/ LOCATION:H.1302 (Depage) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Charles Nutter":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Thomas Enebo":invalid:nomail END:VEVENT END:VCALENDAR