EG meeting, 2022-05-18

Dan Smith daniel.smith at oracle.com
Wed May 18 18:47:29 UTC 2022


> On May 18, 2022, at 8:24 AM, Dan Smith <daniel.smith at oracle.com> wrote:
> 
> EG Zoom meeting today at 4pm UTC (9am PDT, 12pm EDT).
> 
> Recent threads to discuss:
> 
> - "User model stacking: current status": Brian talked about factoring atomicity out of the B2/B3 choice, as an extra choice applying to B3 (and perhaps B2, too)
> 
> - "Nullity (was: User model stacking: current status)": Brian explored the possibility of using '?' and '!' as alternatives to '.ref' and '.val' for B3 classes, anticipating more general support in the language for null-free types
> 
> - "User model: terminology": Brian summarized the different features that need labels (non-identity classes, non-identity classes with a valid zero, tearable classes, types with and without null)

Summary of this discussion:

Reviewed how we ended up with concerns about the status quo approach to primitive classes (documented in JEP 401), how we wanted a better story for tearing, and different strategies that have been considered there. Nothing new here, just summarizing.

Dug into some details of the nullable+tearable combination:

- A tearable B2 class is probably a mismatch—if you can tear, you can create a zero value, but the B2 has declared itself zero-hostile. No objections, then, to the idea that atomic/non-atomic is a property of B3 only (or equivalently, by giving up atomicity you've entered a new category, B4).

- Tearable+nullable B3 types (e.g., 'LPoint;' could be considered tearable) remain a possible area to explore. There's some concern about user model—tearing a null leads to surprising outcomes after a null check and possible hard-to-observe memory leaks—and implementation. It would help to ground this conversation in some more concrete examples, though.



More information about the valhalla-spec-observers mailing list