1. 19 Dec, 2012 6 commits
    • Iustin Pop's avatar
      Introduce generic multi-command binary handling · 630c73e5
      Iustin Pop authored
      
      
      Currently, the mon-collector binary is the only multi-command binary
      we have in Haskell. Not surprisingly therefore, its command line
      handling is not as robust as we need, not being able to support
      standard "--help" commands.
      
      This patch introduces generic multi-command handling, similar to the
      Python functionality (some parts missing, will be added in future
      patches), and switches mon-collector over to it.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
      630c73e5
    • Iustin Pop's avatar
      Add a type alias for the personality lists · 2e6ef129
      Iustin Pop authored
      
      
      The signature of the personality definitions is so ugly that, at
      least, we should hide it a bit behind a type alias.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
      2e6ef129
    • Iustin Pop's avatar
      Add a custom CLI module for DataCollectors · 55abd2c7
      Iustin Pop authored
      
      
      Currently, the mon-collector binary uses the HTools/CLI module, which
      is OK but mean it links in lots of htools code. By copying that module
      to DataCollectors/CLI and removing the unneeded code, we reduce the
      number of modules it depends on fro 20 to 12, meaning both a shorter
      compiler time (24s to 9s) and a smaller binary (~9.6MB to ~7MB).
      
      Also fixes a typo in the original HTools/CLI module, thanks Michele!
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
      55abd2c7
    • Iustin Pop's avatar
      Fix profiling targets · 675f65b7
      Iustin Pop authored
      
      
      As noted by Guido, there are problems when using the hs-prof and
      hs-prof-quick targets in the default configuration (compiling all
      programs). The errors manifest in the form of wrong symbols during
      compilation.
      
      I knew that the hs-prof targets, which compiled multiple objects with
      the '.o' suffix, could be problematic; but the objects that are
      actually needed in the Template Haskell phase are very standard and
      don't differ between the binaries (Constants, BasicTypes, JSON,
      THH). What I didn't realise (although it's obvious) is that also the
      hs_prof_quick targets (the final binaries) are also compiled with a
      single suffix ('.prof_o'), which means that the object files are
      actually compiled for the last binary.
      
      This means that targets later in the HS_ALL_PROGS list would work
      correct, but early targets, especially htools/htools, would fail.
      
      So the obvious, and the single simple solution is to make these two
      rules only work on a single binary at a time. This should be fine,
      since one is looking at a specific problem usually, and it has the
      advantage that the hs-prof step is much faster (since it wasn't
      buildable in parallel anyway).
      
      Thanks to Guido for finding and making the initial diagnose on this!
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      675f65b7
    • Guido Trotter's avatar
      Allow shutting down offline instance · 0d57ce24
      Guido Trotter authored
      
      
      If an instance is offline we definitely shouldn't start it up.
      But shutting it down, should it be up by mistake is not "that" bad.
      Still, we only allow it with --force, as it still performs an action on
      an instance we shouldn't touch. This should make everybody happy.
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      0d57ce24
    • Guido Trotter's avatar
      Allow running instances to be put online · eec7840a
      Guido Trotter authored
      
      
      If an instance is running (eg. ERROR_up) and at the same time offline,
      there's no way to either shut it down or reonline it. This allows
      onlining it. Offlining is still disabled for running instances.
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      eec7840a
  2. 18 Dec, 2012 5 commits
  3. 17 Dec, 2012 24 commits
  4. 14 Dec, 2012 5 commits