diff --git a/builder/build.go b/builder/build.go index 19145f55..d5d7a242 100644 --- a/builder/build.go +++ b/builder/build.go @@ -14,7 +14,6 @@ import ( "fmt" "go/types" "hash/crc32" - "io/ioutil" "math/bits" "os" "os/exec" @@ -103,7 +102,7 @@ func Build(pkgName, outpath string, config *compileopts.Config, action func(Buil } // Create a temporary directory for intermediary files. - dir, err := ioutil.TempDir("", "tinygo") + dir, err := os.MkdirTemp("", "tinygo") if err != nil { return err } @@ -370,7 +369,7 @@ func Build(pkgName, outpath string, config *compileopts.Config, action func(Buil // Packages are compiled independently anyway. for _, cgoHeader := range pkg.CGoHeaders { // Store the header text in a temporary file. - f, err := ioutil.TempFile(dir, "cgosnippet-*.c") + f, err := os.CreateTemp(dir, "cgosnippet-*.c") if err != nil { return err } @@ -445,7 +444,7 @@ func Build(pkgName, outpath string, config *compileopts.Config, action func(Buil // Write to a temporary path that is renamed to the destination // file to avoid race conditions with other TinyGo invocatiosn // that might also be compiling this package at the same time. - f, err := ioutil.TempFile(filepath.Dir(job.result), filepath.Base(job.result)) + f, err := os.CreateTemp(filepath.Dir(job.result), filepath.Base(job.result)) if err != nil { return err } @@ -589,7 +588,7 @@ func Build(pkgName, outpath string, config *compileopts.Config, action func(Buil return err } defer llvmBuf.Dispose() - return ioutil.WriteFile(outpath, llvmBuf.Bytes(), 0666) + return os.WriteFile(outpath, llvmBuf.Bytes(), 0666) case ".bc": var buf llvm.MemoryBuffer if config.UseThinLTO() { @@ -598,10 +597,10 @@ func Build(pkgName, outpath string, config *compileopts.Config, action func(Buil buf = llvm.WriteBitcodeToMemoryBuffer(mod) } defer buf.Dispose() - return ioutil.WriteFile(outpath, buf.Bytes(), 0666) + return os.WriteFile(outpath, buf.Bytes(), 0666) case ".ll": data := []byte(mod.String()) - return ioutil.WriteFile(outpath, data, 0666) + return os.WriteFile(outpath, data, 0666) default: panic("unreachable") } @@ -629,7 +628,7 @@ func Build(pkgName, outpath string, config *compileopts.Config, action func(Buil } } defer llvmBuf.Dispose() - return ioutil.WriteFile(objfile, llvmBuf.Bytes(), 0666) + return os.WriteFile(objfile, llvmBuf.Bytes(), 0666) }, } diff --git a/builder/cc.go b/builder/cc.go index 03c8c615..7d7c10ad 100644 --- a/builder/cc.go +++ b/builder/cc.go @@ -10,7 +10,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "os" "path/filepath" "sort" @@ -93,7 +92,7 @@ func compileAndCacheCFile(abspath, tmpdir string, cflags []string, thinlto bool, // Load dependencies file, if possible. depfileName := "dep-" + depfileNameHash + ".json" depfileCachePath := filepath.Join(goenv.Get("GOCACHE"), depfileName) - depfileBuf, err := ioutil.ReadFile(depfileCachePath) + depfileBuf, err := os.ReadFile(depfileCachePath) var dependencies []string // sorted list of dependency paths if err == nil { // There is a dependency file, that's great! @@ -117,12 +116,12 @@ func compileAndCacheCFile(abspath, tmpdir string, cflags []string, thinlto bool, return "", err } - objTmpFile, err := ioutil.TempFile(goenv.Get("GOCACHE"), "tmp-*"+ext) + objTmpFile, err := os.CreateTemp(goenv.Get("GOCACHE"), "tmp-*"+ext) if err != nil { return "", err } objTmpFile.Close() - depTmpFile, err := ioutil.TempFile(tmpdir, "dep-*.d") + depTmpFile, err := os.CreateTemp(tmpdir, "dep-*.d") if err != nil { return "", err } @@ -166,7 +165,7 @@ func compileAndCacheCFile(abspath, tmpdir string, cflags []string, thinlto bool, sort.Strings(dependencySlice) // Write dependencies file. - f, err := ioutil.TempFile(filepath.Dir(depfileCachePath), depfileName) + f, err := os.CreateTemp(filepath.Dir(depfileCachePath), depfileName) if err != nil { return "", err } @@ -267,7 +266,7 @@ func hashFile(path string) (string, error) { // allowed on Windows, but of course can be used on POSIX like systems. Still, // it's the most sane of any of the formats so readDepFile will use that format. func readDepFile(filename string) ([]string, error) { - buf, err := ioutil.ReadFile(filename) + buf, err := os.ReadFile(filename) if err != nil { return nil, err } diff --git a/builder/esp.go b/builder/esp.go index bd348b54..e349c964 100644 --- a/builder/esp.go +++ b/builder/esp.go @@ -13,7 +13,7 @@ import ( "debug/elf" "encoding/binary" "fmt" - "io/ioutil" + "os" "sort" "strings" ) @@ -189,5 +189,5 @@ func makeESPFirmareImage(infile, outfile, format string) error { } // Write the image to the output file. - return ioutil.WriteFile(outfile, outf.Bytes(), 0666) + return os.WriteFile(outfile, outf.Bytes(), 0666) } diff --git a/builder/library.go b/builder/library.go index 1a2ed61c..d514568a 100644 --- a/builder/library.go +++ b/builder/library.go @@ -1,7 +1,6 @@ package builder import ( - "io/ioutil" "os" "path/filepath" "runtime" @@ -94,7 +93,7 @@ func (l *Library) load(config *compileopts.Config, tmpdir string) (job *compileJ target := config.Triple() if l.makeHeaders != nil { if _, err = os.Stat(headerPath); err != nil { - temporaryHeaderPath, err := ioutil.TempDir(outdir, "include.tmp*") + temporaryHeaderPath, err := os.MkdirTemp(outdir, "include.tmp*") if err != nil { return nil, nil, err } @@ -189,7 +188,7 @@ func (l *Library) load(config *compileopts.Config, tmpdir string) (job *compileJ defer once.Do(unlock) // Create an archive of all object files. - f, err := ioutil.TempFile(outdir, "libc.a.tmp*") + f, err := os.CreateTemp(outdir, "libc.a.tmp*") if err != nil { return err } @@ -250,7 +249,7 @@ func (l *Library) load(config *compileopts.Config, tmpdir string) (job *compileJ run: func(*compileJob) error { var compileArgs []string compileArgs = append(compileArgs, args...) - tmpfile, err := ioutil.TempFile(outdir, "crt1.o.tmp*") + tmpfile, err := os.CreateTemp(outdir, "crt1.o.tmp*") if err != nil { return err } diff --git a/builder/musl.go b/builder/musl.go index 5dae0428..8a3716f0 100644 --- a/builder/musl.go +++ b/builder/musl.go @@ -3,7 +3,6 @@ package builder import ( "bytes" "fmt" - "io/ioutil" "os" "path/filepath" "regexp" @@ -35,7 +34,7 @@ var Musl = Library{ filepath.Join(muslDir, "include", "alltypes.h.in"), } for _, infile := range infiles { - data, err := ioutil.ReadFile(infile) + data, err := os.ReadFile(infile) if err != nil { return err } @@ -63,7 +62,7 @@ var Musl = Library{ if err != nil { return err } - data, err := ioutil.ReadFile(filepath.Join(muslDir, "arch", arch, "bits", "syscall.h.in")) + data, err := os.ReadFile(filepath.Join(muslDir, "arch", arch, "bits", "syscall.h.in")) if err != nil { return err } diff --git a/builder/nrfutil.go b/builder/nrfutil.go index 55aef45e..73b04925 100644 --- a/builder/nrfutil.go +++ b/builder/nrfutil.go @@ -2,7 +2,7 @@ package builder import ( "fmt" - "io/ioutil" + "io" "os/exec" "github.com/tinygo-org/tinygo/compileopts" @@ -18,7 +18,7 @@ func makeDFUFirmwareImage(options *compileopts.Options, infile, outfile string) } cmd := exec.Command(cmdLine[0], cmdLine[1:]...) - cmd.Stdout = ioutil.Discard + cmd.Stdout = io.Discard err := cmd.Run() if err != nil { return fmt.Errorf("could not run nrfutil pkg generate: %w", err) diff --git a/builder/objcopy.go b/builder/objcopy.go index 991bceba..cf10547b 100644 --- a/builder/objcopy.go +++ b/builder/objcopy.go @@ -2,7 +2,7 @@ package builder import ( "debug/elf" - "io/ioutil" + "io" "os" "sort" @@ -87,7 +87,7 @@ func extractROM(path string) (uint64, []byte, error) { // Pad the difference rom = append(rom, make([]byte, diff)...) } - data, err := ioutil.ReadAll(prog.Open()) + data, err := io.ReadAll(prog.Open()) if err != nil { return 0, nil, objcopyError{"failed to extract segment from ELF file: " + path, err} } diff --git a/builder/uf2.go b/builder/uf2.go index 0d8696f8..62bae5c6 100644 --- a/builder/uf2.go +++ b/builder/uf2.go @@ -10,7 +10,7 @@ package builder import ( "bytes" "encoding/binary" - "io/ioutil" + "os" "strconv" ) @@ -26,7 +26,7 @@ func convertELFFileToUF2File(infile, outfile string, uf2FamilyID string) error { if err != nil { return err } - return ioutil.WriteFile(outfile, output, 0644) + return os.WriteFile(outfile, output, 0644) } // convertBinToUF2 converts the binary bytes in input to UF2 formatted data. diff --git a/goenv/version.go b/goenv/version.go index c67e56da..910437e0 100644 --- a/goenv/version.go +++ b/goenv/version.go @@ -4,7 +4,7 @@ import ( "errors" "fmt" "io" - "io/ioutil" + "os" "path/filepath" "regexp" "strings" @@ -54,10 +54,10 @@ func GetGorootVersion(goroot string) (major, minor int, err error) { // toolchain for the given GOROOT path. It is usually of the form `go1.x.y` but // can have some variations (for beta releases, for example). func GorootVersionString(goroot string) (string, error) { - if data, err := ioutil.ReadFile(filepath.Join(goroot, "VERSION")); err == nil { + if data, err := os.ReadFile(filepath.Join(goroot, "VERSION")); err == nil { return string(data), nil - } else if data, err := ioutil.ReadFile(filepath.Join( + } else if data, err := os.ReadFile(filepath.Join( goroot, "src", "internal", "buildcfg", "zbootstrap.go")); err == nil { r := regexp.MustCompile("const version = `(.*)`") diff --git a/loader/goroot.go b/loader/goroot.go index a012fc19..5039ed29 100644 --- a/loader/goroot.go +++ b/loader/goroot.go @@ -83,7 +83,7 @@ func GetCachedGoroot(config *compileopts.Config) (string, error) { } // Create a temporary directory to construct the goroot within. - tmpgoroot, err := ioutil.TempDir(goenv.Get("GOCACHE"), cachedGorootName+".tmp") + tmpgoroot, err := os.MkdirTemp(goenv.Get("GOCACHE"), cachedGorootName+".tmp") if err != nil { return "", err } diff --git a/loader/loader.go b/loader/loader.go index 730eb701..6f49982d 100644 --- a/loader/loader.go +++ b/loader/loader.go @@ -13,7 +13,6 @@ import ( "go/token" "go/types" "io" - "io/ioutil" "os" "os/exec" "path" @@ -335,7 +334,7 @@ func (p *Package) OriginalDir() string { // parseFile is a wrapper around parser.ParseFile. func (p *Package) parseFile(path string, mode parser.Mode) (*ast.File, error) { originalPath := p.program.getOriginalPath(path) - data, err := ioutil.ReadFile(path) + data, err := os.ReadFile(path) if err != nil { return nil, err } diff --git a/main.go b/main.go index fc3822b1..05dc56d1 100644 --- a/main.go +++ b/main.go @@ -251,7 +251,7 @@ func Test(pkgName string, stdout, stderr io.Writer, options *compileopts.Options } // create a new temp directory just for this run, announce it to os.TempDir() via TMPDIR - tmpdir, err := ioutil.TempDir("", "tinygotmp") + tmpdir, err := os.MkdirTemp("", "tinygotmp") if err != nil { return fmt.Errorf("failed to create temporary directory: %w", err) } @@ -1467,7 +1467,7 @@ func main() { fmt.Fprintf(os.Stderr, "Unknown library: %s\n", name) os.Exit(1) } - tmpdir, err := ioutil.TempDir("", "tinygo*") + tmpdir, err := os.MkdirTemp("", "tinygo*") if err != nil { handleCompilerError(err) } diff --git a/testdata/filesystem.go b/testdata/filesystem.go index 1f561ba8..3825d618 100644 --- a/testdata/filesystem.go +++ b/testdata/filesystem.go @@ -1,7 +1,7 @@ package main import ( - "io/ioutil" + "io" "os" ) @@ -28,7 +28,7 @@ func main() { } }() - data, err := ioutil.ReadAll(f) + data, err := io.ReadAll(f) if err != nil { panic(err) }