Release covering updates over the last year including recent refactors for the updated Value type and initial implementation of type checker.
Note: Upcoming changes after this release will migrate many references to protobuf Message types to the canonical versions in CEL spec and will likely require client updates.
What's Changed
- Add support for managing modern type providers in the CEL type registry. by @copybara-service in #183
- Add accessors for extracting legacy type from cel::LegacyStructType. by @copybara-service in #186
- Patch of #188 to support BUILD environment customization. by @copybara-service in #193
- Remove unused functions from evaluator core. by @copybara-service in #203
- Split flat expression evaluator implementation from implementation of the legacy CelExpression interface. by @copybara-service in #204
- IWYU fixes for attribute trail. by @copybara-service in #215
- Update CEL C++ grammar to recognize but reject optional by @copybara-service in #221
- Remove direct interop usages from flat_expr_builder. by @copybara-service in #222
- Fix internal comment scrubbing using wrong tags. by @copybara-service in #233
- Fixed the reference to CelExpression::Trace in the documentation for CelEvaluationListener. by @copybara-service in #234
- Implement partial support for setting repeated and map value
google.protobuf.Any
fields inProtoStructValueBuilder
by @copybara-service in #236 - Partially migrate create_list_step. by @copybara-service in #249
- Add modern value implementation of mutable list for map/filter list builder optimization. by @copybara-service in #250
- Add utilities for creating
google.protobuf.Any.type_url
by @copybara-service in #259 - Move arithmetic operators to runtime/standard. by @copybara-service in #267
- Add protocol buffer message encoding utility class by @copybara-service in #268
- Add optimized program plan step for the select optimization. by @copybara-service in #247
- Add generic implementation of
ConvertToAny
andConvertToJson
forlist
andmap
by @copybara-service in #278 - Refactor comprehension planning in flat expr builder to use comprehension specific visitor callbacks. by @copybara-service in #293
- Simplify value stack operations for comprehensions. by @copybara-service in #295
- Migrate in functions to use Handles. by @copybara-service in #303
- Move error factories from eval/internal to runtime/internal by @copybara-service in #304
- Prepare to migrate
create_struct_step.cc
for map by @copybara-service in #316 -
- Add support for checked downcast on runtime to support extensions. by @copybara-service in #287
- Update signature of
MapValue::Has
to includeValueFactory&
by @copybara-service in #325 - Add end to end tests for modern protobuf type provider impl. by @copybara-service in #327
- Fully implement optional syntax for parser by @copybara-service in #338
- Add cel::Value and cel::Activation equivalent of the bind context to activation helper. by @copybara-service in #341
- More
cel::Macro
cleanup by @copybara-service in #348 - Export kPayloadUrlMissingAttributePath to public header. by @copybara-service in #350
- Introduce Issue and IssueCollector types for collecting issues encountered during expression planning. by @copybara-service in #356
- Update
Kind
,TypeKind
, andNativeTypeId
by @copybara-service in #367 - Add exception macros by @copybara-service in #374
- Add to proto function for cel::Ast. by @copybara-service in #368
- No public description by @copybara-service in #378
- Internal change by @copybara-service in #380
DoubleType
andDoubleTypeView
by @copybara-service in #390DurationType
andDurationTypeView
by @copybara-service in #392- Add
benchmark
tag tosets_functions_benchmark_test
by @copybara-service in #406 IntValue
andIntValueView
by @copybara-service in #419- Use
absl::Span
for returns in attributes by @copybara-service in #426 TimestampValue
andTimestampValueView
by @copybara-service in #421- Delete unused
base/type_registry.h
by @copybara-service in #429 UnknownValue
andUnknownValueView
by @copybara-service in #428- Remove ability to modify
EnumType
equality and hashing by @copybara-service in #432 - Add least and greatest macros for Math extension library by @copybara-service in #431
- Rework
OpaqueType
andOpaqueTypeView
by @copybara-service in #434 - Allow
Type
to be default constructible by @copybara-service in #436 - Allow
Value
to be default constructible by @copybara-service in #437 - Add
TypeFactory
by @copybara-service in #439 - Update Qualify interface to optionally return the number of qualifiers applied. by @copybara-service in #405
MapValue
andMapValueView
by @copybara-service in #454- Allow
OptionalType
to be default constructed by @copybara-service in #456 - Improve hashing of
Type
,TypeView
, and friends by @copybara-service in #460 - Refactor
CommonTypes
toProcessLocalTypeCache
by @copybara-service in #458 - Prevent binding to temporaries in
TypeView
and friends by @copybara-service in #461 OpaqueValue
,OpaqueValueView
,OptionalValue
, andOptionalValueView
by @copybara-service in #457- Attach modern runtime to conformance tests with noisy test failures. Update skip list for failing tests. by @copybara-service in #464
- Add navigable_ast utility for AST analysis. by @copybara-service in #462
- Update type cache to return views by @copybara-service in #466
- Store cached optionals separate from opaques for efficiency by @copybara-service in #467
- Move default optional value to
ProcessLocalValueCache
by @copybara-service in #468 - Update protobuf type adapter to support select optimization through map and repeated fields. by @copybara-service in #438
- Update
ValueView
and friends to avoid binding to temporaries by @copybara-service in #469 - Add support for pre/post order traversals on NavigableExpr. by @copybara-service in #465
- Add stringifiers for Navigable AST enums. by @copybara-service in #473
- Allow
Shared
,SharedView
, andUnqiue
to be default constructed by @copybara-service in #472 - Refactor value deserialization to be handle agnostic by @copybara-service in #474
- Refactor value serialization to be handle agnostic by @copybara-service in #475
- Default enable unique numbering in C++ CEL parser for built-in macro accumulator vars. Previously, all Expr nodes representing the internal accu_var 'result' shared the same ID in a given comprehension. by @copybara-service in #453
- Refactor
TypeFactory
,TypeCache
, andValueCache
by @copybara-service in #477 - Rename
memory_manager()
toGetMemoryManager()
by @copybara-service in #478 - Introduce
ValueFactory
by @copybara-service in #479 - Add benchmarks for bind expressions. by @copybara-service in #483
- No public description by @copybara-service in #459
- Update slot indexing to use a manager rather than assuming 2 slots per comprehension. by @copybara-service in #484
- Add ability to perform serialization size calculations without serializing by @copybara-service in #485
BoolValue
serialization by @copybara-service in #486ErrorValue
serialization by @copybara-service in #487UnknownValue
serialization by @copybara-service in #488NullValue
serialization by @copybara-service in #489BytesValue
serialization by @copybara-service in #490DoubleValue
serialization by @copybara-service in #491DurationValue
serialization by @copybara-service in #492IntValue
serialization by @copybara-service in #493StringValue
serialization by @copybara-service in #494TimestampValue
serialization by @copybara-service in #495TypeValue
serialization by @copybara-service in #496UintValue
serialization by @copybara-service in #497OpaqueValue
serialization by @copybara-service in #498- Upgrade ANTLR and enable Abseil for ANTLR by @copybara-service in #503
- Add JSON conversion to
Value
and friends by @copybara-service in #500 ListValue
andMapValue
serialization by @copybara-service in #501- Introduce
TypeManager
andValueManager
by @copybara-service in #499 - Unnest simple expressions instead of traversing recursively in the CEL C++ parser. by @copybara-service in #502
- Update managers to extend factories, leaving factories as an abstract interface by @copybara-service in #504
- Fix compiler warnings. by @copybara-service in #507
- Suppress deprecation warnings for cloud build. by @copybara-service in #508
- Split
data
intotype
andvalue
by @copybara-service in #509 - Update some arguments to use views by @copybara-service in #510
- Update types and values to use managers instead of factories by @copybara-service in #511
- Fix missing include directives by @copybara-service in #506
- Change to
E2_HIGHCPU_32
by @copybara-service in #513 - Avoid mixing iterators and pointers due to MSVC by @copybara-service in #512
- Update arguments in
ValueManager
by @copybara-service in #516 - Add evaluator support for lazily evaluating certain subexpressions. by @copybara-service in #481
- Replace
type()
withGetType(TypeManager&)
andGetTypeName()
by @copybara-service in #518 - Split
value_provider.cc
into separate files by @copybara-service in #519 - Remove
EnumType
andEnumValue
by @copybara-service in #521 - Add additional benchmark cases for nested bind definitions. by @copybara-service in #514
StructValue
andStructValueView
by @copybara-service in #520- Add support for nested lazy init bind definitions. by @copybara-service in #515
- Deserialization and builders for well known types by @copybara-service in #522
- Remove option for old non-unique id numbering for map/filter macros. by @copybara-service in #523
- Update SelectOptimization and AttributeTracking to behave consistently with cel.bind. by @copybara-service in #524
- Default enable lazy initialization for bind expressions. by @copybara-service in #526
- Temporarily remove new proto bindings by @copybara-service in #534
- Legacy managers and providers by @copybara-service in #527
Unknown
by @copybara-service in #531- Split list/map into parsed/legacy by @copybara-service in #530
- Update
ListValue::ForEach
to additionally pass indices for convinience by @copybara-service in #529 - Tag benchmark so CI doesn't run it by @copybara-service in #536
- Remove
GetMemoryManager
from providers by @copybara-service in #535 - Update
MapValue::Has
by @copybara-service in #528 Equal
andIsZeroValue
by @copybara-service in #532- Update
StructValueBuilder::Build
by @copybara-service in #533 - Tune Bazel for GCB. Set parallelism and memory limits. by @copybara-service in #540
- More compatibility changes by @copybara-service in #539
- Update navigable AST to traverse nodes by cref. by @copybara-service in #538
- More compatibility changes by @copybara-service in #541
- Cleanup some interop usage by @copybara-service in #544
- Rename
memory_manager()
toGetMemoryManager()
by @copybara-service in #542 - Add
proto2::Arena*
toCreateTypeValueFromView
by @copybara-service in #543 - Implement type introspection for well known types by @copybara-service in #546
- Add
absl::optional
to various return types by @copybara-service in #547 - Add
const
toTypeProvider
andValueProvider
by @copybara-service in #548 - Make
TypeProvider
andValueProvider
no long pure virtual by @copybara-service in #549 - Add default empty list and map implementation by @copybara-service in #550
- Add methods to factories for compatibility by @copybara-service in #551
TypeProvider
->TypeIntrospector
andValueProvider
->TypeReflector
by @copybara-service in #552- Drop inheritance of
cel::TypeProvider
by @copybara-service in #553 - Detangle
legacy_type_adapter
frombase/
type/value by @copybara-service in #554 - Use dedicated comprehension slots inside of bind subexpressions when lazily evaluated. by @copybara-service in #556
- Add
StructValue::Qualify
by @copybara-service in #555 - No public description by @copybara-service in #557
- Various bug fixes and changes to improve compatibility with
base/
handles, types, and values by @copybara-service in #559 - Add
base/value_manager.h
to assist migration by @copybara-service in #560 - Various miscellaneous fixes by @copybara-service in #562
- Update Abseil to
Abseil LTS 20240116.0
by @copybara-service in #563 cel::internal::NoDestructor
->absl::NoDestructor
by @copybara-service in #564cel::internal::Overloaded
->absl::Overload
by @copybara-service in #567- Miscellaneous changes by @copybara-service in #565
- Update
ProtobufDescriptorProvider::ProvideLegacyTypeInfo
to returnabsl::nullopt
instead ofnullptr
by @copybara-service in #566 - Publish initial version of CEL C++ Codelab by @copybara-service in #561
- Add support for adding individual program steps in extensions. by @copybara-service in #545
- Avoid string/bytes copying when using arenas by @copybara-service in #569
- Optimize various
ListValue
andMapValue
functions for literal lists/maps by @copybara-service in #570 - Update slot accounting for lazily evaluated bind expressions. by @copybara-service in #573
cel::Handle<T>
->T
by @copybara-service in #568- Add
ABSL_CONST_INIT
and changestd::pair<uint8_t, uint8_t>
tostd::pair<const uint8_t, const uint8_t>
by @copybara-service in #575 - Add branch coverage utility to CEL C++ tools. by @copybara-service in #525
- Update evaluator to assume lazy bind evaluation is always enabled. This has been enabled by default for several weeks. by @copybara-service in #572
- Add type url parsing support by @copybara-service in #578
- Update googleapis and cel-spec versions to include updated syntax.proto definition with extension tags. by @copybara-service in #580
- Replace
Handle<T>
withT
by @copybara-service in #576 - Kill
cel::Handle
entirely by @copybara-service in #581 - Remove
base/memory.h
by @copybara-service in #582 - Add support for extension tags in internal ast representation. by @copybara-service in #585
- Remove
base/type.h
andbase/value.h
by @copybara-service in #587 - Add support for converting proto extension tags to/from the internal ast representation. by @copybara-service in #584
- Remove
Kind::kWrapper
andKind::kEnum
by @copybara-service in #590 - Remove unused methods from migration by @copybara-service in #591
- Add optimization hints to
EvaluatorStack
and switch some toFATAL
by @copybara-service in #594 - Devirtualize
ExpressionStep::id
andExpressionStep::ComesFromAst
by @copybara-service in #593 - Support for mapping protocol buffer types to CEL types by @copybara-service in #597
- Refactor flat expr builder to build a program tree then flatten instead of building the flat expression directly. by @copybara-service in #596
- Move inlined functions from header to source by @copybara-service in #599
- Remove reference to handle factory by @copybara-service in #600
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
toShared
by @copybara-service in #601 - Add aliasing constructor to
Shared
by @copybara-service in #602 - Add
cel::StaticCast
by @copybara-service in #603 - No public description by @copybara-service in #604
- Use alignment and new/delete utilities by @copybara-service in #609
- Add a few
google.protobuf.Any
utilities by @copybara-service in #610 - Move
IsProtoEnum
to internal by @copybara-service in #611 - Per abseil documentation:
Note that this attribute is redundant if the variable is declared constexpr
. by @copybara-service in #613 - Avoid copies in function adapter code and CEL standard implementations for string value args. by @copybara-service in #612
- Optimize Value::kind(). This is called in a tight loop in final overload resolution so static array lookup can be faster than variant visitor dispatch. by @copybara-service in #615
- Move function adapter code to /runtime. by @copybara-service in #617
- Fix
cel::common_internal::IsStringLiteral
by @copybara-service in #614 - Protocol buffer types to JSON by @copybara-service in #618
- Directly return cel::Value return types instead of passing through wrapping logic in function adapter code. by @copybara-service in #619
- Propagate
ValueManager&
through various functions by @copybara-service in #623 - Remove
StructValue::ConvertToJsonObject
by @copybara-service in #625 - Introduce specialized interface for
Any
toJson
conversion by @copybara-service in #627 - Protocol buffer
AnyToJsonConverter
implementation by @copybara-service in #626 - Refactor protobuf JSON internals to expose functionality by @copybara-service in #629
- Remove unused variables from select step impl and flat expr builder. by @copybara-service in #630
- Refactor qualify logic to be value agnostic by @copybara-service in #631
- Move implementations from the header file. by @copybara-service in #635
- Various tweaks to interfaces and testing by @copybara-service in #637
- Add gtest matching utilities for cel::Value. by @copybara-service in #638
- Generalize
JsonValueManager
asPiecewiseValueManager
by @copybara-service in #643 - Protocol buffer message conversion internals. Provides a default Struct implementation for pb messages. by @copybara-service in #640
- No public description by @copybara-service in #622
- Implement unwrapping utilities (
cel::Value
-> protobuf type). by @copybara-service in #645 - Update
descriptor_pool()
to be public by @copybara-service in #646 - Revive conformance test harness for modern values by @copybara-service in #649
- Revive conformance test harness for modern values by @copybara-service in #650
- Revive conformance test harness for modern values by @copybara-service in #651
- Split more internal helper methods into proto lite by @copybara-service in #652
- Fix cloudbuild by updating cel-spec dependency by @copybara-service in #658
- Fix casting support for
optional_type
by @copybara-service in #657 - No public description by @copybara-service in #661
- Implement runtime support for optionals by @copybara-service in #660
- Update
optional.or
andoptional.orValue
to short-circuit upon an error by @copybara-service in #664 - Implement
encoders
extension in C++ by @copybara-service in #665 - Split create map and create struct libraries. Apply IWYU and build_cleaner findings. No functional changes. by @copybara-service in #663
- Remove attribute checking from slot accesses. by @copybara-service in #662
- Add support for handling extensions by @copybara-service in #667
- Fix unexpected conversion from
map<{bool,int,uint}, ?>
togoogle.protobuf.Struct
by @copybara-service in #668 - Introduce
MacroRegistry
by @copybara-service in #671 - Migrate
math_ext
to modern values by @copybara-service in #673 - Minor modifications to
common/source.h
by @copybara-service in #674 - Remove
ABSL_ATTRIBUTE_PURE_FUNCTION
by @copybara-service in #678 - Further restrict default parser limits by @copybara-service in #676
- Make use of
MacroRegistry
and enablebindings
conformance tests by @copybara-service in #679 - Enable
math
conformance tests by @copybara-service in #680 - Upgrade interop to handle modern values by @copybara-service in #669
- Enable
proto2
conformance tests by @copybara-service in #681 - Enable conformance tests for non-arena by @copybara-service in #682
- Add definitions for directly evaluated steps (recursive evaluation). by @copybara-service in #683
- Add support for recursively evaluated functions and constants. by @copybara-service in #684
- Add support for recursive plans up to a certain depth. by @copybara-service in #685
- Add recursive implementation for ternary steps. by @copybara-service in #686
- Short-circuit in
optional.or
andoptional.orValue
when receiver is unknown by @copybara-service in #704 - Add support for recursively planned CreateList expressions. by @copybara-service in #687
- Add support for recursively planned ident steps. by @copybara-service in #694
- Add support for recursively planned select operations. by @copybara-service in #633
- Add benchmark support for recursive planning. by @copybara-service in #688
- Add support for recursively planned index operations. by @copybara-service in #690
- Introduce
cel::Expr
by @copybara-service in #706 - Add support for recursively planned slot steps. by @copybara-service in #691
- Add support for recursively planned map steps. by @copybara-service in #693
- Add support for recursively planned struct steps. by @copybara-service in #659
- Add support for tracing recursively planned programs. by @copybara-service in #695
- Add support for recursively planned bind expressions. by @copybara-service in #696
- Implement bidirectional conversion between
cel::Expr
andgoogle::api::expr::Expr
by @copybara-service in #707 - Add recursive plan support for mutable lists in map/filter macros. by @copybara-service in #698
- Add recursive eval support for shadowable values. by @copybara-service in #699
- Add support for evaluating lazily resolved / contextual functions recursively. by @copybara-service in #700
- Add support for inspecting and extracting some recursive program steps (function calls and constants). by @copybara-service in #701
- Add select optimization support for recursively planned programs. by @copybara-service in #702
- Test fix for branch coverage to tolerate slight variations in trace behavior. by @copybara-service in #703
- Replace
cel::ast_internal::{Constant,Ident}
withcel::{Constant,IdentExpr}
by @copybara-service in #710 - Update graphviz formatting: by @copybara-service in #713
- Reject mixed
CreateStruct.Entry.key_kind
by @copybara-service in #714 - Replace more of
base/base_internal/expr.h
withcommon/ast.h
by @copybara-service in #716 - Make
Value
default constructible, copyable, and moveable. by @copybara-service in #717 - Move
Expr
and friends to a separate target and movebase/ast.h
tocommon/ast.h
by @copybara-service in #718 - Make
Type
default constructible, copyable, and moveable. by @copybara-service in #719 - Add gtest matchers for OptionalValue by @copybara-service in #724
- Add
TypeParamType
andFunctionType
by @copybara-service in #721 - Add specialization for default cel::Program implementation if the program is fully recursive. by @copybara-service in #726
- Remove
subexpr
argument to{Pre,Post}VisitComprehensionSubexpression
by @copybara-service in #723 - Split optional.or specific jump logic to its own cc_library. No functional changes. by @copybara-service in #727
- Move optional.or implementation to a custom evaluator step. by @copybara-service in #728
- Introduce
Decl
hierarchy by @copybara-service in #722 - Add recursive implementation for optional.or(Value) steps. by @copybara-service in #725
- Fix use-after-free for proto map list keys. by @copybara-service in #729
- Return
const Type&
instead ofTypeView
and addABSL_ATTRIBUTE_LIFETIME_BOUND
by @copybara-service in #730 - Reimplement C++ parser using
common/ast.h
by @copybara-service in #708 - Swap argument order in
AstVisitor
by @copybara-service in #731 - Switch from pointers to references in
AstVisitor
by @copybara-service in #732 - Split conformance value conversion utility to a separate build target. by @copybara-service in #733
- Temporarily remove new proto bindings by @copybara-service in #737
- Introduce
Reference
by @copybara-service in #736 - Update
IsEmpty
andSize
to returnabsl::StatusOr
by @copybara-service in #739 - Reduce code duplication in
BoolValue
by @copybara-service in #741 - Reduce code duplication in
DoubleValue
by @copybara-service in #742 - Reduce code duplication in
DurationValue
by @copybara-service in #743 - Reduce code duplication in
UintValue
,TimestampValue
,NullValue
,IntValue
by @copybara-service in #747 cel::internal::to_address
by @copybara-service in #753- Fix nullability annotation of
ReferenceCountingMemoryManager::Allocate()
. by @copybara-service in #748 - More comprehensive wrappers for
operator new
andoperator delete
by @copybara-service in #754 - Add metadata header defining bit mask by @copybara-service in #755
- Introduce
cel::Allocator
by @copybara-service in #756 - Use register helpers in the string package. by @copybara-service in #766
- Additional documentation for using FunctionAdapter and RegisterHelper. by @copybara-service in #767
- Add
Allocator::allocate_object<T>
andAllocator::deallocate_object<T>
by @copybara-service in #762 - Add function for enabling select optimization on cel::RuntimeBuilder. by @copybara-service in #771
- Collapse
MemoryManager
into new/delete andproto2::Arena
by @copybara-service in #765 - Rename @cel.attribute to cel.@Attribute to be consistent with other cel-namespaced internal functions. by @copybara-service in #772
cel::common_internal::ByteString
andcel::common_internal::ByteStringView
by @copybara-service in #761- Overhaul
Unique<T>
by @copybara-service in #764 - Add
to_address
support forcel::Unique<T>
by @copybara-service in #769 - Internal change. by @copybara-service in #757
- Stop returning
cel::ValueView
by @copybara-service in #779 - Fork and migrate benchmarks to use modern APIs. by @copybara-service in #778
- Add option for reference counting support benchmarks. by @copybara-service in #780
- Replace uses of
down_cast
on Protobuf messages withstatic_cast
. by @copybara-service in #783 - Make choice of legacy or modern list/map builder configurable. Default to using modern builders when using cel::Runtime and related types. by @copybara-service in #786
- Add a test matcher for the elements of cel::ListValue and cel::MapValue. by @copybara-service in #790
- Add a matcher to test cel::StructValue against a protobuf message. by @copybara-service in #789
- Update docker image to Bazel 7.2.1 by @copybara-service in #795
- Refactor out conformance service interface and options by @copybara-service in #796
- Port conformance test runner to C++ by @copybara-service in #797
- Remove now unused dependencies related to conformance testing by @copybara-service in #798
- Upgrade
ABSL_DCHECK
toABSL_CHECK
in the cache by @copybara-service in #799 - Remove
ABSL_ATTRIBTUE_PURE_FUNCTION
for non-trivial return types by @copybara-service in #800 - Update dependencies to latest versions by @copybara-service in #793
- Fix tracing support for cel.bind() expressions. Prior to this change, tracing might report the wrong value or LOG(ERROR) when accessing the lazily initialized variable for the first time. by @copybara-service in #801
cel::Owned<T>
,cel::Borrowed<T>
,cel::Ownable<T>
,cel::Borrowable<T>
by @copybara-service in #774- Update Dockerfile and cloudbuild.yaml to use smaller container by @copybara-service in #803
- Add support for
proto2::ArenaSafeUniquePtr
tocel::Unique
by @copybara-service in #802 - Upgrade
ABSL_DCHECK
toABSL_CHECK
in the cache by @copybara-service in #805 - Remove
ABSL_ATTRIBUTE_PURE_FUNCTION
from cache getters by @copybara-service in #806 - Remove more
ABSL_ATTRIBUTE_PURE_FUNCTION
by @copybara-service in #808 - Propagate
proto2::Arena*
and simplify by usingOwner
andBorrower
to implementOwned<T>
andBorrowed<T>
by @copybara-service in #807 - Fixing the CelMap to string operator to gracefully handle invalid keys. by @copybara-service in #804
- Remove
ValueView
fromextensions/...
by @copybara-service in #812 - Remove parts of
ValueView
fromcommon/...
by @copybara-service in #813 - Remove
ValueView
fromcommon/legacy_value
by @copybara-service in #814 - Make cel::Activation move constructible / assignable. by @copybara-service in #815
- Rollback: Remove
ValueView
entirely by @copybara-service in #817 - Rollback: Remove
ValueView
entirely by @copybara-service in #818 - Handle well known types using protobuf-lite runtime by @copybara-service in #819
- Scrub internal issue TODOs. Currently they mostly map to uncreated issues which aren't particularly helpful. by @copybara-service in #820
- Fix CEL C++ to build when generated messages lack reflection by @copybara-service in #821
- Fold proto-less versions of parsed / checked expressions into the AstImpl. by @copybara-service in #823
- Mark
CelValue::CreateMessageWrapper
andCelValue::MessageWrapperOrDie
as deprecated by @copybara-service in #826 - Mark
MessageWrapper
as deprecated by @copybara-service in #828 - Make
PortableFunctionAdapter
an alias toFunctionAdapter
by @copybara-service in #825 - moves vector operations to a location where they're operating on complete types by @copybara-service in #829
- Implement remainder of math function extensions by @copybara-service in #830
- Consolidate iterative lazy slot initialization into a single step by @copybara-service in #833
- Cleanup
cel::BoolValue
by @copybara-service in #836 - Cleanup
cel::UintValue
by @copybara-service in #842 - Cleanup
cel::IntValue
by @copybara-service in #839 - Cleanup
cel::DoubleValue
by @copybara-service in #837 - Cleanup
cel::DurationValue
by @copybara-service in #838 - Cleanup
cel::NullValue
by @copybara-service in #840 - Cleanup
cel::TimestampValue
by @copybara-service in #841 - Remove
Value::swap
by @copybara-service in #845 - Remove
Value::GetSerializedSize
by @copybara-service in #844 - Add
Value::Enum
methods for dynamic and generated protobuf enums by @copybara-service in #835 - Remove
Value::Serialize
,Value::GetTypeUrl
, andValue::ConvertToAny
by @copybara-service in #846 - Add
ClearSlotsStep
by @copybara-service in #847 - Remove
cel::TypeView
by @copybara-service in #848 - Silence build warnings. by @copybara-service in #850
- Add minimal and testing descriptor pools by @copybara-service in #852
- Add utility for getting generated message type name by @copybara-service in #853
- Include identity functions in the standard definitions by @copybara-service in #851
- Make
StructType
a composed type by @copybara-service in #849 - Mark non-modifying container algorithms as constexpr for C++20. by @copybara-service in #824
- No public description by @copybara-service in #855
- Consolidate type kind checking and casting by @copybara-service in #856
- Delete now unused
SizedInputView
by @copybara-service in #860 - Implement a basic string pool by @copybara-service in #857
- Fix typo in ast_rewrite.h comment by @copybara-service in #861
- Add template helper for indexing ConstantKind by type. by @copybara-service in #858
- Remove
cel::Any
by @copybara-service in #862 - Overhaul
cel::Type
by @copybara-service in #863 - Implement
TypePool
by @copybara-service in #864 - Add
EnumType
which covers the enum proposal, which is type only by @copybara-service in #865 - Make
Type
always valid by @copybara-service in #866 - Implement parts of
cel.@block
in C++ evaluator by @copybara-service in #868 - Add internal testing helpers for textproto by @copybara-service in #869
- No public description by @copybara-service in #873
- Add
cel::SetAnyValueFromCord
by @copybara-service in #875 - Internal change. by @copybara-service in #877
- Upgrade
StructTypeField
to launderproto2::FieldDescriptor
by @copybara-service in #872 - Add a warning about calling the parser during C++ static initialization. by @copybara-service in #878
- Add missing identity functions for duration and timestamp by @copybara-service in #880
- Update
cel.@block
implementation in C++ to handle comprehensions by @copybara-service in #879 - Add unit tests for
cel.@block
by @copybara-service in #882 - Add skeletons for message-based values by @copybara-service in #886
- Make Activation move-able like its parent, BaseActivation. by @copybara-service in #887
ArenaString
by @copybara-service in #881- Add
@com_google_cel_spec//proto/cel/expr
to testing descriptor pool by @copybara-service in #884 - Switch to open source status matchers by @copybara-service in #888
- No public description by @copybara-service in #891
- Introduce better
Value::Is
,Value::As
, and explicit conversion overloads by @copybara-service in #890 - Output descriptor differences when ValidateStandardMessageType fails. by @copybara-service in #889
- Remove some deadcode by @copybara-service in #896
- No public description by @copybara-service in #895
ParsedMessageValue
stub outStructValue
by @copybara-service in #897- Remove static_assert that checks the default new alignment. by @copybara-service in #902
ParsedRepeatedFieldValue
stub outListValue
by @copybara-service in #898- No public description by @copybara-service in #894
ParsedMapFieldValue
stub outMapValue
by @copybara-service in #899ParsedJsonMapValue
stub outMapValue
by @copybara-service in #901- Intergate
ParsedMessageValue
andMessageValue
into theValue
hierarchy by @copybara-service in #905 - Integrate
ParsedMapFieldValue
,ParsedJsonMapValue
,ParsedRepeatedFieldValue
, andParsedJsonListValue
into theValue
hierarchy by @copybara-service in #906 - Remove
LegacyAnyPackingApis
by @copybara-service in #914 - Add interfaces and coordinating types for type checker. by @copybara-service in #915
- Wire stub implementation for type checker into conformance. Only runs in "dashboard" mode. by @copybara-service in #822
- Expose making reference counted strings internally by @copybara-service in #918
- Add basic name resolution for C++ type checker. by @copybara-service in #843
- Prepare for
google::protobuf::MapKey
to no longer own string keys by @copybara-service in #922 - Remove implicit constructor from
cel::ErrorValue
by @copybara-service in #926 - Explicitly delete implicitly deleted constructor by @copybara-service in #929
- Don't ABSL_CONST_INIT with constexpr by @copybara-service in #927
- Unified well known type handling by @copybara-service in #910
- Mark unused parameter as such by @copybara-service in #928
- Add standard library declarations for C++ type checker. by @copybara-service in #916
- Update Ast Type operator== to correctly handle comparing TypeTypes by @copybara-service in #919
- No public description by @copybara-service in #930
- Add basic support for type inferencing in CEL C++ type checker for literals and loops. Follow-ups will add support for function overloads and struct types. by @copybara-service in #920
- Unified well known type unwrapping by @copybara-service in #923
- Replacement for converting messages to structured JSON by @copybara-service in #925
- Switch from
static_cast
to member functions for conversion by @copybara-service in #935 - Add support for basic function overload resolution. Follow-up will address resolving parameterized types. by @copybara-service in #924
- Unified JSON equality and debug strings by @copybara-service in #932
ParsedJsonListValue
andParsedJsonMapValue
by @copybara-service in #933- Forward
cel::InstanceOf
,cel::Cast
, andcel::As
to member functions by @copybara-service in #936 - Fix
Unique::PreRelease
to cast away constness before callinggoogle::protobuf::Arena::Own
by @copybara-service in #939 - Switch from static_cast to member functions for conversion 2 by @copybara-service in #938
- Remove deadcode by @copybara-service in #940
- Add support for type parameter inferencing by @copybara-service in #931
- Add initial support checking message creations sub-expressions in C++ type checker. Add coverage for special-cased well-known types. by @copybara-service in #934
- Add
Is
,As
, andGet
forParsedMapFieldValue
andParsedRepeatedFieldValue
by @copybara-service in #946 - Add support for checking field accesses. by @copybara-service in #937
- Implement CEL equality in terms of protocol buffer messages by @copybara-service in #944
- Add support for looking up enum values in cel::TypeIntrospector by @copybara-service in #942
- Internal change by @copybara-service in #949
- Move
&
overload to be inline by @copybara-service in #952 - Internal change by @copybara-service in #948
- Convert missed
explicit operator
overload by @copybara-service in #951 - Add support for looking up type constants and enums. by @copybara-service in #943
- Add type checking to conformance tests. by @copybara-service in #945
- Further deduplicate code by @copybara-service in #954
- Update FunctionDecl to maintain insertion order for Overloads. by @copybara-service in #955
- Initialize
google.protobuf.FieldMask
reflection if the descriptor is present by @copybara-service in #959 - Replace third-party message values with first-party message values by @copybara-service in #956
- Utilize zero-copy
proto2::MapKey
when available by @copybara-service in #962 - Do not create our own dynamic message factory by @copybara-service in #963
- Add library declaring CEL optional definitions for the C++ type checker. by @copybara-service in #957
- Add
DCHECK
toArenaAllocator
andArenaAllocatorFor
by @copybara-service in #966 - Add enums representing active kind for cel::Expr and cel::Constant. by @copybara-service in #965
- Remove weak symbols from CEL by @copybara-service in #968
- Fix issue location calculation and display to match Go implementation. by @copybara-service in #972
- Fix type declaration for 'type' (type(type) instead of type(A)) by @copybara-service in #973
- Remove type annotation for optional select (the field name string does not describe a runtime value). by @copybara-service in #974
- Add support for dumping checked ASTs in the baseline test format used by CEL Java library. by @copybara-service in #975
- Mark legacy container methods that do not take an arena as deprecated by @copybara-service in #976
- Move legacy runtime type conversion by @copybara-service in #981
- Make
NewDeleteAllocator
andArenaAllocator
distinct types by @copybara-service in #979 - Update assignability to follow legacy nullability behaviors. by @copybara-service in #977
- Fix bug in
CreateListDirectStep
which attempts to add unknowns to a list by @copybara-service in #982 - Remove last vestiges of explicit conversion operators by @copybara-service in #986
- Change
NewDeleteAllocator<void>
fromstruct
toclass
by @copybara-service in #991 - Change MessageToJsonState from struct to class by @copybara-service in #993
- Add mutable list values and mutable map values by @copybara-service in #990
- Optimize mutable list append to avoid creating temporary single element list by @copybara-service in #996
- Move struct value builder into
common/
by @copybara-service in #995 - Cleanup now unused code from the migration by @copybara-service in #999
- Prepare code for breaking change in Protobuf C++ API. by @copybara-service in #1000
- Add variable for dyn type (e.g.
type(dyn(1)) == dyn
) by @copybara-service in #989 - Return somewhat expected errors as
cel::ErrorValue
instead ofabsl::Status
by @copybara-service in #1005 - Silence -Winvalid-offsetof for cel::common_internal::ReferenceCountedString by @copybara-service in #1006
- Migrate remaining well known type handling and remove deadcode by @copybara-service in #1001
- Update assignability check to allow wrapper types to match their corresponding primitives. by @copybara-service in #1007
- Update TypeChecker builder to error when adding overloads that overlap with built-in macros. by @copybara-service in #1008
- Restore legacy behavior for ignoring overflows in duration/timestamp by @copybara-service in #1010
- Mandate passing
proto2::DescriptorPool
to the type checker by @copybara-service in #1012 - Move
CheckerOptions
to thecel
namespace by @copybara-service in #1013
Full Changelog: v0.9.0...v0.10.0