Statements (398)
Predicate | Object |
---|---|
gptkbp:instance_of |
gptkb:API
gptkb:Java_Enhancement_Proposal |
gptkbp:bfsLayer |
4
|
gptkbp:bfsParent |
gptkb:JEP_384
gptkb:JEP_17 gptkb:JEP_33 gptkb:Java_SE_18 gptkb:JDK_15 gptkb:JEP_488 |
gptkbp:addresses |
Performance bottlenecks
developer feedback |
gptkbp:affects |
Java developers
|
gptkbp:aims_to |
enhance developer productivity
Graphics pipeline Improve interoperability with native code Provide a mechanism to interact with native code and memory improve release process |
gptkbp:approves |
gptkb:chess_match
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. Significant on mac OS development. 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_involvement |
Encouraged throughout development.
|
gptkbp:community_support |
Active community support.
|
gptkbp:contains |
new API features
|
gptkbp:contributed_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:dependency |
Java 17 features.
|
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:ends_at |
2022-09-15
|
gptkbp:enhances |
gptkb:benchmark
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:features |
Foreign function calls
Memory access API Safety and performance improvements Support for high-resolution displays. |
gptkbp:feedback |
Incorporated into design.
Open for community input. Positive from early adopters. Informed future updates. Reported high satisfaction. |
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 Gathering user feedback Further optimizations. Integration with other JE Ps Enhancing API usability Expanding native function support Improving documentation Further enhancements and stability improvements Outlined for upcoming versions. |
gptkbp:goal |
Enhance performance
Improve interoperability with native code Encourage community adoption Maintain Java's safety guarantees Simplify native code interaction Support diverse platforms Enhance Java's graphical capabilities. |
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. 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 |
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 |
enterprise applications
Java developers software engineers Native code developers |
gptkbp:is_celebrated_in |
Java community events
|
gptkbp:is_cited_in |
gptkb:Java_Enhancement_Proposal
technical articles software development books programming blogs Research papers on Java graphics. |
gptkbp:is_compatible_with |
Java's garbage collection
|
gptkbp:is_described_as |
gptkb:Foreign_Function_&_Memory_API_(Incubator)
gptkb:Foreign_Function_&_Memory_API 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. JDK 18 Release Process JDK 17 Release Schedule JDK 18 API Enhancements |
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:API
Java SE Documentation Java SEAPI 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:software gptkb:language gptkb:JDK_18 gptkb:Java_17 gptkb:Java_Enhancement_Proposal 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:language
C++ programming language User feedback industry trends user experience studies previous JE Ps |
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_SE_20 gptkb:Java_Enhancement_Proposal 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 JE Ps |
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:software_framework Under review Technical experts JDK Review Board Conducted by experts. Java SE contributors |
gptkbp:is_supported_by |
gptkb:software
gptkb:multiple_platforms gptkb:Java_community Java development tools Java runtime environment |
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 |
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_album |
Open JDK website
|
gptkbp:notable_recipients |
gptkb:Brian_Goetz
gptkb:Alex_Buckley gptkb:Jeppe_Cramon gptkb:Maurizio_Cimadamore gptkb:John_Rose |
gptkbp:part_of |
gptkb:Java_Enhancement_Proposal
|
gptkbp:performance |
Significant over previous versions.
Benchmarked against previous pipeline. Optimized for Metal. |
gptkbp:platform |
mac OS only.
|
gptkbp:project |
gptkb:Project_Panama
gptkb:Java_Enhancement_Proposal gptkb:Project_Loom gptkb:Project_Valhalla Completed in 2021. Managed by Open JDK project. Improve Java graphics on mac OS. |
gptkbp:proposed_by |
gptkb:Database_Management_System
gptkb:Open_JDK_Community gptkb:Brian_Goetz 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_by |
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:regulatory_compliance |
Follows Java SE specifications.
|
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:JEP_411
gptkb:JEP_384 gptkb:JEP_2 gptkb:Java_SE_17 gptkb:operating_system gptkb:JEP_412 gptkb:Java_Enhancement_Proposal gptkb:JNI_(Java_Native_Interface) Memory Access API |
gptkbp:release_date |
September 2022
2021-09-30 September 2021 |
gptkbp:released |
gptkb:JDK_17
gptkb:Java_SE_18 Aligned with JDK release cycle. Available on Open JDK site. Incremental improvements. |
gptkbp:replaced_by |
Old mac OS Rendering Pipeline
|
gptkbp:requires |
gptkb:JEP_391
Metal API JDK 17 or later JDK 19 or later |
gptkbp:specifies |
gptkb:API
gptkb:Incubator_Module release cadence Detailed in JEP document. |
gptkbp:status |
gptkb:Final
gptkb:organization Proposed |
gptkbp:successor |
gptkb:JEP_420
|
gptkbp:supports |
High-resolution displays
C and C++ libraries Metal graphics framework |
gptkbp:targets |
gptkb:JDK_17
gptkb:JDK_19 gptkb:smartphone gptkb:JDK_18 JDK 11.0.19 |
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: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_reviews |
gptkb:Venkat_Subramaniam
gptkb:Mark_Reinhold gptkb:Jesse_Glick |
gptkbp:uses |
Used in Java programming.
|