]> Cypherpunks.ru repositories - goredo.git/commitdiff
Prepare to rename DepInfo->Dep
authorSergey Matveev <stargrave@stargrave.org>
Fri, 6 Oct 2023 18:38:59 +0000 (21:38 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 6 Oct 2023 19:00:04 +0000 (22:00 +0300)
ifchange.go
ood.go
run.go
sources.go

index dbe03cfce8311872fd68ed1f1949253762872693..0cb50c51d0785bef62596e28669936be3f28fff6 100644 (file)
@@ -31,7 +31,7 @@ func collectDeps(
        if _, ok := seen[tgt.a]; ok {
                return nil
        }
-       depInfo, err := depRead(tgt)
+       dep, err := depRead(tgt)
        if err != nil {
                return nil
        }
@@ -39,8 +39,8 @@ func collectDeps(
        seen[tgt.a] = struct{}{}
        var alwayses []*Tgt
        returnReady := false
-       if depInfo.always {
-               if depInfo.build == BuildUUID {
+       if dep.always {
+               if dep.build == BuildUUID {
                        tracef(
                                CDebug, "ood: %s%s always, but already build",
                                strings.Repeat(". ", level), tgt,
@@ -52,18 +52,18 @@ func collectDeps(
                        returnReady = true
                }
        }
-       for _, dep := range depInfo.ifchanges {
-               if dep.tgt.a == tgt.a {
+       for _, ifchange := range dep.ifchanges {
+               if ifchange.tgt.rel == tgt.rel {
                        continue
                }
-               if !includeSrc && isSrc(dep.tgt) {
+               if !includeSrc && isSrc(ifchange.tgt) {
                        continue
                }
                if !returnReady {
-                       if m, ok := deps[dep.tgt.a]; ok {
-                               m[tgt.a] = tgt
+                       if m, ok := deps[ifchange.tgt.rel]; ok {
+                               m[tgt.rel] = tgt
                        } else {
-                               deps[dep.tgt.a] = map[string]*Tgt{tgt.a: tgt}
+                               deps[ifchange.tgt.rel] = map[string]*Tgt{tgt.rel: tgt}
                        }
                        alwayses = append(alwayses,
                                collectDeps(dep.tgt, level+1, deps, includeSrc, seen)...)
diff --git a/ood.go b/ood.go
index 59bf76c18661202467c830526c8c6ee2abfe80b2..c11b23f5995ab89ef95089477828429e5df00cc0 100644 (file)
--- a/ood.go
+++ b/ood.go
@@ -105,10 +105,10 @@ func isOOD(tgt *Tgt, level int, seen map[string]*Tgt) (bool, error) {
                tracef(CDebug, "ood: %s%s -> cached: %v", indent, tgt, ood)
                return ood, nil
        }
-       depInfo := DepInfoCache[tgt.rel]
+       dep := DepCache[tgt.rel]
        var err error
-       if depInfo == nil {
-               depInfo, err = depRead(tgt)
+       if dep == nil {
+               dep, err = depRead(tgt)
                if err != nil {
                        if errors.Is(err, fs.ErrNotExist) {
                                if isSrc(tgt) {
@@ -125,12 +125,10 @@ func isOOD(tgt *Tgt, level int, seen map[string]*Tgt) (bool, error) {
                                return true, TgtError{tgt, ErrLine(err)}
                        }
                }
-               if DepInfoCache != nil {
-                       DepInfoCache[tgt.rel] = depInfo
-               }
+               DepCache[tgt.rel] = dep
        }
 
-       if depInfo.build == BuildUUID {
+       if dep.build == BuildUUID {
                tracef(CDebug, "ood: %s%s -> already built", indent, tgt)
                OODCache[tgt.rel] = false
                return false, nil
@@ -141,47 +139,47 @@ func isOOD(tgt *Tgt, level int, seen map[string]*Tgt) (bool, error) {
                return true, nil
        }
 
-       for _, dep := range depInfo.ifcreates {
-               if FileExists(dep.a) {
-                       tracef(CDebug, "ood: %s%s -> %s created", indent, tgt, dep)
+       for _, ifcreate := range dep.ifcreates {
+               if FileExists(ifcreate.a) {
+                       tracef(CDebug, "ood: %s%s -> %s created", indent, tgt, ifcreate)
                        ood = true
                        goto Done
                }
        }
 
-       for _, dep := range depInfo.ifchanges {
-               tracef(CDebug, "ood: %s%s -> %s: checking", indent, tgt, dep.tgt)
-               ood, cached = OODCache[dep.tgt.rel]
+       for _, ifchange := range dep.ifchanges {
+               tracef(CDebug, "ood: %s%s -> %s: checking", indent, tgt, ifchange.tgt)
+               ood, cached = OODCache[ifchange.tgt.rel]
                if cached {
-                       tracef(CDebug, "ood: %s%s -> %s: cached: %v", indent, tgt, dep.tgt, ood)
+                       tracef(CDebug, "ood: %s%s -> %s: cached: %v", indent, tgt, ifchange.tgt, ood)
                        if ood {
                                goto Done
                        }
                        continue
                }
 
-               inode, err := inodeFromFileByPath(dep.tgt.a)
+               inode, err := inodeFromFileByPath(ifchange.tgt.a)
                if err != nil {
                        if errors.Is(err, fs.ErrNotExist) {
-                               tracef(CDebug, "ood: %s%s -> %s: not exists", indent, tgt, dep.tgt)
+                               tracef(CDebug, "ood: %s%s -> %s: not exists", indent, tgt, ifchange.tgt)
                                ood = true
-                               OODCache[dep.tgt.rel] = ood
+                               OODCache[ifchange.tgt.rel] = ood
                                goto Done
                        }
                        return ood, TgtError{tgt, ErrLine(err)}
                }
 
                if inode.Size != dep.inode.Size {
-                       tracef(CDebug, "ood: %s%s -> %s: size differs", indent, tgt, dep.tgt)
+                       tracef(CDebug, "ood: %s%s -> %s: size differs", indent, tgt, ifchange.tgt)
                        ood = true
                        OODCache[dep.tgt.rel] = ood
                        goto Done
                }
                if InodeTrust != InodeTrustNone && inode.Equals(dep.inode) {
-                       tracef(CDebug, "ood: %s%s -> %s: same inode", indent, tgt, dep.tgt)
+                       tracef(CDebug, "ood: %s%s -> %s: same inode", indent, tgt, ifchange.tgt)
                } else {
-                       tracef(CDebug, "ood: %s%s -> %s: inode differs", indent, tgt, dep.tgt)
-                       fd, err := os.Open(dep.tgt.a)
+                       tracef(CDebug, "ood: %s%s -> %s: inode differs", indent, tgt, ifchange.tgt)
+                       fd, err := os.Open(ifchange.tgt.a)
                        if err != nil {
                                return ood, TgtError{tgt, ErrLine(err)}
                        }
@@ -191,40 +189,40 @@ func isOOD(tgt *Tgt, level int, seen map[string]*Tgt) (bool, error) {
                                return ood, TgtError{tgt, ErrLine(err)}
                        }
                        if dep.hash != hsh {
-                               tracef(CDebug, "ood: %s%s -> %s: hash differs", indent, tgt, dep.tgt)
+                               tracef(CDebug, "ood: %s%s -> %s: hash differs", indent, tgt, ifchange.tgt)
                                ood = true
-                               OODCache[dep.tgt.rel] = ood
+                               OODCache[ifchange.tgt.rel] = ood
                                goto Done
                        }
-                       tracef(CDebug, "ood: %s%s -> %s: same hash", indent, tgt, dep.tgt)
+                       tracef(CDebug, "ood: %s%s -> %s: same hash", indent, tgt, ifchange.tgt)
                }
 
-               if dep.tgt.rel == tgt.rel {
-                       tracef(CDebug, "ood: %s%s -> %s: same target", indent, tgt, dep.tgt)
+               if ifchange.tgt.rel == tgt.rel {
+                       tracef(CDebug, "ood: %s%s -> %s: same target", indent, tgt, ifchange.tgt)
                        continue
                }
-               if isSrc(dep.tgt) {
-                       tracef(CDebug, "ood: %s%s -> %s: is source", indent, tgt, dep.tgt)
-                       OODCache[dep.tgt.rel] = false
+               if isSrc(ifchange.tgt) {
+                       tracef(CDebug, "ood: %s%s -> %s: is source", indent, tgt, ifchange.tgt)
+                       OODCache[ifchange.tgt.rel] = false
                        continue
                }
 
-               if _, ok := seen[dep.tgt.rel]; ok {
-                       tracef(CDebug, "ood: %s%s -> %s: was always built", indent, tgt, dep.tgt)
-                       OODCache[dep.tgt.rel] = false
+               if _, ok := seen[ifchange.tgt.rel]; ok {
+                       tracef(CDebug, "ood: %s%s -> %s: was always built", indent, tgt, ifchange.tgt)
+                       OODCache[ifchange.tgt.rel] = false
                        continue
                }
 
-               depOOD, err := isOODWithTrace(dep.tgt, level+1, seen)
+               depOOD, err := isOODWithTrace(ifchange.tgt, level+1, seen)
                if err != nil {
                        return ood, TgtError{tgt, err}
                }
                if depOOD {
-                       tracef(CDebug, "ood: %s%s -> %s: ood", indent, tgt, dep.tgt)
+                       tracef(CDebug, "ood: %s%s -> %s: ood", indent, tgt, ifchange.tgt)
                        ood = true
                        goto Done
                }
-               tracef(CDebug, "ood: %s%s -> %s: !ood", indent, tgt, dep.tgt)
+               tracef(CDebug, "ood: %s%s -> %s: !ood", indent, tgt, ifchange.tgt)
        }
 
 Done:
diff --git a/run.go b/run.go
index 7fa4deae08c35b428111e5773d5744eca32417cd..38bfc13562b72d162791ae683f8db45e50a49703 100644 (file)
--- a/run.go
+++ b/run.go
@@ -132,14 +132,14 @@ func mkdirs(pth string) error {
        return os.MkdirAll(pth, os.FileMode(0777))
 }
 
-func isModified(depInfo *DepInfo, tgt *Tgt) (
+func isModified(dep *Dep, tgt *Tgt) (
        modified bool, ourInode *Inode, hshPrev Hash, err error,
 ) {
-       if depInfo == nil {
+       if dep == nil {
                return
        }
-       for _, dep := range depInfo.ifchanges {
-               if dep.tgt.a != tgt.a {
+       for _, ifchange := range dep.ifchanges {
+               if ifchange.tgt.a != tgt.a {
                        continue
                }
                ourInode, err = inodeFromFileByPath(tgt.a)
@@ -260,7 +260,7 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
 
        // It scans the whole .rec file while searching for the single target,
        // but that one is always located at the very end
-       depInfo, err := depRead(tgt)
+       dep, err := depRead(tgt)
        if err != nil {
                if errors.Is(err, fs.ErrNotExist) {
                        err = nil
@@ -271,14 +271,14 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
        }
 
        // Check if it was already built in parallel
-       if !forced && depInfo != nil && depInfo.build == BuildUUID {
+       if !forced && dep != nil && dep.build == BuildUUID {
                lockRelease()
                errs <- nil
                return nil
        }
 
        // Check if target is not modified externally
-       modified, inodePrev, hshPrev, err := isModified(depInfo, tgt)
+       modified, inodePrev, hshPrev, err := isModified(dep, tgt)
        if err != nil {
                lockRelease()
                return TgtError{tgt, ErrLine(err)}
@@ -294,7 +294,7 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                }()
                return nil
        }
-       depInfo = nil
+       dep = nil
 
        // Start preparing .rec
        fdDep, err := tempfile(redoDir, tgt.t+DepSuffix)
@@ -558,10 +558,10 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                                                        err = ErrLine(err)
                                                        goto Err
                                                }
-                                               for _, dep := range ifchanges {
+                                               for _, ifchange := range ifchanges {
                                                        fields = append(fields, recfile.Field{
                                                                Name:  "Ifchange",
-                                                               Value: dep,
+                                                               Value: ifchange,
                                                        })
                                                }
                                        }
@@ -798,11 +798,12 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                // Post-commit .rec sanitizing
                if depInfo, err := depRead(tgt); err == nil {
                        ifchangeSeen := make(map[string]struct{}, len(depInfo.ifchanges))
-                       for _, dep := range depInfo.ifchanges {
-                               ifchangeSeen[dep.tgt.a] = struct{}{}
+                       ifchangeSeen := make(map[string]struct{}, len(dep.ifchanges))
+                       for _, ifchange := range dep.ifchanges {
+                               ifchangeSeen[ifchange.tgt.a] = struct{}{}
                        }
-                       for _, dep := range depInfo.ifcreates {
-                               if _, exists := ifchangeSeen[dep.a]; exists {
+                       for _, ifcreate := range dep.ifcreates {
+                               if _, exists := ifchangeSeen[ifcreate.a]; exists {
                                        tracef(CWarn, "simultaneous ifcreate and ifchange records: %s", tgt)
                                }
                        }
index 246c124ddfd1ecbc11a8a368a9115d342925045b..65f6bbd4cbf8b0ba01918f82b776e9a1b436d153 100644 (file)
@@ -33,23 +33,23 @@ func sourcesWalker(
                        continue
                }
                seenDeps[tgt.rel] = struct{}{}
-               depInfo, err := depRead(tgt)
+               dep, err := depRead(tgt)
                if err != nil {
                        if errors.Is(err, fs.ErrNotExist) {
                                continue
                        }
                        return ErrLine(err)
                }
-               for _, dep := range depInfo.ifchanges {
-                       if _, ok := seen[dep.tgt.rel]; ok {
+               for _, ifchange := range dep.ifchanges {
+                       if _, ok := seen[ifchange.tgt.rel]; ok {
                                continue
                        }
-                       seen[dep.tgt.rel] = struct{}{}
-                       if isSrc(dep.tgt) {
-                               srcs[dep.tgt.rel] = dep.tgt
-                       } else if dep.tgt.rel != tgt.rel {
+                       seen[ifchange.tgt.rel] = struct{}{}
+                       if isSrc(ifchange.tgt) {
+                               srcs[ifchange.tgt.rel] = ifchange.tgt
+                       } else if ifchange.tgt.rel != tgt.rel {
                                if err := sourcesWalker(
-                                       []*Tgt{dep.tgt},
+                                       []*Tgt{ifchange.tgt},
                                        seen, seenDeps, srcs,
                                ); err != nil {
                                        return err