openscad-cpp-evaluator 0.44.0__tar.gz → 0.45.0__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-0.44.0 → openscad_cpp_evaluator-0.45.0}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/function_builtins.cpp +2 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/bytecode_compiler.cpp +4 -1
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/bytecode_vm.cpp +2 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/expr_eval.cpp +13 -1
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_expr_eval.cpp +24 -11
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_feature_detection.cpp +3 -2
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/README.md +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/uv.lock +0 -0
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/function_builtins.cpp
RENAMED
|
@@ -610,6 +610,8 @@ enum class BuiltinFnId {
|
|
|
610
610
|
// Guarding on supported_feature() is how a script says so out loud.
|
|
611
611
|
const std::unordered_map<std::string, double>& featureLevels() {
|
|
612
612
|
static const std::unordered_map<std::string, double> levels = {
|
|
613
|
+
{"render-expr", 1.0}, // render() in expression position
|
|
614
|
+
{"polyhedron-vnf", 1.0}, // polyhedron(vnf) / polyhedron(object)
|
|
613
615
|
{"separate-children", 1.0}, // children(..., separate=true)
|
|
614
616
|
{"minkowski-diff", 1.0}, // minkowski_difference()
|
|
615
617
|
{"sphere-styles", 1.0}, // sphere(style=)
|
|
@@ -262,7 +262,10 @@ public:
|
|
|
262
262
|
void compileIdentifierLoad(const std::string& name, const oscad::Position& pos, std::vector<Instruction>& out,
|
|
263
263
|
CompileScope& scope, bool warnIfUndef) {
|
|
264
264
|
if (!name.empty() && name[0] == '$') {
|
|
265
|
-
|
|
265
|
+
// `b` is the warn flag -- a $-name reached through the
|
|
266
|
+
// is_undef() probe must stay quiet, same as LoadFreeNoWarn does
|
|
267
|
+
// for a plain one.
|
|
268
|
+
out.push_back({Op::LoadDyn, internName(name), warnIfUndef ? 1 : 0, &pos});
|
|
266
269
|
} else if (auto slot = scope.resolve(name)) {
|
|
267
270
|
out.push_back({Op::LoadLocal, *slot, 0, &pos});
|
|
268
271
|
} else if (auto upvalSlot = resolveEnclosing(name)) {
|
|
@@ -562,6 +562,8 @@ Value driveVm(Evaluator& ev, size_t floor) {
|
|
|
562
562
|
} else if (const Value* v = ctx.dyn->find(name)) {
|
|
563
563
|
f.stack.push_back(*v);
|
|
564
564
|
} else {
|
|
565
|
+
// ins.b = warn flag; see compileIdentifierLoad.
|
|
566
|
+
if (ins.b) ev.warn("Ignoring unknown variable '" + name + "'", ins.pos);
|
|
565
567
|
f.stack.push_back(Value{});
|
|
566
568
|
}
|
|
567
569
|
++f.pc;
|
|
@@ -138,7 +138,19 @@ Value Evaluator::evalIdentifier(const std::string& name, const oscad::Position*
|
|
|
138
138
|
// $-name anyway (dynamic variables aren't scope-declarable) and
|
|
139
139
|
// exists only for plain identifiers.
|
|
140
140
|
const Value* v = ctx.dyn->find(name);
|
|
141
|
-
|
|
141
|
+
if (v) return *v;
|
|
142
|
+
// Warns like any other unknown name. This used to return silently
|
|
143
|
+
// for EVERY $-read, on the strength of BOSL2's get_slop() --
|
|
144
|
+
// `is_undef($slop) ? 0 : $slop` with $slop never assigned -- being
|
|
145
|
+
// silent in the reference. It is, but for two narrower reasons: the
|
|
146
|
+
// probe does not warn about its own argument (undefProbeTarget), and
|
|
147
|
+
// the else branch never runs when is_undef() is true. A plain
|
|
148
|
+
// `echo($nope)` DOES warn there, in every context checked --
|
|
149
|
+
// assignment, function body, module body, comparison. Real BOSL2
|
|
150
|
+
// (gears, threading, rounded_prism, diff/attach, path_sweep) emits
|
|
151
|
+
// none of these, because it guards its own $-reads.
|
|
152
|
+
if (warnIfUndef) warn("Ignoring unknown variable '" + name + "'", position);
|
|
153
|
+
return Value{};
|
|
142
154
|
}
|
|
143
155
|
|
|
144
156
|
if (name == "PI") return Value{std::numbers::pi};
|
|
@@ -52,21 +52,34 @@ TEST(ExprEvalIdentifiers, UnknownVariableWarnsAndIsUndef) {
|
|
|
52
52
|
EXPECT_NE(lastWarning.find("Ignoring unknown variable 'nope'"), std::string::npos);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
TEST(ExprEvalIdentifiers,
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
//
|
|
55
|
+
TEST(ExprEvalIdentifiers, UndefinedDollarVariableIsUndefAndWarns) {
|
|
56
|
+
// A never-assigned $-name reads as undef and warns, exactly like a
|
|
57
|
+
// never-declared bare identifier.
|
|
58
|
+
//
|
|
59
|
+
// This test used to assert the opposite, on the strength of BOSL2's
|
|
60
|
+
// constants.scad -- `function get_slop() = is_undef($slop) ? 0 : $slop;`
|
|
61
|
+
// with $slop never assigned -- being silent in real OpenSCAD. It is,
|
|
62
|
+
// but not because $-reads are exempt: is_undef() does not warn about the
|
|
63
|
+
// name it probes, and the else branch never runs while is_undef() is
|
|
64
|
+
// true. Measured against the reference, a PLAIN read warns in every
|
|
65
|
+
// context tried -- echo, assignment, function body, module body,
|
|
66
|
+
// comparison -- so the old blanket exemption was over-generalised from
|
|
67
|
+
// one guarded expression.
|
|
65
68
|
std::string lastWarning;
|
|
66
69
|
Evaluator ev([&](const std::string& msg) { lastWarning = msg; });
|
|
67
70
|
Value v = evalSrc("$slop", ev);
|
|
68
71
|
EXPECT_TRUE(std::holds_alternative<std::monostate>(v));
|
|
69
|
-
|
|
72
|
+
EXPECT_NE(lastWarning.find("Ignoring unknown variable '$slop'"), std::string::npos) << lastWarning;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
TEST(ExprEvalIdentifiers, TheBoslGetSlopIdiomStaysSilent) {
|
|
76
|
+
// The case the old exemption existed for, kept as a test in its own
|
|
77
|
+
// right: it must remain silent through the is_undef() probe alone.
|
|
78
|
+
std::string lastWarning;
|
|
79
|
+
Evaluator ev([&](const std::string& msg) { lastWarning = msg; });
|
|
80
|
+
Value v = evalSrc("is_undef($slop) ? 0 : $slop", ev);
|
|
81
|
+
EXPECT_TRUE(lastWarning.empty()) << lastWarning;
|
|
82
|
+
EXPECT_EQ(std::get<double>(v), 0.0);
|
|
70
83
|
}
|
|
71
84
|
|
|
72
85
|
TEST(ExprEvalIdentifiers, ResolvesViaScopeFallbackWhenNotEagerlyBound) {
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_feature_detection.cpp
RENAMED
|
@@ -33,8 +33,9 @@ std::vector<std::string> echoesFrom(const std::string& src) {
|
|
|
33
33
|
|
|
34
34
|
// Every feature name the docs promise. A typo in either direction -- here or
|
|
35
35
|
// in featureLevels() -- shows up as a 0.
|
|
36
|
-
const char* kFeatures[] = {"separate-children", "minkowski-diff", "sphere-styles",
|
|
37
|
-
"simplify-op", "expr-import", "object-function", "roof-op"
|
|
36
|
+
const char* kFeatures[] = {"separate-children", "minkowski-diff", "sphere-styles", "export-name",
|
|
37
|
+
"simplify-op", "expr-import", "object-function", "roof-op",
|
|
38
|
+
"render-expr", "polyhedron-vnf"};
|
|
38
39
|
|
|
39
40
|
} // namespace
|
|
40
41
|
|
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/.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-0.44.0 → openscad_cpp_evaluator-0.45.0}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/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
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/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
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/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-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_children_separate.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_dxf_svg_import.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/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-0.44.0 → openscad_cpp_evaluator-0.45.0}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.44.0 → openscad_cpp_evaluator-0.45.0}/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
|