Features
- Added support for subsetting standard library definitions in
TypeChecker
andCompiler
.
Optimizations
- Value stack was rewritten to reduce value churn cost during evaluation.
Bug Fixes
Type Checking
- stdlib definitions that didn't match CEL Spec were removed
- Type inference was updated to correctly handle comprehension results and list(enum)
Runtime
- Added additional checks for malformed ASTs that could lead to undefined behavior.
Other
- Misc portability and compiler warning fixes
- Cleanups / renames
Commit Log
- Optimize
EvaluatorStack
by @copybara-service in #1413 - Check for unexpected target (function call receiver) expressions in builtin operator handlers. by @copybara-service in #1414
- Optimize
EvaluatorStack
by @copybara-service in #1415 - Temporarily allow receiver call structured index calls. by @copybara-service in #1416
- Upgrade
ArenaStringPool
to handlestd::string
andabsl::Cord
by @copybara-service in #1412 - No public description by @copybara-service in #1402
- No public description by @copybara-service in #1401
- No public description by @copybara-service in #1404
- No public description by @copybara-service in #1403
- Scrub internal issue reference. by @copybara-service in #1420
- Update doc for constant folding to describe behavior when no constant arena is provided. by @copybara-service in #1419
- Move conformance testing matchers into separate file to facilitate reuse by @copybara-service in #1394
- Rename
NativeTypeId
toTypeInfo
by @copybara-service in #1418 - Remove
TypeManager
forward declarations by @copybara-service in #1425 - Fix conformance runner post refactor by @copybara-service in #1427
- Add support for converting cel::Type to proto. by @copybara-service in #1426
- Make TypeCheckerBuilder::Build() non-destructive. by @copybara-service in #1421
- Fix EnumType handling in cel::TypeToProto. by @copybara-service in #1435
- Make CompilerBuilder::Build() non-destructive. by @copybara-service in #1423
- Make ParserLibrary behave more consistently with CheckerLibrary. by @copybara-service in #1424
- Support for declaring a subset to filter definitions from a checker library. by @copybara-service in #1422
- Add support for subsetting libraries in CompilerBuilder. by @copybara-service in #1438
- Fix a bug where type checker would treat the type assignment for the result of a comprehension as flexible / possible to widen. by @copybara-service in #1440
- Add AddUnknownPattern() and AddMissingPattern(). by @copybara-service in #1442
- Remove declarations for 'timestamp' and 'duration' as type identifiers. by @copybara-service in #1445
- Fix handling for repeated enum fields by @copybara-service in #1441
- remove default move constructor declaration for type_registry to fix compiler warning. Intended to be managed as part of a runtime environment managed by a smart pointer. by @copybara-service in #1461
- Export exercise4 for codelab. by @copybara-service in #1457
- Misc codelab cleanup: by @copybara-service in #1458
- Add debug checks for containers unexpectedly returning unknown values by @copybara-service in #1462
- Update to setup instructions for codelab. Add a Dockerfile as a reference for setup. by @copybara-service in #1465
- Implement C++ utility for CEL field extraction. by @copybara-service in #1460
- Migrate the regex_functions extension to the new cel::Value type. by @copybara-service in #1459
- No public description by @copybara-service in #1463
- Automated Code Change by @copybara-service in #1467
- Introduce math.sqrt to CEL C++ math extension by @copybara-service in #1464
- copybara script updates to better support import. no functional changes. by @copybara-service in #1474
- internal by @copybara-service in #1480
- Function for conversion of string to bool by @copybara-service in #1477
- cel_cc_embed: Open in file in binary mode by @jchadwick-buf in #1443
- Dependency fixes for exporting. no functional changes. by @copybara-service in #1476
- Avoid nesting status macros by @jchadwick-buf in #1450
- Prefer ptrdiff_t over ssize_t by @jchadwick-buf in #1448
- Update exercise2 to use the type checker and demonstrate configuring variables. by @copybara-service in #1466
- Automated Code Change by @copybara-service in #1483
ByteString
: Adjust bitfields for MSVC by @jchadwick-buf in #1446- Add utility for formatting type names for display in error messages. by @copybara-service in #1486
- Avoid including time_util in time.h by @jchadwick-buf in #1485
- internal by @copybara-service in #1498
- Check that jump steps were included into the program plan before trying to by @copybara-service in #1506
- Add option for using protobuf WKTs as context decl in type checking. by @copybara-service in #1449
- Add support for updating variable declaration on cel::TypeCheckerBuilder by @copybara-service in #1539
- Add support for injecting a custom attribute matcher. by @copybara-service in #1536
- Update type checker decls for extension packages. by @copybara-service in #1540
- Fix parts of CEL C++ to be more compatible with Windows-based toolchains by @copybara-service in #1553
- Fix typo: "AddConatainerOps" to "AddContainerOps". by @copybara-service in #1578
- Add RegexCheckerLibrary for regex functions by @copybara-service in #1555
- Suppress gcc warning for direct memory write in value_variant.h. by @copybara-service in #1583
- Add ListsCheckerLibrary for list functions by @copybara-service in #1565
- Fix a typo in the description of IsDone() method. by @copybara-service in #1590
- Add CompilerLibraries for lists and strings extensions. by @copybara-service in #1579
- Suppress clang warning for direct memory write in value_variant.h. by @copybara-service in #1594
Full Changelog: v0.11.0...v0.12.0