Valhalla EG 20200129

Frederic Parain frederic.parain at
Wed Jan 29 17:57:36 UTC 2020

# Valhalla EG Meeting 20200129

Dan S., Remi, Brian, Dan (IBM), Tobi (IBM) 

	language side implementation:
	compiler support to inject InlineObject/IdentityObject super-types at compilation time
	some issues with reflection code assuming type hierarchy

	Annotation of j.l.Object

	j.l.Object is not annotated by either  InlineObject or IdentityObject

	new Object()?

	new Object() will be the instanciation of an abtract class subclass of j.l.Object
	push people to move away from this construct with new way to get an Object.

	could be in the IdentityObject interface

	working on reference projection as an interface or an abstract class
	possible update next week, working on simplification
	would lead to rewrite of "State of Valhalla"

	did analysis of static fields set at VM startup but not read (bytecode level analysis)

	Lazy static: push people to initalize at time of declaration
	but issue with checked exception => reasons why people at initializing fields
	in big static initializers
	we need a construct in the language to declare a lazy static with shared throw
	clause for all lazy static fields

	Foreign Memory Access API: issue with VarHandles and checked exceptions
	Talk at Brest JUG:
	     no questions about Records, but a lot of questions about instanceof
	     lot of confusion between inline types and records

	arithmetic benchmarks being developped
	mixed results
		optimized for many years
		lot of corner cases

	did some experiments with HashMap
	saw benefits only if both key and values are in-lined

	issue with big flattened values => lot of data to be moved
	need to educate people about algorithms/designs that work or don't work with inline types

	references Google's fluent API to re-work abstractions

	hope that using inline types for lambdas would help escape analysis getting it right

  Dan (IBM):
      is there a JDK release targeted for Valhalla?

	too early to say
	VM work is consolidating
	language work still needs significant work before having a road-map
  	first release won't have all the features but have to have further additions in mind

	next Valhalla off-site probably during spring

	John wants to move to a specialized generics prototype

	start with a simpler specialized generics model so language and VM teams can work in parallel:
	VM team extending VM data structures (constant pool patching)
	language team working on full specialization model

	retrofitting of Integer: seemed impossible, but now seems more feasible

More information about the valhalla-spec-observers mailing list