From 7c0434cb1063dafa4e3223bc5ce93080b5f5a349 Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Wed, 29 Dec 2010 01:58:42 -0800 Subject: [PATCH] Do not load dependant modules more than once --- src/CompilerDriver.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/CompilerDriver.pm b/src/CompilerDriver.pm index a457b741..c2e33501 100644 --- a/src/CompilerDriver.pm +++ b/src/CompilerDriver.pm @@ -44,15 +44,16 @@ sub slurp { sub metadata_for { my ($unit) = @_; - $unit =~ s/::/./g; + my $file = "$unit.nam"; + $file =~ s/::/./g; - NAMBackend::load(slurp(build_file("$unit.nam"))); + $Metamodel::units{$unit} //= NAMBackend::load(slurp(build_file($file))); } sub syml_for { my ($module, $file) = @_; local %Metamodel::units; - my $meta = $Metamodel::units{$module} = + my $meta = $Metamodel::units{$module} //= NAMBackend::load(slurp($file)); if ($meta->name ne $module) {