develooper Front page | perl.perl5.porters | Postings from May 2013

[perl #118091] Split gv_fetchpvn_flags into smaller functions

Thread Next
From:
Brian Fraser
Date:
May 21, 2013 15:23
Subject:
[perl #118091] Split gv_fetchpvn_flags into smaller functions
Message ID:
rt-3.6.HEAD-2650-1369149800-1064.118091-75-0@perl.org
# New Ticket Created by  Brian Fraser 
# Please include the string:  [perl #118091]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118091 >


This is a bug report for perl from fraserbn@gmail.com,
generated with the help of perlbug 1.39 running under perl 5.16.2.


-----------------------------------------------------------------
[Please describe your issue here]

https://github.com/Hugmeir/utf8mess/commits/split_gv_fetchpvn_flags

That branch splits gv_fetchpvn_flags() into four helper functions:
parse_gv_stash_name, which parses the name passed in to find a glob name
and optionally a stash, find_default_stash, which, if the previous function
didn't find a stash or some flags were passed in, looks for a suitable stash
for the new glob, magicalize_gv, which adds magic to a newly-created glob,
and
maybe_multimagic_gv, which checks if an already-existing glob needs a
different
king of magic, ala *! needing to be magicalized for $! and %!.
...I'm not confident the names are all that descriptive, so feel free to
suggest alternatives for those.

The branch also adds some comments to make better sense of how it
all works.  They are nowhere near comprehensive and need a second
pair of eyes for correctness, but I think that anything that clarifies
gv_fetchpvn_flags is a good step forward.

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=low
---
Site configuration information for perl 5.16.2:

Configured by hugmeir at Mon Feb 11 17:35:33 ART 2013.

Summary of my perl5 (revision 5 version 16 subversion 2) configuration:

  Platform:
    osname=darwin, osvers=12.2.1, archname=darwin-thread-multi-2level
    uname='darwin airtiger 12.2.1 darwin kernel version 12.2.1: thu oct 18
12:13:47 pdt 2012; root:xnu-2050.20.9~1release_x86_64 x86_64 '
    config_args='-de
-Dprefix=/Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2 -DDEBUGGING
-Dusethreads -Uversiononly -Accflags=-Wall -Wextra
-Aeval:scriptdir=/Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/bin'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -Wall -Wextra -DDEBUGGING
-fno-strict-aliasing -pipe -fstack-protector',
    optimize='-O3 -g',
    cppflags='-fno-common -DPERL_DARWIN -Wall -Wextra -DDEBUGGING
-fno-strict-aliasing -pipe -fstack-protector'
    ccversion='', gccversion='4.2.1 Compatible Apple LLVM 4.2
(clang-425.0.24)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, 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 =' -fstack-protector'
    libpth=/usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-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=' -bundle -undefined dynamic_lookup
-fstack-protector'

Locally applied patches:


---
@INC for perl 5.16.2:
    /Users/hugmeir/.perlbrew/libs/perl-5.16.2@all
/lib/perl5/darwin-thread-multi-2level
    /Users/hugmeir/.perlbrew/libs/perl-5.16.2@all/lib/perl5

/Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/darwin-thread-multi-2level
    /Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2

/Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/lib/5.16.2/darwin-thread-multi-2level
    /Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/lib/5.16.2
    .

---
Environment for perl 5.16.2:
    DYLD_LIBRARY_PATH=/usr/local/mysql/lib:
    HOME=/Users/hugmeir
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/Users/hugmeir/.perlbrew/libs/perl-5.16.2@all
/bin:/Users/hugmeir/perl5/perlbrew/bin:/Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/mysql/bin
    PERL5LIB=/Users/hugmeir/.perlbrew/libs/perl-5.16.2@all/lib/perl5
    PERLBREW_BASHRC_VERSION=0.58
    PERLBREW_HOME=/Users/hugmeir/.perlbrew
    PERLBREW_LIB=all
    PERLBREW_MANPATH=/Users/hugmeir/.perlbrew/libs/perl-5.16.2@all
/man:/Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/man
    PERLBREW_PATH=/Users/hugmeir/.perlbrew/libs/perl-5.16.2@all
/bin:/Users/hugmeir/perl5/perlbrew/bin:/Users/hugmeir/perl5/perlbrew/perls/perl-5.16.2/bin
    PERLBREW_PERL=perl-5.16.2
    PERLBREW_ROOT=/Users/hugmeir/perl5/perlbrew
    PERLBREW_VERSION=0.58
    PERL_BADLANG (unset)
    PERL_LOCAL_LIB_ROOT=/Users/hugmeir/.perlbrew/libs/perl-5.16.2@all
    PERL_MB_OPT=--install_base /Users/hugmeir/.perlbrew/libs/perl-5.16.2@all
    PERL_MM_OPT=INSTALL_BASE=/Users/hugmeir/.perlbrew/libs/perl-5.16.2@all
    SHELL=/bin/bash

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