Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

An omnibus of improvements #131

Open
wants to merge 18 commits into
base: main
Choose a base branch
from
Open

Conversation

sean-parent
Copy link
Member

Changes (breaking):

  • Functions are now first class in CEL.
    • Use of variables with old function names will generate a warning (logged to clog).
  • Built-in functions are now accessed via std.<function-name>, i.e., std.min(a, b, c)
  • Error reporting now follows the GNU error reporting standard, and will show as links in most terminals.
  • sheet_t::get() has been renamed sheet_t::cell_value() and now returns an optional instead of throwing an exception if the named cell is not found.

Improvements:

  • Improved error messages and error location reporting.
  • added promote_t as alias for promote::type.
  • added unit tests for error reporting in lex_stream and expression_parser.

Project Structure:

  • Moved from vcpkg to cmake fetch context (via CPM).
  • Item in unit_test directory moved into parent test directory.

Numerous code improvements and bug fixes. Start of clang-tidy support (holding off until I remove overlapping libraries in favor of stlab libraries).

sean-parent and others added 12 commits December 20, 2024 16:09
- Adding support for first-class functions.
- Improved error formatting following GNU standard.
Todo:
- Use the cast function for all casts in the VM. Check for casts in parsers, Eve, and Adam that could also be improved.
- Investigate the snipped feature for errors and remove or improve it.
- Support cascading error reporting, not just backtrace data.
- Embed line/position information in the expression sequence to improve error reporting.
- Are there places where errors could be reported as a range?
- Removing vspkg in favor of CMake for boost dependency.
Cleaning up sha code use of size_t vs uint64_t.
- Improved type mismatch error messages.
- Better windows launch support in VSCode
- added promote_t<T> as alias for promote<T>::type.
adam.hpp - rename `get` to `cell_value` - result is now an `optional`
fixed bugs in lex
improved error reporting and bug fix on line tracking
more work on first class functions and improving function lookup.
added unit test for expression_parser (currently just a shell).
Adding better error reporting and cleaning up parser code.
- improved error reporting
- code simplified
- start of clang-tidy support (issues with copy_on_write but plan to move to stlab/libraries copy_on_write after this PR.
- removed the `unit_test` directory - moving all tests into the `test` directory.
- completed error tests for expression parser
- fixed additional bugs in expression parser error reporting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant