Skip to content

Commit

Permalink
Run cbor gen in parallel (#710)
Browse files Browse the repository at this point in the history
Run cbor gen in parallel for faster generation.
  • Loading branch information
masih authored Oct 8, 2024
1 parent 872e4f1 commit 866f785
Showing 1 changed file with 34 additions and 37 deletions.
71 changes: 34 additions & 37 deletions gen/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,48 +9,45 @@ import (
"github.com/filecoin-project/go-f3/cmd/f3/msgdump"
"github.com/filecoin-project/go-f3/gpbft"
gen "github.com/whyrusleeping/cbor-gen"
"golang.org/x/sync/errgroup"
)

//go:generate go run .

func main() {
err := gen.WriteTupleEncodersToFile("../gpbft/cbor_gen.go", "gpbft",
gpbft.TipSet{},
gpbft.GMessage{},
gpbft.SupplementalData{},
gpbft.Payload{},
gpbft.Justification{},
gpbft.PowerEntry{},
gpbft.PowerEntries{},
)
if err != nil {
fmt.Println(err)
os.Exit(1)
}

err = gen.WriteTupleEncodersToFile("../certs/cbor_gen.go", "certs",
certs.PowerTableDelta{},
certs.PowerTableDiff{},
certs.FinalityCertificate{},
)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
err = gen.WriteTupleEncodersToFile("../certexchange/cbor_gen.go", "certexchange",
certexchange.Request{},
certexchange.ResponseHeader{},
)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
err = gen.WriteTupleEncodersToFile("../cmd/f3/msgdump/cbor_gen.go", "msgdump",
msgdump.GMessageEnvelope{},
msgdump.GMessageEnvelopeDeffered{},
)
if err != nil {
fmt.Println(err)
var eg errgroup.Group
eg.Go(func() error {
return gen.WriteTupleEncodersToFile("../gpbft/cbor_gen.go", "gpbft",
gpbft.TipSet{},
gpbft.GMessage{},
gpbft.SupplementalData{},
gpbft.Payload{},
gpbft.Justification{},
gpbft.PowerEntry{},
gpbft.PowerEntries{},
)
})
eg.Go(func() error {
return gen.WriteTupleEncodersToFile("../certs/cbor_gen.go", "certs",
certs.PowerTableDelta{},
certs.PowerTableDiff{},
certs.FinalityCertificate{},
)
})
eg.Go(func() error {
return gen.WriteTupleEncodersToFile("../certexchange/cbor_gen.go", "certexchange",
certexchange.Request{},
certexchange.ResponseHeader{},
)
})
eg.Go(func() error {
return gen.WriteTupleEncodersToFile("../cmd/f3/msgdump/cbor_gen.go", "msgdump",
msgdump.GMessageEnvelope{},
msgdump.GMessageEnvelopeDeffered{},
)
})
if err := eg.Wait(); err != nil {
fmt.Printf("Failed to complete cborg_gen: %v\n", err)
os.Exit(1)
}
}

0 comments on commit 866f785

Please sign in to comment.