मैं मार्पा :: आर 2 (मार्पा-आर 2-2.065_002) की नवीनतम रिलीज का उपयोग कर रहा हूं और ऐसा लगता है कि यह सभी मेमोरी बहुत तेज है। मैंने इसका परीक्षण करने के लिए भाई लिपि लिखी।मार्पा :: आर 2 मेमोरी
use strict;
use warnings FATAL => 'all';
use Marpa::R2;
use Data::Dumper;
my $grammar = Marpa::R2::Scanless::G->new({
action_object => __PACKAGE__,
source => \(<<'END_OF_SOURCE'),
:default ::= action => ::array
:start ::= path
path ::=
step action => _do_step
step ~ [a-z]+
END_OF_SOURCE
});
sub _do_step{ return {step => $_[1]}};
sub new {} #The Marpa::R2 needs it
sub compile{
my ($query) = @_;
return undef unless $query;
my $reader = Marpa::R2::Scanless::R->new({
grammar => $grammar,
trace_terminals => 0,
});
$reader->read(\$query);
print Dumper $reader->value;
}
compile($_) foreach ('aaaa'..'zzzz');
मेमोरी लीक को रोकने के लिए मैं क्या कर सकता हूं?
संपादित करें: अब यह rt.cpan पर एक बग के रूप में रिपोर्ट किया गया है।
संपादित करें: अब यह रिलीज मार्पा-आर 2 2.066000 पर तय किया गया है। धन्यवाद
ने मेरी मार्पा v2.064 के साथ perl5 v16.3 पर पुष्टि की। पुनरुत्पादन के लिए न्यूनतम कोड: 'perl -MMarpa :: R2 -e' * एम :: = * मार्पा :: आर 2 :: स्कैनलेस ::; मेरा $ जी = एम :: जी-> नया ({स्रोत => \ q (: प्रारंभ :: = ए ए :: = [])}); एम :: आर-> नया ({व्याकरण => $ जी}) 1 .. 1E5'' के लिए। क्या आपने पहले से ही एक बग दायर किया है? – amon
एक बग दायर की? क्षमा करें मैं इन चीजों पर नया हूँ। मुझे यह कहां करना चाहिए? आपके लिए पुष्टिकरण और न्यूनतम कोड – jvverde
ठीक है, बग की रिपोर्ट बग-मार्पा-आर 2 [at] rt.cpan.org – jvverde