openscad-cpp-evaluator 1.20.2__tar.gz → 1.20.3__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.20.2 → openscad_cpp_evaluator-1.20.3}/PKG-INFO +1 -1
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/pyproject.toml +1 -1
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/text.cpp +10 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_manifold_cache.cpp +22 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_text.cpp +27 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/.github/workflows/wheels.yml +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/.gitignore +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/.gitmodules +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/LICENSE +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/README.md +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/bindings/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/bindings/ast_to_py.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/bindings/module.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/cmake/embed_font.cmake +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/examples/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/examples/eval_perf_benchmark.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/examples/manifold_cache_reuse.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/examples/minimal_debugger.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/.github/workflows/ci.yml +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/.gitignore +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/CLAUDE.md +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/README.md +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/api.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/ast_node.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/declarations.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/expression.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/module_instantiation.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/scope_builder.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast/vector_element.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/ast.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/comments.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/position.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/pretty_print.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/scope_table.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/serialization.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/include/openscad_cpp_parser/source_map.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/api.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/ast/ast_node.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/ast/declarations.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/ast/expression.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/ast/format_utils.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/ast/module_instantiation.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/ast/scope_builder.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/ast/vector_element.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/comment_attach_internal.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/comments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/grammar/driver.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/grammar/driver.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/grammar/lexer.l +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/grammar/lexer_api.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/grammar/oscad_location.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/grammar/parser.y +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/inline_comment_attach.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/position.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/scope.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/serialization/json_io.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/serialization/yaml_io.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/src/source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_assignments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_ast_generation.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_comments_and_files.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_const_borrow.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_control.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_expressions.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_functions.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_inline_comments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_lexical.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_modules.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_node_str.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_pretty_print.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_render_expression.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_scope.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_serialization.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_smoke.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_source_map.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_strict_commas.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_use_include.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tests/test_vectors.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/external/openscad_cpp_parser/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/bound_args.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/bytecode.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/bytecode_compiler.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/bytecode_vm.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/call_args.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/colored_body.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/coverage.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/csg_node.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/css_colors.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/debug_hooks.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/debug_repl.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/dispatch.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/dxf_svg_import.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/eval_context.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/eval_error.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/eval_use.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/evaluator.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/export.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/font_match.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/format_closure.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/freetype_font_provider.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/function_builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/import_builtin.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/manifold_cache.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/mesh_check.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/mesh_import.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/osc_range.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/profile.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/scope_trail.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/segments.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/surface_load.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/text_metrics.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/utf8.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/value.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/include/openscad_cpp_evaluator/zip_stored.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/python/openscad_cpp_evaluator/__init__.py +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/resources/fonts/LICENSE +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/resources/fonts/LiberationSans-Bold.ttf +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/resources/fonts/LiberationSans-BoldItalic.ttf +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/resources/fonts/LiberationSans-Italic.ttf +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/resources/fonts/LiberationSans-Regular.ttf +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/.DS_Store +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/builtins.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/call_args.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/color.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/control.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/dxf_dim.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/extrude.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/modifiers.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/primitives_2d.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/primitives_3d.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/registry.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/roof.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/segments.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/surface.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/topology.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/bytecode_vm.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/colored_body.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/csg_generate.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/csg_resolve.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/css_colors.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/debug/debug_repl.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/debug_profile.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/eval_error.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/eval_use.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/export.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/format_closure.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/import/dxf_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/import/mesh_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/import/surface_load.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/import/svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/manifold_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/measure_geometry.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/stmt_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/text/font_match.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/text/freetype_font_provider.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/text/text_metrics.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/user_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/utf8.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/value.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_booleans.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_bytecode_compiler.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_children_separate.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_cli.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_control_flow.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_coverage.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_csg_tree.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_debug_hooks.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_dxf_svg_import.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_eval_context.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_export.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_expr_eval.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_extrude_roof.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_feature_detection.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_function_builtins.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_helpers.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_import_export.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_include_cache.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_mesh_check.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_multi_color_merge.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_primitives.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_profiling.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_python_bindings.py +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_render_expr.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_scope_trail.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_scoping.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_surface.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_tail_calls.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_transforms.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_unexpected_args.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_use.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_value.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_viewport_params.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_zip_stored.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tools/cli/CMakeLists.txt +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tools/cli/cli_lib.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tools/cli/cli_lib.hpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tools/cli/main.cpp +0 -0
- {openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/uv.lock +0 -0
|
@@ -70,6 +70,16 @@ CSGParams resolveText(Evaluator& ev, const oscad::ModularCall& node, EvalContext
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
CSGParams params;
|
|
73
|
+
// The handle is what generateText looks the face up by, but it is an
|
|
74
|
+
// index into THIS evaluator's FontProvider -- the first font resolved
|
|
75
|
+
// is handle 0 whatever it is. Two evaluators sharing a ManifoldCache
|
|
76
|
+
// (two tabs in a GUI, say) therefore agreed on "font_handle=0" for
|
|
77
|
+
// entirely different fonts, and the second render was served the
|
|
78
|
+
// first one's glyphs. The spec goes in the params too, so the cache
|
|
79
|
+
// key tells them apart: the same spec always resolves to the same
|
|
80
|
+
// face, and two specs that happen to resolve alike merely miss the
|
|
81
|
+
// cache rather than collide.
|
|
82
|
+
params["font_spec"] = Value{fontSpec};
|
|
73
83
|
params["font_handle"] = Value{static_cast<double>(handle)};
|
|
74
84
|
params["scale"] = Value{scale};
|
|
75
85
|
params["segs"] = Value{static_cast<double>(segs)};
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_manifold_cache.cpp
RENAMED
|
@@ -36,6 +36,28 @@ TEST(ManifoldCacheKey, BoolAndNumberParamsProduceDifferentCacheKeys) {
|
|
|
36
36
|
EXPECT_NE(cacheKey(a), cacheKey(b));
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
TEST(ManifoldCacheKey, TwoFontsWithTheSameHandleDoNotShareAKey) {
|
|
40
|
+
// A FontHandle indexes the EVALUATOR's own FontProvider, so the first
|
|
41
|
+
// font any evaluator resolves is handle 0 whatever it is. Two
|
|
42
|
+
// evaluators sharing one ManifoldCache -- two tabs in a GUI -- agreed
|
|
43
|
+
// on "font_handle=0" for entirely different fonts, and the second was
|
|
44
|
+
// served the first one's glyphs. text() puts the SPEC in the params
|
|
45
|
+
// too, so the key tells them apart.
|
|
46
|
+
CSGNode a;
|
|
47
|
+
a.kind = "text";
|
|
48
|
+
a.isBuiltin = true;
|
|
49
|
+
a.params["font_handle"] = Value{0.0};
|
|
50
|
+
a.params["font_spec"] = Value{std::string("Arial:style=Regular")};
|
|
51
|
+
|
|
52
|
+
CSGNode b;
|
|
53
|
+
b.kind = "text";
|
|
54
|
+
b.isBuiltin = true;
|
|
55
|
+
b.params["font_handle"] = Value{0.0}; // same handle, different font
|
|
56
|
+
b.params["font_spec"] = Value{std::string("Arial:style=Bold")};
|
|
57
|
+
|
|
58
|
+
EXPECT_NE(cacheKey(a), cacheKey(b));
|
|
59
|
+
}
|
|
60
|
+
|
|
39
61
|
TEST(ManifoldCacheKey, IdenticalStructureProducesIdenticalKeyRegardlessOfParamInsertionOrder) {
|
|
40
62
|
CSGNode a;
|
|
41
63
|
a.kind = "cube";
|
|
@@ -422,3 +422,30 @@ TEST(TextArgs, FontIsPositionalButTheRestAreNot) {
|
|
|
422
422
|
// NOTHING, and halign by name does move it.
|
|
423
423
|
EXPECT_EQ(echoes[0], "ECHO: true, false, true, false");
|
|
424
424
|
}
|
|
425
|
+
|
|
426
|
+
namespace oscadeval {
|
|
427
|
+
|
|
428
|
+
// Why text() must put the font SPEC in its CSG params and not just the
|
|
429
|
+
// handle: a handle numbers faces WITHIN one provider, and every Evaluator
|
|
430
|
+
// makes its own. Two evaluators sharing a ManifoldCache -- two GUI tabs --
|
|
431
|
+
// hand the cache the same number for different fonts (BelfrySCAD#434).
|
|
432
|
+
TEST(FontHandles, AreOnlyMeaningfulWithinOneProvider) {
|
|
433
|
+
FreetypeFontProvider a, b;
|
|
434
|
+
const FontHandle aReg = a.resolveFont("Arial:style=Regular");
|
|
435
|
+
const FontHandle aBold = a.resolveFont("Arial:style=Bold");
|
|
436
|
+
if (aReg == aBold) {
|
|
437
|
+
GTEST_SKIP() << "this machine resolves both specs to one face";
|
|
438
|
+
}
|
|
439
|
+
EXPECT_NE(aReg, aBold) << "within one provider, two fonts get two handles";
|
|
440
|
+
// What a second provider numbers them is NOT asserted: it depends on
|
|
441
|
+
// which faces that machine has and the order they are opened in. On
|
|
442
|
+
// macOS a fresh provider resolving Bold first returns 4 -- the same
|
|
443
|
+
// number the first provider gave REGULAR, which is the collision this
|
|
444
|
+
// whole change is about. On a Linux runner with only the bundled faces
|
|
445
|
+
// the numbering happens to line up instead (0 and 1 either way). That
|
|
446
|
+
// it CAN collide is the point, and it is not a property to pin to a
|
|
447
|
+
// number here; the end-to-end regression test lives in BelfrySCAD,
|
|
448
|
+
// where the collision reproduces in both directions.
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
} // namespace oscadeval
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/.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.20.2 → openscad_cpp_evaluator-1.20.3}/examples/eval_perf_benchmark.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/examples/manifold_cache_reuse.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/primitives_2d.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/src/builtins/primitives_3d.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/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.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_bytecode_compiler.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/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.20.2 → openscad_cpp_evaluator-1.20.3}/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.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_feature_detection.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_function_builtins.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_import_export.cpp
RENAMED
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_include_cache.cpp
RENAMED
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_multi_color_merge.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_python_bindings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/tests/test_unexpected_args.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscad_cpp_evaluator-1.20.2 → openscad_cpp_evaluator-1.20.3}/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
|