Roland Lammel

  • Website:
  • About: I blog about Perl. I use Perl. I support Perl. And I still have a life beyond that.
  • Commented on First p2 milestone passed: parse 50% of perl5
    I'm really impressed by how much steam the perl core projects are having currently. I'm really looking forward to see your next milestone (and those of MoarVM and the JVM stuff)! Great work and thanks for sharing your progress....
  • Commented on Mapping the MOP to Moose
    Concerning the alternate approach to define a "required" attribute I must say that I really dislike the readability of this. has $fetcher = die '$fetcher is required'; This codeline will suggest to the reader of the code, that we will...
  • Commented on On Perl Names And Numbers
    A change of version number shall reflect an advance, not solely be a marketing instrument. We have quite some chances to do that now. The different works on creating a usable MOP would be a real reason to do that....
  • Commented on Foswiki tip: How to hide web at the left pane
    This can be done by using the "Set NOSEARCHALL = on" option in the WebPreferences of the web you wish to hide. Not sure that it's also hidden from the AdminGroup. Or view access could be limited too by using...
  • Commented on Optimizing compiler benchmarks (part 3)
    This is sure impressive stuff you are working on. While benchmarking an app which I converted to Moose, this was somewhat what I ran into. The additional function calling (where the slowdown seems to actually be caused by array accesses)...
  • Commented on The state of Validation::Class
    Conserning the drop if Moose... Do you have any numbers on how much faster it is now? Was it only compile-time overhead, or also the runtime overhead introduced by type checking? Did you consider using Mo instead to have a...
  • Commented on Playing around with Method::Signatures::Simple
    In some occassions that can happen, but itshould not be reproducable. As the benchmark is running in sequence, some other load on the system during the "default" benchmark can simply affect the benchmark. Here is the average result of 10...
  • Commented on $world->on( create => sub { say "Hello" } )
    Looks good and simple. Maybe the short names used for the Node.js API might clash with existing naming, maybe more expressive names easy readability. listen_on listen_once emit_event (or trigger_event) Also using this as a Moose role might be interesting to...
  • Commented on What should be core in Perl 5.16?
    For serialization JSON/JSON::XS, YAML::Tiny For networking: LWP (or similar) For toolchain: local::lib, Test::Most, App::cpanminus, Perl::Critic, Perl::Tidy For language extensions (that should be no extension but actually part of the language): Try::Tiny or similar, Moose (and some often used mooseX stuff)...
  • Commented on Distributing applications via CPAN
    Installing dependency heavy applications, that also rely on external modules (e.g. Wx in Padre) really brings you into trouble usually when installing from CPAN. So from my point of view, this is a perl developer centric approach that works for...
  • Commented on Modules vs. Applications
    Btw. yes, I'm also mostly using Perl for real-world applications, although I'm also partly a sysadmin. So usually no perl one-liners or system glue....
  • Commented on Modules vs. Applications
    I'll completely second that. People tend to find apps cool, but frameworks just a required thingy to get something done. Frameworks can help to get things done easy, maintainable, fast. But it's not shiny by itself. Noone can use it...
  • Commented on More on 100% Test Coverage
    From what I know, there is no direct way to invoke class methods in Moose today. There is MooseX::ClassAttribute which brings your accessors on the class level but not for methods directly (unless you start to misuse accessors for methods)....
  • Commented on Converting a Moose application to a Mouse|Moose hybrid
    What was the reason for going to Mouse? Startup does not seem to be an issue as Hailo looks like a long running process (sorry if I got that wrong). Memory savings are nice though. But why not switch to...
  • Commented on {Logging, Messaging, Notification, Auditing, ...} frameworks
    Well, this is ugly and hackish, and does not really make sense to use it that way. You should rather write your own wrapper for Log::Any (just looked at Log::Any::Adapter now, probably works with Log::Dispatch or Log::Log4perl the same way)....
  • Commented on Log::Any::App
    I simply use a logging config file. So it's really just a few lines of code: use Log::Log4perl; use Log::Any qw($log); Log::Log4perl::init('logging.conf'); Log::Any::Adapter->set('Log::Log4perl'); And for new projects just copy the logging.conf and adjust to my varying needs. Of course something...
  • Commented on Why Doesn't the BBC Upgrade Their Software Often Enough?
    Yes, it's hard with RPM, when you do not stick to the base OS. You would have to trust rpmforge to get access to more perl packages here. Still I actually tried to point out that for enterprise use, you...
  • Commented on Why Doesn't the BBC Upgrade Their Software Often Enough?
    Having one perl per app may be the right direction, but still sysadmins like to use software packages. Doing a security update for one of the packages would be a nightmare if you now have 50 perls (one per app)...
  • Commented on Thinking on a couple things
    For the Perl CMS there is Movable Type, like this blog ;-) What I need sometimes is a good local process and service monitor, that might also be controlled in a networked manner (e.g. decide if something should be restarted...
Subscribe to feed Recent Actions from Roland Lammel

  • Ron Savage commented on Mapping the MOP to Moose

    Rather than
    "has $fetcher = die '$fetcher is required';"
    I was hoping for
    "has $fetcher || die '$fetcher is required';"

    Is it true that that won't work because you have to allow for undef as an acceptable value?

  • Stevan Little commented on Mapping the MOP to Moose

    Ron – Yes, that wouldn't work for that reason. The reason the '=' version works is simply because when no value (undef or otherwise) is passed into the constructor, the default value is evaluated. In this case, the evaluation of that default value results in it die-ing.

    I am starting to wonder if perhaps this shouldn't be a trait (which under the hood would actually just do this) simply because the syntax seems to be so disturbing to some people.

  • Reini Urban commented on First p2 milestone passed: parse 50% of perl5

    Fixed the benchmark examples now. did not work because there was a bytecode compiler problem with the representation of 0 (as 1), which was interpreted as true instead of false (issue #24).

    And nbody had a wrong algorithm. Works now.

    But nbody is currently with bytecode about 2x slower than perl5, and jitted there is a stack corruption problem somewhere. This is disappointing.
    Why bytecode is so slow? It should be faster then perl5 at least. 1. there are no compiler optimizations, esp. constant folding implemented.
    And 2. there's no array access o…

  • Reini Urban commented on First p2 milestone passed: parse 50% of perl5

    Spoke too early. Found out why my bytecode was slow. It's again 2-3x faster than perl5.

    I added default signatures and named calls, and had to add run-time checks for signatures for every function call.
    The check was done very prematurely, now it's a lot faster again.

    I also added tuple overallocation to help the GC a bit. The current GC kicks in at every single memory change, but should only run periodically, triggered by a periodic timer or memory segfault.

  • Reini Urban commented on First p2 milestone passed: parse 50% of perl5

    Unfortunately I ran out of time in the 40minutes at #yapcasia and I couldn't demo the new debugger I wrote on the plane. I can single step through the codeand do eval, but not yet access the lexical variables in scope.

Subscribe to feed Responses to Comments from Roland Lammel

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.