openscad-cpp-evaluator 1.0.1__tar.gz → 1.1.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-1.0.1 → openscad_cpp_evaluator-1.1.0}/.github/workflows/wheels.yml +7 -3
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/bindings/module.cpp +12 -5
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/evaluator.hpp +13 -3
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/python/openscad_cpp_evaluator/__init__.py +14 -2
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/csg_resolve.cpp +12 -6
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_python_bindings.py +44 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/uv.lock +1 -1
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/README.md +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tools/cli/main.cpp +0 -0
|
@@ -165,9 +165,13 @@ jobs:
|
|
|
165
165
|
publish-pypi:
|
|
166
166
|
needs: [publish-testpypi]
|
|
167
167
|
runs-on: ubuntu-latest
|
|
168
|
-
#
|
|
169
|
-
#
|
|
170
|
-
#
|
|
168
|
+
# The "pypi" environment carries no protection rules, so a tag runs
|
|
169
|
+
# straight through TestPyPI to PyPI with nothing to stop it -- and a
|
|
170
|
+
# PyPI upload cannot be undone or replaced at the same version. Adding
|
|
171
|
+
# a required reviewer to the environment reinstates that brake; GitHub
|
|
172
|
+
# permits approving your own deployment unless "Prevent self-review"
|
|
173
|
+
# is ticked. Kept regardless of rules: token auth aside, the
|
|
174
|
+
# environment is where a publishing credential would be scoped.
|
|
171
175
|
environment: pypi
|
|
172
176
|
steps:
|
|
173
177
|
- uses: actions/download-artifact@v8
|
|
@@ -373,7 +373,8 @@ nb::list exportModelPy(const std::string& path, const Geometry& geom, const std:
|
|
|
373
373
|
}
|
|
374
374
|
|
|
375
375
|
nb::object evaluate(const std::string& path, nb::dict viewportParams,
|
|
376
|
-
std::shared_ptr<oscadeval::ManifoldCache> manifoldCache, bool profile
|
|
376
|
+
std::shared_ptr<oscadeval::ManifoldCache> manifoldCache, bool profile,
|
|
377
|
+
bool generate) {
|
|
377
378
|
std::unordered_map<std::string, oscadeval::Value> vp = toViewportParams(viewportParams);
|
|
378
379
|
|
|
379
380
|
std::vector<oscadeval::ColoredBody> bodies;
|
|
@@ -391,9 +392,12 @@ nb::object evaluate(const std::string& path, nb::dict viewportParams,
|
|
|
391
392
|
oscadeval::ResolvedUseScopes used = oscadeval::resolveUseScopes(ast, path, logFn);
|
|
392
393
|
oscadeval::Evaluator ev(logFn, nullptr, manifoldCache, oscadeval::DebugHooks{}, profile);
|
|
393
394
|
oscadeval::EvalContext ctx = oscadeval::EvalContext::makeRoot(used.rootScope.get());
|
|
394
|
-
bodies = oscadeval::toRenderableBodies(ev.evaluate(used.processedNodes, ctx, vp));
|
|
395
|
+
bodies = oscadeval::toRenderableBodies(ev.evaluate(used.processedNodes, ctx, vp, generate));
|
|
395
396
|
collectIdSpans(ev, idSpans);
|
|
396
|
-
|
|
397
|
+
// Only moved out when it will actually be converted below --
|
|
398
|
+
// csgTreeToPy() walks the whole tree building Python objects,
|
|
399
|
+
// which a resolve-only caller has no use for.
|
|
400
|
+
if (generate) csgTree = std::move(ev.csgTree);
|
|
397
401
|
profileResult = std::move(ev.profileResult);
|
|
398
402
|
{
|
|
399
403
|
nb::gil_scoped_acquire g; // building Python objects needs the GIL back
|
|
@@ -792,8 +796,11 @@ NB_MODULE(_openscad_cpp_evaluator, m) {
|
|
|
792
796
|
"rather than restated here, so the Python side cannot drift from what can actually be written.");
|
|
793
797
|
|
|
794
798
|
m.def("evaluate", &evaluate, nb::arg("path"), nb::arg("viewport_params"), nb::arg("manifold_cache") = nullptr,
|
|
795
|
-
nb::arg("profile") = false,
|
|
796
|
-
"Evaluate a .scad file; return (bodies, echoes, id_to_node, csg_tree, profile_result, dyn, dyn_explicit)
|
|
799
|
+
nb::arg("profile") = false, nb::arg("generate") = true,
|
|
800
|
+
"Evaluate a .scad file; return (bodies, echoes, id_to_node, csg_tree, profile_result, dyn, dyn_explicit).\n"
|
|
801
|
+
"generate=False stops after the resolve pass: the script runs and reports everything "
|
|
802
|
+
"it normally would, but no Manifold geometry is built, and neither bodies nor csg_tree "
|
|
803
|
+
"are populated.");
|
|
797
804
|
m.def("parse_decls", &parseDecls, nb::arg("path"),
|
|
798
805
|
"Parse a .scad file; return top-level declaration (namespace, name, start, end, line, column, origin) tuples.");
|
|
799
806
|
m.def("strip_slivers", &stripSliversPy, nb::arg("verts"), nb::arg("tris"),
|
|
@@ -178,15 +178,24 @@ public:
|
|
|
178
178
|
// forcing it to expose a separate `_root_ctx` escape hatch for this)
|
|
179
179
|
// this port's `ctx` is always caller-owned already. Mirrors the
|
|
180
180
|
// reference's `evaluate(nodes, root_scope, viewport_params=None)`.
|
|
181
|
+
//
|
|
182
|
+
// `generate = false` stops after the resolve pass: the CSG tree is built
|
|
183
|
+
// and stashed in `csgTree` as usual, but no Manifold work happens and an
|
|
184
|
+
// empty body list comes back. For a caller that only wants to know
|
|
185
|
+
// whether a script RUNS -- a docs check, a syntax/semantics smoke test --
|
|
186
|
+
// that skips the geometry without skipping the language. Mirrors what the
|
|
187
|
+
// reference does for `openscad -o out.term`.
|
|
181
188
|
std::vector<ColoredBody> evaluate(const std::vector<std::unique_ptr<oscad::ASTNode>>& nodes, EvalContext& ctx,
|
|
182
|
-
const std::unordered_map<std::string, Value>& viewportParams = {}
|
|
189
|
+
const std::unordered_map<std::string, Value>& viewportParams = {},
|
|
190
|
+
bool generate = true);
|
|
183
191
|
// Same, but over a non-owning pointer list -- needed by `use <file>`
|
|
184
192
|
// resolution (eval_use.hpp/.cpp), whose "processed nodes" list combines
|
|
185
193
|
// declarations owned by more than one independently-owned AST vector,
|
|
186
194
|
// so it can't be represented as a single vector<unique_ptr<ASTNode>>.
|
|
187
195
|
// Mirrors evalChildren's existing dual-overload shape.
|
|
188
196
|
std::vector<ColoredBody> evaluate(const std::vector<const oscad::ASTNode*>& nodes, EvalContext& ctx,
|
|
189
|
-
const std::unordered_map<std::string, Value>& viewportParams = {}
|
|
197
|
+
const std::unordered_map<std::string, Value>& viewportParams = {},
|
|
198
|
+
bool generate = true);
|
|
190
199
|
|
|
191
200
|
// Resolve pass: resets idToNode/idToColor and the tree-build stack,
|
|
192
201
|
// then walks `nodes` via evalChildren(), returning the completed (but
|
|
@@ -654,7 +663,8 @@ private:
|
|
|
654
663
|
std::vector<std::unique_ptr<CSGNode>> resolveTreeImpl(const NodeList& nodes, EvalContext& ctx);
|
|
655
664
|
template <typename NodeList>
|
|
656
665
|
std::vector<ColoredBody> evaluateImpl(const NodeList& nodes, EvalContext& ctx,
|
|
657
|
-
const std::unordered_map<std::string, Value>& viewportParams
|
|
666
|
+
const std::unordered_map<std::string, Value>& viewportParams,
|
|
667
|
+
bool generate);
|
|
658
668
|
|
|
659
669
|
// Shared bottom-up generate walk behind generateTree()/generatePartialTree()
|
|
660
670
|
// -- see generatePartialTree()'s own doc comment and this function's
|
|
@@ -492,7 +492,19 @@ class Evaluator:
|
|
|
492
492
|
self.dyn = {}
|
|
493
493
|
self.dyn_explicit = set()
|
|
494
494
|
|
|
495
|
-
def evaluate(self, source_path: str, viewport_params: Optional[dict] = None
|
|
495
|
+
def evaluate(self, source_path: str, viewport_params: Optional[dict] = None,
|
|
496
|
+
generate: bool = True):
|
|
497
|
+
"""Run `source_path` and return (bodies, id_to_node).
|
|
498
|
+
|
|
499
|
+
`generate=False` stops after the resolve pass. The script still runs
|
|
500
|
+
in full, so everything it echoes, warns or errors about is reported
|
|
501
|
+
exactly as usual -- but no Manifold geometry is built, and `bodies`
|
|
502
|
+
and `csg_tree` both come back empty. For a caller that only wants to
|
|
503
|
+
know whether a script RUNS (a docs check, a smoke test) that skips
|
|
504
|
+
the geometry without skipping the language.
|
|
505
|
+
|
|
506
|
+
Ignored on the debugger path, which has no geometry handle anyway.
|
|
507
|
+
"""
|
|
496
508
|
vp = viewport_params or {}
|
|
497
509
|
try:
|
|
498
510
|
if self._debug_hook is not None:
|
|
@@ -512,7 +524,7 @@ class Evaluator:
|
|
|
512
524
|
else:
|
|
513
525
|
(body_dicts, echoes, id_spans, csg_tree, profile_result, dyn,
|
|
514
526
|
dyn_explicit, geometry) = _ext.evaluate(
|
|
515
|
-
source_path, vp, self._manifold_cache, self._profile)
|
|
527
|
+
source_path, vp, self._manifold_cache, self._profile, generate)
|
|
516
528
|
# The evaluated bodies, still on the C++ side. Stashed like
|
|
517
529
|
# csg_tree/profile_result rather than returned, so
|
|
518
530
|
# evaluate()'s own 2-tuple result is unchanged -- callers
|
|
@@ -244,7 +244,8 @@ std::vector<std::unique_ptr<CSGNode>> Evaluator::resolveTree(const std::vector<c
|
|
|
244
244
|
|
|
245
245
|
template <typename NodeList>
|
|
246
246
|
std::vector<ColoredBody> Evaluator::evaluateImpl(const NodeList& nodes, EvalContext& ctx,
|
|
247
|
-
const std::unordered_map<std::string, Value>& viewportParams
|
|
247
|
+
const std::unordered_map<std::string, Value>& viewportParams,
|
|
248
|
+
bool generate) {
|
|
248
249
|
// Seeds ctx.dyn directly, deliberately not touching ctx.dynExplicit --
|
|
249
250
|
// see this method's own doc comment in evaluator.hpp for why that
|
|
250
251
|
// distinction matters to a caller.
|
|
@@ -260,7 +261,10 @@ std::vector<ColoredBody> Evaluator::evaluateImpl(const NodeList& nodes, EvalCont
|
|
|
260
261
|
std::vector<std::unique_ptr<CSGNode>> tree = resolveTreeImpl(nodes, ctx);
|
|
261
262
|
rerootAtShowOnly(tree);
|
|
262
263
|
const Clock::time_point resolveEnd = profiling_ ? Clock::now() : Clock::time_point{};
|
|
263
|
-
|
|
264
|
+
// generate = false is the resolve-only path: the language has run and
|
|
265
|
+
// the tree is built, so anything the script itself gets wrong has already
|
|
266
|
+
// been reported -- only the Manifold work is skipped.
|
|
267
|
+
std::vector<ColoredBody> result = generate ? generateTree(tree) : std::vector<ColoredBody>{};
|
|
264
268
|
const Clock::time_point generateEnd = profiling_ ? Clock::now() : Clock::time_point{};
|
|
265
269
|
csgTree = std::move(tree); // stash for caller inspection -- see the member's own doc comment
|
|
266
270
|
|
|
@@ -332,13 +336,15 @@ void Evaluator::rerootAtShowOnly(std::vector<std::unique_ptr<CSGNode>>& tree) {
|
|
|
332
336
|
}
|
|
333
337
|
|
|
334
338
|
std::vector<ColoredBody> Evaluator::evaluate(const std::vector<std::unique_ptr<oscad::ASTNode>>& nodes, EvalContext& ctx,
|
|
335
|
-
const std::unordered_map<std::string, Value>& viewportParams
|
|
336
|
-
|
|
339
|
+
const std::unordered_map<std::string, Value>& viewportParams,
|
|
340
|
+
bool generate) {
|
|
341
|
+
return evaluateImpl(nodes, ctx, viewportParams, generate);
|
|
337
342
|
}
|
|
338
343
|
|
|
339
344
|
std::vector<ColoredBody> Evaluator::evaluate(const std::vector<const oscad::ASTNode*>& nodes, EvalContext& ctx,
|
|
340
|
-
const std::unordered_map<std::string, Value>& viewportParams
|
|
341
|
-
|
|
345
|
+
const std::unordered_map<std::string, Value>& viewportParams,
|
|
346
|
+
bool generate) {
|
|
347
|
+
return evaluateImpl(nodes, ctx, viewportParams, generate);
|
|
342
348
|
}
|
|
343
349
|
|
|
344
350
|
} // namespace oscadeval
|
|
@@ -405,3 +405,47 @@ def main():
|
|
|
405
405
|
|
|
406
406
|
if __name__ == "__main__":
|
|
407
407
|
main()
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
def test_evaluate_generate_false_skips_geometry(tmp_path):
|
|
411
|
+
"""generate=False runs the script but builds no Manifold geometry.
|
|
412
|
+
|
|
413
|
+
The point of the flag is a docs/smoke check that answers "does this
|
|
414
|
+
script run?" without paying for the solids, matching what the reference
|
|
415
|
+
does for `openscad -o out.term`.
|
|
416
|
+
"""
|
|
417
|
+
from openscad_cpp_evaluator import Evaluator
|
|
418
|
+
|
|
419
|
+
src = tmp_path / "m.scad"
|
|
420
|
+
src.write_text("echo(\"ran\");\ndifference() { cube(10, center=true); sphere(6.4); }\n")
|
|
421
|
+
|
|
422
|
+
echoes = []
|
|
423
|
+
ev = Evaluator(echo_fn=echoes.append)
|
|
424
|
+
bodies, _ids = ev.evaluate(str(src), {}, generate=False)
|
|
425
|
+
|
|
426
|
+
# The language ran: the echo came out.
|
|
427
|
+
assert any("ran" in e for e in echoes)
|
|
428
|
+
# The geometry did not.
|
|
429
|
+
assert list(bodies) == []
|
|
430
|
+
assert ev.csg_tree == []
|
|
431
|
+
|
|
432
|
+
# And the same file with generate left alone still produces geometry,
|
|
433
|
+
# so the flag is what made the difference, not the script.
|
|
434
|
+
echoes2 = []
|
|
435
|
+
ev2 = Evaluator(echo_fn=echoes2.append)
|
|
436
|
+
bodies2, _ids2 = ev2.evaluate(str(src), {})
|
|
437
|
+
assert any("ran" in e for e in echoes2)
|
|
438
|
+
assert len(list(bodies2)) > 0
|
|
439
|
+
assert ev2.csg_tree != []
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
def test_evaluate_generate_false_still_reports_script_errors(tmp_path):
|
|
443
|
+
"""Resolve-only is still a real check: a script that fails, fails."""
|
|
444
|
+
import pytest
|
|
445
|
+
from openscad_cpp_evaluator import Evaluator, EvalError
|
|
446
|
+
|
|
447
|
+
src = tmp_path / "bad.scad"
|
|
448
|
+
src.write_text("assert(false, \"nope\");\ncube(1);\n")
|
|
449
|
+
|
|
450
|
+
with pytest.raises(EvalError):
|
|
451
|
+
Evaluator(echo_fn=lambda _m: None).evaluate(str(src), {}, generate=False)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/external/openscad_cpp_parser/README.md
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
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.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
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.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-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_children_separate.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
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_multi_color_merge.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
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.0}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.0.1 → openscad_cpp_evaluator-1.1.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
|