openscad-cpp-evaluator 1.20.1__tar.gz → 1.20.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/user_calls.cpp +8 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_coverage.cpp +27 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/README.md +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope_table.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_strict_commas.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/coverage.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/resources/fonts/LiberationSans-Bold.ttf +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/resources/fonts/LiberationSans-BoldItalic.ttf +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/resources/fonts/LiberationSans-Italic.ttf +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/.DS_Store +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_include_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/uv.lock +0 -0
|
@@ -691,6 +691,14 @@ void Evaluator::recordTailCallHop(const std::string& calleeName, const oscad::AS
|
|
|
691
691
|
// and never see the NEW one at all.
|
|
692
692
|
noteActiveDeclExit(frame.declNode);
|
|
693
693
|
noteActiveDeclEnter(&calleeDecl);
|
|
694
|
+
// Body coverage: this declaration was entered, exactly as in
|
|
695
|
+
// enterUserCall. A hop is the ONLY way into a tail-called body, so
|
|
696
|
+
// without this a function reached only in tail position reports its
|
|
697
|
+
// body as never run while its own branch arms report hits -- which
|
|
698
|
+
// reads as "the condition was not covered but the branches were".
|
|
699
|
+
// BOSL2's _str_split_recurse is the shape that shows it: recursion
|
|
700
|
+
// through a ternary arm is a tail call every time.
|
|
701
|
+
coverHit(calleeDecl);
|
|
694
702
|
frame.name = calleeName;
|
|
695
703
|
frame.declNode = &calleeDecl;
|
|
696
704
|
frame.declPosition = &calleeDecl.position();
|
|
@@ -168,6 +168,33 @@ TEST(Coverage, VmAndInterpreterAgree) {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
+
// A tail call hops the frame instead of pushing one, so it never reaches
|
|
172
|
+
// enterUserCall -- where the body hit is recorded. A function reached ONLY
|
|
173
|
+
// in tail position therefore reported its body as never run while its own
|
|
174
|
+
// ternary arms reported hits, which reads on screen as "the condition is
|
|
175
|
+
// uncovered but both branches are covered". BOSL2's _str_split_recurse is
|
|
176
|
+
// the shape that shows it: recursion through a ternary arm is a tail call
|
|
177
|
+
// every time.
|
|
178
|
+
TEST(Coverage, TailCalledBodyIsCounted) {
|
|
179
|
+
const std::string code =
|
|
180
|
+
"function inner(i) = i == 0 ? \"done\" : inner(i-1);\n"
|
|
181
|
+
"function tail_caller(i) = inner(i);\n"
|
|
182
|
+
"echo(tail_caller(2));\n";
|
|
183
|
+
for (bool useVm : {true, false}) {
|
|
184
|
+
ScopedVm vm(useVm);
|
|
185
|
+
const CoverageResult r = cover(code);
|
|
186
|
+
std::uint32_t innerBody = 0, arms = 0;
|
|
187
|
+
for (const CoverageSpan& s : r.spans) {
|
|
188
|
+
if (s.kind == CoverageKind::Body && s.line == 1) innerBody = s.hits;
|
|
189
|
+
if (s.kind == CoverageKind::Branch && s.line == 1) arms += s.hits;
|
|
190
|
+
}
|
|
191
|
+
EXPECT_GT(innerBody, 0u) << (useVm ? "VM" : "interpreter")
|
|
192
|
+
<< ": a body reached only by tail calls still ran";
|
|
193
|
+
EXPECT_EQ(innerBody, arms) << (useVm ? "VM" : "interpreter")
|
|
194
|
+
<< ": every entry takes exactly one arm";
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
171
198
|
TEST(Coverage, PerFilePercentages) {
|
|
172
199
|
const CoverageResult r = cover(
|
|
173
200
|
"function f(x) = x > 0 ? 1 : 2;\n" // body hit; arms: 1 of 2
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/.github/workflows/wheels.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/examples/minimal_debugger.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/builtins/primitives_3d.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/src/text/freetype_font_provider.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_children_separate.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_dxf_svg_import.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_include_cache.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_python_bindings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.1 → openscad_cpp_evaluator-1.20.2}/tests/test_viewport_params.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|