Skip Menu |

This queue is for tickets about the B-Generate CPAN distribution.

Report information
The Basics
Id: 28912
Status: resolved
Worked: 1.2 hours (70 min)
Priority: 0/
Queue: B-Generate

People
Owner: RURBAN [...] cpan.org
Requestors: Ulrich.Reimuth [...] iz.bwl.de
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: B-Generate-0.10 Win32 5.0
Date: Mon, 20 Aug 2007 15:04:39 +0200
To: <bug-B-Generate [...] rt.cpan.org>
From: "Reimuth, Ulrich (IZLBW)" <Ulrich.Reimuth [...] iz.bwl.de>

Message body is not shown because it is too large.

RT-Send-CC: perl5-porters [...] perl.org
Certain PERL_CORE functions are not exported into libperl on MSWin32 only, Activeperl and mingw. We need Perl_pad_alloc, Perl_cv_clone and Perl_fold_constants. This is a core problem, 1. that those functions ARE exported, and 2. that those functions should be added to the public API This needs to be added to core to be able to use certain critical functions such as setting op->targ, using CV->NEW_with_start and op->convert. They used to work in all previous releases before on all other platforms. In the meantime I'll make a crippled MSWin32 version for B::Generate. -- Reini Urban
RT-Send-CC: perl5-porters [...] perl.org
MSVC and mingw fixed with B-Generate-0.20, just uploaded to CPAN. 1.20 - (Reini Urban) - Remove certain features for MSWin32: disable CV->NEW_with_start, setting op->targ, and folding constants with op->convert. Reason: Perl_pad_alloc, Perl_fold_constants, Perl_cv_clone not exported with MSVC and mingw perls. CPAN #28912 - fixed __svop_new for MSVC. cl is stricter - fixed t/inspect-this.t for MSWin32: file regex => eq test - t/inspect-this.t requires B::Concise 0.64 - fix t/op_list.t for perl-5.6.2 -- Reini Urban
Subject: Re: [rt.cpan.org #28912] B-Generate-0.10 Win32 5.0
Date: Sun, 18 Jan 2009 23:34:51 +0000
To: Reini Urban via RT <bug-B-Generate [...] rt.cpan.org>, perl5-porters [...] perl.org
From: Nicholas Clark <nick [...] ccl4.org>
On Sun, Jan 18, 2009 at 11:32:23PM +0000, Nicholas Clark wrote: Show quoted text
> On Sun, Jan 18, 2009 at 11:19:01AM -0500, Reini Urban via RT wrote:
> > <URL: https://rt.cpan.org/Ticket/Display.html?id=28912 > > > > > Certain PERL_CORE functions are not exported into libperl on MSWin32 > > only, Activeperl and mingw. > > We need Perl_pad_alloc, Perl_cv_clone and Perl_fold_constants.
> > PERL_CORE is for the use of the Perl core C code only. Even modules in ext/ in
^Not Show quoted text
> the core, let alone modules on CPAN, should be using such private APIs.
Nicholas Clark
CC: perl5-porters [...] perl.org
Subject: Re: [rt.cpan.org #28912] B-Generate-0.10 Win32 5.0
Date: Sun, 18 Jan 2009 23:32:23 +0000
To: Reini Urban via RT <bug-B-Generate [...] rt.cpan.org>
From: Nicholas Clark <nick [...] ccl4.org>
On Sun, Jan 18, 2009 at 11:19:01AM -0500, Reini Urban via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=28912 > > > Certain PERL_CORE functions are not exported into libperl on MSWin32 > only, Activeperl and mingw. > We need Perl_pad_alloc, Perl_cv_clone and Perl_fold_constants.
PERL_CORE is for the use of the Perl core C code only. Even modules in ext/ in the core, let alone modules on CPAN, should be using such private APIs. Show quoted text
> This is a core problem, > 1. that those functions ARE exported, and > 2. that those functions should be added to the public API
None are documented, and I don't know what their specific purpose is, or their correct usage. Are you able to provide a documentation patch for them? Show quoted text
> This needs to be added to core to be able to use certain critical > functions such as setting op->targ, using CV->NEW_with_start and > op->convert. > They used to work in all previous releases before on all other platforms.
And they still do, rightly or wrongly. But they have never been part of the public API. So any code that happens to use them has been relying on undocumented features. I have no problem with documented, testable, stable, supportable functions being made part of the API. Do these functions meet those criteria? Nicholas Clark
CC: bug-B-Generate [...] rt.cpan.org
Subject: Re: [rt.cpan.org #28912] B-Generate-0.10 Win32 5.0
Date: Mon, 19 Jan 2009 08:22:58 +0100
To: perl5-porters [...] perl.org
From: "H.Merijn Brand" <h.m.brand [...] xs4all.nl>
On Sun, 18 Jan 2009 11:19:01 -0500, "Reini Urban via RT" <bug-B-Generate@rt.cpan.org> wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=28912 > > > Certain PERL_CORE functions are not exported into libperl on MSWin32 > only, Activeperl and mingw.
or AIX. see all those listed in makedef.pl Show quoted text
> We need Perl_pad_alloc, Perl_cv_clone and Perl_fold_constants. > > This is a core problem, > 1. that those functions ARE exported, and > 2. that those functions should be added to the public API
I at this moment think I care more about a guarantee that all functions in the public defined API are indeed exported. The two problems are very much related. Show quoted text
> This needs to be added to core to be able to use certain critical > functions such as setting op->targ, using CV->NEW_with_start and > op->convert. > They used to work in all previous releases before on all other platforms. > > In the meantime I'll make a crippled MSWin32 version for B::Generate.
On Mon, 20 Oct 2008 14:16:30 +0200, "H.Merijn Brand" <h.m.brand@xs4all.nl> wrote: Show quoted text
> embed.pl generates global.sym, which contains a list of all the > functions that are documented to be in the perl API. There is currently > however no test to check if all those are actually available, and it > turns out that if you build with -Duseshrplib, many are indeed not > available. Example: > > $ grep signbit embed.fnc > AMdnoP |int |Perl_signbit |NV f > $ grep signbit global.sym > Perl_signbit > $ nm libperl.so | grep signbit > Exit 1 > $ > > and Perl_signbit is not explicitly skipped in makedef.pl - that is > only used for aix win32 wince os2 MacOS netware - so I expect it to be > in libperl.{so|sl|a|dll} > > An (unportable) simple test case: > --8<--- globals.pl > #!/pro/bin/perl > > qx{make global.sym}; > > my $nm; > if (my @lp = glob "libperl.*") { > $nm = $lp[0]; > } > else { > $nm = "perl"; > } > my %sym; > open my $nl, "-|", "nm $nm" or die "Cannot execute $nm: $!\n"; > while (<$nl>) { > m/ [DT] (.*)/ and $sym{$1}++; > } > > open my $gs, "<", "global.sym" or die "global.sym: $!\n"; > while (<$gs>) { > m/^\s*#/ and next; > chomp; > exists $sym{$_} or print "Symbol $_ not found in $nm\n"; > } > -->8--- > > showed me a complete list on Linux and AIX: > > Linux $ /pro/bin/perl global.pl > Symbol perl_alloc_using not found in libperl.so > Symbol perl_clone not found in libperl.so > Symbol perl_clone_using not found in libperl.so > Symbol Perl_my_chsize not found in libperl.so > Symbol Perl_croak_nocontext not found in libperl.so > Symbol Perl_die_nocontext not found in libperl.so > Symbol Perl_deb_nocontext not found in libperl.so > Symbol Perl_form_nocontext not found in libperl.so > Symbol Perl_load_module_nocontext not found in libperl.so > Symbol Perl_mess_nocontext not found in libperl.so > Symbol Perl_warn_nocontext not found in libperl.so > Symbol Perl_warner_nocontext not found in libperl.so > Symbol Perl_newSVpvf_nocontext not found in libperl.so > Symbol Perl_sv_catpvf_nocontext not found in libperl.so > Symbol Perl_sv_setpvf_nocontext not found in libperl.so > Symbol Perl_sv_catpvf_mg_nocontext not found in libperl.so > Symbol Perl_sv_setpvf_mg_nocontext not found in libperl.so > Symbol Perl_do_aspawn not found in libperl.so > Symbol Perl_do_spawn not found in libperl.so > Symbol Perl_do_spawn_nowait not found in libperl.so > Symbol Perl_dump_fds not found in libperl.so > Symbol Perl_my_bcopy not found in libperl.so > Symbol Perl_my_bzero not found in libperl.so > Symbol Perl_my_memcmp not found in libperl.so > Symbol Perl_my_memset not found in libperl.so > Symbol Perl_my_swap not found in libperl.so > Symbol Perl_my_htonl not found in libperl.so > Symbol Perl_my_ntohl not found in libperl.so > Symbol Perl_newPADOP not found in libperl.so > Symbol Perl_regdupe_internal not found in libperl.so > Symbol Perl_unlnk not found in libperl.so > Symbol Perl_dump_mstats not found in libperl.so > Symbol Perl_get_mstats not found in libperl.so > Symbol Perl_GetVars not found in libperl.so > Symbol Perl_init_global_struct not found in libperl.so > Symbol Perl_free_global_struct not found in libperl.so > Symbol Perl_cx_dup not found in libperl.so > Symbol Perl_si_dup not found in libperl.so > Symbol Perl_ss_dup not found in libperl.so > Symbol Perl_any_dup not found in libperl.so > Symbol Perl_he_dup not found in libperl.so > Symbol Perl_hek_dup not found in libperl.so > Symbol Perl_re_dup_guts not found in libperl.so > Symbol Perl_fp_dup not found in libperl.so > Symbol Perl_dirp_dup not found in libperl.so > Symbol Perl_gp_dup not found in libperl.so > Symbol Perl_mg_dup not found in libperl.so > Symbol Perl_sv_dup not found in libperl.so > Symbol Perl_rvpv_dup not found in libperl.so > Symbol Perl_parser_dup not found in libperl.so > Symbol Perl_sys_intern_dup not found in libperl.so > Symbol Perl_sys_intern_clear not found in libperl.so > Symbol Perl_sys_intern_init not found in libperl.so > Symbol Perl_Slab_Alloc not found in libperl.so > Symbol Perl_Slab_Free not found in libperl.so > Symbol Perl_sv_setsv_cow not found in libperl.so > Symbol Perl_stashpv_hvname_match not found in libperl.so > Symbol Perl_my_sprintf not found in libperl.so > Symbol Perl_my_cxt_init not found in libperl.so > Symbol Perl_my_cxt_index not found in libperl.so > Symbol Perl_signbit not found in libperl.so > Linux $ > > And on AIX: > > $ /pro/bin/perl /tmp/global.pl > Symbol perl_alloc_using not found in libperl.a > Symbol perl_clone_using not found in libperl.a > Symbol Perl_my_chsize not found in libperl.a > Symbol Perl_do_aspawn not found in libperl.a > Symbol Perl_do_spawn not found in libperl.a > Symbol Perl_do_spawn_nowait not found in libperl.a > Symbol Perl_dump_fds not found in libperl.a > Symbol Perl_my_bcopy not found in libperl.a > Symbol Perl_my_bzero not found in libperl.a > Symbol Perl_my_memcmp not found in libperl.a > Symbol Perl_my_memset not found in libperl.a > Symbol Perl_my_swap not found in libperl.a > Symbol Perl_my_htonl not found in libperl.a > Symbol Perl_my_ntohl not found in libperl.a > Symbol Perl_unlnk not found in libperl.a > Symbol Perl_dump_mstats not found in libperl.a > Symbol Perl_get_mstats not found in libperl.a > Symbol Perl_GetVars not found in libperl.a > Symbol Perl_init_global_struct not found in libperl.a > Symbol Perl_free_global_struct not found in libperl.a > Symbol Perl_sys_intern_dup not found in libperl.a > Symbol Perl_sys_intern_clear not found in libperl.a > Symbol Perl_sys_intern_init not found in libperl.a > Symbol Perl_Slab_Alloc not found in libperl.a > Symbol Perl_Slab_Free not found in libperl.a > Symbol Perl_sv_setsv_cow not found in libperl.a > Symbol Perl_my_sprintf not found in libperl.a > Symbol Perl_my_cxt_index not found in libperl.a > Symbol Perl_signbit not found in libperl.a > $ > > Note that the list on AIX is actually shorter > > BTW I'm extremely interested in a way to portably do this on win32
-- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00, 11.11, 11.23, and 11.31, SuSE 10.1, 10.3, and 11.0, AIX 5.2, and Cygwin. http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
All required API functions are correctly checked and used since about 1.3201 Current version 1.37 -- Reini Urban