JEP 393

GPTKB entity

Statements (616)
Predicate Object
gptkbp:instance_of gptkb:Java_2_Platform
gptkb:JEP
gptkbp:addresses Thread stack management in ZGC
gptkbp:adoption_in_industry Adopted by major companies.
gptkbp:adoption_in_open_source Widely used in open-source projects.
gptkbp:affects gptkb:Java_SE_17
gptkbp:aims_to enhance developer experience
Provide a mechanism to interact with native code and memory
Improve observability of Java applications.
improve observability
gptkbp:aims_to_improve GC pause times
gptkbp:api Introduces new classes and methods.
gptkbp:applies_to gptkb:Java_SE_14
gptkbp:author gptkb:Brian_Goetz
gptkb:John_Doe
gptkb:Javac_Team
gptkb:Jeppe_Cramon
gptkb:Johan_Vos
gptkb:Mark_Reinhold
Panagiotis Koutoupis
Brian Goetz.
Thomas Schatzl
gptkbp:benefits Enhanced user experience.
Low-latency applications
Continuous feedback loop.
Enhanced graphics performance.
Improved graphics rendering.
Improves code readability and reduces boilerplate.
Improves readability of code.
Reduces the need for explicit casting.
Improves startup time and reduces memory footprint.
Real-time monitoring of applications.
Improved application performance.
Better performance for applications.
Continuous community feedback.
User feedback will guide development.
Provides better control over type hierarchies.
gptkbp:case_analysis Case studies demonstrating performance improvements.
gptkbp:category Language Enhancements
gptkbp:challenges Complexity of implementation
Cross-platform compatibility
Performance overhead.
Compatibility with existing systems.
Compatibility with existing applications.
Integration with existing libraries
Need for extensive testing
User adoption and education
Ensuring memory safety
Performance trade-offs
Complexity of integration.
Addressing legacy compatibility issues.
Addressing legacy compatibility.
gptkbp:code Code samples provided in the documentation.
Provided in the proposal.
gptkbp:collaborated_with Industry partners
Java development teams
gptkbp:collaboration Enhances collaboration among developers.
Collaboration with Apple.
gptkbp:collaborative_projects Collaboration with industry partners.
Engagement with the developer community.
gptkbp:collaborator Various contributors from the Java community.
gptkbp:community Recognized as a significant enhancement.
gptkbp:community_engagement Regular updates to the community.
Encouraged through forums.
Engaged with the community for feedback.
gptkbp:community_events Discussed in Java conferences.
gptkbp:community_feedback Desire for more examples
Encouraged for future proposals.
Interest in performance improvements
Positive feedback from the Java community.
Positive response from developers
Request for additional documentation
Received positive feedback from the Java community.
gptkbp:community_involvement Open for contributions.
Encouraged for feedback and testing.
Involves contributions from various developers.
gptkbp:community_support Strong community support.
Regular updates.
Active forums.
Active community support.
Strong support from the Java community.
gptkbp:compatibility Backward compatible with existing Java code.
Backward compatible with existing Java memory management.
gptkbp:concluded_on Conclusion drawn from the implementation.
A significant enhancement for Java.
Improves application performance monitoring.
Aims to modernize mac OS rendering.
Deprecation is necessary for modernization.
gptkbp:conference Presented at Java conferences.
gptkbp:configuration Configurable via command-line options.
gptkbp:conformance Conforms to Java SE specifications.
Conforms to Java SE standards.
Conforms to Java language specifications.
gptkbp:consequences Modules will be removed in future releases
gptkbp:contributes_to Garbage collection efficiency
gptkbp:contribution Open to community contributions
Partnerships with academic institutions
Community contributions.
Community contributions welcomed
Collaborative development encouraged
Contributed to the Open JDK project.
Enhances type safety.
Introduces a new syntax for type checks.
Open for feedback and suggestions
Open source contributions accepted.
Contributes to the evolution of the Java programming language.
Enhances type inference in lambda expressions.
Enhances functional programming capabilities.
gptkbp:contribution_to_best_practices Promotes best practices in Java coding.
gptkbp:created 2020-09-15
2021-09-15
gptkbp:date_finalized 2021-03-16
gptkbp:dependency gptkb:JEP_411
gptkb:JEP_338
gptkb:JEP_384
gptkb:JEP_392
Java SE.
Requires JDK 16 or later.
Depends on JDK internals.
gptkbp:describes API Documentation for Java SE 15
JDK 14 Support
gptkbp:description Enhances the Java programming language with pattern matching for the instanceof operator.
Provides an API to allow Java programs to safely and efficiently access foreign memory.
This JEP proposes the removal of the Java EE and CORBA modules from the JDK.
Enhances Class Data Sharing (CDS) to allow the sharing of class metadata across different Java applications.
Introduces a new rendering pipeline for mac OS.
Allows the use of local-variable syntax for lambda parameters.
Enhances the switch statement to allow it to be used as an expression.
Provides a mechanism for streaming events from the Java Flight Recorder.
Introduces sealed interfaces to restrict which classes can implement them.
This JEP proposes to enhance the Java programming language with pattern matching for the instanceof operator.
gptkbp:design Encapsulation of type hierarchies.
gptkbp:design_purpose gptkb:performance
gptkb:Simplicity
Safety
Improve code clarity.
gptkbp:developed_by gptkb:Open_JDK_community
gptkbp:developer_impact Easier development for mac OS.
gptkbp:discusses September 2020
Implementation details
Open JDK mailing list
Open JDK mailing list.
https://openjdk.java.net/jeps/393
gptkbp:ecological_role Strengthens Java's functional programming model.
gptkbp:ecosystem Part of the Java ecosystem.
gptkbp:educational_resources Available on Open JDK website.
Documentation available on Open JDK.
gptkbp:educational_value Used in teaching advanced Java concepts.
gptkbp:effective_date September 2021
gptkbp:enables real-time event consumption
gptkbp:end_date March 2021
Finalized in JDK 17.
gptkbp:enhances Application performance
Safety in memory access
Considered for future JEPs.
gptkbp:example if (obj instanceof String s) { ... }
(var x) -> x + 1
Accessing native data structures
Used in large-scale web applications.
String result = switch (day) { case MONDAY -> " Start of the week"; }
Allocating native memory
Calling a native function
Event streaming use cases.
Provides examples for usage in documentation.
Allows defining interfaces that can only be implemented by specific classes.
switch (day) { case MONDAY: ...; }
gptkbp:example_implementation final class Circle implements Shape {}
gptkbp:example_subclass non-sealed class Rectangle implements Shape {}
gptkbp:facilitates Cross-language interoperability
gptkbp:feature Allows multiple case labels to be grouped.
Enables switch to be used in a more functional style.
Supports yield statement to return a value.
gptkbp:feedback Community feedback encouraged
Community feedback encouraged.
Positive from the community.
Positive from the developer community.
Encouraged from the community.
gptkbp:feedback_mechanism Open JDK mailing lists.
Open for community feedback.
Git Hub issues.
Open for community input.
gptkbp:first_released Expected in JDK 18.
gptkbp:focuses_on Thread stack processing
API documentation improvements
gptkbp:formulation Uses the 'sealed' keyword.
gptkbp:future_plans Gather user feedback
Expand API capabilities
Improve performance optimizations
Next steps outlined for the community.
Finalize implementation.
Integrate with other JEPs
gptkbp:future_prospects Further enhancements and stabilization.
Further optimizations planned.
Potential enhancements for future JDK versions.
Stabilization of API
Potential enhancements.
Potential enhancements to sealed types.
Potential enhancements to lambda syntax.
Integration with other JEPs
gptkbp:goal Provide a mechanism to express vector computations
gptkbp:goals Enhance rendering capabilities.
Streamlined event handling.
gptkbp:governance Managed by Open JDK community
Open JFX governance model.
gptkbp:has_advisory_board Recommended for production environments.
Java FX advisory board.
gptkbp:has_documentation Comprehensive documentation available.
Detailed documentation provided.
Comprehensive user documentation.
Available on Open JDK site.
Available in JDK documentation
Available in Java SE documentation.
Detailed developer documentation.
gptkbp:has_implications_for Java performance optimization
gptkbp:has_limitations Not all classes can be shared.
Limited to certain use cases.
gptkbp:has_version Version 1.0 released with JDK 16.
https://www.w3.org/2000/01/rdf-schema#label JEP 393
gptkbp:impact Java developers
Improved user experience.
Impact analysis conducted.
Changes how switch statements are written.
Enhances Java's performance capabilities
Facilitates modern application development
Improves code readability and reduces boilerplate.
Improves code readability for vector operations
Simplifies the syntax for lambda expressions.
Supports vectorized operations
Applications using CDS will benefit from reduced memory usage.
Applications using Java EE and CORBA will need to migrate to alternative solutions.
Potentially broad impact on Java applications
Enhances the Java ecosystem.
Improves maintainability and readability of code.
Establishing performance benchmarks.
Graphics performance on mac OS.
Mitigated through testing.
Performance benchmarks to be defined.
Performance metrics to be established.
JMX functionality will be removed
gptkbp:impact_on_apidesign Influences API design in Java.
gptkbp:impact_on_code_maintenance Facilitates easier code maintenance.
gptkbp:impact_on_code_reviews Facilitates better code reviews.
gptkbp:impact_on_development_practices Encourages modern development practices.
gptkbp:impact_on_learning_curve Reduces complexity for new developers.
gptkbp:impact_on_legacy_code Minimal impact on legacy code.
gptkbp:impact_on_performance_testing No adverse effects noted.
gptkbp:impact_on_software_development_life_cycle Affects the software development lifecycle positively.
gptkbp:impact_on_syntax Introduces new syntax for lambda parameters.
gptkbp:impact_on_tooling Improves tooling support for lambda expressions.
gptkbp:improves Pause times during garbage collection
Performance of native calls
gptkbp:includes Performance metrics
new features
gptkbp:innovation Innovative rendering techniques.
Adoption of new rendering technologies.
gptkbp:integration_with_java_fx Compatible with Java FX.
gptkbp:integration_with_other_features Works with existing Java features.
gptkbp:interface sealed interface Shape {}
gptkbp:introduced_in gptkb:JDK_17
gptkb:Java_14
gptkb:Java_11
gptkb:JDK_14
gptkb:Java_17
gptkb:Java_SE_15
gptkbp:involved_technology gptkb:Microservices
gptkb:JNA_(Java_Native_Access)
gptkb:Java_Virtual_Machine
gptkb:cloud_computing
gptkb:Java_Development_Kit_(JDK)
gptkb:Java_Virtual_Machine_(JVM)
gptkb:Open_VMS
gptkb:Open_JDK
gptkb:JNI_(Java_Native_Interface)
Metal API
FFI (Foreign Function Interface)
Cloud computing.
Big data.
Microservices.
Java SE.
gptkbp:is_a_framework_for Adopted by popular Java frameworks.
gptkbp:is_a_resource_for Various tutorials available.
gptkbp:is_about gptkb:Foreign_Function_&_Memory_API_(Incubator)
gptkbp:is_adopted_by Open-source projects
Enterprise applications
Java developers
Adopted by several projects.
Challenges faced during adoption.
High adoption rate in enterprise applications.
High among Java developers.
Early adopters in the Java community
Widely adopted in production systems.
Learning curve for existing developers.
Expected in future mac OS applications.
Widely adopted in Java 11.
Widely adopted in new Java projects.
gptkbp:is_aligned_with gptkb:Java's_modular_system
Java's performance goals
gptkbp:is_analyzed_in Technical papers
Technical analysts
gptkbp:is_anticipated_by Enhance developer productivity
Reduce boilerplate code in JNI
gptkbp:is_cited_in Java documentation
gptkbp:is_compared_to Compared to previous CDS implementations.
Other garbage collectors
Similar to sealed classes.
gptkbp:is_compatible_with gptkb:Java_SE_platform
gptkbp:is_considered Future Java versions
gptkbp:is_described_as Java tutorials
gptkbp:is_discussed_in Technical blogs
Java community forums
Java forums
Java user conferences
gptkbp:is_documented_in gptkb:JEP
Open JDK documentation
Java documentation teams
gptkbp:is_essential_for gptkb:High
gptkbp:is_evaluated_by Industry experts
Performance benchmarks
Performance analysts
Java SE experts
gptkbp:is_expected_to Simplify native interop in Java
gptkbp:is_explored_in gptkb:Java_conferences
Research projects
Technical discussions
Research on native interop
gptkbp:is_implemented_in gptkb:Java_FX
gptkb:Java_Hot_Spot_VM
gptkb:Open_JDK_Project_Loom
gptkb:Open_JDK
Completed
In progress
Implemented in the Java compiler.
Incubator module in JDK.
In progress.
Java.
Completed.
Detailed implementation information available.
Implemented in JDK 17.
Implemented in the Hot Spot JVM.
Incubator module in JDK
JDK 11 and later.
Part of the Java language.
Part of the JDK.
gptkbp:is_influenced_by User feedback
C foreign function interfaces
gptkbp:is_informed_by gptkb:JEP_412
gptkbp:is_integrated_with gptkb:Java_ecosystem
gptkbp:is_motivated_by Improve performance of vector operations
Reduce the size of the JDK
To optimize the performance of Java applications.
To improve performance by allowing direct access to native memory.
To reduce the size of the JDK and remove obsolete technologies.
Enhance the expressiveness of the type system.
Improve performance and compatibility.
Simplify the Java SE platform
gptkbp:is_part_of gptkb:Java_2_Platform
gptkb:Java_SE_platform
gptkb:Project_Loom
Java platform evolution
Java 17 features
Java performance improvements
gptkbp:is_practiced_in Use with applications that have a large number of classes.
gptkbp:is_promoted_by gptkb:Java_conferences
Java advocacy groups
gptkbp:is_promoted_through Webinars
gptkbp:is_referenced_in Software engineering literature
Java development guides
gptkbp:is_related_to gptkb:JEP_384
gptkb:JEP_424
gptkbp:is_reviewed_by gptkb:Java_Community_Process
gptkb:Java_community
Technical reviews
Approved.
JDK community
gptkbp:is_supported_by gptkb:Java_SE_17
gptkb:Open_JDK
Java runtime environment
Java user groups
Java community initiatives
gptkbp:is_tested_for Real-world scenarios
Quality assurance teams
Extensively tested in JDK 11.
Extensively tested in various environments.
Extensively tested in various scenarios.
Open JDK testing framework
Extensive testing planned.
JDK testing framework
gptkbp:is_updated_by JEP process
gptkbp:is_utilized_by Cloud services
Enterprise applications
gptkbp:is_utilized_in High-performance applications
gptkbp:issues JDK-8261234
JDK-8241234
gptkbp:key Key takeaways from the proposal.
Sealed interfaces provide better control over type hierarchies.
gptkbp:key_feature Support for hardware acceleration
API for vector operations
Class metadata sharing.
Compatibility with existing Java code
Foreign function calls
Memory access API
Safety and performance improvements
Type-safe vector operations
Sealed interfaces.
Utilizes Metal for rendering.
Memory allocation, access, and deallocation.
gptkbp:language Type system enhancement.
gptkbp:latest_version gptkb:JEP_393
gptkb:Java_SE_14
1.0
1.0 (Incubator)
Introduced in JDK 17.
Incubator version
gptkbp:library Used in various Java libraries.
gptkbp:memory_reduction Reduces memory usage by sharing class metadata.
gptkbp:notable_contributor Open source projects
gptkbp:notable_production Minimal.
gptkbp:notable_release 2020-10-01
gptkbp:offers_courses_in Webinars available for learning.
gptkbp:offers_workshops_on Workshops conducted for developers.
gptkbp:performance Latency.
Throughput.
Resource utilization.
Benchmark results available.
Improves performance for certain applications.
Minimal impact on performance.
Performance metrics published.
Up to 30% faster startup.
Benchmarks to be established.
No significant impact.
Existing JNI implementations
gptkbp:platform gptkb:mac_OS
gptkbp:platforms Cross-platform support.
gptkbp:plot_summary Summary of the proposal available.
New rendering pipeline for better performance.
This JEP proposes the removal of the JMX modules from the JDK.
gptkbp:product_quality Improves overall code quality.
gptkbp:project Enhance user experience.
Phased implementation.
Phased rollout.
Open JDK.
Align with modern graphics standards.
Enhance performance and usability.
Implementation in stages.
Java FX projects.
Managed by Open JFX community.
Managed by Open JFX.
Modernize Java FX graphics.
Oversight by Open JFX.
Related to other JEPs.
gptkbp:proposed_by gptkb:Brian_Goetz
gptkb:Oracle
gptkb:Oracle_Corporation
gptkb:Javac_Team
gptkb:Open_JFX_community
gptkb:Open_JDK
JDK Enhancement Proposals
JDK Project
Concurrent processing of thread stacks in Z Garbage Collector
Deprecate the Java EE and CORBA Modules for Removal
gptkbp:provides Memory Access API
event streaming capabilities
Foreign Function API
better accessibility to documentation
gptkbp:published_by Open JDK mailing lists
gptkbp:purpose Provide a mechanism to interact with native code and memory in a safe manner.
gptkbp:real_world_usage Adopted in enterprise applications.
gptkbp:reduces Complexity of native code integration
gptkbp:related_concept Polymorphism.
ISO/ IEC 23270.
gptkbp:related_jeps gptkb:JEP_411
gptkb:JEP_384
gptkb:JEP_391
gptkb:JEP_392
gptkb:JEP_220
gptkb:JEP_320
gptkb:JEP_326
gptkb:JEP_328
gptkb:JEP_412
JEP 360, JEP 411.
gptkbp:related_to gptkb:JEP_394
gptkb:JEP_395
gptkb:Sealed_Classes
gptkb:Z_Garbage_Collector
gptkb:Java_Flight_Recorder
gptkb:JEP_308
gptkb:JEP_326
gptkb:JNI_(Java_Native_Interface)
Pattern Matching
Lambda Expressions
gptkbp:release_date TBD
September 2021
September 2021.
March 2021.
gptkbp:release_notes Included in JDK 16 release notes.
Included in JDK 17.
gptkbp:released gptkb:JDK_17
gptkb:Java_SE_14
gptkb:Java_17
Follows the JDK release cycle.
gptkbp:requires JDK 17 or later
JDK 16 or later.
Java Flight Recorder API.
JVM support for concurrent stack processing
JDK 14 features
gptkbp:reviews gptkb:Roman_Kennke
gptkb:Various
gptkb:Brian_Goetz
gptkb:Java_Community_Process
gptkb:Java_Platform_Group
gptkb:Mark_Reinhold
gptkb:Maurizio_Cimadamore
Various contributors
https://mail.openjdk.java.net/pipermail/jdk-dev/2020-September/004123.html
JDK Committers
Various contributors.
Various members of the Open JDK community.
gptkbp:risk_management Low risk identified.
gptkbp:roadmap Roadmap for future enhancements.
gptkbp:scope Focus on mac OS platform.
Focus on mac OS rendering.
Targeting mac OS applications.
gptkbp:security Enhances security by reducing attack surface.
Includes security checks for memory access.
gptkbp:semantics Defines which classes can implement the interface.
gptkbp:specification gptkb:Java_Language_Specification
Detailed technical specifications available.
Java Language Specification.
Defines the syntax and semantics of sealed interfaces.
gptkbp:specifies gptkb:Java_Flight_Recorder
Virtual Machine Specification
gptkbp:stakeholders Java developers.
Java FX developers.
gptkbp:status gptkb:Flamethrower
gptkb:Final
gptkb:Preview
Standard Feature
Targeted for JDK 17
gptkbp:success Case studies available.
Success stories shared by users.
Community involvement and feedback.
Companies using JFR.
Performance improvements reported.
Performance benchmarks met.
gptkbp:support Supported by Oracle.
gptkbp:supports C and C++ libraries
JFR events
gptkbp:sustainability Long-term support planned.
gptkbp:sustainability_efforts Long-term support and updates.
Long-term sustainability planned.
Plans for long-term support.
gptkbp:target_jdk gptkb:JDK_17
gptkb:JDK_11
gptkb:JDK_15
gptkb:JDK_16
gptkbp:title gptkb:Foreign_Function_&_Memory_API_(Incubator)
gptkb:JFR:_Event_Streaming
gptkb:Foreign-Memory_Access_API_(Incubator)
gptkb:Foreign_Function_&_Memory_API_(incubator)
gptkb:JFR_Event_Streaming
gptkb:Vector_API_(Incubator)
Local-Variable Syntax for Lambda Parameters
Sealed Interfaces
ZGC: Concurrent Thread-Stack Processing
Class Data Sharing (CDS) Archives
Generic Java Language Support for Pattern Matching
Remove the Java EE and CORBA Modules
Switch Expressions (Standard Feature)
New mac OS Rendering Pipeline (preview)
Remove the Java Management Extensions (JMX) Modules
gptkbp:trends Integration with AI.
Increased adoption.
Enhanced analytics.
Increased use of sealed types.
Expected to influence future Java enhancements.
gptkbp:tutorials Available online.
Tutorials available online.
gptkbp:updates 2021-07-14
Regular updates planned.
Future updates planned.
gptkbp:usage Used in high-performance computing
Used in data science applications
Used in graphics processing
Used in machine learning frameworks
Used in server applications to improve performance.
Used for interfacing with native libraries.
Used to define a restricted hierarchy of types.
gptkbp:use_case Interfacing with C libraries
Memory-mapped files
Performance analysis.
Native data structures
Troubleshooting.
Capacity planning.
Allows for more concise code.
Defining APIs with controlled implementations.
gptkbp:user_base Java developers.
Widely used by Java developers.
System administrators.
Dev Ops engineers.
gptkbp:user_feedback User feedback collected for improvements.
User feedback will shape future updates.
gptkbp:user_manual Available in the official Java documentation.
gptkbp:vision Sustainable graphics rendering.
Evolving the Java type system.
gptkbp:bfsParent gptkb:JDK_17
gptkb:JEP_33
gptkb:JDK_10
gptkb:JDK_14
gptkb:JDK_15
gptkb:JDK_18
gptkb:JEP_488
gptkb:Java_17
gptkb:Java_SE_15
gptkb:Java_10
gptkb:Open_JDK
gptkbp:bfsLayer 5