develooper Front page | perl.perl5.porters | Postings from July 2001

Re: [ longmess and shortmess? (was Re: This Week on perl5-porters)]

Thread Previous | Thread Next
Jarkko Hietaniemi
July 5, 2001 07:49
Re: [ longmess and shortmess? (was Re: This Week on perl5-porters)]
Message ID:
On Thu, Jul 05, 2001 at 03:45:36PM +0100, Simon Cozens wrote:
> Eek. Good point.


(1) Nothing was changed.
(2) Even if it would have been changed of course we would have kept
    longmess() and shortmess() as typeglobbed aliases.

> ----- Forwarded message from -----
> Date: Thu, 5 Jul 2001 10:34:36 -0400
> From:
> Subject: longmess and shortmess? (was Re: This Week on perl5-porters)
> To: Simon Cozens <>
> Cc:
> Delivered-To:
> X-Mailer: Lotus Notes Release 5.0.7  March 21, 2001
> Did it ever occur to the core maintainers that some modules (CGI::Carp and
> Win32::EventLog::Carp come to mind)  use Carp::longmess and
> Carp::shortmess, and that those modules will break if they are changed to
> yodel and yelp?
>                     Simon Cozens                                                                 
>                     <simon@netthi        To:             
>           >            cc:                                                     
>                                          Subject:     This Week on perl5-porters                 
>                     07/02/2001                                                                   
>                     08:36 AM                                                                     
> [ Apologies for recent lapses in mailing list service; I've been
> finishing off my University exams and then taking a break in Japan.
> Normal service has been resumed for now, but may get hairy nearer to
> TPC. - SC]
> The HTML version will be up in a few hours (if it isn't already) at
> The current report is always available at
> An RSS file of this week's report will be available at
> The current RSS file is always available at
> The archive of past reports:
> To subscribe to this digest, send an empty message to
> To unsubscribe:
> For help:
> ----------------------------------------------------------------
>   This week on perl5-porters (25 June--02 July 2001)
>      * Notes
>      * Module Versioning and Testing
>      * Carpentry
>      * Regex Capture-to-variable
>      * Perl on S390
>      * UTS Amdahl
>      * Various
>   Notes
>    Please send corrections and additions to
> where YYYYMM is the current year
>    and month. Changes and additions to the perl5-porters biographies are
>    particularly welcome.
>    This was a reasonably normal week, seeing the usual 500 or so
>    messages.
>    Many thanks again to Leon for last week's summary.
>   Module Versioning and Testing
>    There's a move on to make the modules under ext/ free-standing: that
>    is, to be able to say
>    cd ext/File/Glob
>    make dist
>    and get a bundle that can be uploaded to CPAN or otherwise
>    distributed. The only problem with this is tests. Currently the tests
>    are kept under t/ of the main root of the Perl source tree, and are
>    run when a make test is done there. To make the modules freestanding,
>    you'd have to move the tests to ext/Foo/Bar/t/ and have the main make
>    test also traverse the extension subdirectories and run the tests
>    there. But then, of course, there's another problem. Can you spot it?
>    make test is run from an uninstalled Perl, which needs explicit hints
>    about where to find the Perl library. Hence, the tests in t/ directly
>    wibble @INC. This wouldn't work if we're making the modules
>    freestanding, or if we move the tests to ext/Foo/Bar/t/. So the trick,
>    which nobody's done yet, is to move the tests to the right place,
>    change the main make test to recurse extension subdirectories, but
>    also to propagate an environment variable telling the module where to
>    find the library. ( PERL5LIB is what you want for this.) That would be
>    a nice little task for someone...
>    Speaking of testing, [1]Schwern got Test::Simple and Test::More added
>    to the core, bringing the first All Your Base reference into the Perl
>    source tree. Oh, and how many different testing mechanisms?
>    [2]Robin Houston incremented B::Deparse's version number and added
>    some change notes. Here's what's improved since 5.6.1:
>     Changes between 0.60 and 0.61 (mostly by Robin Houston)
>     - many bug-fixes
>     - support for pragmas and 'use'
>     - support for the little-used $[ variable
>     - support for __DATA__ sections
>     - UTF8 support
>     - BEGIN, CHECK, INIT and END blocks
>     - scoping of subroutine declarations fixed
>     - compile-time output from the input program can be suppressed, so that
> the
>       output is just the deparsed code. (a change to in fact)
>     - our() declarations
>     - *all* the known bugs are now listed in the BUGS section
>     - comprehensive test mechanism (TEST -deparse)
>    The new test mechanism is great: it runs the standard Perl test suite
>    through B::Deparse and then back through Perl again to ensure the
>    deparsed code still passes the tests. And, as a testament to the work
>    that's been done on B::Deparse, they mostly do pass.
>    Schwern also bumped up ExtUtils::Manifest, which caused Jarkko to
>    appeal for a script which checks two Perl source trees to find updated
>    versions of modules without a version change. Larry Shatzer provided
>    one, and Jarkko used it to update the versions in the current tree.
>    Schwern also put Cwd on CPAN, and found a weird dynamic loading bug
>    with the XS version of Cwd. Oh, and noted that after his benchmarking,
>    there's no significant performance loss between 5.6.1 without PerlIO
>    and bleadperl with it.
>   Carpentry
>    [3]Mike Guy partially fixed a problem whereby when a magic variable
>    like $1 is passed as a subroutine parameter, carp and the debugger
>    don't see it properly. Tony Bowden took the opportunity to ask for
>    either more or less documentation for longmess and shortmess depending
>    on whether or not they were meant to be internal to Carp. Tony wrote a
>    documentation patch himself.
>    Schwern asked for a better name for those functions, perhaps more in
>    line with the carp/croak/cluck theme. Jarkko suggested yodel and yelp
>    which Schwern implemented.
>    [4]Andreas had a quick bitch about Schwern's, uh, idiosyncratic naming
>    style:
>      Your style of naming things is just plain sick:
>      AnyLoader does anything but interface to any loader. Ima::DBI has
>      something to do with DBI, but nothing with Ima. D::oh is the only
>      really funny one. But it's from 1999 and getting old. Sex: I still
>      don't know if it is fun or what. Bone::Easy? Same here.
>      Semi::Semicolon? Same here.
>      And now yodle!
>    Unfair, though, since yodel and yelp weren't his...
>    However, Hugo objected to yodel/ yelp because the other verbs write to
>    standard error, hence "speaking" whereas longmess and shortmess don't
>    actually "say" anything. Jarkko agreed, and there the matter rested.
>    (Modulo Rich Lafferty's suggestion of "flame" for objections in a
>    written medium...)
>   Regex Capture-to-variable
>    Jeffrey Friedl (he of the Regexp book) came up with an interesting
>    patch which adds the new special variable $^N for the most-recently
>    assigned bracket match. This is different from $+ which is the highest
>    numbered match; that's to say, given
>     /(foo(bar))/
>    then $+ is equivalent to $2, whereas $^N is equivalent to the bracket
>    match for the last closing bracket; that is, $1. This essentially
>    allows you to do capture-to-variable, like this:
>     (?:(\d+)(?{ $phone_number = $^N }))
>    without having to worry about which number bracket the match was.
>    (Especially useful if you have to change your regexp around.) Whether
>    this makes regular expressions cleaner or dirtier, I'll leave up to
>    you... However, Jeffrey also noted that you can use regexp overloading
>    (my, that's an obscure feature - look at to make such syntax as
>     (?<$phone_number>\d+)
>    work. Now that's cool.
>    Phillip Newton added a nmenomic: $^N is the most recently closed
>    Nested parenthesis.
>   Perl on S390
>    Hal Morris got Perl going on Linux/390, with only one test failing.
>    Good news for the new generation of mainframe hackers.
>    There's mixed news for the old-timers, though; Peter Prymmer has got
>    it down to 10 test failures, but one of the tests completely hangs
>    Perl. Apparently study under OS/390 is best avoided. He also started
>    some investigation of a Bigint bug, under the direction of Tels and
>    John Peacock, but left for his holidays and the discussion moved to
>    the perl-mvs mailing list.
>   UTS Amdahl
>    Oh, and talking of weird platforms, UTS. Hal (who's actually from UTS
>    Global, so much kudos there) has been testing out recent Perl builds
>    on UTS, and turning up some ... take a deep breath ... icky numeric
>    conversion issues.
>    [5]Nicholas Clark was convinced they (well, some of them at least)
>    were due to UTS C going through a foo-- statement twice, but Hal
>    pointed out he didn't expect UTS C to be quite that braindead. On the
>    other hand, Nick's analysis looked convincing...
>    Hal also fixed up hints/ so that UTS now configures and builds
>    nicely at least.
>   Various
>    David Wheeler found a known but really, really weird bug with lexical
>    arrays; if you do:
>     my @a = foo(); my @b = foo();
>     sub foo { $x = 0; my @ary; push @ary, "hi" if $x; push @ary, "ho";
> return @
> ary }
>    @a gets "ho" as you'd expect, but @b gets "ho","ho". Ronald Kimball
>    told him Not To Do That, Then.
>    Peter Prymmer noted that Perl on VMS was bailing out during the test
>    suite, leading to lots of bogus failures. This only happens if none of
>    the DBM libraries (GDBM, DB_File, NDBM or SDBM) were built. As the
>    first three require external libraries that VMS doesn't have and the
>    last one is currently broken, it's no wonder Perl is bailing out. The
>    fix is to work out why SDBM has stopped building on VMS. Peter also
>    produced a lot of other VMS and HPUX reports.
>    [6]Andy was pleasantly surprised to note that the promised "binary
>    compatibility with 5.005" actually works even in bleadperl. Perhaps we
>    need to break more things.
>    John Peacock asked a portability question for XS bit-twiddling; he's
>    trying to adapt a math library which depends on casting two numbers to
>    a long and adding them together to avoid overflow. Jarkko's fantastic
>    architecture experience was brought to bear as he revealed that Cray
>    Unicos has long == short == int == double. Oh, and type casting has
>    issues too, so you have to use a union. Nicholas Clark suggested the
>    old trick of comparing the operands of an addition with the result; if
>    the result is smaller than either of the operands, you've overflowed,
>    so you add a carry and off you go.
>    The news that GCC 3.0 was out brought a rush of people testing Perl
>    out with it; I got it through on Linux with all tests successful, as
>    did H. Merijn Brand on HPUX, but with rather a lot more warnings. This
>    was because HPUX messed up the test for __attribute__ due to using a
>    HP linker instead of a GNU one. Merijn and Jarkko got this fixed up.
>    Artur continued his iThreads quest; he renamed the "shared" attribute
>    to "static", (and then again to "unique" after objections) presumably
>    to free it up for an attribute which actually does share variables
>    between interpreters, and also added a function which cloned the Perl
>    host. He said that threads-0.01, the new threading module, will be
>    released to CPAN when 5.7.2 hits the road. (Which Jarkko keeps hinting
>    will be very, very, very soon now.) He also complained bitterly when
>    Marcel Grunauer tried to document as useful, despite the
>    fact that Marcel has some really very cool modules on CPAN based on
>    it...
>    Marcel also found, and Radu Greab fixed, an insiduous bug in split,
>    whereby if the default whitespace pattern was used for one iteration
>    of a loop, it would be used for all succeeding ones; the PMf_WHITE
>    flag for the regular expression was being set but never unset. Urgh.
>    [7]Ilya produced some rough changes documentation for OS/2, as well as
>    some other little patches. Norton Allen provided some QNX updates.
>    [8]Phillip Newton documented the neat
>     $count = () = function()
>    idiom for counting the number of return values from an operation. That
>    was something I hadn't seen before; you learn something new every
>    day... Until next week I remain, your humble and obedient servant,
>      _________________________________________________________________
>    [9]Simon Cozens
> References
>    1.
>    2.
>    3.
>    4.
>    5.
>    6.
>    7.
>    8.
>    9.
> ----- End forwarded message -----
> -- 
> "It [Starbucks Coffee]'s probably filled with MIND EXPANDING DRUGS, mind you. 
> Now /they're/ fun things to take of a Saturday evening. Why kick a tramp to 
> death whilst high on smacky booze in order to get a mention on BBC NEWS when 
> you can watch the same tramp excrete spiders from his eyelids?" - J-P

$jhi++; #
        # There is this special biologist word we use for 'stable'.
        # It is 'dead'. -- Jack Cohen

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About