openscad-cpp-evaluator 0.4.3__tar.gz → 0.4.4__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.4.3 → openscad_cpp_evaluator-0.4.4}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/value.hpp +24 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/control.cpp +4 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/bytecode_vm.cpp +3 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/expr_eval.cpp +4 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/stmt_eval.cpp +4 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/value.cpp +17 -1
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_value.cpp +63 -6
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/README.md +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/stb_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/text/stb_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tools/cli/main.cpp +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include "openscad_cpp_evaluator/osc_range.hpp"
|
|
4
4
|
|
|
5
|
+
#include <functional>
|
|
5
6
|
#include <memory>
|
|
6
7
|
#include <optional>
|
|
7
8
|
#include <string>
|
|
@@ -265,6 +266,13 @@ private:
|
|
|
265
266
|
mutable std::optional<Cursor> cursor_;
|
|
266
267
|
};
|
|
267
268
|
|
|
269
|
+
// Called (count = the range's own requested element count) when a range
|
|
270
|
+
// would be rejected for having too many elements -- see expandIterable's
|
|
271
|
+
// own doc comment. The caller's own warn(message, position) already knows
|
|
272
|
+
// how to format/emit a WARNING; this just hands back the number to put in
|
|
273
|
+
// it, keeping expandIterable() itself free of any Evaluator/echo coupling.
|
|
274
|
+
using RangeTooManyFn = std::function<void(size_t count)>;
|
|
275
|
+
|
|
268
276
|
// Converts a for()/intersection_for() loop assignment's evaluated RHS into
|
|
269
277
|
// the sequence of values to iterate: undef -> empty, range -> a LAZY
|
|
270
278
|
// sequence (matching OscRange's own start/step/end iteration, half-open
|
|
@@ -275,7 +283,22 @@ private:
|
|
|
275
283
|
// IterableValues), anything else (a bare scalar) -> a single-element
|
|
276
284
|
// list. Mirrors the shared expansion logic duplicated across the
|
|
277
285
|
// reference's _eval_for/_resolve_intersection_for.
|
|
278
|
-
|
|
286
|
+
//
|
|
287
|
+
// A range whose own element count would be >= 1,000,000 is rejected
|
|
288
|
+
// entirely (onTooMany called, empty result returned) rather than iterated
|
|
289
|
+
// -- verified empirically against real OpenSCAD.app: a range producing
|
|
290
|
+
// exactly 999,999 elements iterates fine; exactly 1,000,000 emits
|
|
291
|
+
// "WARNING: Bad range parameter in for statement: too many elements (N)"
|
|
292
|
+
// and contributes zero iterations (not a truncation to 999,999, not an
|
|
293
|
+
// error like the C-style for's own _MAX_CFOR_ITERATIONS limit -- a
|
|
294
|
+
// different mechanism entirely, checked per-range, not against a
|
|
295
|
+
// cartesian-product total across a multi-variable for()). The Python
|
|
296
|
+
// reference (openscad_evaluator) has no equivalent check at all -- this
|
|
297
|
+
// was a real gap in both ports, closed here first since this port is the
|
|
298
|
+
// one with a live consumer (BelfrySCAD) that surfaced it. The count is
|
|
299
|
+
// computed in closed form (not IterableValues::size()'s O(n) walk) so a
|
|
300
|
+
// legitimate huge-but-under-the-limit range never pays an eager pass.
|
|
301
|
+
IterableValues expandIterable(const Value& v, const RangeTooManyFn& onTooMany = nullptr);
|
|
279
302
|
|
|
280
303
|
// `each <body>`'s own flatten-one-level rule, shared by the AST interpreter
|
|
281
304
|
// (evalListLiteral/evalListElement's ListCompEach handling, expr_eval.cpp)
|
|
@@ -101,7 +101,10 @@ CSGParams resolveIntersectionFor(Evaluator& ev, const oscad::ModularIntersection
|
|
|
101
101
|
varSeqs.reserve(node.assignments.size());
|
|
102
102
|
for (const auto& assign : node.assignments) {
|
|
103
103
|
Value values = ev.evalExpr(*assign->expr, ctx);
|
|
104
|
-
|
|
104
|
+
const oscad::Position* pos = &assign->position();
|
|
105
|
+
varSeqs.emplace_back(assign->name->name, expandIterable(values, [&](size_t count) {
|
|
106
|
+
ev.warn("Bad range parameter in for statement: too many elements (" + std::to_string(count) + ")", pos);
|
|
107
|
+
}));
|
|
105
108
|
}
|
|
106
109
|
|
|
107
110
|
std::vector<const oscad::ASTNode*> bodyNodes;
|
|
@@ -240,7 +240,9 @@ Value runChunk(Evaluator& ev, const CompiledChunk& chunk, const std::vector<Inst
|
|
|
240
240
|
Value v = std::move(stack.back());
|
|
241
241
|
stack.pop_back();
|
|
242
242
|
IterList& il = iterLists[static_cast<size_t>(ins.a)];
|
|
243
|
-
il.values = expandIterable(v)
|
|
243
|
+
il.values = expandIterable(v, [&](size_t count) {
|
|
244
|
+
ev.warn("Bad range parameter in for statement: too many elements (" + std::to_string(count) + ")", ins.pos);
|
|
245
|
+
});
|
|
244
246
|
il.index = 0;
|
|
245
247
|
++pc;
|
|
246
248
|
break;
|
|
@@ -136,7 +136,10 @@ void Evaluator::evalListElement(const oscad::ASTNode& elem, EvalContext& ctx, st
|
|
|
136
136
|
pairs.reserve(n.assignments.size());
|
|
137
137
|
for (const auto& assign : n.assignments) {
|
|
138
138
|
Value values = evalExpr(*assign->expr, ctx);
|
|
139
|
-
|
|
139
|
+
const oscad::Position* pos = &assign->position();
|
|
140
|
+
pairs.push_back(Pair{assign->name->name, expandIterable(values, [&](size_t count) {
|
|
141
|
+
warn("Bad range parameter in for statement: too many elements (" + std::to_string(count) + ")", pos);
|
|
142
|
+
})});
|
|
140
143
|
}
|
|
141
144
|
const bool isNestedLc = (n.body->kind() == oscad::NodeKind::ListComprehension);
|
|
142
145
|
|
|
@@ -79,7 +79,10 @@ void Evaluator::evalFor(const oscad::ModularFor& node, EvalContext& ctx) {
|
|
|
79
79
|
pairs.reserve(node.assignments.size());
|
|
80
80
|
for (const auto& assign : node.assignments) {
|
|
81
81
|
Value values = evalExpr(*assign->expr, ctx);
|
|
82
|
-
|
|
82
|
+
const oscad::Position* pos = &assign->position();
|
|
83
|
+
pairs.push_back(AssignPair{assign->name->name, expandIterable(values, [&](size_t count) {
|
|
84
|
+
warn("Bad range parameter in for statement: too many elements (" + std::to_string(count) + ")", pos);
|
|
85
|
+
})});
|
|
83
86
|
}
|
|
84
87
|
|
|
85
88
|
std::vector<const oscad::ASTNode*> bodyNodes;
|
|
@@ -328,9 +328,25 @@ std::string fmtValue(const Value& v) {
|
|
|
328
328
|
return "<function-literal>"; // const FunctionLiteral* -- no meaningful textual form in the reference either
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
|
|
331
|
+
// (Range::numValues()'s own count, closed-form) -- 1 + floor((end-start)/step),
|
|
332
|
+
// the same epsilon IterableValues::inRange uses so this agrees exactly with
|
|
333
|
+
// how many elements a lazy walk of the same range would actually produce.
|
|
334
|
+
// nullopt for a step of 0 or a direction that disagrees with start/end (a
|
|
335
|
+
// naturally-empty range -- 0 elements, never "too many").
|
|
336
|
+
std::optional<size_t> rangeElementCount(const OscRange& r) {
|
|
337
|
+
if (r.step == 0.0) return std::nullopt;
|
|
338
|
+
const double n = (r.end - r.start) / r.step;
|
|
339
|
+
if (n < -1e-10) return std::nullopt; // wrong direction -- naturally empty
|
|
340
|
+
return static_cast<size_t>(std::floor(n + 1e-10)) + 1;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
IterableValues expandIterable(const Value& v, const RangeTooManyFn& onTooMany) {
|
|
332
344
|
if (std::holds_alternative<std::monostate>(v)) return IterableValues{};
|
|
333
345
|
if (const OscRange* r = std::get_if<OscRange>(&v)) {
|
|
346
|
+
if (const std::optional<size_t> count = rangeElementCount(*r); count && *count >= 1'000'000) {
|
|
347
|
+
if (onTooMany) onTooMany(*count);
|
|
348
|
+
return IterableValues{};
|
|
349
|
+
}
|
|
334
350
|
// Lazy -- IterableValues itself reproduces this exact
|
|
335
351
|
// termination condition (a zero step is naturally empty: neither
|
|
336
352
|
// `x <= end` nor `x >= end` branch ever fires for it) without
|
|
@@ -364,12 +364,14 @@ TEST(ExpandIterable, OutOfOrderIndexAccessStillReturnsCorrectValue) {
|
|
|
364
364
|
}
|
|
365
365
|
|
|
366
366
|
TEST(ExpandIterable, LargeRangePartialIterationStaysLazy) {
|
|
367
|
-
// A huge
|
|
368
|
-
//
|
|
369
|
-
//
|
|
370
|
-
// elements
|
|
371
|
-
//
|
|
372
|
-
|
|
367
|
+
// A huge (but under the 1,000,000-element "too many" limit -- see the
|
|
368
|
+
// TooManyElements tests below) range must not eagerly materialize a
|
|
369
|
+
// vector: constructing expandIterable() and reading only the first few
|
|
370
|
+
// elements has to stay instant regardless of the range's nominal size
|
|
371
|
+
// (999,999 elements here, the largest value that doesn't trigger
|
|
372
|
+
// rejection). If this regresses to eager expansion, this test times
|
|
373
|
+
// out/OOMs instead of merely failing an assertion.
|
|
374
|
+
auto items = expandIterable(Value{OscRange{0, 1, 999'998.0}});
|
|
373
375
|
auto it = items.begin();
|
|
374
376
|
EXPECT_DOUBLE_EQ(asNum(*it), 0.0);
|
|
375
377
|
++it;
|
|
@@ -377,3 +379,58 @@ TEST(ExpandIterable, LargeRangePartialIterationStaysLazy) {
|
|
|
377
379
|
++it;
|
|
378
380
|
EXPECT_DOUBLE_EQ(asNum(*it), 2.0);
|
|
379
381
|
}
|
|
382
|
+
|
|
383
|
+
TEST(ExpandIterable, RangeUnderOneMillionElementsIteratesNormally) {
|
|
384
|
+
// 999,999 elements (indices 0..999998) -- the largest range that must
|
|
385
|
+
// NOT be rejected. Verified against real OpenSCAD.app: this exact size
|
|
386
|
+
// iterates fine, one more element does not (see the next two tests).
|
|
387
|
+
bool warned = false;
|
|
388
|
+
auto items = expandIterable(Value{OscRange{0, 1, 999'998.0}}, [&](size_t) { warned = true; });
|
|
389
|
+
EXPECT_FALSE(warned);
|
|
390
|
+
EXPECT_EQ(items.size(), 999'999u);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
TEST(ExpandIterable, RangeOfExactlyOneMillionElementsIsRejected) {
|
|
394
|
+
// 1,000,000 elements (indices 0..999999) -- real OpenSCAD.app rejects
|
|
395
|
+
// the whole range at exactly this size (WARNING + zero iterations, not
|
|
396
|
+
// a truncation to 999,999) -- a different mechanism from the C-style
|
|
397
|
+
// for loop's own _MAX_CFOR_ITERATIONS, which instead ALLOWS exactly
|
|
398
|
+
// 1,000,000 iterations and only errors past it. Verified empirically:
|
|
399
|
+
// these are genuinely different thresholds in real OpenSCAD, not a
|
|
400
|
+
// copy-paste of the same constant.
|
|
401
|
+
size_t warnedCount = 0;
|
|
402
|
+
auto items = expandIterable(Value{OscRange{0, 1, 999'999.0}}, [&](size_t count) { warnedCount = count; });
|
|
403
|
+
EXPECT_EQ(warnedCount, 1'000'000u);
|
|
404
|
+
EXPECT_EQ(items.size(), 0u);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
TEST(ExpandIterable, HugeRangeIsRejectedInConstantTime) {
|
|
408
|
+
// The rejection check itself must be O(1) (closed-form), not a lazy
|
|
409
|
+
// walk to find out the count -- a billion-element range must reject
|
|
410
|
+
// instantly, not time out. This is exactly the case
|
|
411
|
+
// LargeRangePartialIterationStaysLazy used to (wrongly) exercise as
|
|
412
|
+
// "still iterable"; real OpenSCAD.app rejects it outright.
|
|
413
|
+
size_t warnedCount = 0;
|
|
414
|
+
auto items = expandIterable(Value{OscRange{0, 1, 1'000'000'000.0}}, [&](size_t count) { warnedCount = count; });
|
|
415
|
+
EXPECT_EQ(warnedCount, 1'000'000'001u);
|
|
416
|
+
EXPECT_EQ(items.size(), 0u);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
TEST(ExpandIterable, NegativeStepRangeTooManyElementsIsRejectedToo) {
|
|
420
|
+
// Verified against real OpenSCAD.app: the too-many-elements check
|
|
421
|
+
// applies symmetrically to a descending range, with the correct count.
|
|
422
|
+
size_t warnedCount = 0;
|
|
423
|
+
auto items = expandIterable(Value{OscRange{1'099'999.0, -1, 0}}, [&](size_t count) { warnedCount = count; });
|
|
424
|
+
EXPECT_EQ(warnedCount, 1'100'000u);
|
|
425
|
+
EXPECT_EQ(items.size(), 0u);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
TEST(ExpandIterable, ZeroStepRangeIsNaturallyEmptyNotTooMany) {
|
|
429
|
+
// A zero step never terminates by walking, but must not be
|
|
430
|
+
// misclassified as "too many" either -- it's naturally empty (0
|
|
431
|
+
// elements), no warning.
|
|
432
|
+
bool warned = false;
|
|
433
|
+
auto items = expandIterable(Value{OscRange{0, 0, 10}}, [&](size_t) { warned = true; });
|
|
434
|
+
EXPECT_FALSE(warned);
|
|
435
|
+
EXPECT_EQ(items.size(), 0u);
|
|
436
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.4.3 → openscad_cpp_evaluator-0.4.4}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/external/openscad_cpp_parser/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/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
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/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
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/src/text/stb_font_provider.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_bytecode_compiler.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-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.3 → openscad_cpp_evaluator-0.4.4}/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-0.4.3 → openscad_cpp_evaluator-0.4.4}/tests/test_viewport_params.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|