anchor.diff:  # Build Matrix
   
   Build Matrices lets you simplify complex build configurations by expanding a step template and array of matrix elements into multiple jobs.
  +
  +{:toc}
   
   For example, instead of writing three separate jobs for builds on **macOS**, **Linux** and **Windows**, like the following build configuration (which does not use a build matrix):
   
  
positive.code:       - "Windows"
  ```
  
  For more complex builds, add multiple dimensions to `matrix.setup` instead of the `matrix` array. Each dimension you add multiplies by the other dimensions, so two architectures (`matrix.setup.arch`), two operating systems (`matrix.setup.os`), and two tests (`matrix.setup.test`), creates an 8 job build (2 * 2 * 2 = 8):
  
  ```yaml
  
negative.code:         - "B"
  ```
  
  If you're using `matrix.setup` you can also use the `adjustments` key to change specific entries in the build matrix, or add new combinations. You can set the `skip` attribute to effectively remove them from the matrix, or `soft_fail` attributes to allow them to fail without breaking the build.
  
  ```yaml
  steps:
  