anchor.diff:  in
   with stdenv; mkDerivation rec {
     pname = "nextpnr";
  -  version = "2019.10.13";
  +  version = "2020.02.04";
   
     srcs = [
       (fetchFromGitHub {
         owner  = "YosysHQ";
         repo   = "nextpnr";
  -      rev    = "c365dd1cabc3a4308ab9110534918623622c246b";
  -      sha256 = "1344pyq9xb5y1vxsnfgr488drfjsa6ls1jck0z9hwam6vg55s10r";
  +      rev    = "ca733561873cd54be047ae30a94efcd71b3f8be5";
  +      sha256 = "176drrq6w53qbwmnksa1b22w9qz3gd1db9hy2lyv8svbcdxd9qwp";
         name   = "nextpnr";
       })
       (fetchFromGitHub {
  
positive.code:     ++ (lib.optional (enableGui && stdenv.isDarwin)
          "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks");
  
    # Fix the version number. This is a bit stupid (and fragile) in practice
    # but works ok. We should probably make this overrideable upstream.
    patchPhase = with builtins; ''
      substituteInPlace ./CMakeLists.txt \
        --replace 'git log -1 --format=%h' 'echo ${substring 0 11 (elemAt srcs 0).rev}'
  
      # use PyPy for icestorm if enabled
      substituteInPlace ./ice40/family.cmake \
        --replace ''\'''${PYTHON_EXECUTABLE}' '${icestorm.pythonInterp}'
  
negative.code: 
    enableParallelBuilding = true;
    cmakeFlags =
      [ "-DCURRENT_GIT_VERSION=${lib.substring 0 7 (lib.elemAt srcs 0).rev}"
        "-DARCH=generic;ice40;ecp5"
        "-DBUILD_TESTS=ON"
        "-DICEBOX_ROOT=${icestorm}/share/icebox"
        "-DTRELLIS_INSTALL_PREFIX=${trellis}"
        "-DPYTRELLIS_LIBDIR=${trellis}/lib/trellis"
        "-DUSE_OPENMP=ON"
        # warning: high RAM usage
  