develooper Front page | perl.perl5.porters | Postings from November 2017

[perl #132468] warnings.pm provides no way to specify the call frame

Thread Next
From:
Father Chrysostomos
Date:
November 20, 2017 05:49
Subject:
[perl #132468] warnings.pm provides no way to specify the call frame
Message ID:
rt-4.0.24-12731-1511156937-1116.132468-75-0@perl.org
# New Ticket Created by  Father Chrysostomos 
# Please include the string:  [perl #132468]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=132468 >


warnings.pm’s functions, warnings::enabled, warnings::warnif, etc., do not provide sufficiently fine-grained control over which call frame’s bitmask is looked at, which is why DBM::Deep fiddles with the bitmasks itself, and is currently broken with blead.

I would like to propose that every warnings:: function that accepts a $category/$object also take an optional numeric argument following it specifying the precise number of call frames.

That way, DBM::Deep will no longer have to use such brittle code for future perl versions.

In more detail:

warnings::enabled()
warnings::enabled($category)
warnings::enabled($category,$level) # this is new

warnings::fatal_enabled()
warnings::fatal_enabled($category)
warnings::fatal_enabled($category,$level) # this is new

warnings::warn($message)
warnings::warn($category,$message)
warnings::warn($category,$level,$message) # this is new

warnings::warnif($message)
warnings::warnif($category,$message)
warnings::warnif($category,$level,$message) # this is new


perl -V output, which is somewhat irrelevant to this proposal:

Summary of my perl5 (revision 5 version 27 subversion 6) configuration:
  Derived from: 98acbca8e7bdb3b6a03a91dbebcd3b47300d85df
  Platform:
    osname=darwin
    osvers=12.5.0
    archname=darwin-2level
    uname='darwin pint.local 12.5.0 darwin kernel version 12.5.0: sun sep 29 13:33:47 pdt 2013; root:xnu-2050.48.12~1release_x86_64 x86_64 '
    config_args='-de -Dusedevel'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.8 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -DPERL_USE_SAFE_PUTENV'
    optimize='-O3'
    cppflags='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.8 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
    ccversion=''
    gccversion='4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.27)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -mmacosx-version-min=10.8 -fstack-protector -L/usr/local/lib -L/opt/local/lib'
    libpth=/usr/local/lib /usr/bin/../lib/clang/4.2/lib /usr/lib /opt/local/lib
    libs=-lpthread -ldbm -ldl -lm -lutil -lc
    perllibs=-lpthread -ldl -lm -lutil -lc
    libc=
    so=dylib
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=bundle
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags=' '
    lddlflags=' -mmacosx-version-min=10.8 -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Locally applied patches:
    uncommitted-changes
  Built under darwin
  Compiled at Nov 14 2017 16:22:53
  @INC:
    lib
    /usr/local/lib/perl5/site_perl/5.27.6/darwin-2level
    /usr/local/lib/perl5/site_perl/5.27.6
    /usr/local/lib/perl5/5.27.6/darwin-2level
    /usr/local/lib/perl5/5.27.6
    /usr/local/lib/perl5/site_perl


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About