This release includes various bug fixes, including fixing some crashes. It also fixes a memory leak that would cause long-running servers to OOM (see #1418).
It also fixes various builtin extensions.
This release also makes a lot of preparations for the upcoming comprehension rework, which will allow us to do all kinds improvements and performance enhancements.
As a reminder: users can register their projects with unity
, our regression and performance testing setup. unity
is used to ensure that a project's CUE evaluations do not unexpectedly stop working, or regress in terms of performance. unity
continues to catch multiple issues with each release. Adding your project to unity
not only guarantees that we will not break your tests (if we do, we will work with you to fix your CUE code), but it also helps to improve the quality of each CUE release. We are in the process of adding support for adding private projects to unity
.
Language changes
This release removes all remaining support for quoted identifiers. Although this hasn't been supported for a while, there were still parts of the code that handled them, resulting in cryptic error messages.
Core evaluator
This release sees an overall improvement in error location reporting. These changes are quite substantial but largely, aside from a few resulting bug fixes, do not alter behavior.
Builtins
net
Add CIDR
range verification function.
regexp
Add ReplaceAll
and ReplaceAllLiteral
time
Fixes a hermeticity issues where a local time zone may be selected. Added FormatString
to ultimately replace Format
, where Format
will first have to be deprecated.
Add FormatString
, FormatDuration
and Split
tool/file
Add MkdirTemp
, RemoveAll
tool/http
Add Support for TLS settings.
Full Changelog: v0.4.2...v0.4.3-beta.1
Changelog
- 71b43a8 Fix doc string for CompileBytes and references
- b6cdc74 all: format .cue files in txtar archives
- 054cc31 all: move to go1.17-based go.mod
- f44242c ci: optimize CI build runtimes
- 89d6078 crypto/ed25519: support signature verification
- 4136481 cue/tools/flow: allow tasks in hidden fields
- 699ce65 cue: allow incomplete errors in Fields method
- 84d3cad cue: fix IsClosed
- 24c9117 cue: fix TextUnmarshal bug in Decode
- b1edc14 cue: fix nil pointer deref in BuildInstances
- a7eda13 cue: remove all support for quoted identifiers
- 49e295b cue: try harder to find a position for Pos
- 1c52d6a doc/spec: specify default constraint is not implemented
- a6995f5 doc: fix "click" typo
- eaaf5f0 doc: fix up k8s tutorial
- 7627c93 doc: mention the commit message hook for --signoff
- 2020208 doc: remove duplicate GerritHub clone instructions
- b67dc4d interal/core/adt: improve error locations
- 569fcbd internal/core/adt: add nested logging support
- 09c1ee0 internal/core/adt: adjust error positions
- 0a4d48d internal/core/adt: change to incomplete error
- b995f5b internal/core/adt: debug options for sorting arcs
- 448b94c internal/core/adt: don't yield struct on comprehension
- 1e45d06 internal/core/adt: fix closedness for API disjunctions
- 6b37a01 internal/core/adt: get rid of NotExistError
- e70db24 internal/core/adt: hoist code to prep for comprehension change
- 8f3c71b internal/core/adt: introduce Comprehension type
- f045a5a internal/core/adt: make comprehension value an Expr
- b2d9e16 internal/core/adt: merge if and for comprehension lists
- e499dae internal/core/adt: pass Conjunct to addVertexConjuncts
- 28f8d47 internal/core/adt: performance: improve lists disambiguation
- 49fdab8 internal/core/adt: prepare for field conflict message
- e0577bb internal/core/adt: prevent state erasure
- be2ee9b internal/core/adt: prevent state inversion
- 7cdcc70 internal/core/adt: reintroduce Conjunct.Expr
- 0e634cf internal/core/adt: report error for integer fields
- 975f57c internal/core/adt: store Ellipsis instead of Expr in Additional
- 2421553 internal/core/adt: track positions for incomplete types
- 8dee602 internal/core/adt: use partial lookup
- 19782a6 internal/core/dep: prevent crash
- 195cdf7 internal/core/runtime: don't share import cache
- c561f1f internal/core: automated rename
- 28c1adb internal/cuetxar: provide CUE_FORMAT_TXTAR to format .cue files
- 4cbd2e6 pkg/crypto/ed25519: format generated test case
- 189de92 pkg/net: add CIDR range verification function
- 37eb22b pkg/regexp: add ReplaceAll and ReplaceAllLiteral
- 53a108d pkg/regexp: bring docs more inline with Go equivalents
- fe20132 pkg/regexp: delete duplicate test case in txtar
- 08fa1c7 pkg/regexp: reorder for ease of maintenance
- a15720b pkg/time: add FormatDuration
- 71e9d03 pkg/time: add FormatString and Split
- 65ff0f4 pkg/time: fix hermeticity issue
- e32817a pkg/time: use time.UTC for ParseInLocation
- 977d353 pkg/tool/cli: Fix Ask task
- 8dee549 pkg/tool/file: add MkdirTemp, RemoveAll
- da75cdf pkg/tool/http: add tls settings
- 04ac666 tools/flow: add Value() to retrieve controller value
- 1b4b7e9 tools/trim: appropriately label vertex
- 8a2e832 tools/trim: don't remove structs with comprehensions
Docker images
docker pull docker.io/cuelang/cue:0.4.3-beta.1