# This script updates the simgrid XML file passed as argument (modification in place)
# It is built to do the conversion incrementally.
-# Copyright (c) 2006-2014. The SimGrid Team.
+# Copyright (c) 2006-2016. The SimGrid Team.
# All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
=item
-The version attribute of platform were added to allow file versionning.
+The version attribute of platform were added to allow file versioning.
=item
=item
-The AS tag were introduced. Every plaform should now contain an englobing AS
+The AS tag were introduced. Every platform should now contain an englobing AS
tag.
=item
=back
-=item B<Version 4:> Introduced in SimGrid 3.13 (this is the current version)
+=item B<Version 4:> Introduced in SimGrid 3.13
=over 4
=back
+=item B<Version 4.1:> Introduced in SimGrid 3.16 (this is the current version)
+
+=over 4
+
+=item
+
+Rename a few tags, but in a backward-compatible manner: the old names are still accepted.
+
+ AS -> zone
+ ASroute -> zoneRoute
+ bypassAsRoute -> bypassZoneRoute
+ process -> actor
+
+=back
+
=back
=head1 AUTHORS
use strict;
my $fromversion=-1;
-my $toversion=4;
+my $toversion=4.1;
-my($output_string);
-
-my $filename = $ARGV[0] or die "simgrid_update_xml.pl <platform.xml>\n";
+my $filename = $ARGV[0] or die "Usage: simgrid_update_xml.pl file_to_convert.xml\nPlease provide an XML to convert as a parameter.\n";
open INPUT, "$filename" or die "Cannot open input file $filename: $!\n";
-$output_string = "<?xml version='1.0'?>\n".
+my $output_string = "<?xml version='1.0'?>\n".
"<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\">\n".
"<platform version=\"$toversion\">\n";
-
my($AS_opened)=0;
my $line;
$fromversion = 0;
print "$filename was using version 0\n";
next if !$line =~ /\S/;
- } elsif ($line =~ s/<platform.*version=["]*([0-9.])["]*>//) {
+ } elsif ($line =~ s/<platform.*version=["']*([0-9.]*)["']*>//) {
$fromversion = $1;
if ($fromversion == $toversion) {
- die "Input platform file $filename is already conformant to version $fromversion. This should be a no-op.\n";
+ warn "Input platform file $filename is already conformant to version $fromversion. This should be a no-op.\n";
}
if ($fromversion > $toversion) {
die "Input platform file $filename is more recent than this script (file version: $fromversion; script version: $toversion)\n";
$line =~ s/\bpower\b/speed/g;
$line =~ s/\bkind="POWER"/kind="SPEED"/g;
}
+ if ($fromversion < 4.1) {
+ $line =~ s/\bAS\b/zone/g;
+ $line =~ s/\bASroute\b/zoneRoute/g;
+ $line =~ s/\bbypassAsRoute\b/bypassZoneRoute/g;
+ $line =~ s/\bprocess\b/actor/g;
+ }
$output_string .= "$line\n";
}