Skip to content
Todd Gamblin edited this page Nov 5, 2015 · 15 revisions

Participants

  • Todd Gamblin
  • David Beckingsale
  • Greg Lee
  • Mike Collette
  • Peter Scheibel
  • Jim Galarowicz
  • Greg Becker
  • Adam Moody
  • Mark Miller
  • Stuart Mumford (maybe couldn't join?)

News

Contributions

  • Changed default platform again
    • Use platform.system() + '-' + platform.machine() instead of uname -i
    • Provides strings like darwin-x86_64 and linux-x86_64.
    • Uses uname behind the scenes, but lets Python do the parsing consistently.
  • Cray support update from Greg Becker
    • most of basic functionality is done
      • grabbing compilers based on modules
      • identifying architecture correctly (Cray vs BG/Q vs Linux)
      • loading/unloading modules with modulecmd
    • Working with Mario at NERSC for Architecture
  • Internal LLNL Spack packages have been added by David Beckingsale:
    • RAJA, Caliper
    • Looking at building RAJA with many compiler versions
    • Currently on CZ Stash in a branch (features/raja)
  • Will have support for external packages and external package repositories merged by Supercomputing.
  • WIP: PR for spack test XML output by Peter Scheibel
    • Make spack test-install output logic more generic
    • Try testing with nose to generate XML easier
    • Some problems putting nose in lib/spack/external
      • Spack currently imports externals like this:
        from external import yaml
        from external import nose
        
      • Should probably just prepend it to sys.path
  • Slightly better bzip2 package
  • Various PR's from Harvey Mudd collaborators: ncurses, zlib
  • ZSH added by David Beckingsale

Bugfixes

  • Two bugs introduced by database merge fixed

Discussion

  • Greg Becker has questions about spack compiler
  • Mark Miller has some ideas about exporting DAG information from packages at a finer granularity than Spack currently does. interesting point from Mark:
Yes, but Qt knows how all of its packages depends. It can specify
what the dependency DAG is for all if its libs.

An app using only *some* of those libs then *intersects* the set of
libs it actually needs with the ordered set Qt exports.

So, no, this sitation isn't any different. The only swizzle, and its
not even an interesting one, is that only *some* of the libs are used
in a caller.
  • Trying to avoid situations where, if A -> B -> C, A has to know about C.

  • Qt exports dependency information via CMake

  • Mark wants to add a variable to classes that exports library link order.

    class Hdf5(Package):
        c_libs       = '-lhdf5 -lhdf5_hl <zlib>'
        cxx_libs     = '-lhdfhl_cpp -lhdf5 -lhdf5_hl <zlib>'
        fortran_libs = '-lhdf5hl_fortran -lhdf5 -lhdf5_hl <zlib>'
    

    Then you can actually get at that from the MOAB package if you want to:

    class MOAB(Package):
        ...
        def install(self, spec, prefix):
            hdf5_fortran_libs = spec['hdf5'].package.fortran_libs
            hdf5_cxx_libs     = spec['hdf5'].package.cxx_libs
            hdf5_c_libs       = spec['hdf5'].package.c_libs
    
  • Jim Galarowicz making some changes to the O|SS PR

    • modify dyninst to not require a special variant

Libraries with bugs

  • Adam Moody is worried about the case where:
    1. There's a base library that has some bug in it
    2. New version comes out that has the fixed bug.
  • Would like to have some way to auto-update the library
  • Currently have to rebuild the whole DAG
  • Would like:
    1. to be able to "upgrade" the problematic library by:
    • installing new version
    • force removing old install directory
    • replace with symlink to new version
    1. Easy way to uninstall a package and all of its dependents.
    2. Rebuild all dependents of a particular package.
  • Greg Becker's compiler flags PR has some preliminary support for referring to specs by hash
    • could support these.
Clone this wiki locally