openscad-cpp-evaluator 0.27.0__tar.gz → 0.27.1__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.27.0 → openscad_cpp_evaluator-0.27.1}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/evaluator.hpp +9 -1
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/csg_generate.cpp +33 -7
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/csg_resolve.cpp +1 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_manifold_cache.cpp +69 -7
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/README.md +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/stb_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/text/stb_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/uv.lock +0 -0
|
@@ -225,7 +225,8 @@ public:
|
|
|
225
225
|
// attributes there).
|
|
226
226
|
// Give cached bodies fresh originalIDs so a second call site reusing
|
|
227
227
|
// them is not confused with the first. See its definition.
|
|
228
|
-
void restampCachedIds(std::vector<ColoredBody>& bodies
|
|
228
|
+
void restampCachedIds(std::vector<ColoredBody>& bodies, const oscad::ASTNode& node,
|
|
229
|
+
const oscad::ASTNode* producer);
|
|
229
230
|
|
|
230
231
|
std::unordered_map<uint32_t, const oscad::ASTNode*> idToNode;
|
|
231
232
|
std::unordered_map<uint32_t, std::optional<std::array<float, 4>>> idToColor;
|
|
@@ -1701,6 +1702,13 @@ private:
|
|
|
1701
1702
|
EchoFn echoFn_;
|
|
1702
1703
|
std::shared_ptr<FontProvider> fontProvider_; // null until first fontProvider() call if not injected
|
|
1703
1704
|
std::shared_ptr<ManifoldCache> manifoldCache_; // opt-in, see the constructor's own doc comment
|
|
1705
|
+
|
|
1706
|
+
// Cache key -> the AST node whose generation filled that entry, for
|
|
1707
|
+
// this render only (cleared alongside idToNode, whose pointers share
|
|
1708
|
+
// the same lifetime). restampCachedIds() uses it to tell a cached ID
|
|
1709
|
+
// that stands for the reused node itself from one that stands for a
|
|
1710
|
+
// node deeper inside it; see there.
|
|
1711
|
+
std::unordered_map<std::string, const oscad::ASTNode*> cacheProducer_;
|
|
1704
1712
|
std::uint64_t randsCallCount_ = 0; // see noteRandsCall()
|
|
1705
1713
|
|
|
1706
1714
|
// -- Debugging (Phase 9) --------------------------------------------
|
|
@@ -48,7 +48,11 @@ std::vector<ColoredBody> Evaluator::generateTreeImpl(const std::vector<CSGNode*>
|
|
|
48
48
|
std::optional<std::vector<ColoredBody>> cached = key ? manifoldCache_->get(*key) : std::nullopt;
|
|
49
49
|
if (cached) {
|
|
50
50
|
node.bodies = std::move(*cached);
|
|
51
|
-
|
|
51
|
+
if (node.node) {
|
|
52
|
+
auto producer = cacheProducer_.find(*key);
|
|
53
|
+
restampCachedIds(node.bodies, *node.node,
|
|
54
|
+
producer == cacheProducer_.end() ? nullptr : producer->second);
|
|
55
|
+
}
|
|
52
56
|
} else {
|
|
53
57
|
// Recurse into children first (bottom-up) -- populates each
|
|
54
58
|
// child's own .bodies in place so flattenCsgTree/a GenerateFn
|
|
@@ -76,7 +80,10 @@ std::vector<ColoredBody> Evaluator::generateTreeImpl(const std::vector<CSGNode*>
|
|
|
76
80
|
// Mirrors generate_tree()'s own fallback.
|
|
77
81
|
node.bodies = flattenCsgTree(node.children);
|
|
78
82
|
}
|
|
79
|
-
if (key)
|
|
83
|
+
if (key) {
|
|
84
|
+
manifoldCache_->put(*key, node.bodies);
|
|
85
|
+
cacheProducer_[*key] = node.node;
|
|
86
|
+
}
|
|
80
87
|
}
|
|
81
88
|
for (const ColoredBody& b : node.bodies) topLevelBodies.push_back(b);
|
|
82
89
|
}
|
|
@@ -105,7 +112,8 @@ std::vector<ColoredBody> Evaluator::generatePartialTree() {
|
|
|
105
112
|
return generateTreeImpl(flat);
|
|
106
113
|
}
|
|
107
114
|
|
|
108
|
-
void Evaluator::restampCachedIds(std::vector<ColoredBody>& bodies
|
|
115
|
+
void Evaluator::restampCachedIds(std::vector<ColoredBody>& bodies, const oscad::ASTNode& node,
|
|
116
|
+
const oscad::ASTNode* producer) {
|
|
109
117
|
// A cache hit hands back the geometry AND the originalIDs of whichever
|
|
110
118
|
// call site first produced it. Those IDs are provenance -- "which node
|
|
111
119
|
// made this" -- not content, so two identical shapes at two call sites
|
|
@@ -113,8 +121,25 @@ void Evaluator::restampCachedIds(std::vector<ColoredBody>& bodies) {
|
|
|
113
121
|
//
|
|
114
122
|
// Each distinct run gets a fresh ID, one per run rather than one per
|
|
115
123
|
// body, so a cached subtree made of several parts stays selectable
|
|
116
|
-
// part by part.
|
|
117
|
-
//
|
|
124
|
+
// part by part. Which node a fresh ID points at depends on what the old
|
|
125
|
+
// one stood for:
|
|
126
|
+
//
|
|
127
|
+
// - the reused node itself (`producer`): two separate pieces of
|
|
128
|
+
// source wrote the same shape, so this copy belongs to the node
|
|
129
|
+
// reusing it, not the one that happened to be generated first.
|
|
130
|
+
// - something deeper inside it -- the cube and sphere inside a module
|
|
131
|
+
// called twice: both calls really do come from that one line of the
|
|
132
|
+
// module body, so the old node is the honest answer and re-pointing
|
|
133
|
+
// it at the call site would collapse every part of the call onto a
|
|
134
|
+
// single line.
|
|
135
|
+
//
|
|
136
|
+
// Across renders the old IDs predate this render's idToNode, so nothing
|
|
137
|
+
// is known about their structure and everything falls to `node`.
|
|
138
|
+
//
|
|
139
|
+
// ponytail: two subtrees identical down to their transforms still
|
|
140
|
+
// share one attribution, since only the inner node is a cache hit and
|
|
141
|
+
// its producer check keeps the first copy's descendants. They occupy
|
|
142
|
+
// the same space, so there is nothing to select apart.
|
|
118
143
|
for (ColoredBody& cb : bodies) {
|
|
119
144
|
if (!cb.body || cb.body->IsEmpty()) continue;
|
|
120
145
|
manifold::MeshGL mesh = cb.body->GetMeshGL();
|
|
@@ -124,8 +149,9 @@ void Evaluator::restampCachedIds(std::vector<ColoredBody>& bodies) {
|
|
|
124
149
|
auto found = remap.find(id);
|
|
125
150
|
if (found == remap.end()) {
|
|
126
151
|
const uint32_t fresh = manifold::Manifold::ReserveIDs(1);
|
|
127
|
-
auto
|
|
128
|
-
|
|
152
|
+
auto old = idToNode.find(id);
|
|
153
|
+
idToNode[fresh] =
|
|
154
|
+
(old != idToNode.end() && old->second != producer) ? old->second : &node;
|
|
129
155
|
auto color = idToColor.find(id);
|
|
130
156
|
if (color != idToColor.end()) idToColor[fresh] = color->second;
|
|
131
157
|
found = remap.emplace(id, fresh).first;
|
|
@@ -205,6 +205,7 @@ template <typename NodeList>
|
|
|
205
205
|
std::vector<std::unique_ptr<CSGNode>> Evaluator::resolveTreeImpl(const NodeList& nodes, EvalContext& ctx) {
|
|
206
206
|
idToNode.clear();
|
|
207
207
|
idToColor.clear();
|
|
208
|
+
cacheProducer_.clear(); // holds AST pointers, same lifetime as idToNode's
|
|
208
209
|
treeStack_.clear();
|
|
209
210
|
treeStack_.emplace_back();
|
|
210
211
|
rootCtx_ = &ctx;
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_manifold_cache.cpp
RENAMED
|
@@ -124,20 +124,48 @@ TEST(ManifoldCacheUncacheable, RandsBeforeGeometryInModuleBodyTaintsSplicedSibli
|
|
|
124
124
|
// -- cache reuse -----------------------------------------------------------
|
|
125
125
|
|
|
126
126
|
TEST(ManifoldCache, CacheHitSkipsRegeneratingTheSubtree) {
|
|
127
|
+
// Read through the children: a hit serves the whole subtree at once, so
|
|
128
|
+
// the child is never generated and its own .bodies stays empty while
|
|
129
|
+
// the parent's is populated. (idToNode is no longer a proxy for this --
|
|
130
|
+
// restampCachedIds() populates it on a hit too, on purpose, or nothing
|
|
131
|
+
// served from cache would be selectable.)
|
|
132
|
+
const char* src = "translate([1,0,0]) cube(5, center=true);";
|
|
127
133
|
auto cache = std::make_shared<ManifoldCache>();
|
|
128
|
-
Evaluated first = evalSrcWithCache("cube(5, center=true);", cache);
|
|
129
|
-
ASSERT_FALSE(first.ev.idToNode.empty()); // real generate work happened, tagGenerated() ran
|
|
130
134
|
|
|
131
|
-
Evaluated
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
135
|
+
Evaluated first = evalSrcWithCache(src, cache);
|
|
136
|
+
ASSERT_EQ(first.tree.size(), 1u);
|
|
137
|
+
ASSERT_EQ(first.tree[0]->children.size(), 1u);
|
|
138
|
+
EXPECT_FALSE(first.tree[0]->children[0]->bodies.empty()) << "the cube really was generated";
|
|
139
|
+
|
|
140
|
+
Evaluated second = evalSrcWithCache(src, cache);
|
|
141
|
+
ASSERT_EQ(second.tree.size(), 1u);
|
|
142
|
+
ASSERT_EQ(second.tree[0]->children.size(), 1u);
|
|
143
|
+
EXPECT_TRUE(second.tree[0]->children[0]->bodies.empty())
|
|
144
|
+
<< "a cache hit regenerated the subtree it was supposed to replace";
|
|
145
|
+
|
|
136
146
|
ASSERT_EQ(second.bodies.size(), 1u);
|
|
137
147
|
ASSERT_TRUE(second.bodies[0].body.has_value());
|
|
138
148
|
EXPECT_NEAR(second.bodies[0].body->Volume(), 125.0, 1e-9);
|
|
139
149
|
}
|
|
140
150
|
|
|
151
|
+
// Geometry served from the cache must still map back to source. Before
|
|
152
|
+
// this, a re-render of an unchanged file was all cache hits against a
|
|
153
|
+
// fresh Evaluator, so no ID carried a node and nothing in the viewport
|
|
154
|
+
// could be picked at all.
|
|
155
|
+
TEST(ManifoldCache, GeometryServedFromAnEarlierEvaluateStillMapsToItsSource) {
|
|
156
|
+
auto cache = std::make_shared<ManifoldCache>();
|
|
157
|
+
evalSrcWithCache("cube(5, center=true);", cache);
|
|
158
|
+
|
|
159
|
+
Evaluated second = evalSrcWithCache("cube(5, center=true);", cache);
|
|
160
|
+
ASSERT_EQ(second.bodies.size(), 1u);
|
|
161
|
+
const manifold::MeshGL mesh = second.bodies[0].body->GetMeshGL();
|
|
162
|
+
ASSERT_FALSE(mesh.runOriginalID.empty());
|
|
163
|
+
for (uint32_t id : mesh.runOriginalID) {
|
|
164
|
+
ASSERT_EQ(second.ev.idToNode.count(id), 1u) << "cached geometry has no source node";
|
|
165
|
+
EXPECT_NE(second.ev.idToNode.at(id), nullptr);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
141
169
|
TEST(ManifoldCache, DifferentParamsAreNotServedEachOthersCachedResult) {
|
|
142
170
|
auto cache = std::make_shared<ManifoldCache>();
|
|
143
171
|
Evaluated a = evalSrcWithCache("cube(2, center=true);", cache);
|
|
@@ -187,6 +215,40 @@ TEST(ManifoldCache, IdenticalShapesAtDifferentCallSitesGetDistinctOriginalIds) {
|
|
|
187
215
|
// mapping selection needs.
|
|
188
216
|
for (uint32_t id : first) EXPECT_EQ(e.ev.idToNode.count(id), 1u);
|
|
189
217
|
for (uint32_t id : second) EXPECT_EQ(e.ev.idToNode.count(id), 1u);
|
|
218
|
+
|
|
219
|
+
// ...and to *different* nodes. Distinct IDs alone only separated them
|
|
220
|
+
// in the viewport: inheriting the first call site's node left the
|
|
221
|
+
// editor highlighting one line whichever cylinder was picked.
|
|
222
|
+
for (uint32_t a : first)
|
|
223
|
+
for (uint32_t b : second)
|
|
224
|
+
EXPECT_NE(e.ev.idToNode.at(a), e.ev.idToNode.at(b))
|
|
225
|
+
<< "both cylinders point at one source node";
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// The other half of that rule. A cached ID standing for something *inside*
|
|
229
|
+
// the reused node keeps its own node: both calls of a module really do
|
|
230
|
+
// come from the one body that spells the parts out. Re-pointing those at
|
|
231
|
+
// the call site would collapse every part of the call onto a single line
|
|
232
|
+
// -- the same defect as above, one level down.
|
|
233
|
+
TEST(ManifoldCache, PartsOfAReusedModuleKeepTheirOwnSourceNodes) {
|
|
234
|
+
auto cache = std::make_shared<ManifoldCache>();
|
|
235
|
+
Evaluated e = evalSrcWithCache(
|
|
236
|
+
"module pair() { cube(2); translate([5,0,0]) sphere(1,$fn=8); }\n"
|
|
237
|
+
"pair();\n"
|
|
238
|
+
"translate([0,20,0]) pair();\n", cache);
|
|
239
|
+
ASSERT_EQ(e.bodies.size(), 4u); // cube, sphere, cube, sphere
|
|
240
|
+
|
|
241
|
+
std::vector<const oscad::ASTNode*> nodes;
|
|
242
|
+
for (const ColoredBody& b : e.bodies) {
|
|
243
|
+
const manifold::MeshGL mesh = b.body->GetMeshGL();
|
|
244
|
+
ASSERT_EQ(mesh.runOriginalID.size(), 1u);
|
|
245
|
+
const uint32_t id = mesh.runOriginalID[0];
|
|
246
|
+
ASSERT_EQ(e.ev.idToNode.count(id), 1u);
|
|
247
|
+
nodes.push_back(e.ev.idToNode.at(id));
|
|
248
|
+
}
|
|
249
|
+
EXPECT_NE(nodes[0], nodes[1]) << "cube and sphere are not the same source";
|
|
250
|
+
EXPECT_EQ(nodes[0], nodes[2]) << "the second call's cube lost the cube() that wrote it";
|
|
251
|
+
EXPECT_EQ(nodes[1], nodes[3]) << "the second call's sphere lost the sphere() that wrote it";
|
|
190
252
|
}
|
|
191
253
|
|
|
192
254
|
// Re-stamping is per run, not per body, so a cached subtree made of
|
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/.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.27.0 → openscad_cpp_evaluator-0.27.1}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/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
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/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
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/src/text/stb_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.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/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.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/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
|
|
File without changes
|
{openscad_cpp_evaluator-0.27.0 → openscad_cpp_evaluator-0.27.1}/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
|