v0.14.0-alpha.2
Pre-releaseThis release brings many evaluator performance improvements, as well as initial support for Kubernetes CRDs.
Evaluator
Further performance improvements were made to the new closedness implementation, giving speed-ups of up to 50% for some projects with heavy use of definitions.
Significant progress has been made to the new evaluator's memory usage; a few large projects experiencing high memory usage on the previous alpha release now see reductions of up to 80%.
Various other optimizations and performance bug fixes have been made to the new evaluator, yielding speed-ups of 5-20% on a variety of CUE projects.
Encodings
cue get crd
introduces support for extracting Kubernetes Custom Resource Definitions (CRDs) as CUE definitions; see cue help get crd
.
The new encoding/jsonschema.ExtractCRDs
Go API exposes the extractor used by cue get crd
.
Full list of changes since v0.14.0-alpha.1
- internal/core/adt: filter notifications by @mpvl in 971ee4f
- internal/core/adt: keep track of notification counts by @mpvl in 18b7df0
- internal/core/adt: run evaluator tests in parallel by @mvdan in 991e549
- internal/pkg: fix a race when contexts concurrently load std imports by @mvdan in 79798ca
- internal/core/adt: clean up orphaned arcs by @mpvl in a397974
- internal/core/adt: mark inlined nodes for cleanup by @mpvl in e92f16e
- internal/core/adt: prune parent processing by @mpvl in 1b7a71c
- internal/core/adt: trigger more diffs in stats by @mpvl in f389502
- internal/core/adt: clean up use of Vertex.state by @mpvl in fb4f507
- internal/core/adt: basic memory management for evalv3 by @mpvl in 4ebd05f
- internal/core/adt: check for nil state in parent disjunction by @mpvl in 4638be0
- internal/core/adt: delay processing of pattern constraints by @mpvl in ab40e7f
- internal/core/adt: handle equal disjuncts by @mpvl in 654008d
- internal/core/adt: do not set error for nil task state by @mpvl in 495f602
- internal/core/adt: reuse more lets by @mpvl in b96ed2c
- tools/trim: handle error cases in API by @mpvl in bd237a2
- internal/core/adt: allow unprocessed by @mpvl in 4d894fa
- internal/core/adt: remove filter for let sharing by @mpvl in 521d442
- internal/core/adt: rearrange newNodeContext by @mpvl in f42b369
- internal/core/adt: mark nodeContext.clone as v2 by @mpvl in b7d9b69
- internal/core/adt: add benchmark for Issue 3334 by @mpvl in 99494a6
- internal/core/adt: more eagerly update stats in tests by @mpvl in 2862a10
- internal/ci: skip "check git tags" when testing CLs by @mvdan in 5100525
- internal/ci: use shorter Namespace runner profile aliases by @mvdan in 6f50798
- internal/ci: run tests with GOARCH=386 on protected branches only by @mvdan in 673b49f
- internal/robustio: add stub js/wasm getFileID implementation by @cuematthew in c13484f
- internal/core/adt: normalize how the tests configure the runtime by @mvdan in a6abf3b
- internal/cuetxtar: do not load the root cuelang.org/go CUE module by @mvdan in 7a237eb
- cue/load: deduplicate handling missing files for ad-hoc packages by @mvdan in 4cb33de
- cue/load: reject unsupported cue.mod files by inspecting open errors by @mvdan in c80fdaf
- internal/robustio: Copy from upstream and consolidate use by @cuematthew in 4544972
- internal/core/adt: remove unused test code by @mvdan in ee299f0
- internal/modpkgload: Make Package keep its set of files by @cuematthew in 6405ce0
- internal/core: remove a few unnecessary trailing Fprintln calls in tests by @mvdan in c2f57e3
- internal/lsp/fscache: Create CUECacheFS and OverlayFS by @cuematthew in 955e7f4
- encoding/jsonschema: parallelize vendor_external.go a bit by @mvdan in 3b10030
- internal/ci: drop "evict caches" nightly cron job by @mvdan in 206e824
- cmd/cue: implement cue get crd by @rogpeppe in a6df86a
- internal/ci: cache staticcheck via nscloud-cache-action by @mvdan in ff4639c
- encoding/jsonschema: implement ExtractCRDs by @rogpeppe in e2835d9
- internal/ci: assume the CI machines are reasonably modern by @mvdan in 7bddda5
- cmd/cue: skip tests using sleeps in short mode by @mvdan in f7e5f80
- internal/ci: skip the test cache via GOFLAGS=-count=1 by @mvdan in d3da405
- internal/ci: switch to Namespace GitHub Actions runners by @mvdan in f615383
- internal/core/adt: delay stringifying nodes in errors via fmt.Stringer by @mvdan in 7e4dff2
- internal/core/adt: ensure emptyNode is inert by @mpvl in 2adf5e9
- mod/modfiledata: rename File.ModulePath() to File.ModuleRootPath() by @cuematthew in b8a14de
- mod/modpkgload: correct calculation of pkg.fromExternal by @cuematthew in a8ba684
- mod/modpkgload: capture faulty behaviour of pkg.fromExternal by @cuematthew in c237083
- cue/ast: Ensure ImportPath.Canonical copes with host-only paths by @cuematthew in 703c22c
- mod/modpkgload: Make LoadPackages support nil shouldIncludePkgFile by @cuematthew in 19d3abc
- internal/core/adt: use custom int set implementation for visited by @rogpeppe in 12ec0ec