anchor.diff:    case string"compile" => compile()
     case string"test" => test()
     case string"m2" => m2()
  +  case string"jitpack" => jitpack()
  +  case cmd =>
  +    usage()
  +    eprintln(s"Unrecognized command: $cmd")
  +    Os.exit(-1)
   }
positive.code: }
  
  def m2(): Unit = {
    Os.proc(ISZ(mill.string, "all",
      "runtime.macros.shared.m2", "runtime.macros.jvm.m2", "runtime.macros.js.m2",
      "runtime.library.shared.m2", "runtime.library.jvm.m2", "runtime.library.js.m2",
      "runtime.test.shared.m2", "runtime.test.jvm.m2", "runtime.test.js.m2")).
      at(home).env(ISZ("SIREUM_SOURCE_BUILD" ~> "false")).console.runCheck()
  
    val repository = Os.home / ".m2" / "repository"
    repository.mkdirAll()
  
    println()
    println("Artifacts")
    for (cd <- ISZ(
      Os.cwd.up / "out" / "runtime" / "macros" / "shared" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "macros" / "jvm" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "macros" / "js" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "library" / "shared" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "library" / "jvm" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "library" / "js" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "test" / "shared" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "test" / "jvm" / "m2" / "dest",
      Os.cwd.up / "out" / "runtime" / "test" / "js" / "m2" / "dest"
    )
    ) {
      for (p <- cd.overlayMove(repository, F, F, _ => T, T).keys) {
        println(s"* $p")
      }
    }
  
negative.code: // #Sireum
  import org.sireum._
  
  
  def usage(): Unit = {
    println("Sireum Runtime /build")
    println("Usage: ( compile | test | m2 | jitpack )")
  }
  
  if (Os.cliArgs.size != 2) {
    usage()
    Os.exit(0)
  }
  
  val homeBin = Os.path(Os.cliArgs(0))
  