Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Socket.so link to perlembed doc #19

Closed
wants to merge 1 commit into from
Closed

Conversation

atoomic
Copy link
Member

@atoomic atoomic commented May 2, 2019

When using xs_init we need to link the
binary to the .so files in order to be able
to call the boot_* function.

Note: not sure if ExtUtils::Embed can provide
a way to get the path of the .so file

When using xs_init we need to link the
binary to the .so files in order to be able
to call the boot_* function.

Note: not sure if ExtUtils::Embed can provide
a way to get the path of the .so file
@atoomic
Copy link
Member Author

atoomic commented May 2, 2019

Pull Request just there for code review

@Leont
Copy link
Contributor

Leont commented May 2, 2019

This is almost certainly the wrong change. I would instead suggest is to remove all references to boot_Socket.

Such a thing would only be needed on a perl without dynamic loading, And then all XS extensions that will be used would need to be mentioned and linked in correctly. Effectively long stopped supporting such a scenario.

@atoomic
Copy link
Member Author

atoomic commented May 7, 2019

@Leont indeed removing the boot_Socket references would solve the compilation issue,
but I think the purpose was to pre-compile one interpreter with one XS module.

I do not think we can compile the providing example without linking it to the .so file.

@Leont
Copy link
Contributor

Leont commented May 7, 2019

but I think the purpose was to pre-compile one interpreter with one XS module.

That is not a sensible purpose in 2019. I'm not aware of any platform that runs perl but doesn't have dynamic loading, for that matter (I think the last such platform was DOS). This stuff is dead.

I do not think we can compile the providing example without linking it to the .so file.

Then perhaps we should just delete the entire section.

@atoomic
Copy link
Member Author

atoomic commented May 7, 2019

Yes you are right the section Using Perl modules, which themselves use C libraries, from your C program still makes sense but the example provided how to be able to compile using Socket is probably useless as you can now load XS without any issues.

I think deleting the section is probably the correct thing to do.

@atoomic
Copy link
Member Author

atoomic commented May 7, 2019

mm after second reflection not sure we should delete it,
creating a C program which use a Perl module, seems legitimate and in this case we show how to compile a module that also load a C library..

This is uncommon usage, but I can the value of it, for example B::C programs are pretty close to that and linking with the .so file makes sense to me...

@Leont
Copy link
Contributor

Leont commented May 7, 2019

creating a C program which use a Perl module, seems legitimate and in this case we show how to compile a module that also load a C library..

We probably need to rewrite this thing from scratch.

shlomif pushed a commit to shlomif/perl5 that referenced this pull request May 18, 2019
  [DELTA]

0.2309    2019-01-06 20:29:15Z
          - fix longstanding pod formatting error (issue Perl#19, RT#109526)
@Corion
Copy link

Corion commented Oct 24, 2019

When using LLVM to generate a WASM target, it's currently not possible to dynamically link XS code. WebPerl needs this feature to statically link modules like Text::CSV_XS for example.

@tonycoz
Copy link
Contributor

tonycoz commented Nov 4, 2019

When using LLVM to generate a WASM target, it's currently not possible to dynamically link XS code. WebPerl needs this feature to statically link modules like Text::CSV_XS for example.

Doesn't Webperl do that by adding those modules at perl build time and statically linking everything? It seems irrelevant to this PR.

@xsawyerx
Copy link
Member

xsawyerx commented Nov 4, 2019

Looping in @haukex to answer for WebPerl. :)

@tonycoz
Copy link
Contributor

tonycoz commented Nov 4, 2019

You can dump members of %Config on the sample page to see that WebPerl is built with -Uusedl and many static_exts, including WebPerl Cpanel/JSON/XS

@haukex
Copy link
Contributor

haukex commented Nov 4, 2019

WebPerl builds with d_dlopen='undef', dlsrc='none', and a whole bunch of static_exts. Currently, in the default WebPerl build, the only non-core XS module is Cpanel::JSON::XS. You can see the current hints file here (it uses some env vars from here). The build script unpacks extensions such as Cpanel::JSON::XS into the ext dir in the Perl sources before starting the Perl core build.

So yeah, currently WebPerl requires all XS code to be statically linked into the perl binary. When I first developed WebPerl, support for dynamic loading was experimental in Emscripten and came with serious limitations. Although I could certainly test it again at some point, it would be good to keep support for static linking, if that's what we're talking about :-)

I've skimmed this issue and I have to admit I don't yet understand if this affects the way WebPerl is built :-/

@tonycoz
Copy link
Contributor

tonycoz commented Dec 3, 2019

From the discussion this doesn't appear to be a reasonable change, I'll close this soonish if no-one objects.

@tonycoz tonycoz closed this Dec 8, 2019
bingos added a commit that referenced this pull request Nov 14, 2020
  [DELTA]

2.74  2020-09-09 09:21:39 rurban
      Features
      - Add ICMPv6_NI_REPLY support.
      Bugfixes
      - Fix icmp payload offset to match icmpv6 (JimC Leones GH #21)
        Skip the 20 byte header to reliably find the various return types.
        This unifies icmpv6 with icmp better.
      - Fix $SOCKET::VERSION eval (Petr Pavlu, PR #22)
      META Changes
      - Fix and improve the META repository as hashref, license as arrayref
        (Tom Hukins, PR #19)
      - add TEST_REQUIRES
      - sort MANIFEST
      - add windows smokers: appveyor
      Test fixes
      - Improve the tcp test to localhost, when there is no route to localhost
        (freebsd mostly)
      - TODO a flaky 450_service.t on 127.0.0.1 on port 2 on Windows (analog to freebsd, ...)
        (Christian Walde, PR #20)
      - Skip 501_ping_icmpv6.t when icmpv6 cannot be initialized. Mostly due to missing
        icmpv6 support. (GH #15)
      - add more xt tests: t/602_kwalitee.t, t/603_meta.t, t/604_manifest.t
jkeenan pushed a commit to jkeenan/perl5 that referenced this pull request Jul 11, 2024
v6.0.99 - 2024-07-10

 - Drop support for Perl 5.10.  podlators now requires Perl 5.12 or later.

 - podlators now uses semantic versioning for the package and module
   versions, with a v prefix to work with Perl's packaging system.

 - Pod::Man now translates all "-" characters in the input into *roff "\-"
   escapes (normally rendered as an ASCII hyphen-minus, U+002D) rather
   than using fragile heuristics to decide which characters represent true
   hyphens and which represent ASCII hyphen-minus.  The previous
   heuristics misrendered command names such as apt-get, causing search
   and cut-and-paste issues.  This change may cause line-break issues with
   long hyphenated phrases.  In cases where the intent is a true hyphen,
   consider using UTF-8 as the POD character set (declared with =encoding)
   and using true Unicode hyphens instead of the ASCII "-" character.

 - Pod::Man now disables the special *roff interpretation of "`" and "'"
   characters as paired quotes everywhere, not just in verbatim text, thus
   forcing them to be interpreted as the regular ASCII characters.  This
   also disables the use of "``" and "''" for paired double-quotes.  The
   rationale is similar to that for hyphens: there is no way to tell from
   the POD source that the special interpretation as quotes is intended.
   To produce paired typographic quotes in the output, use UTF-8 and
   Unicode paired quote characters.

 - Man page references in L<> that are detected as such by Pod::Simple are
   now always formatted as man page references even if our normal
   heuristic would not detect them.  This fixes the formatting of
   constructions such as @@RXVT_NAME@@Perl(3), which are used by packages
   that format a man page with POD and then substitute variables into it
   at build time.  Thanks to Marco Sirabella for the analysis and an
   initial patch.  (GitHub Perl#21)

 - Add a workaround to Pod::Man to force persistent ragged-right
   justification under nroff with groff 1.23.0.  Thanks to Guillem Jover
   for the report and G. Branden Robinson for the analysis.  (GitHub Perl#23)

 - Fix wrapping of text with S<> markup in all subclasses of Pod::Text.
   Thanks to Jim Avera for the report.  (GitHub Perl#24)

 - Pod::Man now forces a blank line after a nested list contains only
   =item tags without bodies.  In previous versions, the blank line before
   the next item in the surrounding =over block was not included.  Thanks
   to Julien ÉLIE for the report.  (GitHub Perl#26)

 - Import PerlIO before checking for layers so that PerlIO::F_UTF8 is
   available, which fixes double-encoding of output when a :utf8 layer is
   in place and PerlIO is not imported.  Thanks to youpong for the bug
   report, James Keenan for the elaboration, and Graham Knop for the fix.
   (GitHub #25)

 - pod2text --help now exits with status 0, not 1, matching normal UNIX
   command behavior and the behavior of pod2man.  (GitHub Perl#19)

 - Fix tests when NO_COLOR is set in the environment.  (GitHub Perl#20)
jkeenan pushed a commit that referenced this pull request Jul 13, 2024
v6.0.0 - 2024-07-10

 - Drop support for Perl 5.10.  podlators now requires Perl 5.12 or later.

 - podlators now uses semantic versioning for the package and module
   versions, with a v prefix to work with Perl's packaging system.

 - Pod::Man now translates all "-" characters in the input into *roff "\-"
   escapes (normally rendered as an ASCII hyphen-minus, U+002D) rather
   than using fragile heuristics to decide which characters represent true
   hyphens and which represent ASCII hyphen-minus.  The previous
   heuristics misrendered command names such as apt-get, causing search
   and cut-and-paste issues.  This change may cause line-break issues with
   long hyphenated phrases.  In cases where the intent is a true hyphen,
   consider using UTF-8 as the POD character set (declared with =encoding)
   and using true Unicode hyphens instead of the ASCII "-" character.

 - Pod::Man now disables the special *roff interpretation of "`" and "'"
   characters as paired quotes everywhere, not just in verbatim text, thus
   forcing them to be interpreted as the regular ASCII characters.  This
   also disables the use of "``" and "''" for paired double-quotes.  The
   rationale is similar to that for hyphens: there is no way to tell from
   the POD source that the special interpretation as quotes is intended.
   To produce paired typographic quotes in the output, use UTF-8 and
   Unicode paired quote characters.

 - Man page references in L<> that are detected as such by Pod::Simple are
   now always formatted as man page references even if our normal
   heuristic would not detect them.  This fixes the formatting of
   constructions such as @@RXVT_NAME@@Perl(3), which are used by packages
   that format a man page with POD and then substitute variables into it
   at build time.  Thanks to Marco Sirabella for the analysis and an
   initial patch.  (GitHub #21)

 - Add a workaround to Pod::Man to force persistent ragged-right
   justification under nroff with groff 1.23.0.  Thanks to Guillem Jover
   for the report and G. Branden Robinson for the analysis.  (GitHub #23)

 - Fix wrapping of text with S<> markup in all subclasses of Pod::Text.
   Thanks to Jim Avera for the report.  (GitHub #24)

 - Pod::Man now forces a blank line after a nested list contains only
   =item tags without bodies.  In previous versions, the blank line before
   the next item in the surrounding =over block was not included.  Thanks
   to Julien ÉLIE for the report.  (GitHub #26)

 - Import PerlIO before checking for layers so that PerlIO::F_UTF8 is
   available, which fixes double-encoding of output when a :utf8 layer is
   in place and PerlIO is not imported.  Thanks to youpong for the bug
   report, James Keenan for the elaboration, and Graham Knop for the fix.
   (GitHub #25)

 - pod2text --help now exits with status 0, not 1, matching normal UNIX
   command behavior and the behavior of pod2man.  (GitHub #19)

 - Fix tests when NO_COLOR is set in the environment.  (GitHub #20)

v6.0.1 - 2024-07-12

 - Remove autodie from the module build process.  When built as part of
   Perl core, podlators is built before autodie is available.  Thanks to
   James E Keenan for the report and a draft patch.  (GitHub #33)
jkeenan pushed a commit that referenced this pull request Jul 14, 2024
v6.0.0 - 2024-07-10

 - Drop support for Perl 5.10.  podlators now requires Perl 5.12 or later.

 - podlators now uses semantic versioning for the package and module
   versions, with a v prefix to work with Perl's packaging system.

 - Pod::Man now translates all "-" characters in the input into *roff "\-"
   escapes (normally rendered as an ASCII hyphen-minus, U+002D) rather
   than using fragile heuristics to decide which characters represent true
   hyphens and which represent ASCII hyphen-minus.  The previous
   heuristics misrendered command names such as apt-get, causing search
   and cut-and-paste issues.  This change may cause line-break issues with
   long hyphenated phrases.  In cases where the intent is a true hyphen,
   consider using UTF-8 as the POD character set (declared with =encoding)
   and using true Unicode hyphens instead of the ASCII "-" character.

 - Pod::Man now disables the special *roff interpretation of "`" and "'"
   characters as paired quotes everywhere, not just in verbatim text, thus
   forcing them to be interpreted as the regular ASCII characters.  This
   also disables the use of "``" and "''" for paired double-quotes.  The
   rationale is similar to that for hyphens: there is no way to tell from
   the POD source that the special interpretation as quotes is intended.
   To produce paired typographic quotes in the output, use UTF-8 and
   Unicode paired quote characters.

 - Man page references in L<> that are detected as such by Pod::Simple are
   now always formatted as man page references even if our normal
   heuristic would not detect them.  This fixes the formatting of
   constructions such as @@RXVT_NAME@@Perl(3), which are used by packages
   that format a man page with POD and then substitute variables into it
   at build time.  Thanks to Marco Sirabella for the analysis and an
   initial patch.  (GitHub #21)

 - Add a workaround to Pod::Man to force persistent ragged-right
   justification under nroff with groff 1.23.0.  Thanks to Guillem Jover
   for the report and G. Branden Robinson for the analysis.  (GitHub #23)

 - Fix wrapping of text with S<> markup in all subclasses of Pod::Text.
   Thanks to Jim Avera for the report.  (GitHub #24)

 - Pod::Man now forces a blank line after a nested list contains only
   =item tags without bodies.  In previous versions, the blank line before
   the next item in the surrounding =over block was not included.  Thanks
   to Julien ÉLIE for the report.  (GitHub #26)

 - Import PerlIO before checking for layers so that PerlIO::F_UTF8 is
   available, which fixes double-encoding of output when a :utf8 layer is
   in place and PerlIO is not imported.  Thanks to youpong for the bug
   report, James Keenan for the elaboration, and Graham Knop for the fix.
   (GitHub #25)

 - pod2text --help now exits with status 0, not 1, matching normal UNIX
   command behavior and the behavior of pod2man.  (GitHub #19)

 - Fix tests when NO_COLOR is set in the environment.  (GitHub #20)

v6.0.1 - 2024-07-12

 - Remove autodie from the module build process.  When built as part of
   Perl core, podlators is built before autodie is available.  Thanks to
   James E Keenan for the report and a draft patch.  (GitHub #33)
jkeenan pushed a commit that referenced this pull request Jul 15, 2024
v6.0.0 - 2024-07-10

 - Drop support for Perl 5.10.  podlators now requires Perl 5.12 or later.

 - podlators now uses semantic versioning for the package and module
   versions, with a v prefix to work with Perl's packaging system.

 - Pod::Man now translates all "-" characters in the input into *roff "\-"
   escapes (normally rendered as an ASCII hyphen-minus, U+002D) rather
   than using fragile heuristics to decide which characters represent true
   hyphens and which represent ASCII hyphen-minus.  The previous
   heuristics misrendered command names such as apt-get, causing search
   and cut-and-paste issues.  This change may cause line-break issues with
   long hyphenated phrases.  In cases where the intent is a true hyphen,
   consider using UTF-8 as the POD character set (declared with =encoding)
   and using true Unicode hyphens instead of the ASCII "-" character.

 - Pod::Man now disables the special *roff interpretation of "`" and "'"
   characters as paired quotes everywhere, not just in verbatim text, thus
   forcing them to be interpreted as the regular ASCII characters.  This
   also disables the use of "``" and "''" for paired double-quotes.  The
   rationale is similar to that for hyphens: there is no way to tell from
   the POD source that the special interpretation as quotes is intended.
   To produce paired typographic quotes in the output, use UTF-8 and
   Unicode paired quote characters.

 - Man page references in L<> that are detected as such by Pod::Simple are
   now always formatted as man page references even if our normal
   heuristic would not detect them.  This fixes the formatting of
   constructions such as @@RXVT_NAME@@Perl(3), which are used by packages
   that format a man page with POD and then substitute variables into it
   at build time.  Thanks to Marco Sirabella for the analysis and an
   initial patch.  (GitHub #21)

 - Add a workaround to Pod::Man to force persistent ragged-right
   justification under nroff with groff 1.23.0.  Thanks to Guillem Jover
   for the report and G. Branden Robinson for the analysis.  (GitHub #23)

 - Fix wrapping of text with S<> markup in all subclasses of Pod::Text.
   Thanks to Jim Avera for the report.  (GitHub #24)

 - Pod::Man now forces a blank line after a nested list contains only
   =item tags without bodies.  In previous versions, the blank line before
   the next item in the surrounding =over block was not included.  Thanks
   to Julien ÉLIE for the report.  (GitHub #26)

 - Import PerlIO before checking for layers so that PerlIO::F_UTF8 is
   available, which fixes double-encoding of output when a :utf8 layer is
   in place and PerlIO is not imported.  Thanks to youpong for the bug
   report, James Keenan for the elaboration, and Graham Knop for the fix.
   (GitHub #25)

 - pod2text --help now exits with status 0, not 1, matching normal UNIX
   command behavior and the behavior of pod2man.  (GitHub #19)

 - Fix tests when NO_COLOR is set in the environment.  (GitHub #20)

v6.0.1 - 2024-07-12

 - Remove autodie from the module build process.  When built as part of
   Perl core, podlators is built before autodie is available.  Thanks to
   James E Keenan for the report and a draft patch.  (GitHub #33)

v6.0.2 - 2024-07-14

 - Fix removal of scripts/pod2man and scripts/pod2text by make realclean,
   broken in the v6.0.0 release.  Thanks to James E Keenan for the report.
jkeenan pushed a commit that referenced this pull request Jul 15, 2024
v6.0.0 - 2024-07-10

 - Drop support for Perl 5.10.  podlators now requires Perl 5.12 or later.

 - podlators now uses semantic versioning for the package and module
   versions, with a v prefix to work with Perl's packaging system.

 - Pod::Man now translates all "-" characters in the input into *roff "\-"
   escapes (normally rendered as an ASCII hyphen-minus, U+002D) rather
   than using fragile heuristics to decide which characters represent true
   hyphens and which represent ASCII hyphen-minus.  The previous
   heuristics misrendered command names such as apt-get, causing search
   and cut-and-paste issues.  This change may cause line-break issues with
   long hyphenated phrases.  In cases where the intent is a true hyphen,
   consider using UTF-8 as the POD character set (declared with =encoding)
   and using true Unicode hyphens instead of the ASCII "-" character.

 - Pod::Man now disables the special *roff interpretation of "`" and "'"
   characters as paired quotes everywhere, not just in verbatim text, thus
   forcing them to be interpreted as the regular ASCII characters.  This
   also disables the use of "``" and "''" for paired double-quotes.  The
   rationale is similar to that for hyphens: there is no way to tell from
   the POD source that the special interpretation as quotes is intended.
   To produce paired typographic quotes in the output, use UTF-8 and
   Unicode paired quote characters.

 - Man page references in L<> that are detected as such by Pod::Simple are
   now always formatted as man page references even if our normal
   heuristic would not detect them.  This fixes the formatting of
   constructions such as @@RXVT_NAME@@Perl(3), which are used by packages
   that format a man page with POD and then substitute variables into it
   at build time.  Thanks to Marco Sirabella for the analysis and an
   initial patch.  (GitHub #21)

 - Add a workaround to Pod::Man to force persistent ragged-right
   justification under nroff with groff 1.23.0.  Thanks to Guillem Jover
   for the report and G. Branden Robinson for the analysis.  (GitHub #23)

 - Fix wrapping of text with S<> markup in all subclasses of Pod::Text.
   Thanks to Jim Avera for the report.  (GitHub #24)

 - Pod::Man now forces a blank line after a nested list contains only
   =item tags without bodies.  In previous versions, the blank line before
   the next item in the surrounding =over block was not included.  Thanks
   to Julien ÉLIE for the report.  (GitHub #26)

 - Import PerlIO before checking for layers so that PerlIO::F_UTF8 is
   available, which fixes double-encoding of output when a :utf8 layer is
   in place and PerlIO is not imported.  Thanks to youpong for the bug
   report, James Keenan for the elaboration, and Graham Knop for the fix.
   (GitHub #25)

 - pod2text --help now exits with status 0, not 1, matching normal UNIX
   command behavior and the behavior of pod2man.  (GitHub #19)

 - Fix tests when NO_COLOR is set in the environment.  (GitHub #20)

v6.0.1 - 2024-07-12

 - Remove autodie from the module build process.  When built as part of
   Perl core, podlators is built before autodie is available.  Thanks to
   James E Keenan for the report and a draft patch.  (GitHub #33)

v6.0.2 - 2024-07-14

 - Fix removal of scripts/pod2man and scripts/pod2text by make realclean,
   broken in the v6.0.0 release.  Thanks to James E Keenan for the report.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants