Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 14 Mar 2016 08:42:29 +0000 (09:42 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 14 Mar 2016 08:42:29 +0000 (09:42 +0100)
CMakeLists.txt
appveyor.yml
doc/doxygen/platform.doc
include/simgrid_config.h.in
src/mc/Client.hpp
src/mc/mc_global.cpp
tools/cmake/scripts/IPC/Run/Win32IO.pm
tools/platf_route_rulebased2full.py [deleted file]

index c22fc86..b2d2eb4 100644 (file)
@@ -110,12 +110,6 @@ else()
 endif()
 
 set(SIMGRID_VERSION_STRING "SimGrid version ${release_version}${SIMGRID_VERSION_EXTRA}")
-set(SIMGRID_VERSION_BANNER "SIMGRID_VERSION_STRING\\nCopyright (c) 2004-${SIMGRID_VERSION_DATE}. The Simgrid Team.")
-if(release)
-  set(SIMGRID_VERSION_BANNER "${SIMGRID_VERSION_BANNER}\\nRelease build")
-else()
-  set(SIMGRID_VERSION_BANNER "${SIMGRID_VERSION_BANNER}\\nDevelopment build")
-endif()
 
 set(libsimgrid_version "${release_version}")
 set(libsimgrid-java_version "${release_version}")
@@ -622,12 +616,6 @@ elseif(EXISTS ${CMAKE_HOME_DIRECTORY}/.gitversion)
   FILE(STRINGS ${CMAKE_HOME_DIRECTORY}/.gitversion GIT_VERSION)
 endif()
 
-if(GIT_VERSION)
-  set(SIMGRID_VERSION_BANNER "${SIMGRID_VERSION_BANNER} at commit ${GIT_VERSION}")
-endif()
-if(GIT_DATE)
-  set(SIMGRID_VERSION_BANNER "${SIMGRID_VERSION_BANNER} (${GIT_DATE})")
-endif()
 
 ### Generate the required headers and scripts
 #############################################
index b618a2a..2268364 100644 (file)
@@ -58,26 +58,26 @@ build_script:
 
 #test_script:
 # IPC::Run broken on windows. We should switch to https://rt.cpan.org/Public/Bug/Display.html?id=104812#txn-1546043
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/async/async.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/bittorrent/bittorrent.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/master_slave_bypass/bypass.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/chord/chord.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/cloud/cloud.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/cloud/migration/migration.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/commTime/commtime.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/kademlia/kademlia.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/master_slave_kill/kill.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/masterslave/masterslave.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/migration/migration.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/mutualExclusion/mutualexclusion.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/pingPong/pingpong.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/priority/priority.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/startKillTime/startKillTime.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/surfCpuModel/surf_cpu_model.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/surfPlugin/surf_plugin.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/suspend/suspend.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/tracing/tracingPingPong.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/async/async.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/bittorrent/bittorrent.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/master_slave_bypass/bypass.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/chord/chord.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/cloud/cloud.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/cloud/migration/migration.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/commTime/commtime.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/kademlia/kademlia.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/master_slave_kill/kill.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/masterslave/masterslave.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/migration/migration.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/mutualExclusion/mutualexclusion.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/pingPong/pingpong.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/priority/priority.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/startKillTime/startKillTime.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/surfCpuModel/surf_cpu_model.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/surfPlugin/surf_plugin.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/suspend/suspend.tesh
+- perl %TESH_ARGS% C:/projects/simgrid/examples/java/tracing/tracingPingPong.tesh
 
 artifacts:
 - path: simgrid.jar
index d639610..0cde8cf 100644 (file)
@@ -1530,10 +1530,8 @@ information to SimGrid. Here is a file doing it all :
 
 \section pf_other_tags Tags not (directly) describing the platform
 
-There are 3 tags, that you can use inside a \<platform\> tag that are
-not describing the platform:
-\li \ref pf_random "random": it allows you to define random generators you want to use
-    for your simulation.
+The following tags can be used inside a \<platform\> tag even if they are not
+directly describing the platform:
 \li \ref pf_config "config": it allows you to pass some configuration stuff like, for
     example, the network model and so on. It follows the
 \li \ref pf_include "include": allows you to include another file into the current one.
@@ -1575,28 +1573,30 @@ Tag name        | Description | Documentation
 ...
 \endverbatim
 
+\subsection pf_include include
 
-\subsection pf_random random
-
-<b>This has not yet been implemented.</b>
+Even if it can be used in other contexts, this tag was originally created
+to be used with \ref pf_trace. The idea was to have a file describing the
+platform, and another file attaching traces of a given period to the platform.
 
-\subsection pf_include include
+The drawback is that the file chuncks that will be included do not
+constitute valid XML files. This may explain why this feature was never really
+used in practice (as far as we know). Other mechanisms, such as the ability to load
+several platform files one after the other, could be considered in the future.
 
-The \c include tag allows you to import other platforms into your
+In the meanwhile, the \c include tag allows you to import other platforms into your
 local file. This is done with the intention to help people
 combine their different AS and provide new platforms. Those files
 should contain XML that consists of 
 \ref pf_include "include", \ref pf_cluster "cluster", \ref pf_peer "peer", \ref pf_As "AS", \ref pf_trace "trace", \ref pf_trace "tags".
 
-\note
-    Due to some obscure technical reasons, you have to open
-    and close the tag in order to make it work.
+Do not forget to close the tag to make it work, or you will end up with an invalid XML file.
 
 #### Attributes ####
 
 | Attribute name  | Mandatory | Values                  | Description                                                                                                  |
 | --------------- | --------- | ----------------------  | -----------                                                                                                  |
-| file            | yes       | String                  | Filename of the path you want to include with either relative or absolute path. Syntax is defined by your OS |
+| file            | yes       | String                  | Filename of the path you want to include with either relative or absolute path. |
 
 
 #### Example ####
@@ -1607,7 +1607,7 @@ each of them will then be usable.
 
 \verbatim
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
        <AS id="main" routing="Full">
                <include file="clusterA.xml"></include>
index e440d19..1ff20fa 100644 (file)
@@ -17,7 +17,6 @@
 #define SIMGRID_VERSION (100UL * (100UL * (@SIMGRID_VERSION_MAJOR@) + (@SIMGRID_VERSION_MINOR@)) + (@SIMGRID_VERSION_PATCH@))
 
 #define SIMGRID_VERSION_STRING "@SIMGRID_VERSION_STRING@"
-#define SIMGRID_VERSION_BANNER "@SIMGRID_VERSION_BANNER@"
 
 #define HAVE_JEDULE     @HAVE_JEDULE@ /* Was Jedule compiled in?  */
 #define HAVE_LUA        @HAVE_LUA@ /* Was the Lua support compiled in? */
index 69248bc..b4f95ca 100644 (file)
@@ -7,8 +7,9 @@
 #ifndef SIMGRID_MC_CLIENT_H
 #define SIMGRID_MC_CLIENT_H
 
-#include <cstddef>
+#include "src/internal_config.h"
 
+#include <cstddef>
 #include <memory>
 
 #include <xbt/base.h>
@@ -38,7 +39,9 @@ public:
   void ignoreHeap(void* addr, std::size_t size);
   void unignoreHeap(void* addr, std::size_t size);
   void declareSymbol(const char *name, int* value);
+#if HAVE_UCONTEXT_H
   void declareStack(void *stack, size_t size, smx_process_t process, ucontext_t* context);
+#endif
 
   // Singleton :/
   // TODO, remove the singleton antipattern.
index d47939e..6f985f1 100644 (file)
@@ -42,8 +42,7 @@
 #include "src/mc/mc_protocol.h"
 #include "src/mc/Client.hpp"
 
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_global, mc,
-                                "Logging specific to MC (global)");
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_global, mc, "Logging specific to MC (global)");
 
 e_mc_mode_t mc_mode;
 
index 69afd8e..a90aad0 100644 (file)
@@ -123,6 +123,9 @@ sub _cleanup {
     CloseHandle( $self->{TEMP_FILE_HANDLE} )
        if defined $self->{TEMP_FILE_HANDLE};
 
+    close( $self->{CHILD_HANDLE} )
+       if defined $self->{CHILD_HANDLE};
+
     $self->{$_} = undef for @cleanup_fields;
 }
 
diff --git a/tools/platf_route_rulebased2full.py b/tools/platf_route_rulebased2full.py
deleted file mode 100755 (executable)
index 191d473..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2013-2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-import sys
-import re
-from lxml import etree
-
-xml = etree.parse(sys.argv[1])
-for e in xml.xpath('//*[@routing="RuleBased"]'):
-    e.attrib['routing'] = "Full"
-    ids = e.xpath('./*[@id]/@id')
-    done = set()
-    for asr in e.xpath("./ASroute"):
-        src_ids = {}
-        dst_ids = {}
-        for id in ids:
-            src_s = re.search(r"%s" % asr.attrib['src'], id)
-            dst_s = re.search(r"%s" % asr.attrib['dst'], id)
-            if src_s:
-                src_ids[id] = src_s
-            if dst_s:
-                dst_ids[id] = dst_s
-        for sid, smat in src_ids.items():
-            for did, dmat in dst_ids.items():
-                todo = tuple(sorted((smat.group(1), dmat.group(1))))
-                if todo not in done or asr.attrib.get("symmetrical") == "NO":
-                    done.add(todo)
-                    dasr = etree.tounicode(asr)
-                    dasr = dasr.replace("$1src", smat.group(1))
-                    dasr = dasr.replace("$1dst", dmat.group(1))
-                    dasr = etree.fromstring(dasr)
-                    dasr.tag = "__ASroute__"
-                    dasr.attrib['src'] = sid
-                    dasr.attrib['dst'] = did
-                    asr.addnext(dasr)
-        asr.getparent().remove(asr)
-
-print etree.tounicode(xml).replace("__ASroute__", "ASroute")