[PATCH] The return of the consting
I'm almost done with all my NN/NULLOK excitement in embed.fnc. Here's a patch of accumulated goodness. Nothing exciting. xoxo, Andy -- Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance diff -pur bleadperl/embed.fnc bw/trunk/embed.fnc --- bleadperl/embed.fnc 2005-09-01 10:14:47.0 -0500 +++ bw/trunk/embed.fnc 2005-09-13 00:48:42.0 -0500 @@ -305,7 +305,7 @@ pR |bool |ingroup|Gid_t testgid|Uid_t e p |void |init_argv_symbols|int argc|NN char **argv p |void |init_debugger Ap |void |init_stacks -Ap |void |init_tm|struct tm *ptm +Ap |void |init_tm|NN struct tm *ptm pd |U32|intro_my ApPR |char* |instr |NN const char* big|NN const char* little pR |bool |io_close |NN IO* io|bool not_implicit @@ -371,7 +371,7 @@ p |OP*|jmaybe |NN OP* arg pP |I32|keyword|NN const char* d|I32 len Ap |void |leave_scope|I32 base p |void |lex_end -p |void |lex_start |SV* line +p |void |lex_start |NN SV* line Ap |void |op_null|NN OP* o p |void |op_clear |NN OP* o Ap |void |op_refcnt_lock @@ -381,63 +381,63 @@ p |OP*|list |NULLOK OP* o p |OP*|listkids |NULLOK OP* o Apd|void |load_module|U32 flags|NN SV* name|NULLOK SV* ver|... Ap |void |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args -p |OP*|localize |OP* arg|I32 lexical +p |OP*|localize |NN OP* arg|I32 lexical ApdR |I32|looks_like_number|NN SV* sv Apd|UV |grok_bin |NN const char* start|NN STRLEN* len_p|NN I32* flags|NV *result Apd|UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NV *result Apd|int|grok_number|NN const char *pv|STRLEN len|UV *valuep -ApdR |bool |grok_numeric_radix|const char **sp|const char *send -Apd|UV |grok_oct |const char* start|STRLEN* len_p|I32* flags|NV *result -p |int|magic_clearenv |SV* sv|MAGIC* mg -p |int|magic_clear_all_env|SV* sv|MAGIC* mg -p |int|magic_clearpack|SV* sv|MAGIC* mg -p |int|magic_clearsig |SV* sv|MAGIC* mg -p |int|magic_existspack|SV* sv|MAGIC* mg -p |int|magic_freeregexp|SV* sv|MAGIC* mg -p |int|magic_freeovrld|SV* sv|MAGIC* mg -p |int|magic_get |SV* sv|MAGIC* mg +ApdR |bool |grok_numeric_radix|NN const char **sp|NN const char *send +Apd|UV |grok_oct |NN const char* start|STRLEN* len_p|I32* flags|NV *result +p |int|magic_clearenv |NN SV* sv|NN MAGIC* mg +p |int|magic_clear_all_env|NN SV* sv|NN MAGIC* mg +p |int|magic_clearpack|NN SV* sv|NN MAGIC* mg +p |int|magic_clearsig |NN SV* sv|NN MAGIC* mg +p |int|magic_existspack|NN SV* sv|NN MAGIC* mg +p |int|magic_freeregexp|NN SV* sv|NN MAGIC* mg +p |int|magic_freeovrld|NN SV* sv|NN MAGIC* mg +p |int|magic_get |NN SV* sv|NN MAGIC* mg p |int|magic_getarylen|NN SV* sv|NN const MAGIC* mg -p |int|magic_getdefelem|SV* sv|MAGIC* mg -p |int|magic_getglob |SV* sv|MAGIC* mg -p |int|magic_getnkeys |SV* sv|MAGIC* mg -p |int|magic_getpack |SV* sv|MAGIC* mg -p |int|magic_getpos |SV* sv|MAGIC* mg -p |int|magic_getsig |SV* sv|MAGIC* mg -p |int|magic_getsubstr|SV* sv|MAGIC* mg -p |int|magic_gettaint |SV* sv|MAGIC* mg -p |int|magic_getuvar |SV* sv|MAGIC* mg -p |int|magic_getvec |SV* sv|MAGIC* mg -p |U32|magic_len |SV* sv|MAGIC* mg -p |int|magic_nextpack |SV* sv|MAGIC* mg|SV* key -p |U32|magic_regdata_cnt|SV* sv|MAGIC* mg -p |int|magic_regdatum_get|SV* sv|MAGIC* mg -pr |int|magic_regdatum_set|SV* sv|MAGIC* mg -p |int|magic_set |SV* sv|MAGIC* mg -p |int|magic_setamagic|SV* sv|MAGIC* mg -p |int|magic_setarylen|SV* sv|MAGIC* mg -p |int|magic_freearylen_p|SV* sv|MAGIC* mg -p |int|magic_setbm|SV* sv|MAGIC* mg -p |int|magic_setdbline|SV* sv|MAGIC* mg -p |int|magic_setdefelem|SV* sv|MAGIC* mg -p |int|magic_setenv |SV* sv|MAGIC* mg -p |int|magic_setfm|SV* sv|MAGIC* mg -p |int|magic_setisa |SV* sv|MAGIC* mg -p |int|magic_setglob |SV* sv|MAGIC* mg -p |int|magic_setmglob |SV* sv|MAGIC* mg -p |int|magic_setnkeys |SV* sv|MAGIC* mg -p |int|magic_setpack |SV* sv|MAGIC* mg -p |int|magic_setpos |SV* sv|MAGIC* mg -p |int|magic_setregexp|SV* sv|MAGIC* mg -p |int|magic_setsig |SV* sv|MAGIC* mg -p |int|magic_setsubstr|SV* sv|MAGIC* mg -p |int|magic_settaint |SV* sv|MAGIC* mg -p |int|magic_setuvar |SV* sv|MAGIC* mg -p |int|magic_setvec |SV* sv|MAGIC* mg -p |int|magic_setutf8
Perl 5 Bug Summary
Perl5 Bug Summary Requestors with most open tickets [EMAIL PROTECTED] 39 Nicholas Clark39 Mark-Jason Dominus25 Stas Bekman 15 David Dyck14 [EMAIL PROTECTED] 13 Tom Christiansen 12 Dan Jacobson 9 Zefram 8 Yitzchak Scott-Thoennes8 http://rt.perl.org/rt3/NoAuth/perl5/Overview.html Generated at Mon Sep 12 12:35:17 2005 GMT --- * Total Issues * New Issues * Overview of Open Issues * Ticket Status By Version * Requestors with most open tickets --- Total Issues Open Tickets: 1508 --- New Issues New issues that have not been responded to yet 1 - 2 weeks old 37058 script produces segfault (testcase attached) 37033 open2 oddity with eval ... and STDIN closed 2 - 3 weeks old 36999 Segfault in simple regular expression 3 - 4 weeks old 36949 Small error in Encode manpage 36937 Perl Bug durring test stage of install on Windows XP -- included source of error and possible fix 36909 $^R undefined on matches involving backreferences 36908 ?{ ...}) code loses local vars on subsequent matches 4 - 5 weeks old 36896 autouse + DProf == segmentation fault 36890 Missing ;. (nosemi) 36889 Missing warning for bogus dirhandle name 36875 Certain string handling functions don't warn on undef 36837 B::Deparse fails when it comes to ByteLoader programs 5 - 6 weeks old 36815 [PATCH] warnings.pl/pm: Croaker function: bug (perl v5.8, v5.9) 36795 Dprof/dprofpp reports incorrect subroutine call count if #Calls 99 6 - 7 weeks old 36691 string captured into $1, $2,... in pattern match sometimes have utf8 bit on and sometimes off. Even for the same patternmatch arguments 36689 =, |= and ^= overloads are nbot documented 36675 -'-10' eq '+10' 36664 Strange behavior of shared array 36653 POSIX::SigSet double free with threads 7 - 8 weeks old 36630 open =fd does not work like fdopen 36614 Build fails on NonStop-UX 8 - 9 weeks old 36539 Edge cases in find_perl algorithms 36516 attributes.pm documentation is recursive and incomplete 36513 Pod::Html exports two undocumented functions 9 - 10 weeks old 10 - 11 weeks old 36430 Sort within a sort does not set $a, $b 11 - 12 weeks old 36347 Object destruction incomplete 12 - 13 weeks old 36333 sort CONSTANT exhibits weird behavior 36291 incorrect $! from open nr with too many open files 13 - 14 weeks old 36248 print does not respect use encoding 'utf8' 36229 Bizarre copy of IO 14 - 15 weeks old 36094 Wrong line number for FILEHANDLE reported by Xref (Xref.pm V1.01) 36079 use of `sexed' quotes gnot Unicode 36078 Newz() used gratuitously 36076 sv_upgrade and structure binary compatibility 36070 Not OK: perl v5.8.7 on darwin-thread-multi-2level 8.1.0 (UNINSTALLED) 36051 LVALUE magic should know how to
Re: [PATCH] The return of the consting
On Tue, 13 Sep 2005 01:08:36 -0500, Andy Lester [EMAIL PROTECTED] wrote: I'm almost done with all my NN/NULLOK excitement in embed.fnc. Here's a patch of accumulated goodness. Nothing exciting. Thanks, applied (including regen) as patch #25397 -- H.Merijn BrandAmsterdam Perl Mongers (http://amsterdam.pm.org/) using Perl 5.6.2, 5.8.0, 5.8.5, 5.9.2 on HP-UX 10.20, 11.00 11.11, AIX 4.3 5.2, SuSE 9.2 9.3, and Cygwin. http://www.cmve.net/~merijn Smoking perl: http://www.test-smoke.org,perl QA: http://qa.perl.org reports to: [EMAIL PROTECTED],perl-qa@perl.org
Re: Stop fiddling with the bloody grammar (was Re: exempli gratia is e.g.)
Michael G Schwern wrote: What it does add is MAINTENANCE COST. Maintaining an extreme level of grammatical correctness and consistency over a large collection with multiple authors takes time and effort not just from the person doing the initial grammar fix but from all the CPAN authors who now have to reapply that patch and retrain their writing style. Not to mention all the mailing list noise it inevitably generates (remember the [ae]ffect thread?) Yeah. What he said.
Re: [EMAIL PROTECTED] vms/vms.c Perl_cando fix.
On Mon, 12 Sep 2005 23:56:36 -0400, John E. Malmberg [EMAIL PROTECTED] wrote: The VMS specific Perl_cando() on open file handles was returning the results for a previous file that a stat()/lstat() that was done instead of for the open file. Thanks, applied as change #25398 This was causing failures in the Compress-Zlib tests on my system. -John -- H.Merijn BrandAmsterdam Perl Mongers (http://amsterdam.pm.org/) using Perl 5.6.2, 5.8.0, 5.8.5, 5.9.2 on HP-UX 10.20, 11.00 11.11, AIX 4.3 5.2, SuSE 9.2 9.3, and Cygwin. http://www.cmve.net/~merijn Smoking perl: http://www.test-smoke.org,perl QA: http://qa.perl.org reports to: [EMAIL PROTECTED],perl-qa@perl.org
Re: [MAINT24637] fails make test on OSX 10.4 (lib/locale.t)
Randal L. Schwartz wrote: At least it fails on only one thing... lib/locale FAILED at test 99 IIRC that's a problem with the system's locales. Did we have the word of some Apple expert on this ? it makes probably sense to disable those test for this version of Darwin.
Questions regarding Perl instrumentation
Dear Perl internals experts, I am new to this list and to Perl internals, so please keep this in mind. Solaris (*) has a dynamic instrumentation tool called DTrace. It allows to *dynamically* instrument any running application and get useful information about its behavior with zero (or almost zero) impact on the application when it is not instrumented. This works fine with normal applications, but not so good with interpteded languages since C function names and data types have little to do with the structure of the interpreted language. I am playing with the idea of adding some hooks to Perl5 that will allow DTrace to be used for Perl programs (**). As an initial experiment I changed Perl_runops_standard() function a bit and was able to use DTrace to trace start and end of each Perl OP evaluation. This is not very cool since there is no correlation between that and the Perl line numbers. So the first question I have is - Is it possible to get information about Perl script line number that the op belongs to? I need this information from the call to Perl_runops_standard(pTHX). In general, what is the good way (if any) to access line number information? A much more interesting thing is being able to trace Perl function calls. Seems like pp_entersub() is the right place to look at. This seems like a rather complex function that I don't quite understand. I hacked it a bit to get the name of the called function by using GvNAME(CvGV(cv)) which is, probably, not quite safe since I have not checked whether CvGV(cv) returns something non-NULL. So I have the second question: - What is the safe and efficient way (and place in pp_entersub()) to get the string representing the function name? - Can I get the function name from pp_leavesub()? - Can I get line number information for the caller in pp_entersub()? I am working with Perl 5.8.6. Here is what I was able to trace from the simple perl script: $x=1; $y=2; sub foo() {$x+$y} $z=foo(); 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_readline 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_defined 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_defined 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_and 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_and 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_enterloop 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_enterloop 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_entereval 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_entereval 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_const 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_const 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_sassign 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_sassign 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_nextstate 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_const 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_const 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_sassign 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_sassign 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_leaveeval 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_leaveeval 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_leaveloop 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_leaveloop 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_unstack 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_unstack 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_gvsv 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_gv 1 | Perl_runops_standard:call-returnminiperl`Perl_pp_gv 1 | Perl_runops_standard:call-entry miniperl`Perl_pp_readline 1 | Perl_runops_standard:call-return
Re: Questions regarding Perl instrumentation
Alexander Kolbasov wrote: Solaris (*) has a dynamic instrumentation tool called DTrace. It allows to *dynamically* instrument any running application and get useful information about its behavior with zero (or almost zero) impact on the application when it is not instrumented. This works fine with normal applications, but not so good with interpteded languages since C function names and data types have little to do with the structure of the interpreted language. I am playing with the idea of adding some hooks to Perl5 that will allow DTrace to be used for Perl programs (**). As an Maybe are you aware of http://blogs.sun.com/roller/page/alanbur?entry=dtrace_and_perl already ? initial experiment I changed Perl_runops_standard() function a bit and was able to use DTrace to trace start and end of each Perl OP evaluation. This is not You can also plug in your own runloop at compile time. See for example my module Runops::Switch on CPAN. very cool since there is no correlation between that and the Perl line numbers. So the first question I have is - Is it possible to get information about Perl script line number that the op belongs to? I need this information from the call to Perl_runops_standard(pTHX). In general, what is the good way (if any) to access line number information? The line number isn't stored in all ops, but only in COPs. You then get it with the CopLINE macro, see cop.h. A much more interesting thing is being able to trace Perl function calls. Seems like pp_entersub() is the right place to look at. This seems like a rather complex function that I don't quite understand. I hacked it a bit to get the name of the called function by using GvNAME(CvGV(cv)) which is, probably, not quite safe since I have not checked whether CvGV(cv) returns something non-NULL. So I have the second question: - What is the safe and efficient way (and place in pp_entersub()) to get the string representing the function name? I can't completely answer this off hand, but consider a few cases : - exported functions. maybe use EGV instead of GV - test with XSUBs - some functions are autoloaded - generally, I look at how the warnings and error display such things as function names and infer from that - Can I get the function name from pp_leavesub()? IIRC the CV is on the stack (popped by POPSUB). - Can I get line number information for the caller in pp_entersub()? You can use PL_curcop to get the current COP. HTH. Your project looks very interesting.
Re: Stop fiddling with the bloody grammar (was Re: exempli gratia is e.g.)
Michael G Schwern wrote: [...] While I thank you very much for the effort to scan the documentation to find grammar nits, and I realize Open Source is about scratching an itch, software is about change management. Which is why I say to stop fiddling with the (ie/i.e.)'s, the (eg/e.g.)'s, the (its/it's)'s and the ([ae]ffects). There's FAR more important things to be done in the Perl documentation. Don't worry, I gave up after the e.g./for example argument. David
Re: [MAINT24637] fails make test on OSX 10.4 (lib/locale.t)
On 2005–09–13, at 08:52, Rafael Garcia-Suarez wrote: Randal L. Schwartz wrote: At least it fails on only one thing... lib/locale FAILED at test 99 IIRC that's a problem with the system's locales. Did we have the word of some Apple expert on this ? it makes probably sense to disable those test for this version of Darwin. Yes. It's bug #35895. I logged it as a bug with Apple (ID# 4139653) but have heard not a thing about it. Apple's database lists it as open. The most precise way to make the failing test pass on Darwin would be to have lib/locale.t skip locales with names containing eu_ES for Darwin versions between 8.0.0 and 8.2.0. No, make that 8.3.0: apparently the next Mac OS update is pretty imminent, and if this bug's still open, it won't be fixed in the update. I'll try to look into it later today. -- Dominic Dunlop
Re: Questions regarding Perl instrumentation
Rafael Garcia-Suarez wrote: Maybe are you aware of http://blogs.sun.com/roller/page/alanbur?entry=dtrace_and_perl already ? As Rafael says, I've already done some work on this, documented at the link above. My intention is to put some generic macros into perl at the appropriate places. By default they woud be empty, in the case of Solaris you will be able to instantiate them as DTrace probes, on other platforms they could be whatever tracing system the platform supports. I've also spoken to Bryan, Mike and Adam about how to reduce the probe effect, I just haven't had the time to do the work. I'll be in MPK17 next week if you want to discuss it further. -- Alan Burlison --
Re: Questions regarding Perl instrumentation
Alan Burlison wrote: Rafael Garcia-Suarez wrote: Maybe are you aware of http://blogs.sun.com/roller/page/alanbur?entry=dtrace_and_perl already ? As Rafael says, I've already done some work on this, documented at the link above. My intention is to put some generic macros into perl at the appropriate places. By default they woud be empty, in the case of Solaris you will be able to instantiate them as DTrace probes, on other platforms they could be whatever tracing system the platform supports. I think it's worth investigating doing it in a module, providing an alternate runloop or only changing the pp functions for entersub and leavesub.
RE: Encode on EBCDIC patch( Doesn't Work)
From: Sastry [mailto:[EMAIL PROTECTED] Hi I agree with you Dan, I was referring to another test lib/DBM_Filter/t/encode.t where it encodes the k/v pairs using the code page iso-8859-16 and the normal DBM_Filter to store and verify the same. Other tests in DBM_Filter are working fine on EBCDIC platform. According to the output you posted yesterday there were two of the DBM_Filter test suites failing - utf8.t and encode.t. These are the only tests that touch encoding in the DBM_Filters I posted a summary of what the utf8 filter was doing because it is a simpler test, so it might be easier to figure out what is going wrong. The encode.t test changes the encoding from utf8 to iso-8859-16 mid test - in fact the euro symbol that you mention is the only thing written to the DBM file that should be encoded in iso-8859-16 - everything else should be in utf8. Paul ___ Does your mail provider give you FREE antivirus protection? Get Yahoo! Mail http://uk.mail.yahoo.com
RE: Encode on EBCDIC patch( Doesn't Work)
From: Dan Kogai [mailto:[EMAIL PROTECTED] On Sep 13, 2005, at 07:42 , Paul Marquess wrote: Dan, I'm not sure what is going on here. Can I walk through one of the failing test to see if it rings any bells with you? Before that I would like to make sure if I understand the scope of the problem correctly. We are talking about the problem in EBCDIC platform, not DBM_Filter vs. Encode at alarge, right? Correct. It's only EBCDIC I wrote a simple script and there seems no problem on ASCII platforms. SO I expect to get these k/v pairs back 'alpha' = \xCE\xB1, 'beta' = \xCE\xB2, \xCE\xB3= gamma, But this is what I actually read from the DBM file. 'beta' = '¸ž' 'alpha' = '¸¨' '¸ß' = 'gamma' On ASCII platforms I got what you've expected. Yep - it works fine on ASCII platforms and has done so for a few years. Sastry, would you clarify the problem a little bit more? If that's the problem of Encode vs. EBCDIC, say so. It occurs to me DBM_Filter is not guilty for this case. Paul ___ Does your mail provider give you FREE antivirus protection? Get Yahoo! Mail http://uk.mail.yahoo.com
Re: Questions regarding Perl instrumentation
On Tue, Sep 13, 2005 at 10:02:38AM +0200, Rafael Garcia-Suarez wrote: Alan Burlison wrote: Rafael Garcia-Suarez wrote: Maybe are you aware of http://blogs.sun.com/roller/page/alanbur?entry=dtrace_and_perl already ? As Rafael says, I've already done some work on this, documented at the link above. My intention is to put some generic macros into perl at the appropriate places. By default they woud be empty, in the case of Solaris you will be able to instantiate them as DTrace probes, on other platforms they could be whatever tracing system the platform supports. I think it's worth investigating doing it in a module, providing an alternate runloop or only changing the pp functions for entersub and leavesub. From what I remember Alan telling me about what Dave had said, there are were a few more points other than entersub and leavesub that would need instrumentation. goto sub; was the most obscure, but I think that require was another. I see nothing wrong with doing it as a module, if that brings the benefit to older, installed, perls, but if the code changes are clean and compile time enabled, I think that once working and stable it would actually be appropriate for 5.8.x. (Given that the whole point of dtrace is to provide a way of instrumenting already running code, and it is already shipped in some very stable mission critical code, such as the Solaris kernel) Alan demonstrated dtrace to me with his perl prototype. It's impressive. ONE interface to instrument calls in perl space, the perl C code, the C runtime library, and the kernel. It's trivial to instrument particular kernel calls made only while you're in a particular perl subroutine. I want that, working threads debugging and valgrind on the same platform. Please. The pony can wait. Nicholas Clark
RE: Encode on EBCDIC patch( Doesn't Work)
From: Sastry [mailto:[EMAIL PROTECTED] HI Paul On 9/13/05, Paul Marquess [EMAIL PROTECTED] wrote: From: Sastry [mailto:[EMAIL PROTECTED] Hi I agree with you Dan, I was referring to another test lib/DBM_Filter/t/encode.t where it encodes the k/v pairs using the code page iso-8859-16 and the normal DBM_Filter to store and verify the same. Other tests in DBM_Filter are working fine on EBCDIC platform. According to the output you posted yesterday there were two of the DBM_Filter test suites failing - utf8.t and encode.t. These are the only tests that touch encoding in the DBM_Filters I posted a summary of what the utf8 filter was doing because it is a simpler test, so it might be easier to figure out what is going wrong. The encode.t test changes the encoding from utf8 to iso-8859-16 mid test - in fact the euro symbol that you mention is the only thing written to the DBM file that should be encoded in iso-8859-16 - everything else should be in utf8. The 'euro' symbol is not encoded properly. Hence the failure. The rest of the test cases are fine. I confused. Do you mean that the other failures in the DBM_Filter test suite are to be expected on an EBCDIC platform? Paul ___ Does your mail provider give you FREE antivirus protection? Get Yahoo! Mail http://uk.mail.yahoo.com
Re: Questions regarding Perl instrumentation
Nicholas Clark wrote: From what I remember Alan telling me about what Dave had said, there are were a few more points other than entersub and leavesub that would need instrumentation. goto sub; was the most obscure, but I think that require was another. What about the unusual ways of exiting a subroutine, e.g. with next ?
Re: Questions regarding Perl instrumentation
On Tue, Sep 13, 2005 at 11:14:07AM +0200, Rafael Garcia-Suarez wrote: Nicholas Clark wrote: From what I remember Alan telling me about what Dave had said, there are were a few more points other than entersub and leavesub that would need instrumentation. goto sub; was the most obscure, but I think that require was another. What about the unusual ways of exiting a subroutine, e.g. with next ? My suggestion to Alan was to hitch a ride on the PUSHSUB/POPSUB macros; that way you should be able to trap *all* occurances, including hand-rolled calls in XS (eg the call outs to Perl in List::Util) -- Emacs isn't a bad OS once you get used to it. It just lacks a decent editor.
Re: Encode on EBCDIC patch( Doesn't Work)
Hi I agree with you Dan, I was referring to another test lib/DBM_Filter/t/encode.t where it encodes the k/v pairs using the code page iso-8859-16 and the normal DBM_Filter to store and verify the same. Other tests in DBM_Filter are working fine on EBCDIC platform. Do you remember our previous discussion that the work around you suggested for the encode has a problem on EBCDIC? Here is the failing test summary for lib/DBM_Filter/t/encode.t ok 1 - use DBM_Filter; ok 2 - use SDBM_File; ok 3 - use Fcntl; ok 4 - use charnames; ok 5 - tied to SDBM_File ok 6 - push an illigal filter ok 7 - push an 'encode' filter (default to utf-8) ok 8 - StoreData called from lib/DBM_Filter/t/encode.t, line 47 ok 9 - Store Data is a hash reference ok 10 - Storing to tied hash ok 11 - VerifyData called from lib/DBM_Filter/t/encode.t, line 57 ok 12 - Expected data is a hash reference ok 13 - Verifying a tied hash not ok 14 - Expected == Actual # Failed test (/u/isldev3/perl-5.8.6/lib/dbm_filter_util.pl at line 48) Wide character in print at /u/isldev3/perl-5.8.6/lib/Test/Builder.pm line 910. # Expected does not match actual # No Match from Expected: # 'beta' = '(c)ß' # 'alpha' = '(c)ì' # '(c)Â' = 'gamma' # ok 15 - pop the 'utf8' filter ok 16 - push an 'encode' filter (specify iso-8859-16) ok 17 - StoreData called from lib/DBM_Filter/t/encode.t, line 72 ok 18 - Store Data is a hash reference ok 19 - Storing to tied hash ok 20 - untie without inner references ok 21 - tied to SDBM_File ok 22 - VerifyData called from lib/DBM_Filter/t/encode.t, line 90 ok 23 - Expected data is a hash reference ok 24 - Verifying a tied hash not ok 25 - Expected == Actual # Failed test (/u/isldev3/perl-5.8.6/lib/dbm_filter_util.pl at line 48) # Expected does not match actual # No Match from Expected: # 'beta' = 'ó¥' # 'ó·' = 'gamma' # 'alpha' = 'ó£' # 'euro' = 'u' # # No Match from Actual: # '/Ä,' = 'u' # 'ea' = '(c)ß' # '(c)Â' = 'am' # 'lh' = '(c)ì' # ok 26 - untie without inner references # Looks like you failed 2 tests of 26. 1)Observe that 'euro' gets /Ä, in the key 2) In my previous mails I mentioned that by running the following script I do get '/Ä, whose EBCDIC codepoints are \x61\x63\x6E\x6B. The expected codepoints are \x65x75\x72\x6F. Am I right? use Encode; $string = 'euro'; $enc_string = encode(iso-8859-16, $string); print \n enc: $enc_string\n; On 9/13/05, Dan Kogai [EMAIL PROTECTED] wrote: On Sep 13, 2005, at 07:42 , Paul Marquess wrote: Dan, I'm not sure what is going on here. Can I walk through one of the failing test to see if it rings any bells with you? Before that I would like to make sure if I understand the scope of the problem correctly. We are talking about the problem in EBCDIC platform, not DBM_Filter vs. Encode at alarge, right? This is absolutely on EBCDIC platform I wrote a simple script and there seems no problem on ASCII platforms. SO I expect to get these k/v pairs back 'alpha' = \xCE\xB1, 'beta' = \xCE\xB2, \xCE\xB3= gamma, But this is what I actually read from the DBM file. 'beta' = '¸ž' 'alpha' = '¸¨' '¸ß' = 'gamma' On ASCII platforms I got what you've expected. Sastry, would you clarify the problem a little bit more? If that's the problem of Encode vs. EBCDIC, say so. It occurs to me DBM_Filter is not guilty for this case. Dan the Encode Maintainer. # use strict; use charnames 'greek'; use DBM_Filter; use Fcntl; use DB_File; use SDBM_File; my %file = ( DB_File = 'test.db', SDBM_File = 'test.sdbm', ); my %hash = ( beta = \N{beta}, 'alpha' = \N{alpha}, \N{gamma}= gamma, ); sub perlqq{ join '', map { chr($_) =~ /\w/ ? chr $_ : sprintf \\x%02X, $_ } unpack C*, shift; } for my $dbmtype (keys %file){ print $dbmtype\n; tie my %db, $dbmtype, $file{$dbmtype}, O_RDWR|O_CREAT, 0644 or die $dbmtype - $file{$dbmtype} : $!; %db = (); # clear tied(%db)-Filter_Push('utf8'); for my $k (keys %hash){ $db{$k} = $hash{$k}; printf \$k = %s(%d), \$db{\$k} = %s(%d)\n, perlqq($k), Encode::is_utf8($k), perlqq($db{$k}), Encode::is_utf8($db{$k}); } untie %db; tie my %db, $dbmtype, $file{$dbmtype}, O_RDONLY, 0644 or die $dbmtype - $file{$dbmtype} : $!; while(my ($k, $v) = each %db){ printf \$k = %s(%d), \$v = %s(%d)\n, perlqq($k), Encode::is_utf8($k), perlqq($v), Encode::is_utf8($v); } untie %db; } __END__
Re: [perl #36448] [PATCH] configuring ranlib for perl on osx with xcode 2.1
On Sat, Sep 10, 2005 at 10:40:25PM -0700, Steve Peters via RT wrote: [EMAIL PROTECTED] - Fri Jul 01 14:56:29 2005]: Hello, It looks like Apple has changed how ar works in xcode 2.1. As a result, Configure thinks that ar can generate random libraries. This breaks linking libperl.a, for instance when building PerlApp. Configure doesn't currently allow overriding ranlib when Configure detects that ranlib isn't necessary. My patch fixes this, and sets ranlib for darwin. Note that this patch is for ActivePerl 5.6.1 (it doesn't appear to be fixed in 5.9.2), so it probably needs to be manually applied... Configure 13888c13888,13890 ranlib=: --- if [ X$ranlib = X ]; then ranlib=: fi hints/darwin.sh 179a180,183 # Configure doesn't detect ranlib on Tiger properly. # NeilW says this should be acceptable on all darwin versions. ranlib='ranlib' Luke Has anyone looked at this patch yet? I'm assuming that since it was written against 5.6.1 rather than the current bleadperl and it isn't in diff -u format, a new patch might be needed. One question comes to mind when I look at it, though. Have you tested the patch on a non-Tiger system? I haven't tested it on a non-Tiger system (I don't have access to one). Luke -- Luke Closs PureMessage Developer There is always time to juggle in the Sophos Zone.
how to deal with static c++ object
Hi all, In some case, a class will have a static object for special purpose. For instance: static foo foo::bar I want to port this object to perl by wrapping it as a sub like this: foo * foo::bar() CODE: RETVAL = (foo::bar); OUTPUT: RETVAL This will always cause a segfault while invoking the sub in perl script. Does anyone know the reason? Another question, is there any better way to port a class method which returns an object. Like this: foo foo::bar2() since the returned object is local, which is usually allocated on stack, I have to new an object on heap and copy the content from the local one in my perlxs code. Is there a better way to handle this case? Great thanks. -- Bst Rgrs, Dongxu
Re: Encode on EBCDIC patch( Doesn't Work)
HI Paul On 9/13/05, Paul Marquess [EMAIL PROTECTED] wrote: From: Sastry [mailto:[EMAIL PROTECTED] Hi I agree with you Dan, I was referring to another test lib/DBM_Filter/t/encode.t where it encodes the k/v pairs using the code page iso-8859-16 and the normal DBM_Filter to store and verify the same. Other tests in DBM_Filter are working fine on EBCDIC platform. According to the output you posted yesterday there were two of the DBM_Filter test suites failing - utf8.t and encode.t. These are the only tests that touch encoding in the DBM_Filters I posted a summary of what the utf8 filter was doing because it is a simpler test, so it might be easier to figure out what is going wrong. The encode.t test changes the encoding from utf8 to iso-8859-16 mid test - in fact the euro symbol that you mention is the only thing written to the DBM file that should be encoded in iso-8859-16 - everything else should be in utf8. The 'euro' symbol is not encoded properly. Hence the failure. The rest of the test cases are fine. Paul ___ Does your mail provider give you FREE antivirus protection? Get Yahoo! Mail http://uk.mail.yahoo.com
Re: Encode on EBCDIC patch( Doesn't Work)
Hi Paul The other tests with DBM_Filter are working fine on EBCDIC platform. The only problem is with lib/DBM_Filter/t/encode.t and I guess Dan can address this! Dan! The workaround for encode() is not complete. Can you recheck it? -regards Sastry On 9/13/05, Paul Marquess [EMAIL PROTECTED] wrote: From: Sastry [mailto:[EMAIL PROTECTED] HI Paul On 9/13/05, Paul Marquess [EMAIL PROTECTED] wrote: From: Sastry [mailto:[EMAIL PROTECTED] Hi I agree with you Dan, I was referring to another test lib/DBM_Filter/t/encode.t where it encodes the k/v pairs using the code page iso-8859-16 and the normal DBM_Filter to store and verify the same. Other tests in DBM_Filter are working fine on EBCDIC platform. According to the output you posted yesterday there were two of the DBM_Filter test suites failing - utf8.t and encode.t. These are the only tests that touch encoding in the DBM_Filters I posted a summary of what the utf8 filter was doing because it is a simpler test, so it might be easier to figure out what is going wrong. The encode.t test changes the encoding from utf8 to iso-8859-16 mid test - in fact the euro symbol that you mention is the only thing written to the DBM file that should be encoded in iso-8859-16 - everything else should be in utf8. The 'euro' symbol is not encoded properly. Hence the failure. The rest of the test cases are fine. I confused. Do you mean that the other failures in the DBM_Filter test suite are to be expected on an EBCDIC platform? Paul ___ Does your mail provider give you FREE antivirus protection? Get Yahoo! Mail http://uk.mail.yahoo.com
Re: Questions regarding Perl instrumentation
Rafael Garcia-Suarez wrote: I think it's worth investigating doing it in a module, providing an alternate runloop or only changing the pp functions for entersub and leavesub. Putting probes around every op dispatch has a very noticeable effect, the reason for the per-sub probes was it provided a reasonable balance between observability and intrusiveness. The functions themselves aren't enough as the ENTERSUB and LEAVESUB macros are used in other places as well: # dtrace -l | grep perl 36464perl955libperl.so perl_run sub-entry 36465perl955libperl.so Perl_pp_sort sub-entry 36466perl955libperl.so Perl_pp_dbstate sub-entry 36467perl955libperl.so Perl_pp_entersub sub-entry 36468perl955libperl.so perl_run sub-return 36469perl955libperl.so Perl_pp_last sub-return 36470perl955libperl.soPerl_pp_return sub-return 36471perl955libperl.so Perl_dounwind sub-return 36472perl955libperl.soPerl_pp_leavesublv sub-return 36473perl955libperl.so Perl_pp_leavesub sub-return Dave Mitchell pointed out to me that we'll also need hooks in eval and require for example. I'd be more than happy to do it in a module, but I'm not clear how I would replace functions in libperl from a module. The whole point of dtrace is that it is lightweight enough to leave it in the code all the time. Loading an additional module normally requires that you stop/start the application, embedding the probes would mean you could enable the probes on the fly. -- Alan Burlison --
Re: Questions regarding Perl instrumentation
Alan Burlison wrote: I'd be more than happy to do it in a module, but I'm not clear how I would replace functions in libperl from a module. Your module could, for example, replace the op_ppaddr fields of the ops you want to intrument with your own DTrace-enabled implementation. (I note that every op has an op_ppaddr field, which is probably some memory overhead. However that also means that you can instrument only part of the optree) Or your module can replace the runloop and provide alternate implementations directly in it for the ops you want to instrument. The whole point of dtrace is that it is lightweight enough to leave it in the code all the time. Loading an additional module normally requires that you stop/start the application, embedding the probes would mean you could enable the probes on the fly. That's a significant point for enabling DTrace at compile time in perl.
Smoke [5.9.3] 25398 FAIL(F) bsd/os 4.1 (i386/1 cpu)
Automated smoke report for 5.9.3 patch 25398 fixit.xs4all.nl: Pentium II (i386/1 cpu) onbsd/os - 4.1 using cc version egcs-2.91.66 19990314 (egcs-1.1.2 release) smoketime 3 hours 56 minutes (average 1 hour 58 minutes) Summary: FAIL(F) O = OK F = Failure(s), extended report at the bottom X = Failure(s) under TEST but not under harness ? = still running or test results not (yet) available Build failures during: - = unknown or N/A c = Configure, m = make, M = make (after miniperl), t = make test-prep 25398 Configuration (common) none --- - F F - - -Duse64bitint O O - - | | | +- PERLIO = perlio -DDEBUGGING | | +--- PERLIO = stdio -DDEBUGGING | +- PERLIO = perlio +--- PERLIO = stdio Failures: (common-args) none [stdio/perlio] -Duse64bitint ../t/op/int.t...FAILED 11 Inconsistent test results (between TEST and harness): ../lib/Net/hostent.tFAILED at test 4 -- Report by Test::Smoke v1.19_67 build 842 running on perl 5.00503 (Reporter v0.019 / Smoker v0.023)
Re: [perl #36448] [PATCH] configuring ranlib for perl on osx with xcode 2.1
On Mon, 12 Sep 2005, Luke Closs wrote: On Sat, Sep 10, 2005 at 10:40:25PM -0700, Steve Peters via RT wrote: Has anyone looked at this patch yet? I'm assuming that since it was written against 5.6.1 rather than the current bleadperl and it isn't in diff -u format, a new patch might be needed. One question comes to mind when I look at it, though. Have you tested the patch on a non-Tiger system? I haven't tested it on a non-Tiger system (I don't have access to one). If Merijn doesn't beat me to it, I'll try to look at it in the next couple of days. -- Andy Dougherty [EMAIL PROTECTED]
RE: Zlib 2.00_03 / Blead 25366 on VMS + patched vms.c
From: John E. Malmberg [mailto:[EMAIL PROTECTED] I finally got a download of 2.00_03, and I have locally patched vms.c to fix the fstat()/Perl_cando() issue. So here are the results. I probably will not have time to investigate the failure tonight as I need to submit the patch to vms.c. ext/Compress/Zlib/t/01version.t 2 of 2 ok ext/Compress/Zlib/t/02zlib.t 242 of 242 ok ext/Compress/Zlib/t/03zlib-v1.t 351 of 351 ok ext/Compress/Zlib/t/04def.t 1781 of 1781 ok ext/Compress/Zlib/t/05examples.t 25 of25 ok ext/Compress/Zlib/t/06gzsetp.t 51 of51 ok ext/Compress/Zlib/t/07bufsize.t 288 of 288 ok ext/Compress/Zlib/t/08encoding.t 16 of16 ok ext/Compress/Zlib/t/09gziphdr.t 790 of 790 ok ext/Compress/Zlib/t/10defhdr.t595 of 595 ok ext/Compress/Zlib/t/11truncate.t 2374 of 2374 ok ext/Compress/Zlib/t/12any.t63 of63 ok ext/Compress/Zlib/t/13prime.t 10612 of 10612 ok ext/Compress/Zlib/t/14gzopen.t212 of 212 ok ext/Compress/Zlib/t/15multi.t 575 of 575 pass. ext/Compress/Zlib/t/16oneshot.t fails at 1460 and dies. not ok 1460 - Compressed ok # Failed test ([-.ext.compress.zlib.t]16oneshot.t at line 729) # input file 't/tmpdir1/a1.tmp' does not exist ok 1461 not ok 1462 - got all files # Failed test ([-.ext.compress.zlib.t]16oneshot.t at line 740) # got: '1' # expected: '0' ok 1463 - IO::Gzip::gzip - From FileGlob to Buffer files [a1] not ok 1464 - Compressed ok # Failed test ([-.ext.compress.zlib.t]16oneshot.t at line 747) # input file 't/tmpdir1/a1.tmp' does not exist buffer is undef at ../ext/compress/zlib/t/MyTestUtils.pm line 326 main::anyUncompress('ARRAY(0xa8bc08)') called at [-.ext.compress.zlib.t]16oneshot.t line 752 # Looks like you planned 2544 tests but only ran 1464. # Looks like your test died just after 1464. ext/Compress/Zlib/t/17isize.tSkipped. ext/Compress/Zlib/t/18lvalue.t 10 of 10 ok ext/Compress/Zlib/t/19destroy.t23 of 23 ok ext/Compress/Zlib/t/20tied.t 731 of 732 ok ext/Compress/Zlib/t/21newtied.t 242 of 242 ok ext/Compress/Zlib/t/22merge.t 490 of 490 ok ext/Compress/Zlib/t/23misc.t 29 of 29 ok ext/Compress/Zlib/t/99pod.tskipped. 1..0 # Skip Test::Pod 1.00 required for testing POD ext/Compress/Zlib/t/globmapper.t 68 of 69 ok That's looking good - we are now down to two test harnesses failing. I wonder if the failure in t/16oneshot.t is related to the fstat()/Perl_cando() issue you just fixed? Here is why I suspect it may be related: I have a series of tests that make use of a common set of test files in a test directory e.g. tmpdir1/a1.tmp. The first test in the series passes fine, but the second fails because it thinks the test file does not exist. The test is failing in this part of the code foreach my $filename (@_) { if (! -e $filename ) { ${ $self-{Error} } = input file '$filename' does not exist; return undef; } } It isn't anything to do with $filename being an alias into @_? Paul ___ How much free photo storage do you get? Store your holiday snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com
Re: [EMAIL PROTECTED] VMS fixes for cbuilder
On Sep 12, 2005, at 11:12 PM, John E. Malmberg wrote: Ken Williams wrote: Thanks, John. I've applied your patch (in a slightly modified form) and released a new beta, 0.13_01. It would be great if you (and/or a couple other people on the vmsperl list) could try it out, and then I can release 0.14 when it checks out. It is not yet showing up on CPAN, I will look again tomorrow evening. Note that if you're using the CPAN.pm (or CPANPLUS, I believe) client, it won't automatically get a beta version unless you explicitly give it the path. It's now up on http://search.cpan.org/~kwilliams/ExtUtils-CBuilder-0.13_01/ for manual download, though. It looks like I am finally close to starting to get the file spec handling in Perl up to speed with current VMS versions. In File::Spec::VMS, would it be appropriate to use a syntax like below to switch VMS into case sensitive mode if the underlying version of VMS Perl supported it? case_tolerant=0 VMS, and a few others also need a method to set/indicate the status of case preserved. We could certainly let the case_tolerant value be mutable, and add a case_preserving attribute as well. That would be pretty easy, but still perhaps not powerful enough, because some systems (OS X) can simultaneously mount some filesystems that are case-sensitive and others that aren't. File::Spec's model of never consulting the filesystem is a little bit unhelpful in this case. Let's just add the mutable attributes for now, and we can ruminate a little on the tougher case. -Ken
Re: [perl #36448] [PATCH] configuring ranlib for perl on osx with xcode 2.1
On Tue, 13 Sep 2005 07:52:06 -0400 (EDT), Andy Dougherty [EMAIL PROTECTED] wrote: On Mon, 12 Sep 2005, Luke Closs wrote: On Sat, Sep 10, 2005 at 10:40:25PM -0700, Steve Peters via RT wrote: Has anyone looked at this patch yet? I'm assuming that since it was written against 5.6.1 rather than the current bleadperl and it isn't in diff -u format, a new patch might be needed. One question comes to mind when I look at it, though. Have you tested the patch on a non-Tiger system? I haven't tested it on a non-Tiger system (I don't have access to one). If Merijn doesn't beat me to it, I'll try to look at it in the next couple of days. It was in my queue waiting for someone that could test on Tiger did so It's a rather simple change, but as I don't have access to any MacOS like OS's, I waited for comments -- H.Merijn BrandAmsterdam Perl Mongers (http://amsterdam.pm.org/) using Perl 5.6.2, 5.8.0, 5.8.5, 5.9.2 on HP-UX 10.20, 11.00 11.11, AIX 4.3 5.2, SuSE 9.2 9.3, and Cygwin. http://www.cmve.net/~merijn Smoking perl: http://www.test-smoke.org,perl QA: http://qa.perl.org reports to: [EMAIL PROTECTED],perl-qa@perl.org
Re: [perl #37039] perlref documentation about optional - is too vague
Yitzchak Scott-Thoennes wrote: I think I like the idea, and the patch seems safe. What I don't like, though, is the lack of tests for this patch. Also, a minor concern is that people might unknowingly write non-backwards-compatible code with 5.10 by using this construct. Some basic tests: Thanks, both patches applied as change #25399. As to your minor concern, that may be a reason to not include it in maint. (Whether it's a bugfix or enhancement depends on how you interpret the doc.) I don't know how Nicholas is going to interpret it, but personnally I wouldn't include it. -- The man does not exist who, outside his own specialty, is not credulous. -- Borges
File::Spec::VMS enhancements.
Ken Williams wrote: On Sep 12, 2005, at 11:12 PM, John E. Malmberg wrote: It looks like I am finally close to starting to get the file spec handling in Perl up to speed with current VMS versions. In File::Spec::VMS, would it be appropriate to use a syntax like below to switch VMS into case sensitive mode if the underlying version of VMS Perl supported it? case_tolerant=0 VMS, and a few others also need a method to set/indicate the status of case preserved. We could certainly let the case_tolerant value be mutable, and add a case_preserving attribute as well. That would be pretty easy, but still perhaps not powerful enough, because some systems (OS X) can simultaneously mount some filesystems that are case-sensitive and others that aren't. File::Spec's model of never consulting the filesystem is a little bit unhelpful in this case. It is the same on OpenVMS. The older ODS-2 file system is aways case insensitive and returns files in upper case only. There is code in the VMS specific parts of Perl that make it look like lower case to be more UNIXy. It is turning off that lowercasing code that I need the case preserved method to indicate and set. I am not sure how to change vms.c to accept the new value for case_tolerant. If I can find out how to do that, I can easily make the other changes. Let's just add the mutable attributes for now, and we can ruminate a little on the tougher case. I am assuming that if someone changes the defaults for a platform that they will accept the consequences, or they will need to document the restrictions. This will make some of the testing more complex. I have several other file system attributes that Perl scripts may need to know about, as they may be changeable and some samples are below: I want to first do the case sensitivity, and then work on the rest in stages. Filename (no path) size: 255 characters. Filename with path size: 255 | 1024 actual characters, 4096 with escape characters for to prevent confusion with delimiters. Extended characters in pathnames: The traditional VMS mode only allowed [0..9],[A..Z],[-$_] with one period and prohibited file names starting with '-'. The new set allows any character, including UNICODE, except '*' to be in a pathname. The '^' character in a VMS pathname treated sort of like a '\' in a UNIX string. One thing that I do not know how to do is fix the cannonpath method to work with [.foo^..bar] which in UNIX would be foo./bar/ and still have [.foo^..bar.more..] reduce to [.foo^..bar]. Also the following are legal syntaxes that may need to be processed: [nnn,nnn] where n is numeric is equivalent to [nn] - Just remove the comma, but the next one is more tricky. [n,n,n]file.name, where n is numeric. This is a compatibility mode for passing pathnames that are longer than 255 characters to routines that can not handle them. Unless a large enough buffer [4096] is available, this name can not be translated to a UNIX file specification. Another attribute is if the filenames are returned as UNIX format or native format from routines by default. And still another is that if input filenames should be presumed to be UNIX format or native. VMS foo. should translate to UNIX foo, and with extended characters enabled, UNIX foo. should translate to VMS foo^. Unfortunately there are also more attributes that seem to show up in corner tests where the behavior change in VMS to pass the test may not be one that the Perl script user would want associated with other attributes, which prevents some simplification. When hard links are enabled on VMS at least one Perl test that is no longer skipped expects the umask file protection to behave like UNIX instead of like VMS. -John [EMAIL PROTECTED] Personal Opinion Only
Re: Stop fiddling with the bloody grammar (was Re: exempli gratia is e.g.)
Michael == Michael G Schwern [EMAIL PROTECTED] writes: Michael I'm going to come at this from a different angle. One that Michael says leave it as ie/eg or perhaps simply who cares? Michael because the effort to correct all the ie's and eg's and it's Michael and [ae]ffects just doesn't seem worth the effort. To parody the overused Mastercard meme: Fixing old stuff: too expensive, except as collateral repair Writing new stuff correctly: priceless When I was but a young techwriting whippersnapper, one of the first rules I learned was never use ie or eg. Why? Not because they were obscure, but because people usually use the wrong one. :) So it became drilled in my head to say for example, or such as instead of the latin abbreviations. Same for etc... replace it with and so on, or whatever you precisely mean. Perhaps we could adopt this as a general guideline for future writings, but not make any crusade to fix it in the past? -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 merlyn@stonehenge.com URL:http://www.stonehenge.com/merlyn/ Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
Re: how to deal with static c++ object
Dongxu: please refer to http://inline.perl.org/inline/home.html On 9/13/05, Dongxu Ma [EMAIL PROTECTED] wrote: I want to port this object to perl by wrapping it as a sub like this: Another question, is there any better way to port a class method which
RE: [PATCH] The return of the consting
Andy I still get the following warnings related to attributes Robin gv.c: In function `Perl_gv_init': gv.c:167: warning: ignoring return value of `Perl_start_subparse', declared with attribute warn_unused_result op.c: In function `Perl_newCONSTSUB': op.c:4613: warning: null argument where non-null required (arg 1) sv.c: In function `Perl_sv_clear': sv.c:5568: warning: ignoring return value of `Perl_io_close', declared with attribute warn_unused_result Summary of my perl5 (revision 5 version 9 subversion 3) configuration: Platform: osname=solaris, osvers=2.8, archname=sun4-solaris-64int uname='sunos snowman 5.8 generic sun4u sparc sunw,ultra-250 ' config_args='-des -Dmksymlinks -Dcc=gcc -Duse64bitint -Dnoextensions=Encode -Dusedevel' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O', cppflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include' ccversion='', gccversion='3.4.3', gccosandvers='solaris2.8' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib ' libpth=/usr/local/lib /usr/lib /usr/ccs/lib libs=-lsocket -lnsl -ldl -lm -lc perllibs=-lsocket -lnsl -ldl -lm -lc libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -Wl,-E' cccdlflags='-fPIC', lddlflags=' -Wl,-E -G -L/usr/local/lib' -Original Message- From: H.Merijn Brand [mailto:[EMAIL PROTECTED] Sent: 13 September 2005 07:46 To: perl5-porters@perl.org Subject: Re: [PATCH] The return of the consting On Tue, 13 Sep 2005 01:08:36 -0500, Andy Lester [EMAIL PROTECTED] wrote: I'm almost done with all my NN/NULLOK excitement in embed.fnc. Here's a patch of accumulated goodness. Nothing exciting. Thanks, applied (including regen) as patch #25397 -- H.Merijn BrandAmsterdam Perl Mongers (http://amsterdam.pm.org/) using Perl 5.6.2, 5.8.0, 5.8.5, 5.9.2 on HP-UX 10.20, 11.00 11.11, AIX 4.3 5.2, SuSE 9.2 9.3, and Cygwin. http://www.cmve.net/~merijn Smoking perl: http://www.test-smoke.org,perl QA: http://qa.perl.org reports to: [EMAIL PROTECTED],perl-qa@perl.org --- This e-mail and any attachments may contain confidential and/or privileged material; it is for the intended addressee(s) only. If you are not a named addressee, you must not use, retain or disclose such information. NPL Management Ltd cannot guarantee that the e-mail or any attachments are free from viruses. NPL Management Ltd. Registered in England and Wales. No: 2937881 Registered Office: Serco House, 16 Bartley Wood Business Park, Hook, Hampshire, United Kingdom RG27 9UY ---
Re: how to deal with static c++ object
On Tue, Sep 13, 2005 at 03:08:51PM +0800, Dongxu Ma wrote: Hi all, Another question, is there any better way to port a class method which returns an object. Like this: foo foo::bar2() since the returned object is local, which is usually allocated on stack, I have to new an object on heap and copy the content from the local one in my perlxs code. Is there a better way to handle this case? Well, aside from always allocate it on the heap in the first place, I believe not. Nicholas Clark
chainsaw patch the bloody grammar
I replaced all instances of e\.?g\.? and i\.?e\.? with for example and that is in a copy of 5.9.2 the 92K patch is available at http://cronos.advenge.com/perl/IE_EG.patch in the hopes that someone else will go through it and add commas, and remove Iitalics as needed. -- David L Nicol http://cronos.advenge.com/pc/EmilyDickenson/SecondBook/p8.html There's a second stanza!
Re: how to deal with static c++ object
On Tue, Sep 13, 2005 at 03:08:51PM +0800, Dongxu Ma wrote: In some case, a class will have a static object for special purpose. For instance: static foo foo::bar I want to port this object to perl by wrapping it as a sub like this: foo * foo::bar() CODE: RETVAL = (foo::bar); OUTPUT: RETVAL This will always cause a segfault while invoking the sub in perl script. Does anyone know the reason? You can't return a C++ object on the perl stack; perl wouldn't know what to do with it. How you get round this problems depends on what visibility you want the object to have within perl. If you just want to access the value of the object (eg if it just contains an integer value), then return an SV with user magic attached; the magic has a pointer to the static object, and the magic's get and set functions copy the integer value between the SV and the object. If you want to be able (at the perl level) to call methods on the object; then you need to return a Perl object, whose methods are written in XS. But anyway, this this is for discusiing the development of the perl interpreter, not for XS programming questions. -- Lady Nancy Astor: If you were my husband, I would flavour your coffee with poison. Churchill: Madam - if I were your husband, I would drink it.
Re: [perl #36448] configuring ranlib for perl on osx with xcode 2.1
On Fri, Jul 01, 2005 at 09:56:31PM -, Luke Closs wrote: # New Ticket Created by Luke Closs # Please include the string: [perl #36448] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=36448 Hello, It looks like Apple has changed how ar works in xcode 2.1. As a result, Configure thinks that ar can generate random libraries. This breaks linking libperl.a, for instance when building PerlApp. Configure doesn't currently allow overriding ranlib when Configure detects that ranlib isn't necessary. My patch fixes this, and sets ranlib for darwin. Note that this patch is for ActivePerl 5.6.1 (it doesn't appear to be fixed in 5.9.2), so it probably needs to be manually applied... Indeed it did. Thanks, applied (25402) Sorry about the delay on this one. Nicholas Clark
Re: Questions regarding Perl instrumentation
On Tue, Sep 13, 2005 at 01:29:41PM +0200, Rafael Garcia-Suarez wrote: Alan Burlison wrote: I'd be more than happy to do it in a module, but I'm not clear how I would replace functions in libperl from a module. Your module could, for example, replace the op_ppaddr fields of the ops you want to intrument with your own DTrace-enabled implementation. (I note that every op has an op_ppaddr field, which is probably some memory overhead. However that also means that you can instrument only part of the optree) If you take this route remember that the optree is shared between threads which can make things even more interesting. Been there, done that, the wounds are still open. Or your module can replace the runloop and provide alternate implementations directly in it for the ops you want to instrument. That being a logical or. The whole point of dtrace is that it is lightweight enough to leave it in the code all the time. Loading an additional module normally requires that you stop/start the application, embedding the probes would mean you could enable the probes on the fly. That's a significant point for enabling DTrace at compile time in perl. If you can come up with a generic lightweight method of instrumenting subroutine entry and exit I can think of a few interesting applications and I'm sure others could think of many more. -- Paul Johnson - [EMAIL PROTECTED] http://www.pjcj.net
Re: 5.8.8
On Mon, Sep 12, 2005 at 12:28:52PM -0500, Steve Peters wrote: The only other exception would be changes to re-entrant functions through reentr.pl, where the generated code is quite different than that in bleadperl. Until and unless one of us figures out how to merge the code. Nicholas Clark
[PATCH] Re: [MAINT24637] fails make test on OSX 10.4 (lib/locale.t)
On 2005–09–13, at 09:45, Dominic Dunlop wrote: The most precise way to make the failing test pass on Darwin would be to have lib/locale.t skip locales with names containing eu_ES for Darwin versions between 8.0.0 and 8.2.0. No, make that 8.3.0: apparently the next Mac OS update is pretty imminent, and if this bug's still open, it won't be fixed in the update. I'll try to look into it later today. It turns out that Mac OS X 10.4 has a bad Byelorussian locale as well as the bad Catalan ones. Patch that skips testing all of these attached. The patch (optimistically) assumes that Apple will have fixed things by the update after next. We shall see ... -- Dominic Dunlop hide-bad-darwin-locales Description: Binary data
Re: [PATCH] Re: [MAINT24637] fails make test on OSX 10.4 (lib/locale.t)
On 9/13/05, Dominic Dunlop [EMAIL PROTECTED] wrote: It turns out that Mac OS X 10.4 has a bad Byelorussian locale as well as the bad Catalan ones. Patch that skips testing all of these attached. The patch (optimistically) assumes that Apple will have fixed things by the update after next. We shall see ... Thanks, applied as #25406 to blead.
Pod Indexing Project Status and Plans
Hi, Here's the current status for the Pod Indexing Project. SUMMARY * The deadline for perl-5.8.8 is 2005-10-16 * 13 files have been indexed so far (1685 entries) * Pod-Index-0.12 is available on CPAN * Please try the online demo at http://pod-indexing.annocpan.org/perldoc-k.cgi . This is just a thin CGI wrapper around the underlying modifications to perldoc. * Please look at PLAN and WHAT YOU CAN DO below if you want to help. I - INDEXED FILES As of this writing, these are the files that have been indexed. The latest stats are available at http://pod-indexing.annocpan.org/wiki/index.cgi?IndexStats . 71 perldata 483 perlfunc 34 perlmod 41 perlobj 282 perlop 78 perlpod 183 perlre 73 perlref 80 perlrun 78 perlsub 79 perlsyn 44 perltie 159 perlvar --- 1685 total (the first column is the number of entries for that file). This already covers a major part of the central documentation (the pods labeled Reference Manual in perl.pod, particularly the first paragraph of the list). II - SOFTWARE Pod-Index-0.12 is available on CPAN. It includes modules for parsing the pods, extracting the X index entries, generating the index, searching the index, and extracting the relevant sections from the pods. A modified perldoc is available at http://pod-indexing.annocpan.org/pod-indexing-snapshot/ . This perldoc adds the -k option for searching the index. It requires Pod-Index to do the searching. If these modifications are added to the core perl distribution, Pod-Index would have to be added as well. III - PLAN According to Nicholas Clark, Changes should be in blead by midnight (GMT) on the 16th October 2005 to make it into perl-5.8.8. So far, I've done all of the indexing myself. I've heard from people who say they are interested, but no one has sent me indexed files yet. I'd like to get as many as possible of the Reference Manual done by then, and then maybe some of the tutorials as well. IV - WHAT YOU CAN DO Besides indexing the files, you can also try the current index at http://pod-indexing.annocpan.org/perldoc-k.cgi , and let me know if some searches don't return what you would expect (given the files currently indexed). Cheers, Ivan
[perl #37156] perl-5.8.7 doen't compile on IA64
# New Ticket Created by John Damm Soerensen # Please include the string: [perl #37156] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37156 Just to advice you about a problem with IA64 gcc-3.2.3-47 and perl-5.8.7, that seems to be well known, but not mentionened in your README's. The problem shows during compilation as: ./miniperl -Ilib lib/lib_pm.PL Attempt to free unreferenced scalar: SV 0x60034d00 at lib/lib_pm.PL line 1. Attempt to free unreferenced scalar: SV 0x6003c7c0 at lib/File/Basename.pm line 138. Attempt to free unreferenced scalar: SV 0x6003c7c0 at lib/File/Basename.pm line 142. Attempt to free unreferenced scalar: SV 0x60065680 at lib/warnings.pm line 134. Attempt to free unreferenced scalar: SV 0x6003c7f0 at lib/File/Basename.pm line 143. Attempt to free unreferenced scalar: SV 0x60042980 at lib/Exporter/Heavy.pm line 3. make: *** [lib/lib.pm] Segmentation fault The workarounds are: 1. Upgrade gcc to gcc-3.2.3-50 or later 2. Compile pp_ctl.c, pp_hot.c and pp_sort.c using -O1 3. Compile pp_ctl.c, pp_hot.c and pp_sort.c using -O2 and -fno-delete-null-pointer-checks I have tried workaround 3 on both 5.8.6 and 5.8.7 and it works fine. Maybe you should consider er README.ia64 with this information? The full description of the problem maybe found at: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=141694 BR John Damm Sørensen SGI DK -- John Damm Sørensen SSE tlf. +45 4657 9433 FAX +45 4657 9440 e-mail [EMAIL PROTECTED] WEB www.sgi.com
[perl #37162] Perl -- Make test errors..
# New Ticket Created by Sharma, Rahul # Please include the string: [perl #37162] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37162 Hello, Can you please let m know if there is any known resolution for the below. I am using HP -UX supplied C compiler cc to compile perl. Make test gives t he below errors When I build the source, I get failures on Constant.t and Recurs.t lib/ExtUtils/t/Constant...Can't exec gmake: No such file or di rectory at ../lib/ExtUtils/t/Constant.t line 130. FAILED at test 3 lib/ExtUtils/t/recurs.# Failed test (../lib/ExtUtils/t/r ecurs.t at line 62) # got: '-1' # expected: '0' FAILED at test 6 Below are contents of config.sh file... #!/bin/sh # # This file was produced by running the Configure script. It holds all the # definitions figured out by Configure. Should you modify one of these values, # do not forget to propagate your changes by running Configure -der. You may # instead choose to run each of the .SH files by yourself, or Configure -S. # # Package name : perl5 # Source directory : . # Configuration time: Tue Sep 13 11:43:03 MDT 2005 # Configured by : icare # Target system : hp-ux boi287 b.11.11 u 9000800 1193911577 unlimited-user license Author='' Date='$Date' Header='' Id='$Id' Locker='' Log='$Log' Mcc='Mcc' RCSfile='$RCSfile' Revision='$Revision' Source='' State='' _a='.a' _exe='' _o='.o' afs='false' afsroot='/afs' alignbytes='8' ansi2knr='' aphostname='/usr/bin/hostname' api_revision='5' api_subversion='0' api_version='8' api_versionstring='5.8.0' ar='ar' archlib='/opt/psoft/perl586/lib/5.8.6/PA-RISC2.0' archlibexp='/opt/psoft/perl586/lib/5.8.6/PA-RISC2.0' archname64='LP64' archname='PA-RISC2.0' archobjs='' asctime_r_proto='0' awk='awk' baserev='5.0' bash='' bin='/opt/psoft/perl586/bin' binexp='/opt/psoft/perl586/bin' bison='bison' byacc='byacc' byteorder='4321' c='\c' castflags='0' cat='cat' cc='cc' cccdlflags='+Z' ccdlflags='-Wl,-E -Wl,-B,deferred ' ccflags=' -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -D_LARGEFILE_SOURCE ' ccflags_uselargefiles='-D_LARGEFILE_SOURCE' ccname='cc' ccsymbols='__HP_cc=08 __STDC_EXT__=1' ccversion='B.11.X.32509-32512.GP' cf_by='icare' cf_email='[EMAIL PROTECTED]' cf_time='Tue Sep 13 11:43:03 MDT 2005' charsize='1' chgrp='' chmod='chmod' chown='' clocktype='clock_t' comm='comm' compress='' contains='grep' cp='cp' cpio='' cpp='cpp' cpp_stuff='42' cppccsymbols='_HPUX_SOURCE=1 _ILP32=1 _PA_RISC2_0=1 __hp9000s800=1 __hppa=1 __hpux=1 __unix=1' cppflags='-Aa -D__STDC_EXT__ -D_HPUX_SOURCE -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings' cpplast='-' cppminus='-' cpprun='cc -E -Aa -D__STDC_EXT__' cppstdin='cc -E -Aa -D__STDC_EXT__' cppsymbols='_LARGEFILE_SOURCE=1 _LFS64_LARGEFILE=1 _LFS_LARGEFILE=1 _PROTOTYPES=1 __STDC__=1 __STDC_EXT__=1 _XPG4=1 _XPG4_EXTENDED=1' crypt_r_proto='0' cryptlib='' csh='csh' ctermid_r_proto='0' ctime_r_proto='0' d_Gconvert='gcvt((x),(n),(b))' d_PRIEUldbl='define' d_PRIFUldbl='define' d_PRIGUldbl='define' d_PRIXU64='define' d_PRId64='define' d_PRIeldbl='define' d_PRIfldbl='define' d_PRIgldbl='define' d_PRIi64='define' d_PRIo64='define' d_PRIu64='define' d_PRIx64='define' d_SCNfldbl='define' d__fwalk='undef' d_access='define' d_accessx='undef' d_aintl='undef' d_alarm='define' d_archlib='define' d_asctime_r='undef' d_atolf='undef' d_atoll='undef' d_attribut='undef' d_bcmp='define' d_bcopy='define' d_bsd='define' d_bsdgetpgrp='undef' d_bsdsetpgrp='undef' d_bzero='define' d_casti32='define' d_castneg='define' d_charvspr='undef' d_chown='define' d_chroot='define' d_chsize='undef' d_class='undef' d_closedir='define' d_cmsghdr_s='undef' d_const='define' d_copysignl='undef' d_crypt='define' d_crypt_r='undef' d_csh='define' d_ctermid_r='undef' d_ctime_r='undef' d_cuserid='define' d_dbl_dig='define' d_dbminitproto='define' d_difftime='define' d_dirfd='define' d_dirnamlen='define' d_dlerror='define' d_dlopen='define' d_dlsymun='undef' d_dosuid='undef' d_drand48_r='undef' d_drand48proto='define' d_dup2='define' d_eaccess='undef' d_endgrent='define' d_endgrent_r='undef' d_endhent='define' d_endhostent_r='undef' d_endnent='define' d_endnetent_r='undef' d_endpent='define' d_endprotoent_r='undef' d_endpwent='define' d_endpwent_r='undef' d_endsent='define' d_endservent_r='undef' d_eofnblk='define' d_eunice='undef' d_faststdio='define' d_fchdir='define' d_fchmod='define' d_fchown='define' d_fcntl='define' d_fcntl_can_lock='define' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' d_fgetpos='define' d_finite='undef' d_finitel='undef' d_flexfnam='define' d_flock='undef' d_flockproto='undef' d_fork='define' d_fp_class='undef' d_fpathconf='define' d_fpclass='undef' d_fpclassify='define' d_fpclassl='undef' d_fpos64_t='define' d_frexpl='undef' d_fs_data_s='undef' d_fseeko='define' d_fsetpos='define' d_fstatfs='define' d_fstatvfs='define' d_fsync='define' d_ftello='define' d_ftime='undef'
[perl #37161] thread ignores :utf8 file i/o discipline
# New Ticket Created by John Gardiner Myers # Please include the string: [perl #37161] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37161 This is a bug report for perl from [EMAIL PROTECTED], generated with the help of perlbug 1.35 running under perl v5.8.7. - The following test program should result in the file output containing utf-8 encoded data, but instead results in the file containing iso-8859-1 encoded data. use strict; use warnings; use threads; our $outfd; sub dolog { print $outfd ab\xc6; } die unable to open output: $!\n unless open($outfd, ':utf8', 'output'); threads-create('dolog'); foreach (threads-list()) { $_-join(); } [Please do not change anything below this line] - --- Flags: category=core severity=medium --- Site configuration information for perl v5.8.7: Configured by jgmyers at Mon Jul 25 16:01:57 PDT 2005. Summary of my perl5 (revision 5 version 8 subversion 7) configuration: Platform: osname=linux, osvers=2.4.21-32.0.1.elsmp, archname=i686-linux-thread-multi uname='linux pong.us.proofpoint.com 2.4.21-32.0.1.elsmp #1 smp tue may 17 17:52:23 edt 2005 i686 i686 i386 gnulinux ' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -g', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='3.3.3', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Locally applied patches: --- @INC for perl v5.8.7: /u/jgmyers/perl/lib/5.8.7/i686-linux-thread-multi /u/jgmyers/perl/lib/5.8.7 /u/jgmyers/perl/lib/site_perl/5.8.7/i686-linux-thread-multi /u/jgmyers/perl/lib/site_perl/5.8.7 /u/jgmyers/perl/lib/site_perl/5.8.6/i686-linux-thread-multi /u/jgmyers/perl/lib/site_perl/5.8.6 /u/jgmyers/perl/lib/site_perl/5.8.5/i686-linux-thread-multi /u/jgmyers/perl/lib/site_perl/5.8.5 /u/jgmyers/perl/lib/site_perl/5.8.3/i686-linux-thread-multi /u/jgmyers/perl/lib/site_perl/5.8.3 /u/jgmyers/perl/lib/site_perl . --- Environment for perl v5.8.7: HOME=/u/jgmyers LANG=en_US LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/tools/x/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/u/jgmyers/bin PERL_BADLANG (unset) SHELL=/bin/bash
[perl #37163] dprofpp array subscript error
# New Ticket Created by [EMAIL PROTECTED] # Please include the string: [perl #37163] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37163 This is a bug report for perl from [EMAIL PROTECTED], generated with the help of perlbug 1.35 running under perl v5.8.6. - [Please enter your report here] The dprofpp that comes with perl 5.8.6 and 5.8.4 (haven't tried others) has a bug where a non-existent array element is assigned to which makes dprofpp die. I create a profile like this: dprofpp -Q -p program.pl and I get this tmon.out (gz): http://perlcode.org/dprofpp_bug/tmon.out.gz I try to profile it like this: dprofpp -I -g main::do_loop and receive this error: Modification of non-creatable array value attempted, subscript -1 at /usr/bin/dprofpp line 662, fh line 1100. This happens on FreeBSD and Mac OSX under the above Perl versions. This patch helps (I'm not sure if something is not being counted, however. It may be that the chunk of code that creates the array index below needs to be moved to before this section): patch --- /usr/bin/dprofpp2005-03-20 17:42:00.0 -0700 +++ dprofpp 2005-09-13 12:52:32.0 -0600 @@ -659,7 +659,7 @@ my $ot = $t; if ( $dir eq '/' ) { - $syst = $stack[-1][0]; + $syst = $stack[-1][0] if scalar @stack; $usert = ''; $dir = '-'; #warn(Inserted exit for $stack[-1][0].\n) /patch [Please do not change anything below this line] - --- Flags: category=utilities severity=medium --- Site configuration information for perl v5.8.6: Configured by root at Sun Mar 20 16:31:42 PST 2005. Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=darwin, osvers=8.0, archname=darwin-thread-multi-2level uname='darwin b28.apple.com 8.0 darwin kernel version 7.5.0: thu mar 3 18:48:46 pst 2005; root:xnuxnu-517.99.13.obj~1release_ppc power macintosh powerpc ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags=-Dman3ext=3pm -Duseithreads -Duseshrplib' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include', optimize='-Os', cppflags='-no-cpp-precomp -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='3.3 20030304 (Apple Computer, Inc. build 1809)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags ='-L/usr/local/lib' libpth=/usr/local/lib /usr/lib libs=-ldbm -ldl -lm -lc perllibs=-ldl -lm -lc libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-bundle -undefined dynamic_lookup -L/usr/local/lib' Locally applied patches: 23953 - fix for File::Path::rmtree CAN-2004-0452 security issue 33990 - fix for setuid perl security issues --- @INC for perl v5.8.6: /Users/scott/myperl/Library/Perl /Users/scott/myperl/System/Library/Perl/5.8.6/darwin-thread-multi-2level /Users/scott/myperl/System/Library/Perl/5.8.6 /Users/scott/myperl/System/Library/Perl /Users/scott/myperl/lib/darwin-thread-multi-2level /Users/scott/myperl/lib /Users/scott/myperl/Library/Perl/5.8.1/darwin-thread-multi-2level /Users/scott/myperl/Library/Perl/5.8.1 /System/Library/Perl/5.8.6/darwin-thread-multi-2level /System/Library/Perl/5.8.6 /Library/Perl/5.8.6/darwin-thread-multi-2level /Library/Perl/5.8.6 /Library/Perl /Network/Library/Perl/5.8.6/darwin-thread-multi-2level /Network/Library/Perl/5.8.6 /Network/Library/Perl /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.6 /Library/Perl/5.8.1/darwin-thread-multi-2level /Library/Perl/5.8.1 . --- Environment for perl v5.8.6: DYLD_LIBRARY_PATH (unset) HOME=/Users/scott LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset)
Re: [EMAIL PROTECTED] VMS fixes for cbuilder
Ken Williams wrote: On Sep 12, 2005, at 11:12 PM, John E. Malmberg wrote: Ken Williams wrote: Thanks, John. I've applied your patch (in a slightly modified form) and released a new beta, 0.13_01. It would be great if you (and/or a couple other people on the vmsperl list) could try it out, and then I can release 0.14 when it checks out. I just pulled the Platform/vms.pm over and ran all the Extutils tests with it and they all pas I see that you combined the two if blocks into one which is an optimization that I did not see. It is not yet showing up on CPAN, I will look again tomorrow evening. Note that if you're using the CPAN.pm (or CPANPLUS, I believe) client, it won't automatically get a beta version unless you explicitly give it the path. It's now up on http://search.cpan.org/~kwilliams/ExtUtils-CBuilder-0.13_01/ for manual download, though. I currently do not have any Perl besides the blead-perl running on this system and I have not learned to use many of the tools that experienced Perl users take for granted. -John [EMAIL PROTECTED] Personal Opinion Only
Re: Questions regarding Perl instrumentation
Rafael Garcia-Suarez wrote: Maybe are you aware of http://blogs.sun.com/roller/page/alanbur?entry=dtrace_and_perl already ? As Rafael says, I've already done some work on this, documented at the link above. My intention is to put some generic macros into perl at the appropriate places. By default they woud be empty, in the case of Solaris you will be able to instantiate them as DTrace probes, on other platforms they could be whatever tracing system the platform supports. I've also spoken to Bryan, Mike and Adam about how to reduce the probe effect, I just haven't had the time to do the work. I'll be in MPK17 next week if you want to discuss it further. Ok, now it is in good hands! - Alexander Kolbasov
Re: File::Spec::VMS enhancements.
Tim Maher wrote: On Tue, Sep 13, 2005 at 09:53:15AM -0400, John E. Malmberg wrote: Ken Williams wrote: Extended characters in pathnames: The traditional VMS mode ... [0..9],[A..Z],[-$_] I'm admittedly a few decades past the peak of my expertise in VMS, but shouldn't the ; preceding a file's version number be listed in that set also? The ;, and []: are punctuation delimiters for the different sections, I was referring to the text between the punctuation. -John [EMAIL PROTECTED] Personal Opinion Only
Re: Zlib 2.00_03 / Blead 25366 on VMS + patched vms.c
Paul Marquess wrote: From: John E. Malmberg [mailto:[EMAIL PROTECTED] I finally got a download of 2.00_03, and I have locally patched vms.c to fix the fstat()/Perl_cando() issue. So here are the results. ext/Compress/Zlib/t/16oneshot.t fails at 1460 and dies. not ok 1460 - Compressed ok # Failed test ([-.ext.compress.zlib.t]16oneshot.t at line 729) # input file 't/tmpdir1/a1.tmp' does not exist ok 1461 not ok 1462 - got all files # Failed test ([-.ext.compress.zlib.t]16oneshot.t at line 740) # got: '1' # expected: '0' ok 1463 - IO::Gzip::gzip - From FileGlob to Buffer files [a1] not ok 1464 - Compressed ok # Failed test ([-.ext.compress.zlib.t]16oneshot.t at line 747) # input file 't/tmpdir1/a1.tmp' does not exist buffer is undef at ../ext/compress/zlib/t/MyTestUtils.pm line 326 main::anyUncompress('ARRAY(0xa8bc08)') called at [-.ext.compress.zlib.t]16oneshot.t line 752 # Looks like you planned 2544 tests but only ran 1464. # Looks like your test died just after 1464. That's looking good - we are now down to two test harnesses failing. I wonder if the failure in t/16oneshot.t is related to the fstat()/Perl_cando() issue you just fixed? It took that fix to get the test running this well. I will have to see if I can simplify the test down to the failing case as 1459 tests before that work. Here is why I suspect it may be related: I have a series of tests that make use of a common set of test files in a test directory e.g. tmpdir1/a1.tmp. The first test in the series passes fine, but the second fails because it thinks the test file does not exist. The test is failing in this part of the code foreach my $filename (@_) { if (! -e $filename ) { ${ $self-{Error} } = input file '$filename' does not exist; return undef; } } It isn't anything to do with $filename being an alias into @_? Probably not. I think I need to stop it in the debugger at the point of failure and see if the file is really there or not. If it is not there, then I need to find out what happened to it. If it is there, then I have to find out why it is not seen. -John [EMAIL PROTECTED] Personal Opinion Only
perl5.004_05 compile problems
I am trying to compile perl5.004_05 under SLES9 SP2 and I am seeing the following message. make: *** No rule to make target `built-in', needed by `miniperlmain.o'. Stop. Here is the uname output. Linux gdead 2.6.5-7.191-smp #1 SMP Tue Jun 28 14:58:56 UTC 2005 x86_64 x86_64 x86_64 GNU/Linux Please help! Thanks, Shaun
perlpodspec vs. Pod::Perldoc vs. Pod::Parser
I've been working on a Pod processor (likely to be called Pod::Tidy) and I've run across what I at first thought might be a bug in Pod::Parser. After re-reading perlpodspec I now suspect I've found a quirk in Pod::Perldoc. Consider the following example, Pod::Parser treats the lines with bar and baz in them as part of the same Ordinary paragraph. Pod::Perldoc (well, perldoc) treats them as two separate paragraphs. With baz being in a separate Verbatim paragraph. -- =head1 foo bar baz =cut -- I think that Pod::Parser is probably the one properly following the spec.. Can anyone help confirm or clarify what the correct behavior here is? Cheers, -J -- pgpOEtYCR16VY.pgp Description: PGP signature