{"action":"created","issue":{"url":"https://api.github.com/repos/mhx/Devel-PPPort/issues/42","repository_url":"https://api.github.com/repos/mhx/Devel-PPPort","labels_url":"https://api.github.com/repos/mhx/Devel-PPPort/issues/42/labels{/name}","comments_url":"https://api.github.com/repos/mhx/Devel-PPPort/issues/42/comments","events_url":"https://api.github.com/repos/mhx/Devel-PPPort/issues/42/events","html_url":"https://github.com/mhx/Devel-PPPort/issues/42","id":172853329,"number":42,"title":"gv_fetchpvn_flags() is now supported?","user":{"login":"wyoung","id":5193164,"avatar_url":"https://avatars.githubusercontent.com/u/5193164?v=3","gravatar_id":"","url":"https://api.github.com/users/wyoung","html_url":"https://github.com/wyoung","followers_url":"https://api.github.com/users/wyoung/followers","following_url":"https://api.github.com/users/wyoung/following{/other_user}","gists_url":"https://api.github.com/users/wyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/wyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wyoung/subscriptions","organizations_url":"https://api.github.com/users/wyoung/orgs","repos_url":"https://api.github.com/users/wyoung/repos","events_url":"https://api.github.com/users/wyoung/events{/privacy}","received_events_url":"https://api.github.com/users/wyoung/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-08-24T02:54:35Z","updated_at":"2016-08-27T17:26:46Z","closed_at":"2016-08-27T17:26:46Z","body":"While chasing [a different problem](https://github.com/gfx/p5-Mouse/issues/63) I seem to have stumbled across a documentation bug. According to `man Devel::PPPort`, `gv_fetchpvn_flags()` is unsupported, but on grepping the source code, I find that there is an implementation, and that the text of that routine is built into the local `PPPort.so` here on Perl 5.8.8.\r\n\r\nDid it get implemented and someone forgot to remove this item from the manual page?"},"comment":{"url":"https://api.github.com/repos/mhx/Devel-PPPort/issues/comments/242929777","html_url":"https://github.com/mhx/Devel-PPPort/issues/42#issuecomment-242929777","issue_url":"https://api.github.com/repos/mhx/Devel-PPPort/issues/42","id":242929777,"user":{"login":"mhx","id":301215,"avatar_url":"https://avatars.githubusercontent.com/u/301215?v=3","gravatar_id":"","url":"https://api.github.com/users/mhx","html_url":"https://github.com/mhx","followers_url":"https://api.github.com/users/mhx/followers","following_url":"https://api.github.com/users/mhx/following{/other_user}","gists_url":"https://api.github.com/users/mhx/gists{/gist_id}","starred_url":"https://api.github.com/users/mhx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhx/subscriptions","organizations_url":"https://api.github.com/users/mhx/orgs","repos_url":"https://api.github.com/users/mhx/repos","events_url":"https://api.github.com/users/mhx/events{/privacy}","received_events_url":"https://api.github.com/users/mhx/received_events","type":"User","site_admin":false},"created_at":"2016-08-27T17:26:46Z","updated_at":"2016-08-27T17:26:46Z","body":"I believe you're doing it wrong :)\r\n\r\nThe `ppport.h` generated by `Devel::PPPort` isn't meant to be generated\r\nautomatically during the build process — which apparently is what you're\r\ndoing — but rather meant to be updated occasionally and shipped with\r\nyour code. The reason for that is just what you experienced: `ppport.h`\r\ncan change, and these changes /may/ require modifications to your\r\ncode. So you update on demand, because there's something you want\r\nto get out of using (a new version of) ppport.h.\r\n\r\nIn your case, your code is using `gv_fetchpvs`. Within `ppport.h`, this has\r\na dependency on `gv_fetchpvn_flags` (which is the function you're having\r\nproblems with). However, as providing `gv_fetchpvn_flags` produces real\r\ncode, you have to explicitly enable support for it by defining\r\n`NEED_gv_fetchpvn_flags`.\r\n\r\nIf you run `ppport.h`, it actually tells you exactly that:\r\n\r\n    $ perl ppport.h xs-src/MouseTypeConstraints.xs\r\n    [...]\r\n    Uses gv_fetchpvs, which depends on gv_fetchpvn_flags, SVt_PVHV, Safefree, gv_fetchpv, savepvn\r\n    [...]\r\n    File needs gv_fetchpvn_flags, adding static request\r\n    [...]\r\n    --- xs-src/MouseTypeConstraints.xs\r\n    +++ xs-src/MouseTypeConstraints.xs.patched\r\n    [...]\r\n    +#define NEED_gv_fetchpvn_flags\r\n\r\nSo, you've got two options:\r\n\r\n1. Simply use the `ppport.h` generated by `Devel::PPPort` 3.32\r\n2. Use the latest `ppport.h` and define `NEED_gv_fetchpvn_flags`\r\n\r\nIn any case, you should stop generating `ppport.h` as part of the build\r\nprocess. This has never been and will likely never be supported."}}
{"actor":{"display_login":"mhx"}}