Port IPC::SysV (low priority)
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 30/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
调研方向
The issue requires porting the IPC::SysV module to PerlOnJava using Java's FFM/native access. Start by examining the existing bytecode backend operation slots and compiler/interpreter scaffolding for semaphore, message-queue, and shared-memory operations, which currently throw UnsupportedOperationException. Review the Perl IPC::SysV module's API and the Java FFM documentation. Implement the constants, ftok, and the three IPC mechanisms (semaphores, shared memory, message queues) with proper error handling and cleanup. Write focused tests for each operation and validate with a dependent module like IPC::Pleather or IPC::Transit.
由索引模型根据 Issue 内容生成。
描述
Summary
Port IPC::SysV to PerlOnJava using Java FFM/native access on Unix platforms.
This is a low-priority ecosystem-enablement task. The current targeted
MetaCPAN lookup found 14 released runtime dependants, including
IPC::Pleather, IPC::Transit, IPC-Shm-Simple, SysV-SharedMem, and
Proc-Swarm; 2 were recent dependants. Recheck this count before prioritizing
implementation, and increase priority if the dependant population grows.
Scope
- Provide the
IPC::SysVconstants andftokbehavior. - Implement System V semaphores:
semget,semop,semctl, and the
IPC::Semaphoresupport they require. - Implement shared memory:
shmget,shmat,shmdt,shmctl,memread,
andmemwrite. - Implement message queues:
msgget,msgsnd,msgrcv, andmsgctl. - Preserve Perl-visible return values, errno/error behavior, cleanup, and
concurrency semantics. - Define platform behavior explicitly: native Unix support first; Windows
should either use a real compatible implementation or fail clearly if SysV
IPC is unavailable.
Existing groundwork
The bytecode backend already has operation slots and compiler/interpreter
scaffolding for semaphore, message-queue, and shared-memory operations, but
the handlers currently throw UnsupportedOperationException.
Acceptance criteria
- Focused project-owned tests cover constants, semaphore operations, shared
memory, message queues, errors, cleanup, and cross-process visibility where
supported. - Tests pass on both JVM and interpreter backends where applicable.
- At least one dependent module is validated after the port.
- Documentation records supported platforms and limitations.
Related: #1144 (pseudofork support may remain a separate requirement for
modules that depend on fork).
- 主要语言
- Perl
- 星标
- 64
- 派生
- 6
- 平均合并
- 5 小时 38 分钟
- 30 天内合并 PR
- 170
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
fglock/PerlOnJava 的其他 Issue
-
area:cpan-port area:unicode bug
难度 2/5 1-3 小时 新手友好度 88/100
fglock/PerlOnJava#1341 ·
-
area:backend area:runtime bug
难度 4/5 3-5 天 新手友好度 45/100
fglock/PerlOnJava#1511 ·
-
area:backend area:cpan-port bug
难度 4/5 3-5 天 新手友好度 45/100
fglock/PerlOnJava#1508 · 1 条评论 ·
-
bug
难度 4/5 3-5 天 新手友好度 45/100
fglock/PerlOnJava#1506 ·
-
bug enhancement
难度 4/5 3-5 天 新手友好度 45/100
fglock/PerlOnJava#1502 ·
查看 fglock/PerlOnJava 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
-
documentation Needs Triage
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
trizen/youtube-viewer#456 ·
-
难度 2/5 1-3 小时 新手友好度 70/100
-
connectivity 未关闭
难度 1/5 1 小时以内 新手友好度 80/100