Statements (399)
Predicate | Object |
---|---|
gptkbp:instance_of |
gptkb:Java_2_Platform
gptkb:JEP |
gptkbp:addresses |
Performance bottlenecks
developer feedback |
gptkbp:affects |
Java developers
|
gptkbp:aims_to |
enhance developer productivity
Improve interoperability with native code Provide a mechanism to interact with native code and memory improve release process |
gptkbp:aims_to_improve |
Graphics pipeline
|
gptkbp:approves |
gptkb:Open_JDK
2021-09-15 2022-09-15 |
gptkbp:author |
Foreign Function & Memory API Team
Gavin Bierman |
gptkbp:benefits |
Improved performance
Better integration with mac OS features Allows for more controlled inheritance. Improved rendering performance. Improved performance and visual quality. |
gptkbp:challenges |
Performance overhead
Ensuring memory safety Compatibility with existing code |
gptkbp:code |
Available in Open JDK repository.
|
gptkbp:community_engagement |
Encouraged through forums.
|
gptkbp:community_feedback |
Informed future updates.
|
gptkbp:community_involvement |
Encouraged throughout development.
|
gptkbp:community_support |
Active community support.
|
gptkbp:concluded_on |
2022-09-15
|
gptkbp:conformance |
Follows Java SE specifications.
|
gptkbp:contains |
new API features
|
gptkbp:contributes_to |
Java graphics performance
|
gptkbp:contribution |
Community contributions
Open-source collaboration Community contributions. Documentation improvements Feedback from developers Follow Open JDK guidelines. Testing and validation efforts |
gptkbp:created |
2021-09-15
|
gptkbp:customer_satisfaction |
Reported high satisfaction.
|
gptkbp:dependency |
Java 17 features.
|
gptkbp:describes |
gptkb:Foreign_Function_&_Memory_API_(Incubator)
gptkb:Foreign_Function_&_Memory_API JDK 18 Release Process JDK 17 Release Schedule JDK 18 API Enhancements |
gptkbp:description |
Introduces a new rendering pipeline for mac OS.
Introduces sealed classes and interfaces to restrict which classes can extend or implement them. Provides a mechanism to interact with native code and memory. |
gptkbp:design |
Simplicity and performance.
|
gptkbp:discusses |
Open JDK mailing list
|
gptkbp:education |
Growing among developers.
|
gptkbp:enables |
Memory allocation outside of the Java heap
Advanced visual effects |
gptkbp:enhances |
gptkb:performance
gptkb:Java_Native_Interface_(JNI) Cross-platform compatibility Visual fidelity Java's interoperability with native libraries Planned for next versions. User experience on mac OS applications |
gptkbp:example |
Accessing native data structures
Allocating native memory from Java Calling C functions from Java Calling a C function from Java Accessing native arrays Handling native memory safely Using native pointers in Java non-sealed class Circle extends Shape. non-sealed class Dog extends Animal. sealed class Shape permits Circle, Square. sealed interface Vehicle permits Car, Truck. Interfacing with system libraries sealed class Account permits Savings Account, Checking Account. sealed interface Payment permits Credit Card, Pay Pal. sealed interface Notification Type permits Email, Push. non-sealed class Admin extends User. non-sealed class Apple extends Fruit. non-sealed class Bike extends Vehicle. non-sealed class Blue extends Color. non-sealed class Car implements Vehicle. non-sealed class Cash extends Payment Type. non-sealed class Create implements Action. non-sealed class Credit Card implements Payment. non-sealed class Email implements Notification. non-sealed class Premium extends Subscription. non-sealed class Read implements Task. non-sealed class Rectangle implements Shape. non-sealed class Report extends Document. non-sealed class Savings Account extends Account. non-sealed class Start implements Command. non-sealed class Triangle implements Shape. non-sealed class User extends User Role. non-sealed class Push implements Notification Type. sealed class Animal permits Dog, Cat. sealed class Color permits Red, Blue. sealed class Document permits Report, Invoice. sealed class Fruit permits Apple, Banana. sealed class Payment Type permits Cash, Credit. sealed class Subscription permits Free, Premium. sealed class User permits Admin, Guest. sealed class Vehicle permits Car, Bike. sealed interface Action permits Create, Delete. sealed interface Command permits Start, Stop. sealed interface Notification permits Email, SMS. sealed interface Shape permits Circle, Rectangle. sealed interface Shape permits Circle, Triangle. sealed interface Task permits Read, Write. sealed interface User Role permits Admin, User. non-sealed class Debit Card extends Payment Method. sealed class Payment Method permits Credit Card, Debit Card. |
gptkbp:facilitates |
Direct memory access
Modern graphics techniques |
gptkbp:feature |
Support for high-resolution displays.
|
gptkbp:features |
Foreign function calls
Memory access API Safety and performance improvements |
gptkbp:feedback |
Positive from early adopters.
|
gptkbp:feedback_mechanism |
Open for community input.
|
gptkbp:first_published |
2023-10-01
2023-01-10 2023-09-01 |
gptkbp:first_released |
JDK 17.
|
gptkbp:focuses_on |
API improvements
|
gptkbp:formulation |
Uses the 'sealed' keyword.
Uses the 'non-sealed' keyword. Uses the 'permits' clause. |
gptkbp:future_plans |
Performance benchmarking
Feedback from the community Documentation improvements Further optimizations. Further enhancements and stability improvements Integration with other JEPs |
gptkbp:future_prospects |
Gathering user feedback
Enhancing API usability Expanding native function support Improving documentation |
gptkbp:goal |
Improve interoperability with native code
Enhance Java's graphical capabilities. |
gptkbp:goals |
Enhance performance
Encourage community adoption Maintain Java's safety guarantees Simplify native code interaction Support diverse platforms |
gptkbp:graphics |
Metal.
|
gptkbp:has_documentation |
Available on Open JDK website.
Provided for developers. |
https://www.w3.org/2000/01/rdf-schema#label |
JEP 419
|
gptkbp:impact |
Graphics rendering on mac OS.
Enhances type safety and maintainability. Significant on mac OS development. Graphics rendering on mac OS |
gptkbp:improves |
Rendering quality
Application responsiveness existing libraries Memory access performance |
gptkbp:includes |
gptkb:Foreign_Function_Access_API
Foreign Memory Access API release candidate new methods feature freeze date final release date release candidate date |
gptkbp:increased |
Frame rates
|
gptkbp:influences |
future JDK releases
|
gptkbp:integrates_with |
mac OS system libraries
|
gptkbp:introduced_in |
gptkb:JDK_17
gptkb:Java_Development_Kit_18 gptkb:JDK_18 gptkb:Java_17 |
gptkbp:is_adopted_by |
Java developers
Java developers community Java developers on mac OS. mac OS application developers Increasing among mac OS users. |
gptkbp:is_aimed_at |
Java developers
Native code developers |
gptkbp:is_celebrated_in |
Java community events
|
gptkbp:is_cited_in |
gptkb:Java_2_Platform
technical articles software development books programming blogs Research papers on Java graphics. |
gptkbp:is_compatible_with |
Java's garbage collection
|
gptkbp:is_designed_for |
Performance-critical applications
|
gptkbp:is_discussed_in |
gptkb:Java_conferences
developer meetups Java forums Open JDK mailing lists |
gptkbp:is_documented_in |
gptkb:JEP
Java SE Documentation Java SE API documentation Java SE release notes Open JDK documentation Open JDK website JEP 419 specification |
gptkbp:is_evaluated_by |
gptkb:Java_SE_Advisory_Board
gptkb:Java_SE_Technical_Committee gptkb:Java_SE_Review_Board Performance benchmarks Java SE stakeholders |
gptkbp:is_implemented_in |
gptkb:JDK_17
gptkb:Java_18 gptkb:Java_programming_language gptkb:Java_FX gptkb:JDK_18 gptkb:Java_17 gptkb:Java_Development_Kit_(JDK) gptkb:JDK_21_(Preview) Experimental Completed. Implemented in JDK 17. Incubator module Addressed during development. Apple Metal API JDK 19 and later versions Available in JEP documentation. |
gptkbp:is_influenced_by |
gptkb:C_programming_language
C++ programming language User feedback industry trends user experience studies previous JEPs |
gptkbp:is_motivated_by |
Improve the modeling of class hierarchies.
|
gptkbp:is_optimized_for |
Rendering processes
|
gptkbp:is_part_of |
gptkb:Java_SE_19
gptkb:Java_SE_ecosystem gptkb:Java_SE_17 gptkb:Project_Panama gptkb:Java_SE_18 gptkb:Java_SE_21 gptkb:Java_SE_Platform gptkb:Java_2_Platform gptkb:Java_SE_20 gptkb:Project_Loom Java technology stack Java programming language evolution Java SE 18 release |
gptkbp:is_promoted_by |
Open JDK advocates
|
gptkbp:is_referenced_in |
Technical documentation
subsequent JEPs |
gptkbp:is_related_to |
gptkb:JEP_411
gptkb:JEP_410 gptkb:JEP_412 gptkb:JEP_413 gptkb:JEP_414 gptkb:JEP_415 gptkb:JEP_416 gptkb:JEP_417 gptkb:JEP_418 gptkb:JEP_420 |
gptkbp:is_reviewed_by |
gptkb:Java_SE_community
gptkb:Java_Community_Process Under review Technical experts JDK Review Board Java SE contributors |
gptkbp:is_supported_by |
gptkb:multiple_platforms
gptkb:Java_Development_Kit_(JDK) gptkb:Java_community Java development tools Java runtime environment |
gptkbp:is_targeted_at |
enterprise applications
Java developers software engineers |
gptkbp:is_tested_for |
Extensive testing on mac OS.
Conducted with various applications. Beta versions of JDK 19 |
gptkbp:is_used_for |
High-performance computing
Performance optimization System programming Interfacing with hardware |
gptkbp:key_feature |
gptkb:Sealed_classes
Memory allocation and deallocation Metal-based rendering. Safety and performance improvements Sealed interfaces Support for structured data types Non-sealed classes Permits clause Access to native code without JNI |
gptkbp:latest_version |
gptkb:JDK_19
gptkb:JDK_18 gptkb:Java_17 1.0 |
gptkbp:notable_contributor |
gptkb:Brian_Goetz
gptkb:Alex_Buckley gptkb:Jeppe_Cramon gptkb:Maurizio_Cimadamore gptkb:John_Rose |
gptkbp:notable_release |
Open JDK website
|
gptkbp:part_of |
gptkb:Java_2_Platform
|
gptkbp:performance |
Significant over previous versions.
Benchmarked against previous pipeline. Optimized for Metal. |
gptkbp:platforms |
mac OS only.
|
gptkbp:project |
gptkb:Project_Panama
gptkb:Java_FX gptkb:Project_Loom gptkb:Project_Valhalla Completed in 2021. Managed by Open JDK project. Improve Java graphics on mac OS. |
gptkbp:proposed_by |
gptkb:Open_JDK_Community
gptkb:Brian_Goetz gptkb:Oracle gptkb:Oracle_Corporation 2022-06-01 |
gptkbp:provides |
Resource management features
API for memory management Memory segment abstraction API for foreign function calls API for memory access Safety features for memory access guidelines for release API for calling native code Better GPU utilization better usability Support for new mac OS features |
gptkbp:published_in |
March 2021
|
gptkbp:purpose |
Provide a mechanism to interact with native code and memory in a safe manner.
Provide a mechanism to interact with native code and memory in a safe and efficient manner. |
gptkbp:reduces |
CPU load
Overhead of JNI calls |
gptkbp:related_jeps |
gptkb:JEP_411
gptkb:JEP_360 gptkb:JEP_384 gptkb:JEP_391 gptkb:JEP_409 gptkb:JEP_412 gptkb:JEP_418 |
gptkbp:related_to |
gptkb:user_interface
gptkb:JEP_411 gptkb:JEP_384 gptkb:JEP_2 gptkb:Java_SE_17 gptkb:Java_FX gptkb:JEP_412 gptkb:JNI_(Java_Native_Interface) Memory Access API |
gptkbp:release_date |
September 2022
2021-09-30 September 2021 |
gptkbp:release_notes |
Available on Open JDK site.
|
gptkbp:released |
gptkb:JDK_17
gptkb:Java_SE_18 Aligned with JDK release cycle. Incremental improvements. |
gptkbp:replaces |
Old mac OS Rendering Pipeline
|
gptkbp:requires |
gptkb:JEP_391
Metal API JDK 17 or later JDK 19 or later |
gptkbp:reviews |
gptkb:Venkat_Subramaniam
gptkb:Mark_Reinhold gptkb:Jesse_Glick |
gptkbp:roadmap |
Outlined for upcoming versions.
|
gptkbp:specification |
gptkb:API
gptkb:Incubator_Module Detailed in JEP document. |
gptkbp:specifies |
release cadence
|
gptkbp:status |
gptkb:Flamethrower
gptkb:Final Proposed |
gptkbp:successor |
gptkb:JEP_420
|
gptkbp:supports |
High-resolution displays
C and C++ libraries Metal graphics framework |
gptkbp:target_jdk |
gptkb:JDK_17
gptkb:JDK_19 gptkb:JDK_18 JDK 11.0.19 |
gptkbp:targets |
gptkb:mac_OS
|
gptkbp:technical_review |
Conducted by experts.
|
gptkbp:title |
gptkb:Foreign_Function_&_Memory_API_(Incubator)
gptkb:Sealed_Classes gptkb:New_mac_OS_Rendering_Pipeline New mac OS rendering pipeline Foreign Function & Memory API (Final) Foreign Function & Memory API (Third Incubator) |
gptkbp:usage |
Used in Java programming.
|
gptkbp:use_case |
High-performance computing
Game development System programming Interfacing with C libraries Data processing applications Memory-mapped files Native data structures Interfacing with hardware |
gptkbp:user_base |
Java developers on mac OS.
|
gptkbp:user_experience |
Enhanced for mac OS applications.
|
gptkbp:user_feedback |
Incorporated into design.
|
gptkbp:bfsParent |
gptkb:JEP_17
gptkb:JEP_33 gptkb:Java_SE_18 gptkb:JDK_15 gptkb:JEP_488 |
gptkbp:bfsLayer |
5
|