openscad-cpp-evaluator 0.50.0__tar.gz → 0.50.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.50.0 → openscad_cpp_evaluator-0.50.1}/CLAUDE.md +8 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/function_builtins.cpp +13 -3
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/topology.cpp +11 -5
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_booleans.cpp +13 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_function_builtins.cpp +14 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/README.md +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/uv.lock +0 -0
|
@@ -492,6 +492,14 @@ grep for `ponytail:`.
|
|
|
492
492
|
same reason.
|
|
493
493
|
Calling the field function from the generate pass has no live `EvalContext`, so a root is built
|
|
494
494
|
from the closure's own scope — `$`-variables sit at their defaults inside it.
|
|
495
|
+
**An explicitly-undef optional argument counts as ABSENT**, not as a bad one — the same rule in
|
|
496
|
+
`linear_solve` (`b`) and `levelset` (`isovalue`). BOSL2 reaches a builtin it also defines by
|
|
497
|
+
wrapping it in `builtins.scad`, which `use <>`s nothing, so the names there bind to the builtins:
|
|
498
|
+
`function _linear_solve(A, b) = linear_solve(A, b);`. That wrapper has a fixed signature and so
|
|
499
|
+
forwards `b` even when the caller passed none, so treating undef as a *bad* argument warned on
|
|
500
|
+
every `determinant()`-style call. Passing undef is idiomatically the same as not passing in
|
|
501
|
+
OpenSCAD, which is how BOSL2 threads optional arguments through wrappers throughout.
|
|
502
|
+
Verified against OpenSCAD 2026.02.01: the wrapper pattern resolves identically there.
|
|
495
503
|
Sign convention: Manifold takes positive as inside; a distance field is the other way round, so
|
|
496
504
|
the default flips it and `invert=true` flips back.
|
|
497
505
|
Two behaviours that look alike and are opposite: an isovalue **nothing reaches** gives empty
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/function_builtins.cpp
RENAMED
|
@@ -1345,9 +1345,19 @@ Value evalBuiltinFunction(Evaluator& ev, const std::string& name, const CallArgs
|
|
|
1345
1345
|
// The OpenSCAD release we track. version_num() is that same
|
|
1346
1346
|
// year/month/day folded as y * 10000 + m * 100 + d, exactly like the
|
|
1347
1347
|
// reference's own builtin_version_num (builtin_functions.cc).
|
|
1348
|
-
case BuiltinFnId::LinearSolve:
|
|
1349
|
-
|
|
1350
|
-
|
|
1348
|
+
case BuiltinFnId::LinearSolve: {
|
|
1349
|
+
// An explicitly-undef b counts as ABSENT, not as a bad argument.
|
|
1350
|
+
// A wrapper with a fixed signature -- BOSL2's builtins.scad
|
|
1351
|
+
// pattern, `function _linear_solve(A, b) = linear_solve(A, b);`
|
|
1352
|
+
// -- always forwards b, so determinant()-style callers that pass
|
|
1353
|
+
// no right-hand side would otherwise warn on every call.
|
|
1354
|
+
// Passing undef is idiomatically the same as not passing in
|
|
1355
|
+
// OpenSCAD, which is how optional arguments are threaded through
|
|
1356
|
+
// wrappers throughout BOSL2.
|
|
1357
|
+
const Value bArg = getArg(args, 1, "b", Value{});
|
|
1358
|
+
const bool haveB = !std::holds_alternative<std::monostate>(bArg);
|
|
1359
|
+
return builtinLinearSolve(ev, getArg(args, 0, "A", Value{}), bArg, haveB, node);
|
|
1360
|
+
}
|
|
1351
1361
|
case BuiltinFnId::SupportedFeature: {
|
|
1352
1362
|
const Value name = getArg(args, 0, "feature", Value{});
|
|
1353
1363
|
const std::string* s = std::get_if<std::string>(&name);
|
|
@@ -588,12 +588,18 @@ std::vector<ColoredBody> generateLevelSet(Evaluator& ev, const CSGParams& params
|
|
|
588
588
|
}
|
|
589
589
|
}
|
|
590
590
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
591
|
+
// Same rule as linear_solve's b: an explicitly-undef argument is ABSENT,
|
|
592
|
+
// so a fixed-signature wrapper forwarding every parameter still works.
|
|
593
|
+
const Value& isoVal = params.at("isovalue");
|
|
594
|
+
double isovalue = 0.0;
|
|
595
|
+
if (!std::holds_alternative<std::monostate>(isoVal)) {
|
|
596
|
+
const double* isoArg = std::get_if<double>(&isoVal);
|
|
597
|
+
if (!isoArg) {
|
|
598
|
+
ev.warn("levelset(): isovalue must be a number", &node.position());
|
|
599
|
+
return {};
|
|
600
|
+
}
|
|
601
|
+
isovalue = *isoArg;
|
|
595
602
|
}
|
|
596
|
-
const double isovalue = *isoArg;
|
|
597
603
|
const bool invert = truthy(params.at("invert"));
|
|
598
604
|
|
|
599
605
|
const std::array<double, 3> origin = *lo;
|
|
@@ -1007,3 +1007,16 @@ TEST(LevelSetFn, AFieldFunctionCanCaptureOuterVariables) {
|
|
|
1007
1007
|
ASSERT_EQ(e.bodies.size(), 1u);
|
|
1008
1008
|
EXPECT_NEAR(soleBody(e).Volume(), 4.0 / 3.0 * 3.14159265358979 * 8000, 400.0);
|
|
1009
1009
|
}
|
|
1010
|
+
|
|
1011
|
+
TEST(LevelSet, AnExplicitlyUndefIsovalueFallsBackToTheDefault) {
|
|
1012
|
+
// Same rule as linear_solve's b, and for the same reason: a wrapper
|
|
1013
|
+
// with a fixed signature forwards every parameter, undef included.
|
|
1014
|
+
Evaluated withUndef = evalSrc(sphereFieldSrc(30, 30) +
|
|
1015
|
+
"levelset(f, bounds=[[-30,-30,-30],[30,30,30]], isovalue=undef);");
|
|
1016
|
+
Evaluated withZero = evalSrc(sphereFieldSrc(30, 30) +
|
|
1017
|
+
"levelset(f, bounds=[[-30,-30,-30],[30,30,30]], isovalue=0);");
|
|
1018
|
+
EXPECT_EQ(withUndef.bodies.size(), withZero.bodies.size());
|
|
1019
|
+
EXPECT_TRUE(levelsetWarnings(sphereFieldSrc(30, 30) +
|
|
1020
|
+
"levelset(f, bounds=[[-30,-30,-30],[30,30,30]], isovalue=undef);")
|
|
1021
|
+
.empty());
|
|
1022
|
+
}
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_function_builtins.cpp
RENAMED
|
@@ -883,3 +883,17 @@ TEST(LinearSolve, WorksUnderBothEngines) {
|
|
|
883
883
|
}
|
|
884
884
|
}
|
|
885
885
|
|
|
886
|
+
|
|
887
|
+
TEST(LinearSolve, AnExplicitlyUndefRightHandSideCountsAsAbsent) {
|
|
888
|
+
// BOSL2's builtins.scad pattern is a wrapper with a fixed signature:
|
|
889
|
+
// function _linear_solve(A, b) = linear_solve(A, b);
|
|
890
|
+
// so a determinant()-style caller that passes no right-hand side still
|
|
891
|
+
// forwards b as undef. Treating that as a BAD argument would warn on
|
|
892
|
+
// every such call. Passing undef is idiomatically the same as not
|
|
893
|
+
// passing in OpenSCAD -- BOSL2 threads optional arguments through
|
|
894
|
+
// wrappers that way throughout.
|
|
895
|
+
Evaluator ev;
|
|
896
|
+
EXPECT_NEAR(asNum(evalSrc("linear_solve([[2,1],[1,3]], undef).det", ev)), 5.0, 1e-12);
|
|
897
|
+
EXPECT_TRUE(isUndef(evalSrc("linear_solve([[2,1],[1,3]], undef).x", ev)));
|
|
898
|
+
EXPECT_TRUE(builtinWarnings("linear_solve([[2,1],[1,3]], undef)").empty());
|
|
899
|
+
}
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.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
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/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
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_children_separate.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.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.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.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
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.1}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.50.0 → openscad_cpp_evaluator-0.50.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
|