Skip to content
Todd Gamblin edited this page Jun 11, 2015 · 9 revisions

Participants

  • Todd Gamblin, LLNL
  • Jim Galarowicz, Krell
  • Mike Collette, LLNL

New Features & Contributions

Lots of updates in develop:

  1. Integrated linear algebra contributions from:
  1. New packages from Tom Scogland (PRs #55, #56, #58)
  1. Better Vim package from Tom Scogland
  • See PR #60
  • Apparently vim is way fancier than I thought.
  1. SPACK-38: Virtual dependencies should be retrievable from spec by v-dep name

    • The following now work differently:

      ```
      spec['mpi']
      spec['blas']
      ```
      
    • This can return a spec for openmpi, mpich, mvapich, etc., EVEN if the spec is already concretized. This means that in a package that depends_on('mpi'), you can do spec['mpi'] to see what it was concretized to. This should simplify MPI and BLAS packages.

      ```
      'mpi' in spec
      'blas' in spec
      ```
      
    • Previously, if the spec had been concretized, these would be False because there was not a dependency in the DAG with either of these names. These will now be True even if the spec has been concretized. So, e.g., this will print "YES"

      ```
      s = Spec('callpath ^mpich')
      if 'mpi' in spec:
          print "YES"
      ```
      
    • Similarly, this will be True:

      ```
      Spec('mpich').satisfies('mpi')
      ```
      
    • Because of the way virtual dependencies are currently implemented, the above required some fiddling around with package.py

      • figuring out what is a vdep requires loading all packages and seeing what doesn't exist.
      • Now can't ever call Spec.__contains__ (and result in endless recursion).
      • For the time being, package.py shouldn't call __contains__
    • This should be fixed by allowing virutal dependnecies to have their own package class.

      • This would allow a quicker check for vdeps, without a call to all_packages.
      • Would also allow us to put methods/variables/etc. on vdeps
  2. Added FileFilter class to make repeated calls to filter_file easier.

  • example: arpack
  • Thinking about adding a generic Makefile editor class
    • Have methods to set/unset variables in a Makefile (most common operation)

Bug Fixes

  • Fix for zsh support for blobbing from Tom Scogland:

  • Fixed issue with Dyninst 8.2.1 build

    • boost CMake build parameters were not getting passed correctly
    • Either CMake or dyninst isn't recognizing BOOST_ROOT/BOOSTROOT properly when supplied as a -D option.
      • maybe this needs to be an env var to work properly?
      • consider adding to boost package's setup_dependent_environment if the env vars work.

Issue

  • Greg Lee brought up some path length issues with Spack paths in scripts using #!
    • Install paths got a bit longer due to full hashes.
    • What's the best thing to do about this?
      1. Wrappers?
      2. Different install layout?

General questions/discussion

  • Mike reprimanded by LC for too many tmp directories

    • investigate whether Spack is removing tmp directories properly
  • Mike having /tmp issues

    • Other LLNL user using Spack at LANL
    • Cielo does not separate /tmp directories by user
    • Check whether /tmp path includes username and add if it doesn't.
  • Mike notes there are lots of spacks in pathnames

    • recommends mixing it up with spackitty
  • Mike building 20 versions every night

    • dev code, prod code, previous production
    • comes back with a weird error about NoneType not callable
      • result of calling which and not finding the thing you're looking for.
      • may not be finding deps due to filesystem sync issues
  • would be useful to have variants and dependencies enabled/disabled by default based on whether they're already installed

    • consider Open|SpeedShop case.
Clone this wiki locally