openscad-cpp-evaluator 1.6.0__tar.gz → 1.6.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.6.0 → openscad_cpp_evaluator-1.6.1}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/scope_trail.hpp +104 -34
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/eval_context.cpp +17 -3
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/README.md +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope_table.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_include_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/uv.lock +0 -0
|
@@ -12,37 +12,101 @@
|
|
|
12
12
|
|
|
13
13
|
namespace oscadeval {
|
|
14
14
|
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
// because this codebase has no escaping closures: a FunctionLiteral value
|
|
22
|
-
// is a bare AST pointer with no captured environment, and callCtxFor()
|
|
23
|
-
// re-derives every call's context from the LIVE call stack -- nothing ever
|
|
24
|
-
// reads a binding after the scope that pushed it has already exited.
|
|
15
|
+
// Recycles the blocks that TrailView/IndexedTrailView's own shared_ptrs are
|
|
16
|
+
// made of. Deriving one EvalContext opens three trail levels -- dyn, let_,
|
|
17
|
+
// dynPositions -- and each was a fresh make_shared: ~2M allocations in one
|
|
18
|
+
// Anklet.scad render, all of them the same size, almost all of them freed in
|
|
19
|
+
// reverse order a few microseconds later. This hands the same block straight
|
|
20
|
+
// back out.
|
|
25
21
|
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
22
|
+
// It changes WHERE the memory comes from and nothing else: no lifetime, no
|
|
23
|
+
// visibility, no popLevel timing. That is the whole point -- the trail's
|
|
24
|
+
// escaping-closure rules are the most delicate thing in this file, and an
|
|
25
|
+
// allocator cannot get them wrong.
|
|
26
|
+
//
|
|
27
|
+
// One size class, because there is exactly one: every block is the control
|
|
28
|
+
// block plus one view object. Anything else falls through to the global
|
|
29
|
+
// allocator rather than being kept.
|
|
30
|
+
//
|
|
31
|
+
// Worth ~1% of an Anklet.scad render, for 2M allocations removed -- a modest
|
|
32
|
+
// return, and deliberately recorded here as such: macOS's own small-object
|
|
33
|
+
// allocator is already a free list, so swapping it for another one only pays
|
|
34
|
+
// for the bookkeeping either side of it. Removing an allocation that also
|
|
35
|
+
// removed real work (a vector's worth of Value moves, say) has paid far
|
|
36
|
+
// better everywhere it has been tried in this codebase.
|
|
37
|
+
class ViewBlockPool {
|
|
38
|
+
public:
|
|
39
|
+
ViewBlockPool() { free_.reserve(kMaxKept); }
|
|
40
|
+
~ViewBlockPool() {
|
|
41
|
+
for (void* p : free_) ::operator delete(p);
|
|
42
|
+
}
|
|
43
|
+
ViewBlockPool(const ViewBlockPool&) = delete;
|
|
44
|
+
ViewBlockPool& operator=(const ViewBlockPool&) = delete;
|
|
45
|
+
|
|
46
|
+
void* take(std::size_t bytes) {
|
|
47
|
+
if (bytes == blockSize_ && !free_.empty()) {
|
|
48
|
+
void* p = free_.back();
|
|
49
|
+
free_.pop_back();
|
|
50
|
+
return p;
|
|
51
|
+
}
|
|
52
|
+
if (blockSize_ == 0) blockSize_ = bytes;
|
|
53
|
+
return ::operator new(bytes);
|
|
54
|
+
}
|
|
55
|
+
// noexcept is safe: free_ was reserved to kMaxKept up front and is never
|
|
56
|
+
// pushed past it, so this push_back cannot reallocate and cannot throw.
|
|
57
|
+
void give(void* p, std::size_t bytes) noexcept {
|
|
58
|
+
if (bytes != blockSize_ || free_.size() >= kMaxKept) {
|
|
59
|
+
::operator delete(p);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
free_.push_back(p);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
private:
|
|
66
|
+
static constexpr std::size_t kMaxKept = 512;
|
|
67
|
+
std::size_t blockSize_ = 0;
|
|
68
|
+
std::vector<void*> free_;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// A STATELESS allocator over one pool per view type (each type has exactly
|
|
72
|
+
// one block size, so each gets its own single-size-class pool). Stateless
|
|
73
|
+
// matters twice over: std::allocate_shared stores a copy of the allocator
|
|
74
|
+
// inside the very block it allocated, so a stateful one both grows every
|
|
75
|
+
// block and -- if it held a shared_ptr to keep the pool alive past the last
|
|
76
|
+
// view, which a pool owned by the storage would need -- pays an atomic
|
|
77
|
+
// refcount pair per allocation. That version was measured, and it was SLOWER
|
|
78
|
+
// than not pooling at all.
|
|
79
|
+
//
|
|
80
|
+
// thread_local, so no locking and no cross-thread sharing, and it outlives
|
|
81
|
+
// every view on its thread, which is what makes "keep the pool alive for the
|
|
82
|
+
// final deallocate" a non-problem rather than a lifetime puzzle.
|
|
83
|
+
template <typename T>
|
|
84
|
+
class ViewBlockAllocator {
|
|
85
|
+
public:
|
|
86
|
+
using value_type = T;
|
|
87
|
+
ViewBlockAllocator() = default;
|
|
88
|
+
template <typename U>
|
|
89
|
+
ViewBlockAllocator(const ViewBlockAllocator<U>&) {}
|
|
90
|
+
|
|
91
|
+
T* allocate(std::size_t n) { return static_cast<T*>(pool().take(n * sizeof(T))); }
|
|
92
|
+
void deallocate(T* p, std::size_t n) noexcept { pool().give(p, n * sizeof(T)); }
|
|
93
|
+
|
|
94
|
+
template <typename U>
|
|
95
|
+
bool operator==(const ViewBlockAllocator<U>&) const noexcept {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
template <typename U>
|
|
99
|
+
bool operator!=(const ViewBlockAllocator<U>&) const noexcept {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private:
|
|
104
|
+
static ViewBlockPool& pool() {
|
|
105
|
+
static thread_local ViewBlockPool p;
|
|
106
|
+
return p;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
46
110
|
template <typename T>
|
|
47
111
|
class ScopeTrailStorage {
|
|
48
112
|
public:
|
|
@@ -207,6 +271,7 @@ private:
|
|
|
207
271
|
// depends on level numbers being globally monotonic.
|
|
208
272
|
std::vector<int> parent_{0};
|
|
209
273
|
int nextLevel_ = 0;
|
|
274
|
+
|
|
210
275
|
};
|
|
211
276
|
|
|
212
277
|
// Per-EvalContext handle onto a shared ScopeTrailStorage<T>: this view's
|
|
@@ -235,7 +300,8 @@ public:
|
|
|
235
300
|
static std::shared_ptr<TrailView<T>> makeRoot() {
|
|
236
301
|
auto storage = std::make_shared<ScopeTrailStorage<T>>();
|
|
237
302
|
int level = storage->openLevel(0);
|
|
238
|
-
return std::
|
|
303
|
+
return std::allocate_shared<TrailView<T>>(ViewBlockAllocator<TrailView<T>>(), storage,
|
|
304
|
+
level);
|
|
239
305
|
}
|
|
240
306
|
|
|
241
307
|
// Open a fresh level for writes. `isolate=true` terminates the new
|
|
@@ -272,7 +338,8 @@ public:
|
|
|
272
338
|
// changes what happens when something holds an EXTRA reference.
|
|
273
339
|
std::shared_ptr<TrailView<T>> openChild(bool isolate) const {
|
|
274
340
|
int level = storage_->openLevel(isolate ? 0 : level_);
|
|
275
|
-
auto child = std::
|
|
341
|
+
auto child = std::allocate_shared<TrailView<T>>(ViewBlockAllocator<TrailView<T>>(),
|
|
342
|
+
storage_, level);
|
|
276
343
|
if (!isolate) child->parentView_ = this->shared_from_this();
|
|
277
344
|
return child;
|
|
278
345
|
}
|
|
@@ -462,6 +529,7 @@ private:
|
|
|
462
529
|
std::unordered_map<int, std::vector<int>> dirty_;
|
|
463
530
|
std::vector<int> parent_{0}; // see ScopeTrailStorage::parent_
|
|
464
531
|
int nextLevel_ = 0;
|
|
532
|
+
|
|
465
533
|
};
|
|
466
534
|
|
|
467
535
|
// Per-EvalContext handle onto a shared IndexedScopeTrailStorage<T> -- the
|
|
@@ -474,12 +542,14 @@ public:
|
|
|
474
542
|
static std::shared_ptr<IndexedTrailView<T>> makeRoot(std::shared_ptr<DynNameIntern> intern) {
|
|
475
543
|
auto storage = std::make_shared<IndexedScopeTrailStorage<T>>(std::move(intern));
|
|
476
544
|
int level = storage->openLevel(0);
|
|
477
|
-
return std::
|
|
545
|
+
return std::allocate_shared<IndexedTrailView<T>>(
|
|
546
|
+
ViewBlockAllocator<IndexedTrailView<T>>(), storage, level);
|
|
478
547
|
}
|
|
479
548
|
|
|
480
549
|
std::shared_ptr<IndexedTrailView<T>> openChild(bool isolate) const {
|
|
481
550
|
int level = storage_->openLevel(isolate ? 0 : level_);
|
|
482
|
-
return std::
|
|
551
|
+
return std::allocate_shared<IndexedTrailView<T>>(
|
|
552
|
+
ViewBlockAllocator<IndexedTrailView<T>>(), storage_, level);
|
|
483
553
|
}
|
|
484
554
|
|
|
485
555
|
IndexedTrailView(std::shared_ptr<IndexedScopeTrailStorage<T>> storage, int level)
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
#include "openscad_cpp_evaluator/eval_context.hpp"
|
|
2
2
|
|
|
3
3
|
namespace oscadeval {
|
|
4
|
+
namespace {
|
|
5
|
+
|
|
6
|
+
// One shared, immutable, empty list. callCtx() and makeRoot() each used to
|
|
7
|
+
// allocate a fresh one per call -- 655K in one Anklet.scad render -- for a
|
|
8
|
+
// value that is read-only at every use site (empty(), range-for,
|
|
9
|
+
// dereference) and compared by identity at none, so one instance serves them
|
|
10
|
+
// all. Stays a shared_ptr, i.e. atomically refcounted: unlike a Value, this
|
|
11
|
+
// really is reachable from a global.
|
|
12
|
+
const std::shared_ptr<const ChildrenNodeList>& emptyChildrenNodes() {
|
|
13
|
+
static const std::shared_ptr<const ChildrenNodeList> kEmpty = std::make_shared<const ChildrenNodeList>();
|
|
14
|
+
return kEmpty;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
} // namespace
|
|
4
18
|
|
|
5
19
|
EvalContext EvalContext::makeRoot(const oscad::Scope* rootScope, const oscad::ScopeTable* scopeTable) {
|
|
6
20
|
// Default: the table buildScopes() attached to this scope tree's root.
|
|
@@ -54,7 +68,7 @@ EvalContext EvalContext::makeRoot(const oscad::Scope* rootScope, const oscad::Sc
|
|
|
54
68
|
Value{double{OSCAD_EVAL_VERSION_PATCH}}}})});
|
|
55
69
|
ctx.let_ = TrailView<Value>::makeRoot();
|
|
56
70
|
ctx.dynPositions = TrailView<const oscad::Position*>::makeRoot();
|
|
57
|
-
ctx.childrenNodes =
|
|
71
|
+
ctx.childrenNodes = emptyChildrenNodes();
|
|
58
72
|
ctx.childrenCallerCtx = nullptr;
|
|
59
73
|
return ctx;
|
|
60
74
|
}
|
|
@@ -101,7 +115,7 @@ EvalContext EvalContext::callCtx(const oscad::Scope* newScope, std::optional<std
|
|
|
101
115
|
result.let_ = let_->openChild(/*isolate=*/true); // isolated call scope
|
|
102
116
|
result.dynPositions = dynPositions->openChild(true);
|
|
103
117
|
result.color = newColor.has_value() ? newColor : color;
|
|
104
|
-
result.childrenNodes = newChildrenNodes ? newChildrenNodes :
|
|
118
|
+
result.childrenNodes = newChildrenNodes ? newChildrenNodes : emptyChildrenNodes();
|
|
105
119
|
result.childrenCallerCtx = newChildrenCallerCtx; // not inherited, see header comment
|
|
106
120
|
return result;
|
|
107
121
|
}
|
|
@@ -130,7 +144,7 @@ EvalContext EvalContext::callCtxFromCapturedLet(const std::shared_ptr<TrailView<
|
|
|
130
144
|
result.let_ = capturedLet->openChild(/*isolate=*/false);
|
|
131
145
|
result.dynPositions = dynPositions->openChild(true);
|
|
132
146
|
result.color = newColor.has_value() ? newColor : color;
|
|
133
|
-
result.childrenNodes = newChildrenNodes ? newChildrenNodes :
|
|
147
|
+
result.childrenNodes = newChildrenNodes ? newChildrenNodes : emptyChildrenNodes();
|
|
134
148
|
result.childrenCallerCtx = newChildrenCallerCtx;
|
|
135
149
|
return result;
|
|
136
150
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.6.0 → openscad_cpp_evaluator-1.6.1}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/external/openscad_cpp_parser/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.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.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.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
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.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
|
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.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.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.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
|
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.6.0 → openscad_cpp_evaluator-1.6.1}/tests/test_viewport_params.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|