Repository navigation
docs: note that Pine names must be ASCII since 1.10.0 - #385
Conversation
Since 1.10.0 (#290) a non-ASCII character in a Pine identifier or import path is refused at that character; 1.9.1 encoded such names. The change log did not say so. Add one entry under "Unreleased (next release)"; the 1.9.1 section, which describes 1.9.1, is unchanged. Co-Authored-By: Claude Opus 5.5 <[email protected]>
There was a problem hiding this comment.
Graphify reviewed this change.
No issues found by static checks — no coupling regressions or blocking issues in the code graph. That is not the same as safe to merge: see what was not checked.
Not checked: tests were not run; no formal proof of the changed code.
Graphify review — findings
Documents in the changelog that Pine v6 identifiers and import paths must be ASCII starting with 1.10.0: a non-ASCII character in a name is now refused at that character with no viable alternative at character ..., where 1.9.1 encoded such names. Strings and comments still accept non-ASCII text, which is emitted as octal escapes in the generated C++ (#290).
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 77 functions depend on the 77 functions this change touches.
Health — grade A; no new coupling hotspots.
Verification — 77 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 77 function(s) in the blast radius were not formally verified this run
Cross-repo impact
Cross-repo impact
This change impacts 2 symbol(s) across 1 peer repo(s) — blast radius over derived cross-repo edges:
- pineforge-4pass/pineforge-hpo —
python/pineforge_hpo/transpile.py(via import_moniker, heuristic),tests/python/test_transpile.py(via import_moniker, heuristic)
1 peer repo(s) in this group are not yet indexed — cross-repo impact may be incomplete.
Cross-repo linkage is derived (SCIP-moniker matches are sound; name/contract matches are heuristic) and ADVISORY — it never affects this check's conclusion.
Test selection
Test selection
521 of 521 test file(s) selected (100%) via static blast radius.
Escalated to a full run for safety (
noncode-change,uncovered-code) — the selection is not trustworthy on its own (see below). CI should run the whole suite.
tests/test_action_pins.py— full-run-safetytests/test_allow_entry_in_qualifier.py— full-run-safetytests/test_allow_entry_in_request_const.py— full-run-safetytests/test_analyzer.py— full-run-safetytests/test_analyzer_matrix_inference.py— full-run-safetytests/test_analyzer_ta_return_types.py— full-run-safetytests/test_anchor_tf_change.py— full-run-safetytests/test_anchor_time.py— full-run-safetytests/test_anchor_vwap.py— full-run-safetytests/test_array_bounds_insert_fill_slice.py— full-run-safetytests/test_array_checked_access.py— full-run-safetytests/test_array_empty_aggregates.py— full-run-safetytests/test_array_history.py— full-run-safetytests/test_array_missing_integer_index.py— full-run-safetytests/test_array_new_color_fill_and_na_size.py— full-run-safetytests/test_array_new_defaults_and_order.py— full-run-safetytests/test_array_reference_semantics.py— full-run-safetytests/test_array_retained_alias.py— full-run-safetytests/test_array_slice_view.py— full-run-safetytests/test_array_terminal_returns.py— full-run-safetytests/test_arrseg_coded_run_stops.py— full-run-safetytests/test_arrseg_review_fixes.py— full-run-safetytests/test_binop_operand_order.py— full-run-safetytests/test_block_shadow_primitive_types.py— full-run-safetytests/test_block_var_plain_siblings.py— full-run-safetytests/test_bool_na_refusal.py— full-run-safetytests/test_bool_na_refusals_2.py— full-run-safetytests/test_bool_na_values.py— full-run-safetytests/test_bool_string_inference.py— full-run-safetytests/test_builtin_name_shadow.py— full-run-safetytests/test_builtin_named_locals_compile.py— full-run-safetytests/test_builtin_named_locals_price_refusal.py— full-run-safetytests/test_builtin_named_locals_receipt.py— full-run-safetytests/test_builtin_named_locals_scope.py— full-run-safetytests/test_builtin_named_parameters.py— full-run-safetytests/test_builtin_named_parameters_reference.py— full-run-safetytests/test_calc_on_order_fills_codegen.py— full-run-safetytests/test_calendar_lambda_locals.py— full-run-safetytests/test_call_argument_order.py— full-run-safetytests/test_callable_local_histories.py— full-run-safetytests/test_callable_series_param_types.py— full-run-safetytests/test_callable_string_series_type.py— full-run-safetytests/test_callable_ta_forwarded_length.py— full-run-safetytests/test_callable_var_first_reach.py— full-run-safetytests/test_checked_settings.py— full-run-safetytests/test_ci_engine_main_touched.py— full-run-safetytests/test_closed_trade_fold.py— full-run-safetytests/test_closed_trade_fold_emission.py— full-run-safetytests/test_closed_trade_text_equals.py— full-run-safetytests/test_coded_run_stops.py— full-run-safety- … and 471 more
non-code file(s) changed (
CHANGELOG.md) → running the full suite for safety (a code graph can't see config/fixture/data deps)
changed code file(s) with no mapped test (
CHANGELOG.md) — a coverage gap or a missing link — running the full suite rather than only the selected tests
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
Since 1.10.0 (#290), the lexer refuses a non-ASCII character in an identifier or import path of a Pine v6 script ("no viable alternative at character ..."). No release note said so, and the CHANGELOG's 1.9.1 entry, which was true for 1.9.1, still describes the older encoding.
This adds one entry under Unreleased that states the change and the version that introduced it. Older sections are unchanged. Documentation only: one file,
CHANGELOG.md, +5 lines.🤖 Generated with Claude Code