mirror of
https://github.com/gohugoio/hugo.git
synced 2026-08-24 15:28:54 +00:00
555dfa207a
This commit moves to a forked version go-radix (fork source has not had any updates in 3 years.), whith 2 notable changes:
* It's generic (using Go generics) and thus removes a lot of type conversions/assertions.
* It allows nodes to be replaced during walk, which allows to partition the tree for parallel processing without worrying about locking.
For this repo, this means:
* The assembly step now processes nested sections in parallel, which gives a speedup for deep content trees with a slight allocation penalty (see benchmarks below).
* Nodes that needs to be reinserted are inserted directly.
* Also, there are some drive-by fixes of some allocation issues, e.g. avoid wrapping mutexes in returned anonomous functions, a common source of hidden allocations.
```
│ master.bench │ perf-p3.bench │
│ sec/op │ sec/op vs base │
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=1/pagesPerSection=50-10 6.958m ± 3% 7.015m ± 3% ~ (p=0.589 n=6)
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=6/pagesPerSection=100-10 14.25m ± 1% 14.56m ± 8% ~ (p=0.394 n=6)
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=6/pagesPerSection=500-10 48.07m ± 3% 49.23m ± 3% ~ (p=0.394 n=6)
AssembleDeepSiteWithManySections/depth=2/sectionsPerLevel=6/pagesPerSection=100-10 66.66m ± 4% 66.47m ± 6% ~ (p=0.485 n=6)
AssembleDeepSiteWithManySections/depth=4/sectionsPerLevel=2/pagesPerSection=100-10 59.57m ± 4% 50.73m ± 5% -14.85% (p=0.002 n=6)
geomean 28.54m 27.92m -2.18%
│ master.bench │ perf-p3.bench │
│ B/op │ B/op vs base │
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=1/pagesPerSection=50-10 4.513Mi ± 0% 4.527Mi ± 0% +0.33% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=6/pagesPerSection=100-10 15.35Mi ± 0% 15.49Mi ± 0% +0.94% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=6/pagesPerSection=500-10 62.50Mi ± 0% 63.19Mi ± 0% +1.10% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=2/sectionsPerLevel=6/pagesPerSection=100-10 86.78Mi ± 0% 87.73Mi ± 0% +1.09% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=4/sectionsPerLevel=2/pagesPerSection=100-10 62.96Mi ± 0% 63.66Mi ± 0% +1.12% (p=0.002 n=6)
geomean 29.84Mi 30.11Mi +0.92%
│ master.bench │ perf-p3.bench │
│ allocs/op │ allocs/op vs base │
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=1/pagesPerSection=50-10 60.44k ± 0% 60.97k ± 0% +0.87% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=6/pagesPerSection=100-10 205.8k ± 0% 211.4k ± 0% +2.70% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=1/sectionsPerLevel=6/pagesPerSection=500-10 831.1k ± 0% 858.3k ± 0% +3.27% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=2/sectionsPerLevel=6/pagesPerSection=100-10 1.157M ± 0% 1.197M ± 0% +3.41% (p=0.002 n=6)
AssembleDeepSiteWithManySections/depth=4/sectionsPerLevel=2/pagesPerSection=100-10 839.9k ± 0% 867.8k ± 0% +3.31% (p=0.002 n=6)
geomean 398.5k 409.3k +2.71%
```
198 lines
9.2 KiB
Modula-2
198 lines
9.2 KiB
Modula-2
module github.com/gohugoio/hugo
|
|
|
|
require (
|
|
github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69
|
|
github.com/JohannesKaufmann/html-to-markdown/v2 v2.4.0
|
|
github.com/alecthomas/chroma/v2 v2.20.0
|
|
github.com/aws/aws-sdk-go-v2 v1.40.0
|
|
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.57.0
|
|
github.com/bep/clocks v0.5.0
|
|
github.com/bep/debounce v1.2.0
|
|
github.com/bep/gitmap v1.9.0
|
|
github.com/bep/goat v0.5.0
|
|
github.com/bep/godartsass/v2 v2.5.0
|
|
github.com/bep/golibsass v1.2.0
|
|
github.com/bep/goportabletext v0.1.0
|
|
github.com/bep/gowebp v0.3.0
|
|
github.com/bep/helpers v0.6.0
|
|
github.com/bep/imagemeta v0.12.0
|
|
github.com/bep/lazycache v0.8.0
|
|
github.com/bep/logg v0.4.0
|
|
github.com/bep/mclib v1.20400.20402
|
|
github.com/bep/overlayfs v0.10.0
|
|
github.com/bep/simplecobra v0.6.1
|
|
github.com/bep/tmc v0.5.1
|
|
github.com/bits-and-blooms/bitset v1.24.4
|
|
github.com/cespare/xxhash/v2 v2.3.0
|
|
github.com/clbanning/mxj/v2 v2.7.0
|
|
github.com/disintegration/gift v1.2.1
|
|
github.com/dustin/go-humanize v1.0.1
|
|
github.com/evanw/esbuild v0.27.0
|
|
github.com/fatih/color v1.18.0
|
|
github.com/fortytw2/leaktest v1.3.0
|
|
github.com/frankban/quicktest v1.14.6
|
|
github.com/fsnotify/fsnotify v1.9.0
|
|
github.com/getkin/kin-openapi v0.133.0
|
|
github.com/gobuffalo/flect v1.0.3
|
|
github.com/gobwas/glob v0.2.3
|
|
github.com/goccy/go-yaml v1.18.0
|
|
github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6
|
|
github.com/gohugoio/go-radix v1.2.0
|
|
github.com/gohugoio/hashstructure v0.6.0
|
|
github.com/gohugoio/httpcache v0.8.0
|
|
github.com/gohugoio/hugo-goldmark-extensions/extras v0.5.0
|
|
github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1
|
|
github.com/gohugoio/locales v0.14.0
|
|
github.com/gohugoio/localescompressed v1.0.1
|
|
github.com/google/go-cmp v0.7.0
|
|
github.com/gorilla/websocket v1.5.3
|
|
github.com/hairyhenderson/go-codeowners v0.7.0
|
|
github.com/jdkato/prose v1.2.1
|
|
github.com/kyokomi/emoji/v2 v2.2.13
|
|
github.com/magefile/mage v1.15.0
|
|
github.com/makeworld-the-better-one/dither/v2 v2.4.0
|
|
github.com/marekm4/color-extractor v1.2.1
|
|
github.com/mattn/go-isatty v0.0.20
|
|
github.com/microcosm-cc/bluemonday v1.0.27
|
|
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c
|
|
github.com/muesli/smartcrop v0.3.0
|
|
github.com/niklasfasching/go-org v1.9.1
|
|
github.com/olekukonko/tablewriter v1.1.1
|
|
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
|
|
github.com/pelletier/go-toml/v2 v2.2.4
|
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
|
|
github.com/rogpeppe/go-internal v1.14.1
|
|
github.com/spf13/afero v1.15.0
|
|
github.com/spf13/cast v1.10.0
|
|
github.com/spf13/cobra v1.9.1
|
|
github.com/spf13/fsync v0.10.1
|
|
github.com/spf13/pflag v1.0.7
|
|
github.com/tdewolff/minify/v2 v2.24.7
|
|
github.com/tdewolff/parse/v2 v2.8.5
|
|
github.com/tetratelabs/wazero v1.10.1
|
|
github.com/yuin/goldmark v1.7.13
|
|
github.com/yuin/goldmark-emoji v1.0.6
|
|
go.uber.org/automaxprocs v1.5.3
|
|
gocloud.dev v0.43.0
|
|
golang.org/x/image v0.33.0
|
|
golang.org/x/mod v0.30.0
|
|
golang.org/x/net v0.47.0
|
|
golang.org/x/sync v0.18.0
|
|
golang.org/x/text v0.31.0
|
|
golang.org/x/tools v0.39.0
|
|
google.golang.org/api v0.255.0
|
|
rsc.io/qr v0.2.0
|
|
)
|
|
|
|
require (
|
|
cel.dev/expr v0.24.0 // indirect
|
|
cloud.google.com/go v0.121.4 // indirect
|
|
cloud.google.com/go/auth v0.17.0 // indirect
|
|
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
|
|
cloud.google.com/go/compute/metadata v0.9.0 // indirect
|
|
cloud.google.com/go/iam v1.5.2 // indirect
|
|
cloud.google.com/go/monitoring v1.24.2 // indirect
|
|
cloud.google.com/go/storage v1.55.0 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.1 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.1 // indirect
|
|
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
|
github.com/Azure/go-autorest/autorest/to v0.4.1 // indirect
|
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect
|
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
|
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 // indirect
|
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 // indirect
|
|
github.com/JohannesKaufmann/dom v0.2.0 // indirect
|
|
github.com/aws/aws-sdk-go v1.55.7 // indirect
|
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect
|
|
github.com/aws/aws-sdk-go-v2/config v1.29.17 // indirect
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.70 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.84 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.0 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 // indirect
|
|
github.com/aws/smithy-go v1.23.2 // indirect
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
|
github.com/clipperhouse/displaywidth v0.3.1 // indirect
|
|
github.com/clipperhouse/stringish v0.1.1 // indirect
|
|
github.com/clipperhouse/uax29/v2 v2.2.0 // indirect
|
|
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect
|
|
github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
|
|
github.com/dlclark/regexp2 v1.11.5 // indirect
|
|
github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
|
|
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/go-jose/go-jose/v4 v4.1.2 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
|
github.com/go-openapi/swag v0.23.0 // indirect
|
|
github.com/golang-jwt/jwt/v5 v5.2.3 // indirect
|
|
github.com/google/s2a-go v0.1.9 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/google/wire v0.6.0 // indirect
|
|
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
|
|
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
|
|
github.com/gorilla/css v1.0.1 // indirect
|
|
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
|
github.com/josharian/intern v1.0.0 // indirect
|
|
github.com/kr/pretty v0.3.1 // indirect
|
|
github.com/kr/text v0.2.0 // indirect
|
|
github.com/kylelemons/godebug v1.1.0 // indirect
|
|
github.com/mailru/easyjson v0.7.7 // indirect
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
github.com/mattn/go-runewidth v0.0.19 // indirect
|
|
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
|
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
|
|
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect
|
|
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect
|
|
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
|
|
github.com/olekukonko/errors v1.1.0 // indirect
|
|
github.com/olekukonko/ll v0.1.2 // indirect
|
|
github.com/perimeterx/marshmallow v1.1.5 // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
|
github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect
|
|
github.com/woodsbury/decimal128 v1.3.0 // indirect
|
|
github.com/zeebo/errs v1.4.0 // indirect
|
|
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
|
go.opentelemetry.io/contrib/detectors/gcp v1.37.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
|
|
go.opentelemetry.io/otel v1.37.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.37.0 // indirect
|
|
go.opentelemetry.io/otel/sdk v1.37.0 // indirect
|
|
go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.37.0 // indirect
|
|
golang.org/x/crypto v0.45.0 // indirect
|
|
golang.org/x/oauth2 v0.32.0 // indirect
|
|
golang.org/x/sys v0.38.0 // indirect
|
|
golang.org/x/time v0.14.0 // indirect
|
|
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
|
|
google.golang.org/genproto v0.0.0-20250715232539-7130f93afb79 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda // indirect
|
|
google.golang.org/grpc v1.76.0 // indirect
|
|
google.golang.org/protobuf v1.36.10 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
howett.net/plist v1.0.0 // indirect
|
|
software.sslmate.com/src/go-pkcs12 v0.2.0 // indirect
|
|
)
|
|
|
|
go 1.24.0
|