Re: [PATCH] POD typos
On 6 Aug, Steven P. Schubiger wrote: On 6 Aug, Piotr Fusik wrote: A A text (ASCII) string, will be space padded. -Z A null terminated (ASCIZ) string, will be null padded. +Z A null terminated (ASCIIZ) string, will be null padded. b A bit string (ascending bit order inside each byte, like vec()). That isn't a typo.The change should be reversed. It seems that both are used. I prefer ASCIIZ because it clearly contains ASCII. What does ASCIZ stands for (i.e. which 'I' is dropped?) According to [1] .ascii (e.g. ASCII) .asciz (e.g. ASCIZ) are fairly common. I'm not too sure whether ASCIIZ is valid, since no reference could be found that would approve your point of view. [1] http://www.objsw.com/docs/as_71.html Popularity of an assembler directive isn't a good argument here. If it was, we'd say 2 + 2 equ 4 (or even (2 add 2) equ 4). And you referenced to just the GNU assembler. Other assemblers spell it .asciiz: http://www.google.com/search?q=.asciiz www.acronymfinder.com cointains neither ASCIZ or ASCIIZ.
Re: [PATCH] New test of IEEE floating point peculiarities
On 2005–08–06, at 20:25, Piotr Fusik wrote: On Windows: perl -le print unpack'H*',pack'F',-0.0 0080 On big-endians it will probably be: 8000 Indeed it is. Thanks. I'll look into that. If I can use it, I'll resubmit the patch with the new test script renamed so that it gets run after op/pack.t. -- Dominic Dunlop
[PATCH] undup
The attached patch removes some duplicated duplicated words. Note that some changes affect the perlintern.pod while some affect pods of external origin like Encode and the FAQ; many are applicable to maint, too. --- ext/Encode/lib/Encode/Supported.pod.dist2005-08-07 12:52:14.0 +0300 +++ ext/Encode/lib/Encode/Supported.pod 2005-08-07 12:52:24.0 +0300 @@ -834,7 +834,7 @@ Lhttp://czyborra.com/ -Contains a a lot of useful information, especially gory details of ISO +Contains a lot of useful information, especially gory details of ISO vs. vendor mappings. =item CJK.inf --- lib/Test/Harness/TAP.pod.dist 2005-08-07 13:10:29.0 +0300 +++ lib/Test/Harness/TAP.pod2005-08-07 13:10:37.0 +0300 @@ -148,7 +148,7 @@ =head2 TODO tests If the directive starts with C# TODO, the test is counted as a -todo test, and the text after CTODO is the the explanation. +todo test, and the text after CTODO is the explanation. not ok 13 # TODO bend space and time --- pad.c.dist 2005-08-07 13:07:23.0 +0300 +++ pad.c 2005-08-07 13:07:36.0 +0300 @@ -386,7 +386,7 @@ Allocate a new my or tmp pad entry. For a my, simply push a null SV onto the end of PL_comppad, but for a tmp, scan the pad from PL_padix upwards -for a slot which has no name and and no active value. +for a slot which has no name and no active value. =cut */ --- pod/perl573delta.pod.dist 2005-08-07 12:53:56.0 +0300 +++ pod/perl573delta.pod2005-08-07 12:54:11.0 +0300 @@ -149,7 +149,7 @@ =item 12243 -Devel::Peek: display UTF-8 SVs also also as \x{...} +Devel::Peek: display UTF-8 SVs also as \x{...} =item 12288 --- pod/perl58delta.pod.dist2005-08-07 13:11:05.0 +0300 +++ pod/perl58delta.pod 2005-08-07 13:11:24.0 +0300 @@ -416,7 +416,7 @@ =item * If your environment variables (LC_ALL, LC_CTYPE, LANG) look like you -want to use UTF-8 (any of the the variables match C/utf-?8/i), your +want to use UTF-8 (any of the variables match C/utf-?8/i), your STDIN, STDOUT, STDERR handles and the default open layer (see Lopen) are marked as UTF-8. (This feature, like other new features that combine Unicode and I/O, work only if you are using PerlIO, but that's @@ -3362,7 +3362,7 @@ Perl 5.8.0 doesn't build in AmigaOS. It broke at some point during the ithreads work and we could not find Amiga experts to unbreak the -problems. Perl 5.6.1 still works for AmigaOS (as does the the 5.7.2 +problems. Perl 5.6.1 still works for AmigaOS (as does the 5.7.2 development release). =head2 BeOS @@ -3701,7 +3701,7 @@ Perl 5.8 unfortunately does not build anymore on AmigaOS; this broke accidentally at some point. Since there are not that many Amiga developers available, we could not get this fixed and tested in time -for 5.8.0. Perl 5.6.1 still works for AmigaOS (as does the the 5.7.2 +for 5.8.0. Perl 5.6.1 still works for AmigaOS (as does the 5.7.2 development release). The CPerlIO::Scalar and CPerlIO::Via (capitalised) were renamed as --- pod/perlfaq7.pod.dist 2005-08-07 13:05:34.0 +0300 +++ pod/perlfaq7.pod2005-08-07 13:05:43.0 +0300 @@ -179,7 +179,7 @@ (contributed by brian d foy) Lperlmod, Lperlmodlib, Lperlmodstyle explain modules -in all the gory details. Lperlnewmod gives a a brief +in all the gory details. Lperlnewmod gives a brief overview of the process along with a couple of suggestions about style. --- pod/perlglossary.pod.dist 2005-08-07 12:57:43.0 +0300 +++ pod/perlglossary.pod2005-08-07 12:57:54.0 +0300 @@ -184,7 +184,7 @@ =item autoincrement -To add one to something automatically, hence the name of the the C++ +To add one to something automatically, hence the name of the C++ operator. To instead subtract one from something automatically is known as an autodecrement. --- pod/perlvar.pod.dist2005-08-07 13:09:31.0 +0300 +++ pod/perlvar.pod 2005-08-07 13:11:44.0 +0300 @@ -854,7 +854,7 @@ current program state than it is for hiding the program you're running. (Mnemonic: same as Bsh and Bksh.) -Note that there are platform specific limitations on the the maximum +Note that there are platform specific limitations on the maximum length of C$0. In the most extreme case it may be limited to the space occupied by the original C$0. @@ -872,7 +872,7 @@ In multithreaded scripts Perl coordinates the threads so that any thread may modify its copy of the C$0 and the change becomes visible -to ps(1) (assuming the operating system plays along). Note that the +to ps(1) (assuming the operating system plays along). Note that the view of C$0 the other threads have will not change since they have their own copies of it. --- pp_ctl.c.dist 2005-08-07 12:59:26.0 +0300 +++ pp_ctl.c2005-08-07 12:59:40.0 +0300 @@ -2862,7 +2862,7 @@ If db_seqp is non_null, skip CVs that are in the DB package and
Re: [PATCH] undup
On Sun, 07 Aug 2005 13:28:19 +0300, Jarkko Hietaniemi [EMAIL PROTECTED] wrote: The attached patch removes some duplicated duplicated words. Note that some changes affect the perlintern.pod while some affect pods of external origin like Encode and the FAQ; many are applicable to maint, too. Thanks thanks, patch patch applied applied as as change change #25274 #25274 I have the idea that the Encode part should be Cc's to Dan K, but this file is not mentioned in Maintainers.pl I have the idea that the Test::Harness part should be Cc'd to Andy L, but this file is not mentioned in Maintainers.pl Andy: --- lib/Test/Harness/TAP.pod.dist 2005-08-07 13:10:29.0 +0300 +++ lib/Test/Harness/TAP.pod2005-08-07 13:10:37.0 +0300 @@ -148,7 +148,7 @@ =head2 TODO tests If the directive starts with C# TODO, the test is counted as a -todo test, and the text after CTODO is the the explanation. +todo test, and the text after CTODO is the explanation. not ok 13 # TODO bend space and time Dan: --- ext/Encode/lib/Encode/Supported.pod.dist2005-08-07 12:52:14.0 +0300 +++ ext/Encode/lib/Encode/Supported.pod 2005-08-07 12:52:24.0 +0300 @@ -834,7 +834,7 @@ Lhttp://czyborra.com/ -Contains a a lot of useful information, especially gory details of ISO +Contains a lot of useful information, especially gory details of ISO vs. vendor mappings. =item CJK.inf -- 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: [PATCH] undup
jhi, On Aug 07, 2005, at 19:28 , Jarkko Hietaniemi wrote: The attached patch removes some duplicated duplicated words. Note that some changes affect the perlintern.pod while some affect pods of external origin like Encode and the FAQ; many are applicable to maint, too. Kiitos, applied in my repository. Dan the Encode Maintainer @ Portland, the Same Room as RGS is fast asleep.
Smoke [5.9.3] 25273 FAIL(XF) bsd/os 4.1 (i386/1 cpu)
Automated smoke report for 5.9.3 patch 25273 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 55 minutes (average 1 hour 57 minutes) Summary: FAIL(XF) 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 25273 Configuration (common) none --- - F F - - -Duse64bitint X O - - | | | +- PERLIO = perlio -DDEBUGGING | | +--- PERLIO = stdio -DDEBUGGING | +- PERLIO = perlio +--- PERLIO = stdio Failures: (common-args) none [stdio] -Duse64bitint ../t/op/int.t...FAILED 11 [perlio] -Duse64bitint ../lib/Net/hostent.tFAILED 4-7 ../t/op/int.t...FAILED 11 [stdio] 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: [PATCH] undup
H.Merijn Brand wrote: On Sun, 07 Aug 2005 13:28:19 +0300, Jarkko Hietaniemi [EMAIL PROTECTED] wrote: The attached patch removes some duplicated duplicated words. Note that some changes affect the perlintern.pod while some affect pods of external origin like Encode and the FAQ; many are applicable to maint, too. Thanks thanks, patch patch applied applied as as change change #25274 #25274 Some more I missed with the first scan attached. --- pod/perlunicode.pod.dist2005-08-07 14:42:01.0 +0300 +++ pod/perlunicode.pod 2005-08-07 14:44:25.0 +0300 @@ -1149,7 +1149,7 @@ =item * -chmod, chmod, chown, chroot, exec, link, lstat, mkdir, +chdir, chmod, chown, chroot, exec, link, lstat, mkdir, rename, rmdir, stat, symlink, truncate, unlink, utime, -X =item * --- pod/perltodo.pod.dist 2005-08-07 14:42:14.0 +0300 +++ pod/perltodo.pod2005-08-07 14:43:35.0 +0300 @@ -164,7 +164,7 @@ =head2 entersub XS vs Perl At the moment pp_entersub is huge, and has code to deal with entering both -perl and and XS subroutines. Subroutine implementations rarely change between +perl and XS subroutines. Subroutine implementations rarely change between perl and XS at run time, so investigate using 2 ops to enter subs (one for XS, one for perl) and swap between if a sub is redefined. --- pod/perldoc.pod.dist2005-08-07 14:42:56.0 +0300 +++ pod/perldoc.pod 2005-08-07 14:43:07.0 +0300 @@ -115,7 +115,7 @@ =item B-M Imodule-name This specifies the module that you want to try using for formatting the -pod. The class must must at least provide a Cparse_from_file method. +pod. The class must at least provide a Cparse_from_file method. For example: Cperldoc -MPod::Perldoc::ToChecker. You can specify several classes to try by joining them with commas
[PATCH] Re: [PATCH] New test of IEEE floating point peculiarities
On 2005–08–06, at 20:25, Piotr Fusik wrote: (If somebody can point me at a user-visible way in Perl of extracting the sign from an NV other than by stringifying it, I'd love to hear about it.) On Windows: perl -le print unpack'H*',pack'F',-0.0 0080 On big-endians it will probably be: 8000 OK. Attached is a replacement patch which peeps at the sign bit as Piotr suggests. It _should_ work on little-endian systems as well as big-endian, but somebody else will have to test that. I also took the opportunity to add unicos and unicosmk (whatever that is) to the list of non-IEEE fp systems. Are there any more out there besides the VAX and IBM mainframes? Is anybody still supporting Tandem non-stop UX, for example? Note that the test script is now named xieeefp.t so that is gets run after pack.t. -- Dominic Dunlop xieeefp-patch Description: Binary data
Re: [perl #36654] Inconsistent treatment of NaN
On Mon, Jul 25, 2005 at 05:27:36PM -0700, Sisyphus wrote: use warnings; my $z = NaN; $z += 1; print $z, \n; __END__ When I run that I get an output of simply: 1 NaN + 1 should be NaN, not 1. If NaN is treated as a string, then you would expect a value of 1 - but if NaN were being treated as a string there would have been a warning that NaN is not numeric - and no such warning appears. One is left to conclude that NaN is understood, but not handled correctly. Inf is similarly mishandled. My impression is that we lost nan/inf handling when we switched away from using the libc atof. This (as yet untested) should help some, if we want to go this route: --- perl/numeric.c.orig 2005-06-07 10:30:19.0 -0700 +++ perl/numeric.c 2005-08-07 10:23:55.574304000 -0700 @@ -893,6 +893,21 @@ ++s; } +/* punt to strtod for NaN/Inf; if no support for it there, tough luck */ + +#ifdef HAS_STRTOD +if (*s == 'n' || *s == 'N' || *s == 'i' || *s == 'I') { +char *p = negative ? s-1 : s; +char *endp; +NV rslt; +rslt = strtod(p, endp); +if (endp != p) { +*value = rslt; +return (char *)endp; +} +} +#endif + /* we accumulate digits into an integer; when this becomes too * large, we add the total to NV and start again */ Same problem on both Linux and Win32. There has been some discussion about this on the c.l.p.misc thread called IEEE NaN screwed up? and the p5p thread NaN on platforms that don't support it. Seems that the perlop, perlfunc, and perldata docs are also in need of change wrt what they say about NaN. They need to not encourage barewords, at least.
Re: [PATCH] Re: [PATCH] New test of IEEE floating point peculiarities
How about adding some tests for subnormals? Do you think it makes any sense?
Partial status of Friday evening's bead-perl on VMS
Sorry, my buggy rsync did not bring over the .patches file. t/run/exitFAILED--unexpected output at test 3 Fixes to the mapping of VMS (NATIVE) status codes to PERL (UNIX) in progress. Changes needed to vms.c,perl.h,pp_sys.c and t/run/exit.t so far. t/op/exec.FAILED at test 15 Investigating race condition where UNIX status code for child has been changed after Perl has recorded it, so $! reports a different status than the UNIX status code indicates. Putting in quick fix, which is building as I type this. All this status handling will need to be changed again if support for the GNV BASH shell is ever done, but that is a whole other can of worms. It will need for Perl to know which VMS shell is in effect in many places where it runs child processes. Most of the following have not yet been investigated, as I am trying to get the VMS to PERL status mapping fixed. A lot of them look to be the same symptoms, so fixing one case may fix them all. Some vmsify() cases are broken, but I have quite a few fixes queued up for vmsify and related routines so I will investigate these last unless they are blocking verifying other problems. t/op/goto.FAILED at test 53 not ok 53 - next and goto # Failed at [-.t.op]goto.t line 421 # got 'ok # ' # expected 'ok' not ok 54 - redo and goto # Failed at [-.t.op]goto.t line 428 # got 'ok # ' # expected 'ok' t/op/gv...FAILED at test 67 Attempting to pipe a multi-line program as an embedded perl command on VMS. It does not seem to work. t/op/magicFAILED at test 7 @ENV{keys(%ENV)} is duplicating the first hash member the first time it is called, and only the first time it is called. t/op/recurse..FAILED at test 28 not ok 28 - 64K deep recursion - no coredump expected # Failed at [-.t.op]recurse.t line 132 # got '-1' # expected '0' t/op/ref..FAILED at test 58 not ok 58 # Failed at [-.t.op]ref.t line 331 # got '-1' # expected '0' not ok 31 # Failed test at line 300 # Exited with status -1 t/op/taintFAILED at test 31 t/lib/vmsfspecFAILED--unexpected output at test 62 not ok 76 - pathify('__down_:[__the_.__garden_]__path_.dir;1'): '' # Failed at [-.t.lib]vmsfspec.t line 24 # got undef # expected '__down_:[__the_.__garden_.__path_]' ext/Compress/Zlib/t/03examplesFAILED at test 1 ext/Compress/Zlib/t/06gzdopen.FAILED--unexpected output at test 0 Issue needs to be investigated on VMS. ext/Devel/Peek/t/Peek.FAILED--unexpected output at test 20 Test 21 fails, reason still unknown. ext/Filter/t/call.FAILED at test 5 Odd numbered test starting at 5 fail. ext/POSIX/t/sigaction.FAILED--unexpected output at test 25 ok 25 - safe signal delivery must work Use of uninitialized value in numeric gt () at [-.ext.posix.t]sigaction.t line 183. ok 26 # skip no SIGRT signals lib/Archive/Tar/t/02_methods..FAILED--unexpected output at test 68 Needs further investigation, may have exceeded filename length for older VMS, and Perl does not know about the current VMS filename length. lib/AutoSplit.FAILED--unexpected output at test 1 Looks like an extra diagnostic is printing that should not be, or is missing a # at first glance. lib/bignum/t/bninfnan.FAILED--unexpected output at test 0 EAGLE mcr []Perl. -I[-.lib] [-.lib.bignum.t]bninfnan.t # INC = [-.lib.bignum.t]bninfnan.t ../lib ../lib/bignum/t 1..26 # Running under perl version 5.009003 for VMS # Current time local: Sun Aug 7 00:53:49 2005 # Current time GMT: Sun Aug 7 04:53:49 2005 # Using Test.pm version 1.25 Use of uninitialized value $_ in scalar chop at ../lib/DynaLoader.pm line 159. Use of uninitialized value $_ in concatenation (.) or string at ../lib/DynaLoader.pm line 161. Use of uninitialized value in require at ../lib/Config.pm line 66. Use of uninitialized value in require at ../lib/bignum.pm line 155. Use of uninitialized value in require at [-.lib.bignum.t]bninfnan.t line 38. ok 1 lib/Config/Extensions.FAILED--unexpected output at test 0 EAGLE mcr []Perl. -I[-.lib] [-.lib.config]extensions.t Use of uninitialized value in split at ../lib/Config/Extensions.pm line 12. ok 1 - use Config::Extensions; lib/ExtUtils/ParseXS/t/basic..FAILED--unexpected output at test 3 #include EXTERN.h #include EXTERN.h .^ .^ %CC-F-NOINCLFILEF, Cannot find file EXTERN.h specified in #include directive. %CC-F-NOINCLFILEF, Cannot find file EXTERN.h specified in #include directive. at line number 1 in file PROJECT_ROOT:[perl-blead.lib.ExtUtils.ParseXS.t]XSTest.xs;1 at line number 1 in file
Re: [EMAIL PROTECTED] on OpenVMS still not building
Op een mooie zomerdag (Friday 05 August 2005 01:33),schreef John E. Malmberg: John E. Malmberg wrote: Abe Timmerman wrote: Hi all, ... d -e chmod 644 [---.LIB.AUTO.B.C]C.BS %MMS-F-ABORT, For target SUBDIRS, CLI returned abort status: %X10EE8180. %MMS-F-ABORT, For target DYNEXT, CLI returned abort status: %X10EE8034. I still do not know what your problem is as I know of only one significant difference from the Perl I am building an the one that you have. It could be the MMS on this system, the MMK that I just installed, builds perl... If so, someone needs to look at MakeMaker, I guess. $ mms/ident %MMS-I-IDENT, MMS V3.5 ? 2003 Hewlett-Packard Development Company, L.P. $ mmk/ident %MMK-I-IDENT, this is the MadGoat Make Utility V3.9-10 HTH + Good luck, Abe -- Nicholas Clark [please, someone answer me. It's getting silly making my Nicholas Clark own thread] Welcome to my world :-) -- Jarkko Hietaniemi on p5p @ 2001-11-24
RE: [PATCH] Compress::Zlib 1.36
From: Abe Timmerman [mailto:[EMAIL PROTECTED] Op een mooie zomerdag (Saturday 06 August 2005 00:12),schreef Paul Marquess: This is mostly VMS fixes. Standalone version has just been uploaded to CPAN. Could someone on please try building testing 1.36 on VMS using the CPAN release please? $mms test (cleaned up output) t/01version. ok t/02zlib ok t/03examples FAILED tests 8-13 Failed 6/13 tests, 53.85% okay t/04encoding ok t/05gzsetp.. ok t/06gzdopen. Can't call method gzwrite on an undefined value at t/06gzdopen.t line 66. %C-F-EINVAL, invalid argument dubious Test returned status 3506356 (wstat 1024, 0x400) (VMS status is 3506356) DIED. FAILED tests 3-23 Failed 21/23 tests, 8.70% okay Failed TestStat Wstat Total Fail Failed List of Failed -- - t/03examples.t 136 46.15% 8-13 t/06gzdopen.t 350 102423 41 178.26% 3-23 Failed 2/6 test scripts, 66.67% okay. 27/302 subtests failed, 91.06% okay. %C-F-EINVAL, invalid argument %MMS-F-ABORT, For target TEST_DYNAMIC, CLI returned abort status: %X003580B4. -C-F-EINVAL, invalid argument The C$Inc code in t/03examples.t is still not right (attached patch fixes that): $ perl -Mblib [.t]03examples.t 1..13 not ok 1 # Failed test at line 119 not ok 2 # Failed test at line 120 not ok 3 # Failed test at line 130 not ok 4 # Failed test at line 132 not ok 5 # Failed test at line 150 not ok 6 # Failed test at line 151 Can't locate Compress/Zlib.pm in @INC (@INC contains: perl_root: [lib.VMS_AXP.5_8 _6] perl_root:[lib] perl_root:[lib.site_perl.VMS_AXP] perl_root: [lib.site_perl] /perl_root/lib/site_perl .) at ./examples/filtdef line 6. BEGIN failed--compilation aborted at ./examples/filtdef line 6. %SYSTEM-W-NOSUCHFILE, no such file Running the failing test(10) from the command line shows: (The define/user sys$*put ... are a VMS way for shell's and redirection) $ type hello1.gz hello this is a test message x t xuu the end $ define/user sys$input hello1.gz $ define/user sys$output hello2.gz $ perl -Mblib [.examples]gzstream Cannot open stdout: invalid argument %C-F-EINVAL, invalid argument That means gzopen() failes :-( Same goes for t/06gzdopen.t. I'm afraid I can't help here as know no C and nothing about the OpenVMS CRTL. Patch also adds better cleanup of tempfiles and checked on OS X, Win32, VMS. Thanks Abe. I don't expect there is a problem, but did you try your patch on VMS with the Compress::Zlib in the core? Paul
Re: *_arenaroot - why the seprate linked lists?
Nicholas Clark wrote: In the core we have PERLVAR(Ixiv_arenaroot, XPV*) /* list of allocated xiv areas */ PERLVAR(Ixnv_arenaroot, XPV*) /* list of allocated xnv areas */ PERLVAR(Ixrv_arenaroot, XPV*) /* list of allocated xrv areas */ PERLVAR(Ixpv_arenaroot, XPV*) /* list of allocated xpv areas */ PERLVAR(Ixpviv_arenaroot,XPVIV*)/* list of allocated xpviv areas */ PERLVAR(Ixpvnv_arenaroot,XPVNV*)/* list of allocated xpvnv areas */ PERLVAR(Ixpvcv_arenaroot,XPVCV*)/* list of allocated xpvcv areas */ PERLVAR(Ixpvav_arenaroot,XPVAV*)/* list of allocated xpvav areas */ PERLVAR(Ixpvhv_arenaroot,XPVHV*)/* list of allocated xpvhv areas */ PERLVAR(Ixpvmg_arenaroot,XPVMG*)/* list of allocated xpvmg areas */ PERLVAR(Ixpvlv_arenaroot,XPVLV*)/* list of allocated xpvlv areas */ PERLVAR(Ixpvbm_arenaroot,XPVBM*)/* list of allocated xpvbm areas */ PERLVAR(Ihe_arenaroot, XPV*) /* list of allocated he areas */ PERLVAR(Ipte_arenaroot, XPV*) /* list of allocated he areas */ All these 14 pointers are used identically - they each point to a malloc()ed buffer, the first void * of which links to another buffer (etc). Yes, the buffers happen to contain different things, but the contents aren't relevant to the arenaroot variables, which are used solely to keep track of what to free() at destruct time. Is there any reason to keep them separate? I'm thinking of merging all the arenaroot lists into one. Less data, less code. Nicholas Clark Heres a partial response/answer to your suggestion. Its rough, and not meant to be applied, rather its an RFC. (forex, it still has // comments) This patch: replaces *_arenaroot's with Ibody_arenaroots[sv_type] (ie an array). The array stores those same 14 pointers, ie the arena-list-heads for the respective body-types. It is indexed by sv_type. It does the same for *_root pointers too. Functions changed: S_more_bodies() loses arena_root root pointers, gains sv_type arg. It uses sv_type to index the 2 arrays, to get the right arena-list-head. It also use PL_nice_chunk_size the way SV_head is done. S_new_body() also loses the arena-root and root pointers, and gains sv_type. the root ptr is indexed by sv_type, and passed into .. new_body_inline() loses arena-root ptr, but keeps root-ptr. This was primarily cuz there were other users of this macro, and keeping interface looked easier than pushing changes out. This may be sub-optimal. new_body_type() new_body_allocated() macros both drop the compile-time-compute of the pointer-name they formerly supplied to S_new_body, which now gets it from sv_type. This de-complicates the macros significantly. They could be further shrunk, but at cost of compromising symmetry in new/del_$TYPE macros that use them. Other Notes: pte's are also handled in this array, at otherwize unused index=1. I did this cuz the pte handling code uses new_body_inline (at line 10195) so it was easier to just try it than think hard about it. index 1 is SVt_IV, which doesnt need a separate body, hence the index is unused. Same is true for 0, 2, 3. 2 is 'reserved' for HEs, since that seems practical. 3 could be used for ?? whatever Ive missed ?? 0 for SV heads ?? (thus unifying those too) IIRC from p5p mail, socket memory was alloced in large blocks, though I couldnt find where that was done. Does it make sense to allocate socket handles using arenas too ? And how does that stuff differ from IO-handles/globs anyway ? One possibility occured to me while looking at this stuff; arenas could hold items based upon their size, not their type. Presuming theres some overlap, we could reduce the number of 1/2 used (on average) arena blocks. a compiled-in map would translate sv_type to the right index. OTOH, there are only 16 or so lists, so theres not that much to save here. WRT linked-list of arena heads vs array, there doesnt seem to be a fundamental difference. I think this patch, as it is, does nothing to shrink the interpreter size, (I havent dropped the unused pte pointers forex), patch tests OK on blead, both threaded, unthreaded. As I said, RFC, esp where things are incomplete. Pls dont assume Ive thought of it (whatever it is), that I have a plan, etc.. diff -ruN -X exclude-diffs ../bleadperl/embedvar.h array-redo-bld/embedvar.h --- ../bleadperl/embedvar.h 2005-06-29 02:41:56.0 -0600 +++ array-redo-bld/embedvar.h 2005-08-07 15:30:42.0 -0600 @@ -192,6 +192,8 @@ #define PL_beginav (vTHX-Ibeginav) #define PL_beginav_save(vTHX-Ibeginav_save) #define PL_bitcount(vTHX-Ibitcount) +#define PL_body_arenaroots (vTHX-Ibody_arenaroots) +#define PL_body_roots (vTHX-Ibody_roots) #define PL_bufend (vTHX-Ibufend) #define PL_bufptr (vTHX-Ibufptr) #define PL_checkav (vTHX-Icheckav) @@ -495,6 +497,8 @@ #define PL_Ibeginav
Re: [EMAIL PROTECTED] on OpenVMS still not building
Abe Timmerman wrote: Op een mooie zomerdag (Friday 05 August 2005 01:33),schreef John E. Malmberg: John E. Malmberg wrote: Abe Timmerman wrote: d -e chmod 644 [---.LIB.AUTO.B.C]C.BS %MMS-F-ABORT, For target SUBDIRS, CLI returned abort status: %X10EE8180. %MMS-F-ABORT, For target DYNEXT, CLI returned abort status: %X10EE8034. I still do not know what your problem is as I know of only one significant difference from the Perl I am building an the one that you have. It could be the MMS on this system, the MMK that I just installed, builds perl... If so, someone needs to look at MakeMaker, I guess. $ mms/ident %MMS-I-IDENT, MMS V3.5 ? 2003 Hewlett-Packard Development Company, L.P. $ mmk/ident %MMK-I-IDENT, this is the MadGoat Make Utility V3.9-10 If this is on an Alpha or I64 system, then there is a known bug in MMS with filenames that have lower case extensions. If the tool that you used to install the files on a VMS ODS-5 disk preserved the case of the files, then MMK must be used to build Perl, or you must rename the offending files. If this is on a VAX, or an ODS-2 volume, then I do not know what the issue could be. If you looked at my other summary I posted today, there are at least 2 descrip.mms related issues that are affecting rebuilding perl after it has been built because of problems with the clean and realclean targets. -John [EMAIL PROTECTED] Personal Opinion Only