Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
10 years ago[mc] Do not use linkage_name as a name
Gabriel Corona [Mon, 24 Feb 2014 13:00:00 +0000 (14:00 +0100)]
[mc] Do not use linkage_name as a name

If needed, it would be better to use a separate field.

10 years ago[mc] Add MC_dwarf_tag_classify()
Gabriel Corona [Mon, 24 Feb 2014 12:54:45 +0000 (13:54 +0100)]
[mc] Add MC_dwarf_tag_classify()

Add MC_dwarf_tag_classify(tag) which regroupe different similar
DW_TAG_* items classes. This is in preparation for upcoming
modifications of the DIE handling code.

10 years ago[mc] Do not try to handle scopes inside a subprogram
Gabriel Corona [Mon, 24 Feb 2014 12:22:10 +0000 (13:22 +0100)]
[mc] Do not try to handle scopes inside a subprogram

The variables of a subprogram scopes were merged in the information
about subprogram without any information on its range of validity (for
which range of IP the variable is valid).

As this handling of scopes was broken, this commit ignore the scopes within a
subprogram.

We need to:

  * either add frame_t as child of frame_t to represent scope;

  * or attach validity information on each variables

    This one is needed anyway in order to handle DW_AT_start_scope.

  * or both.

    Use frame_t for DW_TAG_inlined_subprogram and validity range for
    real scope.

-    if(dwarf_offdie(dwarf, offset+length, &die)!=NULL) {
-      MC_dwarf_handle_die(info, &die, &die, NULL);
+    if(dwarf_offdie(dwarf, offset+length, &unit_die)!=NULL) {
+      Dwarf_Die child;
+      int res;
+      for (res=dwarf_child(&unit_die, &child); res==0; res=dwarf_siblingof(&child,&child)) {
+        MC_dwarf_handle_die(info, &child, &unit_die, NULL);
+      }
     }
     offset = next_offset;
   }

10 years ago[mc] Use dynar instead of dict for storing functions
Gabriel Corona [Mon, 24 Feb 2014 11:03:24 +0000 (12:03 +0100)]
[mc] Use dynar instead of dict for storing functions

Multiple instances of the same function with the same name can be
found in a given program:

  * different local static functions;
  * same inline functions;
  * overloads (C++);
  * ...

10 years ago[mc] Move MC_ignore_local_variable and MC_ignore_global_variable to initialisation...
Gabriel Corona [Mon, 24 Feb 2014 09:51:16 +0000 (10:51 +0100)]
[mc] Move MC_ignore_local_variable and MC_ignore_global_variable to initialisation code

10 years ago[mc] Add missing DW_FORM_data1 (enable C++ support)
Gabriel Corona [Mon, 24 Feb 2014 09:35:01 +0000 (10:35 +0100)]
[mc] Add missing DW_FORM_data1 (enable C++ support)

For some reason DW_FORM_data1 was only used in C++ compile units.

10 years agoMerge 'master' into mc
Gabriel Corona [Mon, 24 Feb 2014 09:04:38 +0000 (10:04 +0100)]
Merge 'master' into mc

Conflicts:
src/mc/mc_checkpoint.c
src/mc/mc_global.c
src/mc/mc_private.h

10 years agosmall cosmetics in the Changelog+NEWS files
Martin Quinson [Mon, 24 Feb 2014 08:47:16 +0000 (09:47 +0100)]
small cosmetics in the Changelog+NEWS files

10 years agoMerge branch 'mc-perf' into mc
Gabriel Corona [Mon, 24 Feb 2014 08:27:07 +0000 (09:27 +0100)]
Merge branch 'mc-perf' into mc

10 years agoFix compilation
Gabriel Corona [Mon, 24 Feb 2014 08:27:01 +0000 (09:27 +0100)]
Fix compilation

10 years agoUse the full jar here.
Arnaud Giersch [Fri, 21 Feb 2014 16:24:46 +0000 (17:24 +0100)]
Use the full jar here.

10 years agoAdd an option to control whether native libraries are bundled into jar file.
Arnaud Giersch [Fri, 21 Feb 2014 14:44:49 +0000 (15:44 +0100)]
Add an option to control whether native libraries are bundled into jar file.

May be usefull for e.g. Debian packages.

10 years agoIsolate generation of the NATIVE path for the jar file.
Arnaud Giersch [Wed, 27 Nov 2013 15:37:49 +0000 (16:37 +0100)]
Isolate generation of the NATIVE path for the jar file.

Now it can be obtained by running:
    java -classpath simgrid.jar org.simgrid.msg.NativeLib

Use it also when finalizing the jar file.

10 years agodistcheck again.
Arnaud Giersch [Fri, 21 Feb 2014 15:58:59 +0000 (16:58 +0100)]
distcheck again.

10 years agoCosmetics.
Arnaud Giersch [Fri, 21 Feb 2014 15:05:09 +0000 (16:05 +0100)]
Cosmetics.

10 years agoDisk usage computation bug fix
Pierre Veyre [Fri, 21 Feb 2014 15:16:46 +0000 (16:16 +0100)]
Disk usage computation bug fix

10 years ago[mc] Avoid resolving TLS over and over again
Gabriel Corona [Fri, 21 Feb 2014 14:21:41 +0000 (15:21 +0100)]
[mc] Avoid resolving TLS over and over again

10 years agoMerge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Pierre Veyre [Fri, 21 Feb 2014 13:46:17 +0000 (14:46 +0100)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid

10 years agoMSG_file_write() bug fix + tesh files improvements
Pierre Veyre [Fri, 21 Feb 2014 13:45:52 +0000 (14:45 +0100)]
MSG_file_write() bug fix + tesh files improvements

10 years agoUpdate changelog and news v3_11_beta
Paul Bédaride [Fri, 21 Feb 2014 12:44:40 +0000 (13:44 +0100)]
Update changelog and news

10 years agoClean surf
Paul Bédaride [Fri, 21 Feb 2014 12:44:15 +0000 (13:44 +0100)]
Clean surf

10 years agoAdd script to generate multi-platform jar
Paul Bédaride [Fri, 21 Feb 2014 10:41:00 +0000 (11:41 +0100)]
Add script to generate multi-platform jar

10 years agoMake check_dist_archive accept the newly created .gitversion.
Arnaud Giersch [Fri, 21 Feb 2014 09:31:29 +0000 (10:31 +0100)]
Make check_dist_archive accept the newly created .gitversion.

10 years agoChangelog update
Augustin Degomme [Fri, 21 Feb 2014 09:43:41 +0000 (10:43 +0100)]
Changelog update

10 years agothis was not needed anymore
Augustin Degomme [Fri, 21 Feb 2014 09:42:58 +0000 (10:42 +0100)]
this was not needed anymore

10 years agoAdd .gitversion to dist
Paul Bédaride [Fri, 21 Feb 2014 09:26:46 +0000 (10:26 +0100)]
Add .gitversion to dist

10 years ago[mc] Merge add_compared_pointers and already_compared_pointers into add_compared_pointers
Gabriel Corona [Fri, 21 Feb 2014 09:04:09 +0000 (10:04 +0100)]
[mc] Merge add_compared_pointers and already_compared_pointers into add_compared_pointers

Avoid doing the binary search twice.

10 years agoFix warnings with make simgrid_documentation.
Arnaud Giersch [Thu, 20 Feb 2014 14:26:15 +0000 (15:26 +0100)]
Fix warnings with make simgrid_documentation.

10 years agoFIX: forget to update filename in DefinePackage.cmake
Paul Bédaride [Thu, 20 Feb 2014 15:23:35 +0000 (16:23 +0100)]
FIX: forget to update filename in DefinePackage.cmake

10 years agoAdd SG version and Git version in MANIFEST.MF
Paul Bédaride [Thu, 20 Feb 2014 15:14:42 +0000 (16:14 +0100)]
Add SG version and Git version in MANIFEST.MF

10 years agoFix MSG_storage_get_proporties() bug
Pierre Veyre [Thu, 20 Feb 2014 14:04:55 +0000 (15:04 +0100)]
Fix MSG_storage_get_proporties() bug

10 years ago[mc] Avoid (slow) type lookups by name or ID (xbt_dict_get_or_null)
Gabriel Corona [Thu, 20 Feb 2014 11:26:24 +0000 (12:26 +0100)]
[mc] Avoid (slow) type lookups by name or ID (xbt_dict_get_or_null)

10 years ago[mc] Move mc_find_frame_base in mc_dwarf.c where it belongs
Gabriel Corona [Thu, 20 Feb 2014 10:56:22 +0000 (11:56 +0100)]
[mc] Move mc_find_frame_base in mc_dwarf.c where it belongs

10 years ago[mc] Use resolved addresses in entry.low_pc and entry.high_pc
Gabriel Corona [Thu, 20 Feb 2014 10:54:46 +0000 (11:54 +0100)]
[mc] Use resolved addresses in entry.low_pc and entry.high_pc

10 years ago[mc] Use resolved addresses in frame->low_pc and frame->high_pc
Gabriel Corona [Thu, 20 Feb 2014 10:41:03 +0000 (11:41 +0100)]
[mc] Use resolved addresses in frame->low_pc and frame->high_pc

10 years agoMissing commit for introduce model specific properties for storage_type
Pierre Veyre [Thu, 20 Feb 2014 09:21:05 +0000 (10:21 +0100)]
Missing commit for introduce model specific properties for storage_type

10 years agoMerge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Pierre Veyre [Thu, 20 Feb 2014 09:05:29 +0000 (10:05 +0100)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid

10 years agoIntroduce model specific properties for storage_type
Pierre Veyre [Thu, 20 Feb 2014 09:04:49 +0000 (10:04 +0100)]
Introduce model specific properties for storage_type

10 years agoCleanup.
Arnaud Giersch [Wed, 19 Feb 2014 14:41:11 +0000 (15:41 +0100)]
Cleanup.

10 years agoUpdate changelog
Paul Bédaride [Wed, 19 Feb 2014 10:18:40 +0000 (11:18 +0100)]
Update changelog

10 years agoFix normalize-pointers script
Paul Bédaride [Wed, 19 Feb 2014 10:18:21 +0000 (11:18 +0100)]
Fix normalize-pointers script

10 years agoInform user when model-checking has been disabled because of HAVE_MMALLOC.
Arnaud Giersch [Tue, 18 Feb 2014 17:15:43 +0000 (18:15 +0100)]
Inform user when model-checking has been disabled because of HAVE_MMALLOC.

Also use HAVE_MC instead on enable_model-checking in cmake's final report.

10 years agoFix some overflows in msg_vm on 32bits archs.
Arnaud Giersch [Tue, 18 Feb 2014 16:13:03 +0000 (17:13 +0100)]
Fix some overflows in msg_vm on 32bits archs.

10 years agoReindent function.
Arnaud Giersch [Tue, 18 Feb 2014 16:22:28 +0000 (17:22 +0100)]
Reindent function.

10 years ago[mc] Do not waste time calling libunwind get_proc_name in the hot spots
Gabriel Corona [Tue, 18 Feb 2014 10:38:14 +0000 (11:38 +0100)]
[mc] Do not waste time calling libunwind get_proc_name in the hot spots

In typical executions, nearly 50% of the time was spent in libunwind
get_proc_name.

The algorithm to find the function for a given IP (instruction
pointer) was:

  (proc_name, offset) = get_proc_name(ip) // Slow!
  dwarf_ip = ip - offset
  function = functions_by_name[proc_name]

We added a structure mapping IP ranges to functions and the algorithm
is now:

  function = functions_by_ip[ip]

Instead of relying on libunwind, we use the DWARF information to find
the corresponding DWARF TAG_subprogram DIEs directly.

The secution time on some MPICH tests is nearly halved.

Notes:

 * It was necessary to disable the support for inlined_subprograms
   which was broken anyway: the inlined_subprogram entries should be
   stored as children of their parent subprogram (as a block). We need
   to add support for scope blocks inside a suprogram to handle this
   correctly.

 * Currently the translation between process virtual addresses and
   DWARF virtual addresses is handled in many different places. We
   should change this to process it only when parsing the DWARF DIEs
   and be done with it.

10 years agomodel-checker : conflit
Marion Guthmuller [Tue, 18 Feb 2014 14:41:16 +0000 (15:41 +0100)]
model-checker : conflit

10 years agomodel-checker : minor fix
Marion Guthmuller [Tue, 18 Feb 2014 14:33:43 +0000 (15:33 +0100)]
model-checker : minor fix

10 years agomodel-checker : new configuration flag for the detection of determinism in communicat...
Marion Guthmuller [Tue, 18 Feb 2014 14:33:13 +0000 (15:33 +0100)]
model-checker : new configuration flag for the detection of determinism in communications schemes

10 years agomodel-checker : remove or comment some printf
Marion Guthmuller [Tue, 18 Feb 2014 14:02:56 +0000 (15:02 +0100)]
model-checker : remove or comment some printf

10 years agomodel-checker : fix comm destroy for send detached and MC enabled
Marion Guthmuller [Tue, 18 Feb 2014 13:46:55 +0000 (14:46 +0100)]
model-checker : fix comm destroy for send detached and MC enabled

10 years agomodel-checker : try to fix the model-checker in case of send detached
Marion Guthmuller [Tue, 18 Feb 2014 13:44:13 +0000 (14:44 +0100)]
model-checker : try to fix the model-checker in case of send detached

10 years agoRemove obsolete comment.
Arnaud Giersch [Mon, 17 Feb 2014 09:55:22 +0000 (10:55 +0100)]
Remove obsolete comment.

10 years agoRemove useless length modifier 'l' in %l[efg] for printf.
Arnaud Giersch [Fri, 14 Feb 2014 15:37:47 +0000 (16:37 +0100)]
Remove useless length modifier 'l' in %l[efg] for printf.

It's indeed wrong in C90, and useless in C99.

10 years agoFill java-cloud-migration tesh file
Paul Bédaride [Tue, 18 Feb 2014 13:39:44 +0000 (14:39 +0100)]
Fill java-cloud-migration tesh file

10 years agomodel-checker : wait with timeout is always dependant with another transition
Marion Guthmuller [Tue, 18 Feb 2014 13:26:28 +0000 (14:26 +0100)]
model-checker : wait with timeout is always dependant with another transition

10 years agoMerge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Paul Bédaride [Tue, 18 Feb 2014 13:26:13 +0000 (14:26 +0100)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid

10 years agofix debug log
Marion Guthmuller [Tue, 18 Feb 2014 13:19:01 +0000 (14:19 +0100)]
fix debug log

10 years agoFix java cloud migration test - Adrien
alebre [Tue, 18 Feb 2014 13:17:49 +0000 (14:17 +0100)]
Fix java cloud migration test - Adrien

10 years agomodel-checker : use MC_assert instead of assert for the verification of mpich3 integr...
Marion Guthmuller [Tue, 18 Feb 2014 13:16:27 +0000 (14:16 +0100)]
model-checker : use MC_assert instead of assert for the verification of mpich3 integrated tests

10 years agoFix java cloud
Paul Bédaride [Tue, 18 Feb 2014 13:08:46 +0000 (14:08 +0100)]
Fix java cloud

10 years agoMerge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
alebre [Tue, 18 Feb 2014 12:27:50 +0000 (13:27 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid

10 years agoFix msg-cloud-simple-vm tesh
Paul Bédaride [Tue, 18 Feb 2014 12:29:22 +0000 (13:29 +0100)]
Fix msg-cloud-simple-vm tesh

10 years agoFix java example (still something weird related to the net BW between peers for migra...
alebre [Tue, 18 Feb 2014 12:27:41 +0000 (13:27 +0100)]
Fix java example (still something weird related to the net BW between peers for migration tests) - adsein

10 years ago[mc] Avoid parsing /proc/self/maps if possible (continued)
Gabriel Corona [Tue, 18 Feb 2014 10:40:32 +0000 (11:40 +0100)]
[mc] Avoid parsing /proc/self/maps if possible (continued)

10 years ago[mc] Fix get_object_info
Gabriel Corona [Mon, 17 Feb 2014 14:17:23 +0000 (15:17 +0100)]
[mc] Fix get_object_info

Some part of the RW segment was not included (the .bss).

10 years agoFix doxygen
Paul Bédaride [Tue, 18 Feb 2014 09:16:47 +0000 (10:16 +0100)]
Fix doxygen

10 years agohost data comeback as property 'data'
Paul Bédaride [Mon, 17 Feb 2014 13:46:31 +0000 (14:46 +0100)]
host data comeback as property 'data'

10 years ago[mc] Avoid parsing /proc/self/maps if possible
Gabriel Corona [Mon, 17 Feb 2014 13:27:57 +0000 (14:27 +0100)]
[mc] Avoid parsing /proc/self/maps if possible

10 years agoAdd doc for new models and simcall
Paul Bédaride [Mon, 17 Feb 2014 10:47:25 +0000 (11:47 +0100)]
Add doc for new models and simcall

10 years agoClean surf cpu cas01
Paul Bédaride [Thu, 13 Feb 2014 15:31:22 +0000 (16:31 +0100)]
Clean surf cpu cas01

10 years agoprotect smpi against problems with replay+collectives.
Augustin Degomme [Fri, 14 Feb 2014 14:52:22 +0000 (15:52 +0100)]
protect smpi against problems with replay+collectives.
Previous protection was ignoring NULL as a buffer.
But some collective algorithms use chunks of data from the buffer, instead, trying to use NULL+offset as an address.

10 years ago[mc] Doxygen mc_dpor.c (and some mc_liveness.c)
Gabriel Corona [Fri, 14 Feb 2014 12:43:05 +0000 (13:43 +0100)]
[mc] Doxygen mc_dpor.c (and some mc_liveness.c)

10 years ago[mc] Disable MC_DEBUG (enabled by mistake)
Gabriel Corona [Fri, 14 Feb 2014 10:59:01 +0000 (11:59 +0100)]
[mc] Disable MC_DEBUG (enabled by mistake)

10 years agoTypo: it's --log with two dashes.
Arnaud Giersch [Fri, 14 Feb 2014 09:44:46 +0000 (10:44 +0100)]
Typo: it's --log with two dashes.

10 years agoSort output on 1st char to distinguish kernel output from application output.
Arnaud Giersch [Fri, 14 Feb 2014 09:42:09 +0000 (10:42 +0100)]
Sort output on 1st char to distinguish kernel output from application output.

Application output comes from stdout and sometimes does not interleave well
with xbt log output which come from stderr.

10 years agoPrint messages on stderr so that they're correctly interleaved with xbt log outputs.
Arnaud Giersch [Fri, 14 Feb 2014 09:06:10 +0000 (10:06 +0100)]
Print messages on stderr so that they're correctly interleaved with xbt log outputs.

10 years agoExample was removed.
Arnaud Giersch [Thu, 13 Feb 2014 14:58:15 +0000 (15:58 +0100)]
Example was removed.

10 years agoCast enum to int.
Arnaud Giersch [Thu, 13 Feb 2014 14:34:12 +0000 (15:34 +0100)]
Cast enum to int.

Not sure if it's correct, but it's certainly not worse as before commit
48f8aa92514a5d0245b115263082b368f072c43e (Remove vm set state simcall)
which broke builds with clang.

10 years agoRemove old files.
Arnaud Giersch [Wed, 12 Feb 2014 13:34:51 +0000 (14:34 +0100)]
Remove old files.

10 years agoUse host's RngStream, instead of creating another one.
Arnaud Giersch [Thu, 13 Feb 2014 14:25:53 +0000 (15:25 +0100)]
Use host's RngStream, instead of creating another one.

It was already done in commit 2b9e15c1a85e32f98027ba1f1ce99bed29490f49
(Fix the parallel execution for the bittorrent example.), but lost by commit
d55f9548c659a1e31267748bde0f8bc9846cd1d4 (-Cleaning a bit the code).

10 years agoFix random lookup in chord example.
Arnaud Giersch [Thu, 13 Feb 2014 14:03:45 +0000 (15:03 +0100)]
Fix random lookup in chord example.

Use the same trick as in commit 2b9e15c1a85e32f98027ba1f1ce99bed29490f49
(Fix the parallel execution for the bittorrent example.)

10 years agoFix parallel tests for chord.
Arnaud Giersch [Thu, 13 Feb 2014 13:33:48 +0000 (14:33 +0100)]
Fix parallel tests for chord.

Verify that we got the expected answer, by checking ans_data->type.

The expected task may have been destroyed at line 413, and then
recycled at line 594, giving the same pointer.

The problem sometimes happened with parallel tests.

10 years agoenforce the use of the routing attribute of an AS, as stated in the doc (avoid defaul...
Augustin Degomme [Thu, 13 Feb 2014 15:13:32 +0000 (16:13 +0100)]
enforce the use of the routing attribute of an AS, as stated in the doc (avoid defaulting to None, which is juste here to crash)

10 years agoAllow receives to be posted before send in smpi tracing.
Augustin Degomme [Thu, 13 Feb 2014 12:40:18 +0000 (13:40 +0100)]
Allow receives to be posted before send in smpi tracing.

10 years agoFix Remove host data
Paul Bédaride [Thu, 13 Feb 2014 13:52:35 +0000 (14:52 +0100)]
Fix Remove host data

10 years agoFix simcalls without BODY
Paul Bédaride [Thu, 13 Feb 2014 13:20:22 +0000 (14:20 +0100)]
Fix simcalls without BODY

10 years agoRemove comm destroy simcall
Paul Bédaride [Thu, 13 Feb 2014 13:10:33 +0000 (14:10 +0100)]
Remove comm destroy simcall

10 years agoRemove unused include
Paul Bédaride [Thu, 13 Feb 2014 12:55:46 +0000 (13:55 +0100)]
Remove unused include

10 years agoRemove vm set state simcall
Paul Bédaride [Thu, 13 Feb 2014 10:29:11 +0000 (11:29 +0100)]
Remove vm set state simcall

10 years agoRemove host data and had JAVA_HOST_LEVEL
Paul Bédaride [Thu, 13 Feb 2014 10:07:54 +0000 (11:07 +0100)]
Remove host data and had JAVA_HOST_LEVEL

10 years agoRemove masterslave virtual machine old example
Paul Bédaride [Wed, 12 Feb 2014 10:38:07 +0000 (11:38 +0100)]
Remove masterslave virtual machine old example

10 years agoUse XBT_INFO only after MSG_init, so that log parameters given on the command line...
Arnaud Giersch [Wed, 12 Feb 2014 15:35:19 +0000 (16:35 +0100)]
Use XBT_INFO only after MSG_init, so that log parameters given on the command line are taken into account.

10 years agoFix: missing ifdef
Paul Bédaride [Wed, 12 Feb 2014 10:00:40 +0000 (11:00 +0100)]
Fix: missing ifdef

10 years agoFix NS3 and latency bound tracking
Paul Bédaride [Wed, 12 Feb 2014 09:27:37 +0000 (10:27 +0100)]
Fix NS3 and latency bound tracking

10 years agoUnify surf action_cost type
Paul Bédaride [Wed, 5 Feb 2014 10:21:05 +0000 (11:21 +0100)]
Unify surf action_cost type

10 years agoClean bound in surf
Paul Bédaride [Wed, 5 Feb 2014 09:29:38 +0000 (10:29 +0100)]
Clean bound in surf

10 years agoRemove lmm_elem_set_value (Not used)
Paul Bédaride [Tue, 4 Feb 2014 15:52:38 +0000 (16:52 +0100)]
Remove lmm_elem_set_value (Not used)

10 years ago[mc] Make usage of state hash a runtime parameter (instead of compile-time)
Gabriel Corona [Tue, 11 Feb 2014 12:38:04 +0000 (13:38 +0100)]
[mc] Make usage of state hash a runtime parameter (instead of compile-time)

"off" by default.

10 years ago[mc] Code for evaluation of the impact of the hash
Gabriel Corona [Mon, 10 Feb 2014 14:02:13 +0000 (15:02 +0100)]
[mc] Code for evaluation of the impact of the hash

Generate log for evaluating the result of the test:
* true positive;
* true negative;
* false negative (there must not be any of them);
* false positive (should be minimised).

10 years agoDon't completely short-circuit these loops!
Arnaud Giersch [Tue, 11 Feb 2014 07:41:26 +0000 (08:41 +0100)]
Don't completely short-circuit these loops!

We really need some validated tesh files for cloud/vm examples to detect
such stupid mistakes.