In perl.git, the branch mauve has been created
<http://perl5.git.perl.org/perl.git/commitdiff/749db05560d6e986e808b00efa4b185b64dfb6ba?hp=0000000000000000000000000000000000000000>
at 749db05560d6e986e808b00efa4b185b64dfb6ba (commit)
- Log -----------------------------------------------------------------
commit 749db05560d6e986e808b00efa4b185b64dfb6ba
Author: Yves Orton <[email protected]>
Date: Mon Aug 30 00:41:09 2010 +0200
create the "mauve" temporary namespace for things like reftype
Scalar::Util::reftype(), refaddr() and blessed() are all a bit
less useful than they could be as they all return C<undef> when
their argument is not a reference. While this is logical, it also
means that using these routines has to be guarded, and normally
guarded in such a way that the internal logic is called twice.
Additionally these routines are quite commonly used and having to
load an additional DLL and XS code every program is inefficient.
Therefore we introduce the "mauve" namespace for to hold the "fixed"
equivalents, this namespace is /always/ loaded (like the 're' or 'utf8'
namespaces), and thus these routines can be accessed easily at any time.
We also provide a new module wrapper in t/lib which allows these
routines to be exported into other namespaces if the user so chooses.
At Jesse's request I have included weaken() and as it seemed logical to
do so I have also added isweak().
Once we have a good name for the namespace we can s/mauve/whatever/g
M MANIFEST
A lib/mauve.pm
A lib/mauve.t
M sv.c
M universal.c
commit bfd8344fd9c9893d41e91f20633f3e444ef5c017
Author: Yves Orton <[email protected]>
Date: Sun Aug 29 20:47:16 2010 +0200
add sv_reftype_len() and make sv_reftype() be a wrapper for it
sv_reftype() mostly returns strings whose length is known at compile
time, so we can avoid a strlen() call if we return the length.
Additionally, the non-length interface is potentially buggy in the
face of class names which contain "\0", therefore providing a way
to obtain the true length allows us to avoid any trickyness.
M embed.fnc
M embed.h
M proto.h
M sv.c
-----------------------------------------------------------------------
--
Perl5 Master Repository