openscad-cpp-evaluator 1.3.0__tar.gz → 1.3.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-1.3.0 → openscad_cpp_evaluator-1.3.1}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/value.cpp +21 -4
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_python_bindings.py +33 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/uv.lock +1 -1
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/README.md +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tools/cli/main.cpp +0 -0
|
@@ -493,10 +493,27 @@ std::string fmtValue(const Value& v) {
|
|
|
493
493
|
// nullopt for a step of 0 or a direction that disagrees with start/end (a
|
|
494
494
|
// naturally-empty range -- 0 elements, never "too many").
|
|
495
495
|
std::optional<size_t> rangeElementCount(const OscRange& r) {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
496
|
+
// Zero step, wrong direction, or a NaN anywhere: nothing to iterate, and
|
|
497
|
+
// the reference says nothing about it -- `[for (i = [nan:1:-1]) i]` is
|
|
498
|
+
// [] with no warning there. BOSL2 reaches exactly that through
|
|
499
|
+
// list_rotate() on an empty list, where ((n % 0) + 0) % 0 is NaN.
|
|
500
|
+
if (r.isEmpty()) return std::nullopt;
|
|
501
|
+
|
|
502
|
+
const double count = std::floor((r.end - r.start) / r.step + 1e-10) + 1.0;
|
|
503
|
+
|
|
504
|
+
// Casting a double past size_t's range is undefined, and the platforms
|
|
505
|
+
// disagree about it in opposite directions: x86_64 wraps to 2^63 -- the
|
|
506
|
+
// "too many elements (9223372036854775809)" a CI run reported -- while
|
|
507
|
+
// arm64 produced something small enough that an INFINITE range iterated
|
|
508
|
+
// forever instead of being rejected. Neither is a wrong number so much
|
|
509
|
+
// as an unpredictable one.
|
|
510
|
+
//
|
|
511
|
+
// Clamp to what the reference reports for such a range, its own uint32
|
|
512
|
+
// ceiling: `[0:1:1/0]` warns "too many elements (4294967295)" there and
|
|
513
|
+
// yields [].
|
|
514
|
+
constexpr double kCap = 4294967295.0;
|
|
515
|
+
if (!(count < kCap)) return static_cast<size_t>(kCap);
|
|
516
|
+
return static_cast<size_t>(count);
|
|
500
517
|
}
|
|
501
518
|
|
|
502
519
|
IterableValues expandIterable(const Value& v, const RangeTooManyFn& onTooMany) {
|
|
@@ -600,3 +600,36 @@ def test_chr_of_a_multibyte_codepoint_has_length_one(tmp_path):
|
|
|
600
600
|
echo(len(chr(65)));
|
|
601
601
|
''')
|
|
602
602
|
assert got == ["1", "1", "1"], got
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
def test_degenerate_ranges_do_not_overflow_the_element_count(tmp_path):
|
|
606
|
+
"""A NaN range yields nothing, silently. An unbounded one is rejected with
|
|
607
|
+
the reference's own count.
|
|
608
|
+
|
|
609
|
+
Both used to go through a cast of an out-of-range double to size_t, which
|
|
610
|
+
is undefined and which the platforms disagreed about: x86_64 wrapped to
|
|
611
|
+
2^63 and warned "too many elements (9223372036854775809)", while arm64
|
|
612
|
+
produced a small enough number that an infinite range iterated forever.
|
|
613
|
+
BOSL2 reaches the NaN case through list_rotate() on an empty list, where
|
|
614
|
+
((n % 0) + 0) % 0 is NaN -- so this failed on Linux CI while passing on a
|
|
615
|
+
developer's Mac.
|
|
616
|
+
"""
|
|
617
|
+
from openscad_cpp_evaluator import Evaluator
|
|
618
|
+
src = tmp_path / "r.scad"
|
|
619
|
+
src.write_text('''
|
|
620
|
+
n = 0/0;
|
|
621
|
+
echo([for (i = [n : 1 : -1]) i]);
|
|
622
|
+
echo([for (i = [0 : 1 : n]) i]);
|
|
623
|
+
echo([for (i = [0 : 1 : 1/0]) 1]);
|
|
624
|
+
echo([for (i = [0 : 1 : 1e300]) 1]);
|
|
625
|
+
echo([for (i = [0 : 1 : 3]) i]);
|
|
626
|
+
''')
|
|
627
|
+
msgs = []
|
|
628
|
+
Evaluator(echo_fn=msgs.append).evaluate(str(src), {})
|
|
629
|
+
echoes = [m[len("ECHO: "):] for m in msgs if m.startswith("ECHO: ")]
|
|
630
|
+
warnings = [m for m in msgs if m.startswith("WARNING:")]
|
|
631
|
+
|
|
632
|
+
assert echoes == ["[]", "[]", "[]", "[]", "[0, 1, 2, 3]"], echoes
|
|
633
|
+
# Silent for NaN; the unbounded pair warn, with the reference's number.
|
|
634
|
+
assert len(warnings) == 2, warnings
|
|
635
|
+
assert all("too many elements (4294967295)" in w for w in warnings), warnings
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.3.0 → openscad_cpp_evaluator-1.3.1}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/external/openscad_cpp_parser/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.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
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.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
|
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/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.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.1}/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.3.0 → openscad_cpp_evaluator-1.3.1}/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.3.0 → openscad_cpp_evaluator-1.3.1}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.3.0 → openscad_cpp_evaluator-1.3.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
|