v0.10.0
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.Anyfields inProtoStructValueBuilderby @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_urlby @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
ConvertToAnyandConvertToJsonforlistandmapby @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.ccfor 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::Hasto 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::Macrocleanup 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, andNativeTypeIdby @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
DoubleTypeandDoubleTypeViewby @copybara-service in #390DurationTypeandDurationTypeViewby @copybara-service in #392- Add
benchmarktag tosets_functions_benchmark_testby @copybara-service in #406 IntValueandIntValueViewby @copybara-service in #419- Use
absl::Spanfor returns in attributes by @copybara-service in #426 TimestampValueandTimestampValueViewby @copybara-service in #421- Delete unused
base/type_registry.hby @copybara-service in #429 UnknownValueandUnknownValueViewby @copybara-service in #428- Remove ability to modify
EnumTypeequality and hashing by @copybara-service in #432 - Add least and greatest macros for Math extension library by @copybara-service in #431
- Rework
OpaqueTypeandOpaqueTypeViewby @copybara-service in #434 - Allow
Typeto be default constructible by @copybara-service in #436 - Allow
Valueto be default constructible by @copybara-service in #437 - Add
TypeFactoryby @copybara-service in #439 - Update Qualify interface to optionally return the number of qualifiers applied. by @copybara-service in #405
MapValueandMapValueViewby @copybara-service in #454- Allow
OptionalTypeto be default constructed by @copybara-service in #456 - Improve hashing of
Type,TypeView, and friends by @copybara-service in #460 - Refactor
CommonTypestoProcessLocalTypeCacheby @copybara-service in #458 - Prevent binding to temporaries in
TypeViewand friends by @copybara-service in #461 OpaqueValue,OpaqueValueView,OptionalValue, andOptionalValueViewby @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
ProcessLocalValueCacheby @copybara-service in #468 - Update protobuf type adapter to support select optimization through map and repeated fields. by @copybara-service in #438
- Update
ValueViewand 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, andUnqiueto 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, andValueCacheby @copybara-service in #477 - Rename
memory_manager()toGetMemoryManager()by @copybara-service in #478 - Introduce
ValueFactoryby @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
BoolValueserialization by @copybara-service in #486ErrorValueserialization by @copybara-service in #487UnknownValueserialization by @copybara-service in #488NullValueserialization by @copybara-service in #489BytesValueserialization by @copybara-service in #490DoubleValueserialization by @copybara-service in #491DurationValueserialization by @copybara-service in #492IntValueserialization by @copybara-service in #493StringValueserialization by @copybara-service in #494TimestampValueserialization by @copybara-service in #495TypeValueserialization by @copybara-service in #496UintValueserialization by @copybara-service in #497OpaqueValueserialization by @copybara-service in #498- Upgrade ANTLR and enable Abseil for ANTLR by @copybara-service in #503
- Add JSON conversion to
Valueand friends by @copybara-service in #500 ListValueandMapValueserialization by @copybara-service in #501- Introduce
TypeManagerandValueManagerby @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
dataintotypeandvalueby @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_32by @copybara-service in #513 - Avoid mixing iterators and pointers due to MSVC by @copybara-service in #512
- Update arguments in
ValueManagerby @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.ccinto separate files by @copybara-service in #519 - Remove
EnumTypeandEnumValueby @copybara-service in #521 - Add additional benchmark cases for nested bind definitions. by @copybara-service in #514
StructValueandStructValueViewby @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
Unknownby @copybara-service in #531- Split list/map into parsed/legacy by @copybara-service in #530
- Update
ListValue::ForEachto additionally pass indices for convinience by @copybara-service in #529 - Tag benchmark so CI doesn't run it by @copybara-service in #536
- Remove
GetMemoryManagerfrom providers by @copybara-service in #535 - Update
MapValue::Hasby @copybara-service in #528 EqualandIsZeroValueby @copybara-service in #532- Update
StructValueBuilder::Buildby @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*toCreateTypeValueFromViewby @copybara-service in #543 - Implement type introspection for well known types by @copybara-service in #546
- Add
absl::optionalto various return types by @copybara-service in #547 - Add
consttoTypeProviderandValueProviderby @copybara-service in #548 - Make
TypeProviderandValueProviderno 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->TypeIntrospectorandValueProvider->TypeReflectorby @copybara-service in #552- Drop inheritance of
cel::TypeProviderby @copybara-service in #553 - Detangle
legacy_type_adapterfrombase/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::Qualifyby @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.hto assist migration by @copybara-service in #560 - Various miscellaneous fixes by @copybara-service in #562
- Update Abseil to
Abseil LTS 20240116.0by @copybara-service in #563 cel::internal::NoDestructor->absl::NoDestructorby @copybara-service in #564cel::internal::Overloaded->absl::Overloadby @copybara-service in #567- Miscellaneous changes by @copybara-service in #565
- Update
ProtobufDescriptorProvider::ProvideLegacyTypeInfoto returnabsl::nulloptinstead ofnullptrby @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
ListValueandMapValuefunctions 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>->Tby @copybara-service in #568- Add
ABSL_CONST_INITand 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>withTby @copybara-service in #576 - Kill
cel::Handleentirely by @copybara-service in #581 - Remove
base/memory.hby @copybara-service in #582 - Add support for extension tags in internal ast representation. by @copybara-service in #585
- Remove
base/type.handbase/value.hby @copybara-service in #587 - Add support for converting proto extension tags to/from the internal ast representation. by @copybara-service in #584
- Remove
Kind::kWrapperandKind::kEnumby @copybara-service in #590 - Remove unused methods from migration by @copybara-service in #591
- Add optimization hints to
EvaluatorStackand switch some toFATALby @copybara-service in #594 - Devirtualize
ExpressionStep::idandExpressionStep::ComesFromAstby @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_BOUNDtoSharedby @copybara-service in #601 - Add aliasing constructor to
Sharedby @copybara-service in #602 - Add
cel::StaticCastby @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.Anyutilities by @copybara-service in #610 - Move
IsProtoEnumto 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::IsStringLiteralby @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::ConvertToJsonObjectby @copybara-service in #625 - Introduce specialized interface for
AnytoJsonconversion by @copybara-service in #627 - Protocol buffer
AnyToJsonConverterimplementation 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
JsonValueManagerasPiecewiseValueManagerby @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_typeby @copybara-service in #657 - No public description by @copybara-service in #661
- Implement runtime support for optionals by @copybara-service in #660
- Update
optional.orandoptional.orValueto short-circuit upon an error by @copybara-service in #664 - Implement
encodersextension 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.Structby @copybara-service in #668 - Introduce
MacroRegistryby @copybara-service in #671 - Migrate
math_extto modern values by @copybara-service in #673 - Minor modifications to
common/source.hby @copybara-service in #674 - Remove
ABSL_ATTRIBUTE_PURE_FUNCTIONby @copybara-service in #678 - Further restrict default parser limits by @copybara-service in #676
- Make use of
MacroRegistryand enablebindingsconformance tests by @copybara-service in #679 - Enable
mathconformance tests by @copybara-service in #680 - Upgrade interop to handle modern values by @copybara-service in #669
- Enable
proto2conformance 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.orandoptional.orValuewhen 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::Exprby @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::Exprandgoogle::api::expr::Exprby @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_kindby @copybara-service in #714 - Replace more of
base/base_internal/expr.hwithcommon/ast.hby @copybara-service in #716 - Make
Valuedefault constructible, copyable, and moveable. by @copybara-service in #717 - Move
Exprand friends to a separate target and movebase/ast.htocommon/ast.hby @copybara-service in #718 - Make
Typedefault constructible, copyable, and moveable. by @copybara-service in #719 - Add gtest matchers for OptionalValue by @copybara-service in #724
- Add
TypeParamTypeandFunctionTypeby @copybara-service in #721 - Add specialization for default cel::Program implementation if the program is fully recursive. by @copybara-service in #726
- Remove
subexprargument to{Pre,Post}VisitComprehensionSubexpressionby @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
Declhierarchy 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 ofTypeViewand addABSL_ATTRIBUTE_LIFETIME_BOUNDby @copybara-service in #730 - Reimplement C++ parser using
common/ast.hby @copybara-service in #708 - Swap argument order in
AstVisitorby @copybara-service in #731 - Switch from pointers to references in
AstVisitorby @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
Referenceby @copybara-service in #736 - Update
IsEmptyandSizeto returnabsl::StatusOrby @copybara-service in #739 - Reduce code duplication in
BoolValueby @copybara-service in #741 - Reduce code duplication in
DoubleValueby @copybara-service in #742 - Reduce code duplication in
DurationValueby @copybara-service in #743 - Reduce code duplication in
UintValue,TimestampValue,NullValue,IntValueby @copybara-service in #747 cel::internal::to_addressby @copybara-service in #753- Fix nullability annotation of
ReferenceCountingMemoryManager::Allocate(). by @copybara-service in #748 - More comprehensive wrappers for
operator newandoperator deleteby @copybara-service in #754 - Add metadata header defining bit mask by @copybara-service in #755
- Introduce
cel::Allocatorby @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
MemoryManagerinto new/delete andproto2::Arenaby @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::ByteStringandcel::common_internal::ByteStringViewby @copybara-service in #761- Overhaul
Unique<T>by @copybara-service in #764 - Add
to_addresssupport forcel::Unique<T>by @copybara-service in #769 - Internal change. by @copybara-service in #757
- Stop returning
cel::ValueViewby @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_caston 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_DCHECKtoABSL_CHECKin the cache by @copybara-service in #799 - Remove
ABSL_ATTRIBTUE_PURE_FUNCTIONfor 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::ArenaSafeUniquePtrtocel::Uniqueby @copybara-service in #802 - Upgrade
ABSL_DCHECKtoABSL_CHECKin the cache by @copybara-service in #805 - Remove
ABSL_ATTRIBUTE_PURE_FUNCTIONfrom cache getters by @copybara-service in #806 - Remove more
ABSL_ATTRIBUTE_PURE_FUNCTIONby @copybara-service in #808 - Propagate
proto2::Arena*and simplify by usingOwnerandBorrowerto 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
ValueViewfromextensions/...by @copybara-service in #812 - Remove parts of
ValueViewfromcommon/...by @copybara-service in #813 - Remove
ValueViewfromcommon/legacy_valueby @copybara-service in #814 - Make cel::Activation move constructible / assignable. by @copybara-service in #815
- Rollback: Remove
ValueViewentirely by @copybara-service in #817 - Rollback: Remove
ValueViewentirely 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::CreateMessageWrapperandCelValue::MessageWrapperOrDieas deprecated by @copybara-service in #826 - Mark
MessageWrapperas deprecated by @copybara-service in #828 - Make
PortableFunctionAdapteran alias toFunctionAdapterby @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::BoolValueby @copybara-service in #836 - Cleanup
cel::UintValueby @copybara-service in #842 - Cleanup
cel::IntValueby @copybara-service in #839 - Cleanup
cel::DoubleValueby @copybara-service in #837 - Cleanup
cel::DurationValueby @copybara-service in #838 - Cleanup
cel::NullValueby @copybara-service in #840 - Cleanup
cel::TimestampValueby @copybara-service in #841 - Remove
Value::swapby @copybara-service in #845 - Remove
Value::GetSerializedSizeby @copybara-service in #844 - Add
Value::Enummethods for dynamic and generated protobuf enums by @copybara-service in #835 - Remove
Value::Serialize,Value::GetTypeUrl, andValue::ConvertToAnyby @copybara-service in #846 - Add
ClearSlotsStepby @copybara-service in #847 - Remove
cel::TypeViewby @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
StructTypea 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
SizedInputViewby @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::Anyby @copybara-service in #862 - Overhaul
cel::Typeby @copybara-service in #863 - Implement
TypePoolby @copybara-service in #864 - Add
EnumTypewhich covers the enum proposal, which is type only by @copybara-service in #865 - Make
Typealways valid by @copybara-service in #866 - Implement parts of
cel.@blockin 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::SetAnyValueFromCordby @copybara-service in #875 - Internal change. by @copybara-service in #877
- Upgrade
StructTypeFieldto launderproto2::FieldDescriptorby @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.@blockimplementation in C++ to handle comprehensions by @copybara-service in #879 - Add unit tests for
cel.@blockby @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
ArenaStringby @copybara-service in #881- Add
@com_google_cel_spec//proto/cel/exprto 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
ParsedMessageValuestub outStructValueby @copybara-service in #897- Remove static_assert that checks the default new alignment. by @copybara-service in #902
ParsedRepeatedFieldValuestub outListValueby @copybara-service in #898- No public description by @copybara-service in #894
ParsedMapFieldValuestub outMapValueby @copybara-service in #899ParsedJsonMapValuestub outMapValueby @copybara-service in #901- Intergate
ParsedMessageValueandMessageValueinto theValuehierarchy by @copybara-service in #905 - Integrate
ParsedMapFieldValue,ParsedJsonMapValue,ParsedRepeatedFieldValue, andParsedJsonListValueinto theValuehierarchy by @copybara-service in #906 - Remove
LegacyAnyPackingApisby @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::MapKeyto no longer own string keys by @copybara-service in #922 - Remove implicit constructor from
cel::ErrorValueby @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_castto 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
ParsedJsonListValueandParsedJsonMapValueby @copybara-service in #933- Forward
cel::InstanceOf,cel::Cast, andcel::Asto member functions by @copybara-service in #936 - Fix
Unique::PreReleaseto cast away constness before callinggoogle::protobuf::Arena::Ownby @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, andGetforParsedMapFieldValueandParsedRepeatedFieldValueby @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 operatoroverload 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.FieldMaskreflection 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::MapKeywhen 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
DCHECKtoArenaAllocatorandArenaAllocatorForby @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
NewDeleteAllocatorandArenaAllocatordistinct types by @copybara-service in #979 - Update assignability to follow legacy nullability behaviors. by @copybara-service in #977
- Fix bug in
CreateListDirectStepwhich 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>fromstructtoclassby @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::ErrorValueinstead ofabsl::Statusby @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::DescriptorPoolto the type checker by @copybara-service in #1012 - Move
CheckerOptionsto thecelnamespace by @copybara-service in #1013
Full Changelog: v0.9.0...v0.10.0