openscad-cpp-evaluator 1.28.5__tar.gz → 1.28.6__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.28.5 → openscad_cpp_evaluator-1.28.6}/PKG-INFO +1 -1
- openscad_cpp_evaluator-1.28.6/external/openscad_cpp_parser/src/.DS_Store +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/api.cpp +24 -9
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/CMakeLists.txt +1 -0
- openscad_cpp_evaluator-1.28.6/external/openscad_cpp_parser/tests/test_concurrent_parse.cpp +56 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_python_bindings.py +34 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/uv.lock +1 -1
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/README.md +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope_table.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_strict_commas.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/coverage.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/resources/fonts/LiberationSans-Bold.ttf +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/resources/fonts/LiberationSans-BoldItalic.ttf +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/resources/fonts/LiberationSans-Italic.ttf +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/text.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_include_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_text.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tools/cli/main.cpp +0 -0
|
Binary file
|
|
@@ -119,10 +119,25 @@ std::vector<std::unique_ptr<ASTNode>> parseAst(const std::string& code, const st
|
|
|
119
119
|
|
|
120
120
|
ParserDriver driver(origin);
|
|
121
121
|
driver.strictCommas = g_strictCommas;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
int rc;
|
|
123
|
+
{
|
|
124
|
+
// The flex scanner is global state (grammar/lexer_api.hpp), so two
|
|
125
|
+
// threads parsing at once lexed each other's input and crashed -- in
|
|
126
|
+
// BelfrySCAD, a render worker parsing its file while the UI thread
|
|
127
|
+
// parsed the buffer for the Customizer: an intermittent 0xC0000005
|
|
128
|
+
// on Windows. One parse at a time; a parse is milliseconds, and the
|
|
129
|
+
// shared file cache means a library is parsed once, not per thread.
|
|
130
|
+
// ponytail: a global lock; a reentrant scanner (%option reentrant +
|
|
131
|
+
// a yyscan_t through the driver) if parsing ever needs to scale.
|
|
132
|
+
static std::mutex scannerMutex;
|
|
133
|
+
std::lock_guard<std::mutex> lock(scannerMutex);
|
|
134
|
+
struct EndLexer { // lexerEnd() even when parse() throws
|
|
135
|
+
~EndLexer() { lexerEnd(); }
|
|
136
|
+
} endLexer;
|
|
137
|
+
lexerBeginString(code);
|
|
138
|
+
yy::parser parser(driver);
|
|
139
|
+
rc = parser.parse();
|
|
140
|
+
}
|
|
126
141
|
|
|
127
142
|
if (rc != 0 || driver.hadError) {
|
|
128
143
|
throw ParseError(formatSyntaxError(driver, code, origin, sourceMap));
|
|
@@ -409,11 +424,11 @@ FileAstPtr parseFileShared(const std::string& absPath, bool includeComments) {
|
|
|
409
424
|
return it->second.ast;
|
|
410
425
|
}
|
|
411
426
|
|
|
412
|
-
// Parsed
|
|
413
|
-
//
|
|
414
|
-
//
|
|
415
|
-
//
|
|
416
|
-
//
|
|
427
|
+
// Parsed outside THIS lock, so a cache lookup never waits behind a
|
|
428
|
+
// parse. (parseAst serialises the scanner itself: this comment once
|
|
429
|
+
// called concurrent parses "never wrong", and they were -- the scanner
|
|
430
|
+
// is global state.) Two threads racing the same file each parse it in
|
|
431
|
+
// turn and one result is dropped: wasteful once, never wrong.
|
|
417
432
|
auto parsed = std::make_shared<const FileAst>(parseSingleFile(absPath, includeComments));
|
|
418
433
|
std::lock_guard<std::mutex> lock(g_astCacheMutex);
|
|
419
434
|
CacheEntry& entry = g_astCache[key];
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// The flex scanner is non-reentrant, global state (grammar/lexer_api.hpp),
|
|
2
|
+
// so two threads parsing at once used to lex each other's input. In
|
|
3
|
+
// BelfrySCAD that was an intermittent 0xC0000005 on Windows: a render worker
|
|
4
|
+
// parsing its file while the UI thread parsed the buffer for the Customizer.
|
|
5
|
+
// parseAst now serialises the scanner. Every thread here parses its OWN
|
|
6
|
+
// source and checks it got its own tree back, so corruption fails the test
|
|
7
|
+
// even where it does not crash.
|
|
8
|
+
#include "openscad_cpp_parser/api.hpp"
|
|
9
|
+
|
|
10
|
+
#include <gtest/gtest.h>
|
|
11
|
+
|
|
12
|
+
#include <atomic>
|
|
13
|
+
#include <string>
|
|
14
|
+
#include <thread>
|
|
15
|
+
#include <vector>
|
|
16
|
+
|
|
17
|
+
using namespace oscad;
|
|
18
|
+
|
|
19
|
+
namespace {
|
|
20
|
+
std::string sourceFor(int thread, int round) {
|
|
21
|
+
// Different identifiers and lengths per thread, so a lexer reading
|
|
22
|
+
// another thread's buffer produces a different tree, not an equal one.
|
|
23
|
+
std::string name = "v" + std::to_string(thread) + "_" + std::to_string(round);
|
|
24
|
+
std::string src;
|
|
25
|
+
for (int i = 0; i < 20 + thread; ++i) {
|
|
26
|
+
src += name + "_" + std::to_string(i) + " = [" + std::to_string(i) + ", " +
|
|
27
|
+
std::to_string(thread) + ", \"s" + std::to_string(round) + "\"];\n";
|
|
28
|
+
}
|
|
29
|
+
return src;
|
|
30
|
+
}
|
|
31
|
+
} // namespace
|
|
32
|
+
|
|
33
|
+
TEST(ConcurrentParse, ThreadsParsingAtOnceEachGetTheirOwnTree) {
|
|
34
|
+
constexpr int kThreads = 8, kRounds = 150;
|
|
35
|
+
std::atomic<int> wrong{0};
|
|
36
|
+
std::vector<std::thread> threads;
|
|
37
|
+
for (int t = 0; t < kThreads; ++t) {
|
|
38
|
+
threads.emplace_back([t, &wrong] {
|
|
39
|
+
for (int r = 0; r < kRounds; ++r) {
|
|
40
|
+
const std::string src = sourceFor(t, r);
|
|
41
|
+
try {
|
|
42
|
+
auto ast = parseAst(src);
|
|
43
|
+
const auto* first = ast.empty() ? nullptr : dynamic_cast<const Assignment*>(ast[0].get());
|
|
44
|
+
const std::string want = "v" + std::to_string(t) + "_" + std::to_string(r) + "_0";
|
|
45
|
+
if (ast.size() != static_cast<size_t>(20 + t) || !first || first->name->name != want) {
|
|
46
|
+
++wrong;
|
|
47
|
+
}
|
|
48
|
+
} catch (...) {
|
|
49
|
+
++wrong; // a syntax error from lexing another thread's input
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
for (auto& th : threads) th.join();
|
|
55
|
+
EXPECT_EQ(wrong.load(), 0);
|
|
56
|
+
}
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_python_bindings.py
RENAMED
|
@@ -1121,3 +1121,37 @@ def test_a_viewer_can_ask_for_a_thin_2d_slab_and_export_keeps_1(tmp_path):
|
|
|
1121
1121
|
nverts = int(lines[1].split()[0])
|
|
1122
1122
|
zs = [float(l.split()[2]) for l in lines[2:2 + nverts]]
|
|
1123
1123
|
assert abs(max(zs) - min(zs) - 1.0) < 1e-6, "export is the 1-unit slab"
|
|
1124
|
+
|
|
1125
|
+
|
|
1126
|
+
def test_parsing_from_two_threads_at_once_is_safe(tmp_path):
|
|
1127
|
+
"""BelfrySCAD's render worker parses its file (`parse`) while the UI
|
|
1128
|
+
thread parses the buffer for the Customizer (`parse_ast_string`); the
|
|
1129
|
+
parser's flex scanner is global state, and the two used to collide --
|
|
1130
|
+
an intermittent 0xC0000005 on Windows. The parser now serialises it
|
|
1131
|
+
(openscad_cpp_parser #12). Run in a subprocess, since the failure mode
|
|
1132
|
+
is a crash, not an exception."""
|
|
1133
|
+
import subprocess
|
|
1134
|
+
code = r'''
|
|
1135
|
+
import sys, threading
|
|
1136
|
+
from openscad_cpp_evaluator import parse, parse_ast_string
|
|
1137
|
+
path = sys.argv[1]
|
|
1138
|
+
errors = []
|
|
1139
|
+
def by_path():
|
|
1140
|
+
try:
|
|
1141
|
+
for _ in range(300): parse(path)
|
|
1142
|
+
except Exception as e: errors.append(repr(e))
|
|
1143
|
+
def by_string():
|
|
1144
|
+
try:
|
|
1145
|
+
for i in range(300):
|
|
1146
|
+
ast = parse_ast_string("a%d = [1, 2, 3];\nb = a%d;\n" % (i, i))
|
|
1147
|
+
assert len(ast) == 2, ast
|
|
1148
|
+
except Exception as e: errors.append(repr(e))
|
|
1149
|
+
threads = [threading.Thread(target=f) for f in (by_path, by_string, by_path, by_string)]
|
|
1150
|
+
for t in threads: t.start()
|
|
1151
|
+
for t in threads: t.join()
|
|
1152
|
+
print("errors:", errors); sys.exit(1 if errors else 0)
|
|
1153
|
+
'''
|
|
1154
|
+
src = tmp_path / "m.scad"
|
|
1155
|
+
src.write_text("".join(f"x{i} = [{i}, {i} + 1, \"s{i}\"];\n" for i in range(200)))
|
|
1156
|
+
r = subprocess.run([sys.executable, "-c", code, str(src)], capture_output=True, text=True, timeout=300)
|
|
1157
|
+
assert r.returncode == 0, (r.returncode, r.stdout[-500:], r.stderr[-1500:])
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/.github/workflows/wheels.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/examples/minimal_debugger.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/src/builtins/primitives_3d.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/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.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_children_separate.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_dxf_svg_import.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_include_cache.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_manifold_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.28.5 → openscad_cpp_evaluator-1.28.6}/tests/test_viewport_params.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|