Reini Urban

  • Website:
  • About: Working at cPanel on cperl, B::C (the perl-compiler), parrot, B::Generate, cygwin perl and more guts, keeping the system alive.
  • Posted Memory savings with -fcow to Reini Urban

    B::C has now better support for copy-on-write (COW) strings with about 6%

    The perl5.18 implementation for COW strings is totally broken as it uses the COW REFCNT field within the string. You cannot ever come to a true successful copy-on-write COW scheme. Y…

  • Posted Memory savings with cperl and AvSTATIC to Reini Urban

    B::C and cperl has now proper support for copy-on-grow (COG) and

    COG means that the array of SV* pointers is allocated by the compiler statically, not dynamically, and that the cperl runtime creates a new array whenever the array is extended (copy-on-grow).

  • Commented on Perl 5 Porters Mailing List Summary: December 8th-13th
    Do not despair about RJBS's wrong comment that no one is working on signature "aliases" (i.e. call by ref), as with $_[n]: I not only implemented all those features they were discussing recently, which is the discussion following my RFC...
  • Commented on Fixed 5.22 problems during my compiler port
    After waiting 12 years and seeing parrot going down with the same people problems convinced me that you need to call the bad apples the bad apples. Revoke their commit access immediately, as their work is very harmful. Drive them...
  • Posted Fixed 5.22 problems during my compiler port to Reini Urban

    I uncovered and fixed many 5.22 problems with was busy to port the 3 compilers B::C, B::CC and B::Bytecode to 5.22.

    As I said in my interview it's my belief t…

  • Commented on cperl-5.22.1 released
    Versioning is close to perl5 proper. Since I added so many optimizations on top of 5.23.0 I went for 5.22.1c. There are no API breakages. The next stable releases will be 5.22.2c (with windows support and we will see what...
  • Posted cperl-5.22.1 released to Reini Urban

    The name cperl stands for a perl with classes, types, compiler support, or just a company-friendly perl, but currently it's on…

  • Posted gdb-dashboard to Reini Urban

    wget -O .gdb-dashboard

    sed -i 's,python Dashboard.start(),#python Dashboard.start(),' .gdb-dashboard

    joe .gdbinit
    source .gdb-dashboard

  • Posted How I made my core testsuite 2x faster to Reini Urban

    There is more than one way to make perl5 twice as fast, but this is what I did today. I fixed it on one machine.

    My Macbook Air gives constantly better results in my hash function benchmarks than my big Linux Desktop PC, because it ha…

  • Commented on [BREAKING] [GPW 2015] German train drivers' union calls 5-day strike starting Tuesday
    The other option, bus, is by far cheaper (e.g. 7 Euro from Berlin, 22 from Munich) and faster, so it's not that dramatic. See
  • Commented on On Dave Mitchell calling B and B::C a failed experiment
    This is not a personal attack. It is a defense against public attacks against your core infrastructure. I'm naming the two bad apples here, because they are the only ones who started the personal attacks so far, which led to...
  • Posted On Dave Mitchell calling B and B::C a failed experiment to Reini Urban

    While being blocked from p5p I had to read a new outragious statement by a porter. Who is in reality not a porter like me, just some developer who happens to have no idea what he is talking about.

    Re: OP_SIG…

  • Commented on On OP_SIGNATURE
    Having now implemented all my plans with the old slow signatures, I have to take back some of the criticsm above. OP_SIGNATURE is in fact a really good idea. I'm still not too keen about the separation of "Too many|few...
  • Posted On OP_SIGNATURE to Reini Urban

    Since it is not possible to write p5p criticism to the mailing list, I'll have to do it in my blog. @p5p: think over your guidelines. I don't believe that stuff like that needs to be blogged.

    DaveM now introduced a new OP_SIGNATURE which assigns run-time args according to the compiled sign…

  • Commented on Analysing CPAN Testers' Reports
    45 minutes via webscraping? My script gets the reports in 2 minutes, with some yaml caching, and files it under t/reports/$version
  • Commented on Today’s bit of black perl
    That's know forever. Changing @_ elements directly is destructive. shift @_ creates a copy. With methods destroying $self (i.e. $_[0]) is of course evil....
  • Posted A little warning to EUMM and shell-script users to Reini Urban

    I sometimes need to write shell-script test scripts and not perl, to be able to test perl scripts, without interfering with perl, and also for performance and easier IO reasons.

    In order to find out with which perl this distro was built, we need to parse the generated Makefile.


  • Posted The sad story of pseudohash criticism to Reini Urban

    I just had to endure MJD’s horrible pseudohash explanation at the Pittsburgh Workshop.

  • Posted New perl5 Porting/ to Reini Urban

    Dave Mitchel finally got fed up by the lack of stable perl benchmarks, and the impossibility do catch performance regressions.

    This was his announcement, with the sample:

  • Posted Perfect Hashes and faster than memcmp to Reini Urban

    In my previous post about perlcc next steps Perfect::Hash.

    # generate c file for readonly lookup
    phash keyf…
  • Commented on Type::Tiny Tricks #2: Types Are Objects
    Note that this is only true for Moose types. perl types are just classes (i.e. packages), not objects. Having them as objects is purely optional, but they need to be defined as class mandatory....
  • Posted perlcc next steps to Reini Urban

    cPanel uses now the new perl compiler B::C with -O3 and --staticxs

    Our old compiler (with 5.6.2) needed 2:30 hours for each build, produced ~100 binaries of about 30-50MB size. This sounds a lot but it is not. This is about the …

  • Commented on vec is slow, little-endian and limited
    Dana, yes. I've got minor problems with Bit::Vector being not optimized enough for the simple word-aligned cases I was using, even if the API supports words. And I've got bigger problems with vec being little-endian only (on intel), being too...
  • Commented on vec is slow, little-endian and limited
    See for the fast and pureperl/XS compatible version I'm now using. nvecget and nvecset, n for natural, not network-order. So big-endian on big-endian machines, and little-endian on intel. I didn't cover the bits smaller than 4 yet, as I'm...
  • Posted vec is slow, little-endian and limited to Reini Urban

    I remembered from the perl docs to use vec to compress arrays of size advantage is 3320 byte vs 88 bytes for two integer arrays of size 20 with values [0..1…

  • Commented on playing with Cairo
    Using B::CC with types or rperl would be next level, but Inline::C should be good enough for the beginning....
  • Commented on playing with Cairo
    Just rewrite to most expensive ones, like rotate, walk, cast, inside, update in Inline::C. Still readable, in the same file. No need to use perl ops for the float ops....
  • Commented on Google Summer of Code 2014 (Update 2)
    My backup mentor is Bruce Gray (Util)...
  • Commented on Statistics for perl hash tables
    mst: It is a sad thing to tell that, and it would have been better to avoid these allegations, but other people need to work with perl5 also, so they need to be told how the state of the onion...
  • Commented on Statistics for perl hash tables
    Aristotle: That is my theory also. The implementation is just bad (that's what I see) and the decisions were not rational. The contradicting theory (in p5p's favor) would have been that they found something to keep the current collision scheme...
Subscribe to feed Recent Actions from Reini Urban

  • Aaron Crane commented on On Dave Mitchell calling B and B::C a failed experiment

    The BPO administrators have decided to ban Reini from posting to the site, for a period of one month. The ban will be lifted on 19 April 2015.

  • William Lindley commented on cperl-5.22.1 released

    Good stuff. What would be required to have cperl versions available via perlbrew?

  • commented on cperl-5.22.1 released

    perlbrew needs to remove some strings and regexes concerning the dist tarball name in order to support differently named Perl variants, as of now the string "perl" is hardcoded all over. Run perlbrew download and start debugging from there.

  • dly commented on Fixed 5.22 problems during my compiler port

    I agree with you having incompetent coworkers/whatever-fellow-open-source-developers-are-called is a big problem. As someone on the outside looking in, this situation really bugs me. Your work on cperl seems pretty awesome, but cperl would be even more awesome if it didn't exist, and instead you actually cooperated with p5p to make perl itself more awesome. Just as you've chosen to point out their incompetence; instead, you could choose to bury the hatchet and cooperate with them. Replace personal attacks with

    p5p has spoken: by banning you repeatedly for…

  • Yary commented on Fixed 5.22 problems during my compiler port

    ++dly Thanks for the good description of mentoring vs. badgering. Alas, transferring skills is another layer of talent and effort on top of employing those skills. At the moment this split seems healthy for all, though I share your hope that these projects can eventually successfully combine forces.

Subscribe to feed Responses to Comments from Reini Urban

About is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.