Skip to content

v0.14.0-alpha.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@cueckoo cueckoo released this 10 Jul 16:24
· 276 commits to master since this release

This 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