openscad-cpp-evaluator 0.53.0__tar.gz → 0.54.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.53.0 → openscad_cpp_evaluator-0.54.0}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/primitives_3d.cpp +8 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/bytecode_compiler.cpp +20 -24
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/stmt_eval.cpp +13 -13
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_bytecode_compiler.cpp +11 -5
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_control_flow.cpp +53 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_primitives.cpp +26 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/README.md +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/uv.lock +0 -0
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/primitives_3d.cpp
RENAMED
|
@@ -781,6 +781,14 @@ std::vector<ColoredBody> generatePolyhedron(Evaluator& ev, const CSGParams& para
|
|
|
781
781
|
for (const Value& t : std::get<ListPtr>(params.at("tris"))->items) {
|
|
782
782
|
mesh.triVerts.push_back(static_cast<uint64_t>(std::get<double>(t)));
|
|
783
783
|
}
|
|
784
|
+
// No faces at all is empty geometry, not a failure. BOSL2's debug_vnf()
|
|
785
|
+
// passes [verts, []] to draw vertex labels with no surface, and real
|
|
786
|
+
// OpenSCAD accepts `polyhedron(points=..., faces=[])` silently. Checked
|
|
787
|
+
// before the status branches below, which would otherwise report the
|
|
788
|
+
// empty mesh as NotManifold and discard it with a warning.
|
|
789
|
+
if (mesh.triVerts.empty()) {
|
|
790
|
+
return {ev.tagGenerated(manifold::Manifold(), node, params.at("color"))};
|
|
791
|
+
}
|
|
784
792
|
manifold::Manifold body(mesh);
|
|
785
793
|
if (isDrawableFailure(body, mesh)) {
|
|
786
794
|
// An open surface -- faces that don't close the solid. Manifold
|
|
@@ -1564,35 +1564,31 @@ public:
|
|
|
1564
1564
|
return;
|
|
1565
1565
|
}
|
|
1566
1566
|
case NodeKind::ModularLet: {
|
|
1567
|
-
// Mirrors Evaluator::evalLetBlock
|
|
1568
|
-
//
|
|
1569
|
-
//
|
|
1570
|
-
//
|
|
1571
|
-
//
|
|
1572
|
-
//
|
|
1573
|
-
//
|
|
1574
|
-
//
|
|
1575
|
-
//
|
|
1576
|
-
//
|
|
1577
|
-
//
|
|
1578
|
-
//
|
|
1579
|
-
//
|
|
1580
|
-
//
|
|
1581
|
-
//
|
|
1582
|
-
//
|
|
1583
|
-
//
|
|
1567
|
+
// Mirrors Evaluator::evalLetBlock (stmt_eval.cpp): the
|
|
1568
|
+
// child scope opens FIRST, then each assignment's RHS is
|
|
1569
|
+
// compiled and stored in source order, so a later binding
|
|
1570
|
+
// sees an earlier one -- `let(a=1, b=a+1) ...` binds b to
|
|
1571
|
+
// 2, exactly as the let-EXPRESSION form does.
|
|
1572
|
+
//
|
|
1573
|
+
// This used to compile every RHS before Op::OpenLetScope
|
|
1574
|
+
// and then store them back-to-front, deliberately denying
|
|
1575
|
+
// that visibility. Real OpenSCAD grants it, and BOSL2
|
|
1576
|
+
// depends on it (isosurface.scad chains five bindings where
|
|
1577
|
+
// each uses the previous).
|
|
1578
|
+
//
|
|
1579
|
+
// No outer statement-level check for the let-block node
|
|
1580
|
+
// itself (matches evalChildren's own ModularLet exclusion)
|
|
1581
|
+
// -- each assignment gets its own, exactly like
|
|
1582
|
+
// evalLetBlock's own per-assignment checkDebug. The body
|
|
1583
|
+
// (n.children) compiles inline, recursively, against the
|
|
1584
|
+
// now-current child ctx.
|
|
1584
1585
|
auto& n = static_cast<const oscad::ModularLet&>(stmt);
|
|
1585
1586
|
CompileScope exprScope;
|
|
1587
|
+
out.push_back({Op::OpenLetScope, 0, 0, nullptr});
|
|
1586
1588
|
for (const auto& assign : n.assignments) {
|
|
1587
1589
|
out.push_back({Op::CheckDebugStatement, internNativeStatement(assign.get()), 0, nullptr});
|
|
1588
1590
|
compileIsolatedExpr(*assign->expr, out, exprScope);
|
|
1589
|
-
|
|
1590
|
-
out.push_back({Op::OpenLetScope, 0, 0, nullptr});
|
|
1591
|
-
// Values pop in REVERSE push order (LIFO) -- iterate the
|
|
1592
|
-
// assignment list backwards so each Op::StoreLetVar is
|
|
1593
|
-
// paired with the value that was actually pushed for IT.
|
|
1594
|
-
for (auto it = n.assignments.rbegin(); it != n.assignments.rend(); ++it) {
|
|
1595
|
-
out.push_back({Op::StoreLetVar, internName((*it)->name->name), 0, &(*it)->position()});
|
|
1591
|
+
out.push_back({Op::StoreLetVar, internName(assign->name->name), 0, &assign->position()});
|
|
1596
1592
|
}
|
|
1597
1593
|
compileStatementList(n.children, out);
|
|
1598
1594
|
out.push_back({Op::CloseExprScope, 0, 0, nullptr});
|
|
@@ -155,20 +155,20 @@ void Evaluator::evalFor(const oscad::ModularFor& node, EvalContext& ctx) {
|
|
|
155
155
|
|
|
156
156
|
void Evaluator::evalLetBlock(const oscad::ModularLet& node, EvalContext& ctx) {
|
|
157
157
|
EvalContext childCtx = ctx.childCtx(nullptr, std::nullopt, ctx.childrenNodes, ctx.childrenCallerCtx);
|
|
158
|
-
//
|
|
159
|
-
//
|
|
160
|
-
//
|
|
161
|
-
//
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
158
|
+
// Each RHS is evaluated against the GROWING childCtx, so a later
|
|
159
|
+
// binding sees an earlier one -- `let(a=1, b=a+1) ...` binds b to 2.
|
|
160
|
+
// The statement form behaves exactly like the expression form here.
|
|
161
|
+
//
|
|
162
|
+
// This used to evaluate every RHS against the original `ctx` instead,
|
|
163
|
+
// described in a comment as a deliberate port of the reference's
|
|
164
|
+
// _eval_let_block. That reference was this project's own earlier
|
|
165
|
+
// implementation, which had the same bug; real OpenSCAD 2026.02.01
|
|
166
|
+
// echoes 2, and BOSL2 depends on it heavily -- isosurface.scad chains
|
|
167
|
+
// five bindings where each uses the previous, and rounding.scad's
|
|
168
|
+
// join_prism examples do the same.
|
|
167
169
|
for (const auto& assign : node.assignments) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
checkDebug(*assign, ctx);
|
|
171
|
-
Value v = evalExprMaybeCompiled(*assign->expr, ctx);
|
|
170
|
+
checkDebug(*assign, childCtx);
|
|
171
|
+
Value v = evalExprMaybeCompiled(*assign->expr, childCtx);
|
|
172
172
|
const std::string& name = assign->name->name;
|
|
173
173
|
if (!name.empty() && name[0] == '$') {
|
|
174
174
|
childCtx.dyn->set(name, v);
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_bytecode_compiler.cpp
RENAMED
|
@@ -1889,15 +1889,21 @@ TEST(ModuleBodyCompiles, AssertStatementCompiledFormFailsWithNamedMessage) {
|
|
|
1889
1889
|
}
|
|
1890
1890
|
}
|
|
1891
1891
|
|
|
1892
|
-
TEST(ModuleBodyCompiles,
|
|
1892
|
+
TEST(ModuleBodyCompiles, LetBlockStatementSeesItsOwnEarlierSiblingAssignment) {
|
|
1893
1893
|
ScopedVm vm(true);
|
|
1894
|
-
//
|
|
1895
|
-
//
|
|
1896
|
-
//
|
|
1894
|
+
// b's RHS sees THIS let-block's own a=2, not the outer a=1, so b is 3.
|
|
1895
|
+
// The statement form has the same sequential visibility the expression
|
|
1896
|
+
// form does, and the binding still does not escape the block.
|
|
1897
|
+
//
|
|
1898
|
+
// This test previously asserted "ECHO: 2, 2" -- b seeing the outer a --
|
|
1899
|
+
// and called that a documented divergence. It was not: real OpenSCAD
|
|
1900
|
+
// 2026.02.01 echoes "2, 3" then "1", which is what both engines now
|
|
1901
|
+
// produce. BOSL2 depends on the sequential form (isosurface.scad chains
|
|
1902
|
+
// five bindings where each uses the previous).
|
|
1897
1903
|
EXPECT_EQ(runCapturingEcho("a = 1;\n"
|
|
1898
1904
|
"let (a = 2, b = a + 1) { echo(a, b); }\n"
|
|
1899
1905
|
"echo(a);\n"),
|
|
1900
|
-
"ECHO: 2,
|
|
1906
|
+
"ECHO: 2, 3\nECHO: 1");
|
|
1901
1907
|
}
|
|
1902
1908
|
|
|
1903
1909
|
TEST(ModuleBodyCompiles, LetBlockStatementIsolatesDollarVarOverrideFromLaterStatements) {
|
|
@@ -428,6 +428,59 @@ TEST(EscapingClosure, CapturelessLiteralStillWorksCompiled) {
|
|
|
428
428
|
|
|
429
429
|
// -- let (statement + expression forms) --------------------------------
|
|
430
430
|
|
|
431
|
+
// The let STATEMENT form has the same sequential visibility as the
|
|
432
|
+
// expression form: a later binding sees an earlier one. Verified against
|
|
433
|
+
// real OpenSCAD 2026.02.01, which echoes 2 for both forms below.
|
|
434
|
+
//
|
|
435
|
+
// This was wrong for a long time, described in-source as a deliberate port
|
|
436
|
+
// of "the reference's _eval_let_block" -- that reference being this
|
|
437
|
+
// project's own earlier implementation, which had the same bug. BOSL2 leans
|
|
438
|
+
// on it: isosurface.scad chains five bindings where each uses the previous,
|
|
439
|
+
// and rounding.scad's join_prism examples do too.
|
|
440
|
+
|
|
441
|
+
namespace {
|
|
442
|
+
|
|
443
|
+
void checkLetStatementIsSequential(bool useVm) {
|
|
444
|
+
ScopedVm vm(useVm);
|
|
445
|
+
std::vector<std::string> echoed;
|
|
446
|
+
runScript("let (a = 1, b = a + 1) echo(b = b);\n",
|
|
447
|
+
[&](const std::string& msg) { echoed.push_back(msg); });
|
|
448
|
+
EXPECT_EQ(echoed, (std::vector<std::string>{"ECHO: b = 2"}));
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
void checkLetStatementShadowsWithoutEscaping(bool useVm) {
|
|
452
|
+
ScopedVm vm(useVm);
|
|
453
|
+
std::vector<std::string> echoed;
|
|
454
|
+
// The inner a=2 is what b sees, and it does not survive the block.
|
|
455
|
+
runScript("a = 1;\n"
|
|
456
|
+
"let (a = 2, b = a + 1) echo(inside_a = a, inside_b = b);\n"
|
|
457
|
+
"echo(after_a = a);\n",
|
|
458
|
+
[&](const std::string& msg) { echoed.push_back(msg); });
|
|
459
|
+
EXPECT_EQ(echoed, (std::vector<std::string>{"ECHO: inside_a = 2, inside_b = 3",
|
|
460
|
+
"ECHO: after_a = 1"}));
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
void checkLetStatementChainsSeveralBindings(bool useVm) {
|
|
464
|
+
ScopedVm vm(useVm);
|
|
465
|
+
std::vector<std::string> echoed;
|
|
466
|
+
// The isosurface.scad shape: each binding built from the previous.
|
|
467
|
+
runScript("let (a = 2, b = a * 3, c = b + a, d = c * b) echo(d = d);\n",
|
|
468
|
+
[&](const std::string& msg) { echoed.push_back(msg); });
|
|
469
|
+
EXPECT_EQ(echoed, (std::vector<std::string>{"ECHO: d = 48"}));
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
} // namespace
|
|
473
|
+
|
|
474
|
+
TEST(LetStatementScope, IsSequentialCompiled) { checkLetStatementIsSequential(true); }
|
|
475
|
+
TEST(LetStatementScope, IsSequentialInterpreted) { checkLetStatementIsSequential(false); }
|
|
476
|
+
|
|
477
|
+
TEST(LetStatementScope, ShadowsWithoutEscapingCompiled) { checkLetStatementShadowsWithoutEscaping(true); }
|
|
478
|
+
TEST(LetStatementScope, ShadowsWithoutEscapingInterpreted) { checkLetStatementShadowsWithoutEscaping(false); }
|
|
479
|
+
|
|
480
|
+
TEST(LetStatementScope, ChainsSeveralBindingsCompiled) { checkLetStatementChainsSeveralBindings(true); }
|
|
481
|
+
TEST(LetStatementScope, ChainsSeveralBindingsInterpreted) { checkLetStatementChainsSeveralBindings(false); }
|
|
482
|
+
|
|
483
|
+
|
|
431
484
|
TEST(LetStatement, BindsVisibleInsideBlockOnly) {
|
|
432
485
|
Evaluated e = evalSrc("let(s=3) cube(s);");
|
|
433
486
|
manifold::Box bbox = e.bodies[0].body->BoundingBox();
|
|
@@ -211,6 +211,32 @@ TEST(Polyhedron, OpenMeshIsKeptForDisplayAndWarns) {
|
|
|
211
211
|
// The originalID is what maps a picked triangle back to its source line, so
|
|
212
212
|
// a display-only body has to carry one or clicking it would select nothing
|
|
213
213
|
// -- precisely when a user most wants to be shown the offending code.
|
|
214
|
+
// A polyhedron with points but NO faces is empty geometry, not a failure.
|
|
215
|
+
// BOSL2's debug_vnf() passes [verts, []] to draw vertex labels with no
|
|
216
|
+
// surface at all, and real OpenSCAD 2026.02.01 accepts
|
|
217
|
+
// `polyhedron(points=..., faces=[])` silently. This used to report the
|
|
218
|
+
// empty mesh as NotManifold and discard it with a warning, which failed
|
|
219
|
+
// four BOSL2 geometry.scad examples.
|
|
220
|
+
TEST(Polyhedron, NoFacesIsEmptyGeometryAndSilent) {
|
|
221
|
+
std::string warning;
|
|
222
|
+
Evaluated e = evalSrc("polyhedron(points=[[0,0,0],[10,0,0],[10,10,0],[0,10,0]], faces=[]);",
|
|
223
|
+
[&](const std::string& m) { warning = m; });
|
|
224
|
+
|
|
225
|
+
ASSERT_EQ(e.bodies.size(), 1u);
|
|
226
|
+
EXPECT_TRUE(e.bodies[0].body->IsEmpty());
|
|
227
|
+
EXPECT_FALSE(e.bodies[0].isDisplayOnly()); // nothing to display, not an open surface
|
|
228
|
+
EXPECT_EQ(warning, "") << warning;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
TEST(Polyhedron, NoPointsAndNoFacesIsAlsoSilent) {
|
|
232
|
+
std::string warning;
|
|
233
|
+
Evaluated e = evalSrc("polyhedron(points=[], faces=[]);",
|
|
234
|
+
[&](const std::string& m) { warning = m; });
|
|
235
|
+
ASSERT_EQ(e.bodies.size(), 1u);
|
|
236
|
+
EXPECT_TRUE(e.bodies[0].body->IsEmpty());
|
|
237
|
+
EXPECT_EQ(warning, "") << warning;
|
|
238
|
+
}
|
|
239
|
+
|
|
214
240
|
TEST(Polyhedron, OpenMeshCarriesAnOriginalIdForPicking) {
|
|
215
241
|
Evaluated e = evalSrc(kOpenCube);
|
|
216
242
|
ASSERT_EQ(e.bodies.size(), 1u);
|
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.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.53.0 → openscad_cpp_evaluator-0.54.0}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.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
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/src/builtins/primitives_2d.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
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.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.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_children_separate.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/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-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.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.53.0 → openscad_cpp_evaluator-0.54.0}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.53.0 → openscad_cpp_evaluator-0.54.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
|