openscad-cpp-evaluator 0.4.5__tar.gz → 0.4.7__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.5 → openscad_cpp_evaluator-0.4.7}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/bytecode_compiler.cpp +14 -5
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/expr_eval.cpp +17 -1
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_bytecode_compiler.cpp +16 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_expr_eval.cpp +17 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/.gitignore +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/.gitmodules +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/LICENSE +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/README.md +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/stb_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/text/stb_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tools/cli/main.cpp +0 -0
|
@@ -675,11 +675,20 @@ public:
|
|
|
675
675
|
for (const auto& assign : n.incrs) {
|
|
676
676
|
compileExpr(*assign->expr, out, scope);
|
|
677
677
|
auto slot = scope.resolve(assign->name->name);
|
|
678
|
-
//
|
|
679
|
-
//
|
|
680
|
-
//
|
|
681
|
-
//
|
|
682
|
-
|
|
678
|
+
// An incr assignment can introduce a brand-new name
|
|
679
|
+
// never present in the init list, then have a LATER
|
|
680
|
+
// incr expression in the same list read it -- e.g.
|
|
681
|
+
// BOSL2's nurbs.scad: `inc_k = ...; kind = inc_k ? ...
|
|
682
|
+
// : kind;` (verified against real OpenSCAD and this
|
|
683
|
+
// port's own AST interpreter, evalListElement's
|
|
684
|
+
// ListCompCFor case in expr_eval.cpp -- both handle it
|
|
685
|
+
// correctly). The old assumption here ("incrs always
|
|
686
|
+
// reference an already-declared init name") was wrong
|
|
687
|
+
// and silently dereferenced a disengaged optional (UB)
|
|
688
|
+
// whenever it didn't hold. Declare a fresh slot on
|
|
689
|
+
// first appearance, exactly like an init assignment.
|
|
690
|
+
int resolvedSlot = slot ? *slot : declareLocal(scope, assign->name->name);
|
|
691
|
+
out.push_back({Op::StoreLocal, resolvedSlot, 0, &assign->position()});
|
|
683
692
|
}
|
|
684
693
|
out.push_back({Op::Jump, static_cast<int>(loopStart), 0, nullptr});
|
|
685
694
|
out[jend].a = static_cast<int>(out.size());
|
|
@@ -103,7 +103,23 @@ Value Evaluator::evalIdentifier(const std::string& name, const oscad::Position*
|
|
|
103
103
|
if (const Value* v = ctx.let_->find(name)) return *v;
|
|
104
104
|
|
|
105
105
|
if (!name.empty() && name[0] == '$') {
|
|
106
|
-
|
|
106
|
+
// $-prefixed names are dynamic variables: a completely separate
|
|
107
|
+
// namespace from lexically-scoped identifiers, never requiring a
|
|
108
|
+
// scope declaration (unlike a bare identifier). Found via
|
|
109
|
+
// BelfrySCAD/BOSL2's constants.scad `get_slop()`
|
|
110
|
+
// (`is_undef($slop) ? 0 : $slop` with $slop never assigned
|
|
111
|
+
// anywhere) producing a spurious "Ignoring unknown variable
|
|
112
|
+
// '$slop'" warning here but not through the bytecode VM's
|
|
113
|
+
// Op::LoadDyn (bytecode_vm.cpp), which already does exactly
|
|
114
|
+
// this -- find in ctx.dyn, undef if absent, no scope-lookup
|
|
115
|
+
// fallback, no warning, ever. Verified against real OpenSCAD.app:
|
|
116
|
+
// no warning for a never-set $-variable. Must return here
|
|
117
|
+
// unconditionally rather than falling through to the
|
|
118
|
+
// scope->lookupVariable() check below, which can never resolve a
|
|
119
|
+
// $-name anyway (dynamic variables aren't scope-declarable) and
|
|
120
|
+
// exists only for plain identifiers.
|
|
121
|
+
const Value* v = ctx.dyn->find(name);
|
|
122
|
+
return v ? *v : Value{};
|
|
107
123
|
}
|
|
108
124
|
|
|
109
125
|
if (name == "PI") return Value{std::numbers::pi};
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_bytecode_compiler.cpp
RENAMED
|
@@ -243,6 +243,22 @@ TEST(BytecodeCompiler, CStyleForAccumulates) {
|
|
|
243
243
|
"ECHO: [0, 0, 1, 3, 6]");
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
+
TEST(BytecodeCompiler, CStyleForIncrCanIntroduceAndUseANewNameInTheSamePass) {
|
|
247
|
+
// Real bug found via BOSL2's nurbs.scad hanging in BelfrySCAD (produced
|
|
248
|
+
// no geometry there, silently, until traced to this): the compiler
|
|
249
|
+
// assumed every incr assignment's target name was already declared in
|
|
250
|
+
// the init list, dereferencing a disengaged scope.resolve() optional
|
|
251
|
+
// (UB) whenever an incr introduced a brand-new name -- e.g. `k` here,
|
|
252
|
+
// read by the very next incr in the same list. Verified against real
|
|
253
|
+
// OpenSCAD and this port's own AST interpreter (both handle it
|
|
254
|
+
// correctly) before fixing the compiler to match.
|
|
255
|
+
ScopedVm vm(true);
|
|
256
|
+
EXPECT_EQ(runCapturingEcho(
|
|
257
|
+
"function f() = [for (a = 0, i = 0; i < 5; k = i >= 2, a = k ? a + 10 : a + 1, i = i + 1) a];\n"
|
|
258
|
+
"echo(f());"),
|
|
259
|
+
"ECHO: [0, 1, 2, 12, 22]");
|
|
260
|
+
}
|
|
261
|
+
|
|
246
262
|
TEST(BytecodeCompiler, CStyleForExceedingMaxIterationsThrows) {
|
|
247
263
|
ScopedVm vm(true);
|
|
248
264
|
EXPECT_THROW(runCapturingEcho("function f() = [for (a = 0; true; a = a + 1) a];\necho(f());"), EvalError);
|
|
@@ -52,6 +52,23 @@ TEST(ExprEvalIdentifiers, UnknownVariableWarnsAndIsUndef) {
|
|
|
52
52
|
EXPECT_NE(lastWarning.find("Ignoring unknown variable 'nope'"), std::string::npos);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
TEST(ExprEvalIdentifiers, UndefinedDollarVariableIsUndefWithNoWarning) {
|
|
56
|
+
// Found via BOSL2's constants.scad: `function get_slop() = is_undef($slop)
|
|
57
|
+
// ? 0 : $slop;` with $slop never assigned anywhere in the script. Real
|
|
58
|
+
// OpenSCAD.app produces no warning at all -- $-prefixed names are a
|
|
59
|
+
// separate, always-implicitly-available namespace, never requiring a
|
|
60
|
+
// scope declaration the way a bare identifier does. This port's
|
|
61
|
+
// bytecode VM (Op::LoadDyn, bytecode_vm.cpp) already got this right by
|
|
62
|
+
// construction; the plain interpreter incorrectly fell through to the
|
|
63
|
+
// same "Ignoring unknown variable" path a genuinely undeclared bare
|
|
64
|
+
// identifier hits.
|
|
65
|
+
std::string lastWarning;
|
|
66
|
+
Evaluator ev([&](const std::string& msg) { lastWarning = msg; });
|
|
67
|
+
Value v = evalSrc("$slop", ev);
|
|
68
|
+
EXPECT_TRUE(std::holds_alternative<std::monostate>(v));
|
|
69
|
+
EXPECT_TRUE(lastWarning.empty());
|
|
70
|
+
}
|
|
71
|
+
|
|
55
72
|
TEST(ExprEvalIdentifiers, ResolvesViaScopeFallbackWhenNotEagerlyBound) {
|
|
56
73
|
// "a" is a real top-level declaration but evalChildren() was never run,
|
|
57
74
|
// so ctx.let_ has no eager binding for it -- this exercises
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.5 → openscad_cpp_evaluator-0.4.7}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/external/openscad_cpp_parser/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/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
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/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
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/src/text/stb_font_provider.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.5 → openscad_cpp_evaluator-0.4.7}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/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
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-0.4.5 → openscad_cpp_evaluator-0.4.7}/tests/test_viewport_params.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|