dreamlike-ocean / PanamaUring

使用panama api为java提供io_uring的绑定而无需使用jni绑定,同时统一文件IO和网络IO的模型,提供一套易用的异步IO API
MIT License
80 stars 13 forks source link

C abi ffi生成器适配 #29

Closed dreamlike-ocean closed 11 months ago

dreamlike-ocean commented 1 year ago
  1. 通过java bean的字段进行struct生成,通过字节码工程继承getter和setter方法来处理
  2. 生成对应的ffi绑定,通过interface签名来生成
dreamlike-ocean commented 12 months ago

目前无法做出来static final的效果 请实现

zhengziyi0117 commented 12 months ago

1

dreamlike-ocean commented 12 months ago

当前问题汇总 1,native call generator的static final methodhandle字段已经上线,对于生成出来的方法调用的正是其methohandle::invokeArguments方法,尝试探索使用bytebuddy 的HandleInovaction类搓出来对应的invokeExact调用,以接近编译期生成的性能 2,Struct proxy generator varhandle static final字段已经上线,但是仍未调整对应的setter和getter逻辑到varhandle上,是否继续使用varhandle存疑,或许使用offset统一取值会更好

dreamlike-ocean commented 12 months ago

当前进度更新 1,native call生成全量切入methodinvoke::invokeexact方案 2,structproxy 完成varhandle::get方案的字节码生成部分,等待迁移 3,考虑是否以上部分需要realmemory时直接获取对应字段值而非使用mark接口带进来的realmemory方法

dreamlike-ocean commented 11 months ago

当前进度更新 1,native call生成全量切入methodinvoke::invokeexact方案 2,structproxy 完成varhandle::get方案的字节码生成部分,全量切入 3, 支持native call返回一个指针然后自动映射为java对象

todo StructProxy的rebind功能 @zhengziyi0117 看看能不能做