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

GSOC Status Report, Week 7

Thread Next
From:
Brian Fraser
Date:
July 11, 2011 00:43
Subject:
GSOC Status Report, Week 7
Message ID:
CA+nL+nYESTYypwR+yNTg_xovbgHXyhqC1tPgcQnG=uwBtVyAUQ@mail.gmail.com
Hey people.

First order of business, here's the repo with the progress as of now:
https://github.com/Hugmeir/gsoc-pad-utf8-safety/commits/stashgv_clean
Feel free to dissect it to oblivion, but as I'm not finished rebasing,
please excuse the mess for a while longer.
rafl tried it a couple of days ago and a pair of bugs related to threaded
builds and assertions popped out, so I spent most of the weekend hunting
those. (doy & hobbs)++, since their combined explanation on unions basically
solved one of the issues for me. Also, huge thank you to rafl, mst, HellKat
and the Cyberkat.eu folk for setting me up with an awesome ssh that can
actually run all of the test suite in a single day (less than ten minutes
actually. It's beautiful and somehow keeps getting dirt in my eyes).

And now, some rough spots that need attention:

   - I mentioned that I added new versions of functions with _(pvn|pv|sv)
   versions; But what should I do about the original versions, which are now
   little more than wrappers around the new functions? Leave them next to the
   new ones? Macros somewhere? rafl suggested the macro way, which I prefer the
   most, but with that I'm not sure where to sic sv_derived_from and sv_does.

   - *ò =~s///r; gives a coercion failure, which isn't present in blead. I
   can't quite follow pp_subst enough as to figure out a good fix; A bad one
   (in light of my ignorance) would be to change two s = SvPV_force()s into s =
   (isGV_with_GP() && (rpm->op_pmflags & PMf_NONDESTRUCT)) ? SvPV() :
   SvPV_force(); Suggestions/explanations welcome as usual.
   -
   - Until yesterday, GvNAMEUTF8() was doing something like (HEK_UTF8() ||
   HEK_WASUTF8()), as the double check was needed by most places that called
   SvUTF8() on GVs (pp_concat, stringify, substr, SvPV, etc). However, that
   double-check was occasionally breaking hv_(fetch|store|common|etc) calls for
   globs with latin-1 in them, so I removed the HEK_WASUTF8 out of GvNAMEUTF8
   and added it explicitly in SvUTF8(). Question is, is there any value to
   adding a GvNAMEWASUTF8() macro, seeing how there's not much of anything that
   would end up using it, rather than continue using HEK_WASUTF8(GvNAME_HEK())?

   - Father C, your comments for pp_caller remain unimplemented, because I
   don't quite understand what you are suggesting :( Would you mind clarifying
   it a bit? Also, I had to disregard a part of your advice on pp_ref, as using
   a SV can get it both UTF8 and nul clean, which is hopefully worth the extra
   memory.

This week I'll finish rebasing and keep on adding tests; Once reviews start
coming in, I'll focus on those, but if there's any extra time I'll try to
get prototypes clean. Oh, and do the midterm evaluation, I guess.

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