http://qs1969.pair.com?node_id=890414


in reply to Re: Segfault with MooseX::Declare and Regexp::Grammars
in thread Segfault with MooseX::Declare and Regexp::Grammars

Have you tried rewriting your program to use plain old Perl objects (no Moose::Declare)

As stated above, the issue disappears when I get rid of MooseX::Declare and use plain Moose or even plain objects like this:

{ package Foo; sub new { use Data::Dumper; print 'AH ', Dumper \@_; return bless {}; } }
can you have a null grammar qr{}

I need the "objrule" to have Regexp::Grammars call the constructor, so the grammar cannot be reduced much further.

Replies are listed 'Best First'.
Re^3: Segfault with MooseX::Declare and Regexp::Grammars
by ELISHEVA (Prior) on Feb 27, 2011 at 13:41 UTC

    If plain Perl objects and plain Moose objects don't cause this problem, could you clarify further what you are trying to pinpoint. What makes you unsure that this isn't an issue with MooseX::Declare and whatever magic it is conjuring up?

    It would seem to me that newer add-on packages like MooseX::Declare have a responsibility to work cleanly with core packages like Data::Dumper, as well as any non-core packages they extend (i.e. Moose). This is all the more so with something like MooseX::Declare which claims to be a safer way of doing the kinds of things people once tried to do with source filters.

      You are right that it is likely that the bug is in MooseX::Declare or one of its dependencies. I would like to find a way to reproduce this without resorting to other complicated modules like Regexp::Grammars (even though this module is pure Perl).

      Update: Other segmentation faults have already been described that are triggered by RG’s extensive use of the regex engine, so it’s not that unlikely that the culprit is in the regex engine.