Skip to content

v0.10.0

Latest
Compare
Choose a tag to compare
@jnthntatum jnthntatum released this 25 Oct 16:55

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 in ProtoStructValueBuilder 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 and ConvertToJson for list and map 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 include ValueFactory& 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, and NativeTypeId 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 and DoubleTypeView by @copybara-service in #390
  • DurationType and DurationTypeView by @copybara-service in #392
  • Add benchmark tag to sets_functions_benchmark_test by @copybara-service in #406
  • IntValue and IntValueView by @copybara-service in #419
  • Use absl::Span for returns in attributes by @copybara-service in #426
  • TimestampValue and TimestampValueView by @copybara-service in #421
  • Delete unused base/type_registry.h by @copybara-service in #429
  • UnknownValue and UnknownValueView 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 and OpaqueTypeView 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 and MapValueView 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 to ProcessLocalTypeCache by @copybara-service in #458
  • Prevent binding to temporaries in TypeView and friends by @copybara-service in #461
  • OpaqueValue, OpaqueValueView, OptionalValue, and OptionalValueView 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, and Unqiue 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, and ValueCache by @copybara-service in #477
  • Rename memory_manager() to GetMemoryManager() 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 #486
  • ErrorValue serialization by @copybara-service in #487
  • UnknownValue serialization by @copybara-service in #488
  • NullValue serialization by @copybara-service in #489
  • BytesValue serialization by @copybara-service in #490
  • DoubleValue serialization by @copybara-service in #491
  • DurationValue serialization by @copybara-service in #492
  • IntValue serialization by @copybara-service in #493
  • StringValue serialization by @copybara-service in #494
  • TimestampValue serialization by @copybara-service in #495
  • TypeValue serialization by @copybara-service in #496
  • UintValue serialization by @copybara-service in #497
  • OpaqueValue 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 and MapValue serialization by @copybara-service in #501
  • Introduce TypeManager and ValueManager 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 into type and value 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() with GetType(TypeManager&) and GetTypeName() by @copybara-service in #518
  • Split value_provider.cc into separate files by @copybara-service in #519
  • Remove EnumType and EnumValue by @copybara-service in #521
  • Add additional benchmark cases for nested bind definitions. by @copybara-service in #514
  • StructValue and StructValueView 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 and IsZeroValue 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() to GetMemoryManager() by @copybara-service in #542
  • Add proto2::Arena* to CreateTypeValueFromView 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 to TypeProvider and ValueProvider by @copybara-service in #548
  • Make TypeProvider and ValueProvider 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 and ValueProvider -> TypeReflector by @copybara-service in #552
  • Drop inheritance of cel::TypeProvider by @copybara-service in #553
  • Detangle legacy_type_adapter from base/ 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 #564
  • cel::internal::Overloaded -> absl::Overload by @copybara-service in #567
  • Miscellaneous changes by @copybara-service in #565
  • Update ProtobufDescriptorProvider::ProvideLegacyTypeInfo to return absl::nullopt instead of nullptr 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 and MapValue 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 change std::pair<uint8_t, uint8_t> to std::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> with T 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 and base/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 and Kind::kEnum by @copybara-service in #590
  • Remove unused methods from migration by @copybara-service in #591
  • Add optimization hints to EvaluatorStack and switch some to FATAL by @copybara-service in #594
  • Devirtualize ExpressionStep::id and ExpressionStep::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 to Shared 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 to Json 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 as PiecewiseValueManager 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 and optional.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}, ?> to google.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 enable bindings 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 and optional.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 and google::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} with cel::{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 with common/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 move base/ast.h to common/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 and FunctionType 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 of TypeView and add ABSL_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 and Size to return absl::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 and operator 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> and Allocator::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 and proto2::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 and cel::common_internal::ByteStringView by @copybara-service in #761
  • Overhaul Unique<T> by @copybara-service in #764
  • Add to_address support for cel::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 with static_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 to ABSL_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 to cel::Unique by @copybara-service in #802
  • Upgrade ABSL_DCHECK to ABSL_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 using Owner and Borrower to implement Owned<T> and Borrowed<T> by @copybara-service in #807
  • Fixing the CelMap to string operator to gracefully handle invalid keys. by @copybara-service in #804
  • Remove ValueView from extensions/... by @copybara-service in #812
  • Remove parts of ValueView from common/... by @copybara-service in #813
  • Remove ValueView from common/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 and CelValue::MessageWrapperOrDie as deprecated by @copybara-service in #826
  • Mark MessageWrapper as deprecated by @copybara-service in #828
  • Make PortableFunctionAdapter an alias to FunctionAdapter 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, and Value::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 launder proto2::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 out StructValue by @copybara-service in #897
  • Remove static_assert that checks the default new alignment. by @copybara-service in #902
  • ParsedRepeatedFieldValue stub out ListValue by @copybara-service in #898
  • No public description by @copybara-service in #894
  • ParsedMapFieldValue stub out MapValue by @copybara-service in #899
  • ParsedJsonMapValue stub out MapValue by @copybara-service in #901
  • Intergate ParsedMessageValue and MessageValue into the Value hierarchy by @copybara-service in #905
  • Integrate ParsedMapFieldValue, ParsedJsonMapValue, ParsedRepeatedFieldValue, and ParsedJsonListValue into the Value 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 and ParsedJsonMapValue by @copybara-service in #933
  • Forward cel::InstanceOf, cel::Cast, and cel::As to member functions by @copybara-service in #936
  • Fix Unique::PreRelease to cast away constness before calling google::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, and Get for ParsedMapFieldValue and ParsedRepeatedFieldValue 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 to ArenaAllocator and ArenaAllocatorFor 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 and ArenaAllocator 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> from struct to class 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 of absl::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 the cel namespace by @copybara-service in #1013

Full Changelog: v0.9.0...v0.10.0