pineforge-codegen 0.10.0__tar.gz → 0.10.2__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.
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/.github/workflows/release.yml +1 -1
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/CLAUDE.md +1 -1
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/PKG-INFO +2 -2
- pineforge_codegen-0.10.2/VERSION +1 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/docs/codegen-coverage-gaps.md +52 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/__init__.py +3 -0
- pineforge_codegen-0.10.2/pineforge_codegen/analyzer/base.py +6177 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/analyzer/call_handlers.py +662 -48
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/analyzer/contracts.py +104 -7
- pineforge_codegen-0.10.2/pineforge_codegen/analyzer/types.py +1251 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/base.py +2280 -228
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/drawing.py +94 -14
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/emit_top.py +747 -177
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/security.py +1546 -132
- pineforge_codegen-0.10.2/pineforge_codegen/codegen/ta.py +723 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/tables.py +328 -80
- pineforge_codegen-0.10.2/pineforge_codegen/codegen/types.py +2022 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/visit_call.py +1191 -104
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/visit_expr.py +283 -48
- pineforge_codegen-0.10.2/pineforge_codegen/codegen/visit_stmt.py +1910 -0
- pineforge_codegen-0.10.2/pineforge_codegen/finite_ta_length.py +798 -0
- pineforge_codegen-0.10.2/pineforge_codegen/method_binding.py +163 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/parser.py +48 -9
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/signatures.py +4 -4
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/support_checker.py +262 -23
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/symbols.py +65 -0
- pineforge_codegen-0.10.2/tests/gate-corpus/ok/divergent_last_bar_index.pine +7 -0
- pineforge_codegen-0.10.2/tests/gate-corpus/ok/validation__matrix-covariance-eigen-pca-01.pine +43 -0
- pineforge_codegen-0.10.2/tests/golden/matrix_eigen_pca.cpp +397 -0
- pineforge_codegen-0.10.2/tests/test_array_bounds_insert_fill_slice.py +277 -0
- pineforge_codegen-0.10.2/tests/test_array_checked_access.py +999 -0
- pineforge_codegen-0.10.2/tests/test_array_empty_aggregates.py +198 -0
- pineforge_codegen-0.10.2/tests/test_array_terminal_returns.py +1493 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_calc_on_order_fills_codegen.py +40 -15
- pineforge_codegen-0.10.2/tests/test_callable_series_param_types.py +569 -0
- pineforge_codegen-0.10.2/tests/test_callable_ta_forwarded_length.py +639 -0
- pineforge_codegen-0.10.2/tests/test_callable_var_first_reach.py +494 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_audit_fixes.py +10 -2
- pineforge_codegen-0.10.2/tests/test_codegen_drawing_data.py +730 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_golden.py +25 -3
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_matrix_typed.py +20 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_new.py +86 -7
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_ta_derived_length.py +22 -20
- pineforge_codegen-0.10.2/tests/test_codegen_ta_finite_choice_length.py +547 -0
- pineforge_codegen-0.10.2/tests/test_codegen_ta_stable_var_literal.py +619 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_validation_fixes.py +594 -28
- pineforge_codegen-0.10.2/tests/test_collection_scope_isolation.py +841 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_compile_smoke.py +95 -0
- pineforge_codegen-0.10.2/tests/test_float_relational_runtime.py +258 -0
- pineforge_codegen-0.10.2/tests/test_hungpixi_regressions.py +144 -0
- pineforge_codegen-0.10.2/tests/test_lazy_saturated_roc.py +198 -0
- pineforge_codegen-0.10.2/tests/test_lazy_saturated_roc_runtime.py +270 -0
- pineforge_codegen-0.10.2/tests/test_map_call_diagnostics.py +342 -0
- pineforge_codegen-0.10.2/tests/test_map_param_methods.py +345 -0
- pineforge_codegen-0.10.2/tests/test_map_terminal_returns.py +429 -0
- pineforge_codegen-0.10.2/tests/test_math_sign_na_codegen.py +114 -0
- pineforge_codegen-0.10.2/tests/test_matrix_identity_checkpoint.py +94 -0
- pineforge_codegen-0.10.2/tests/test_matrix_na_lifecycle.py +741 -0
- pineforge_codegen-0.10.2/tests/test_matrix_void_method_return.py +168 -0
- pineforge_codegen-0.10.2/tests/test_method_receiver_types.py +141 -0
- pineforge_codegen-0.10.2/tests/test_method_written_callsite_lifecycle.py +461 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_na_reassign_retype.py +1 -1
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_na_relational_lowering.py +160 -34
- pineforge_codegen-0.10.2/tests/test_persistent_callable_owner_state.py +1438 -0
- pineforge_codegen-0.10.2/tests/test_pinemap_boundaries_and_order.py +257 -0
- pineforge_codegen-0.10.2/tests/test_pinemap_cold_followups_history.py +164 -0
- pineforge_codegen-0.10.2/tests/test_pinemap_semantics.py +1041 -0
- pineforge_codegen-0.10.2/tests/test_pinemap_temp_receiver_var.py +46 -0
- pineforge_codegen-0.10.2/tests/test_runtime_var_initialization.py +413 -0
- pineforge_codegen-0.10.2/tests/test_security_helper_local_var.py +585 -0
- pineforge_codegen-0.10.2/tests/test_security_lazy_ta_under_conditionals.py +246 -0
- pineforge_codegen-0.10.2/tests/test_security_ta_input_history_offset.py +558 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_security_tf_input_derived.py +22 -0
- pineforge_codegen-0.10.2/tests/test_security_tuple_interactions.py +573 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_signatures.py +10 -1
- pineforge_codegen-0.10.2/tests/test_strategy_close_callsite_tokens.py +81 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker.py +157 -20
- pineforge_codegen-0.10.2/tests/test_typed_void_method_precedence.py +161 -0
- pineforge_codegen-0.10.2/tests/test_udf_series_parameter_history.py +177 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_udt_drawing_field_cleanup.py +6 -6
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_udt_lvalue_alias.py +80 -46
- pineforge_codegen-0.10.2/tests/test_udt_na_lifecycle.py +540 -0
- pineforge_codegen-0.10.2/tests/test_udt_object_identity.py +888 -0
- pineforge_codegen-0.10.0/VERSION +0 -1
- pineforge_codegen-0.10.0/pineforge_codegen/analyzer/base.py +0 -2318
- pineforge_codegen-0.10.0/pineforge_codegen/analyzer/types.py +0 -314
- pineforge_codegen-0.10.0/pineforge_codegen/codegen/ta.py +0 -387
- pineforge_codegen-0.10.0/pineforge_codegen/codegen/types.py +0 -1089
- pineforge_codegen-0.10.0/pineforge_codegen/codegen/visit_stmt.py +0 -975
- pineforge_codegen-0.10.0/tests/gate-corpus/err/divergent_last_bar_index.pine +0 -7
- pineforge_codegen-0.10.0/tests/golden/matrix_eigen_pca.cpp +0 -343
- pineforge_codegen-0.10.0/tests/test_codegen_drawing_data.py +0 -177
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/.github/dependabot.yml +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/.github/workflows/gate.yml +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/.github/workflows/publish-pyodide.yml +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/.github/workflows/test.yml +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/.gitignore +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/LEGAL.md +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/LICENSE +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/PYODIDE_TARGET +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/README.md +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/gate/compare.mjs +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/gate/glue.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/gate/oracle.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/gate/run-gate.mjs +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/gate/selftest.mjs +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/npm/README.md +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/npm/index.mjs +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/npm/package.json +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/package-lock.json +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/package.json +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/analyzer/__init__.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/analyzer/diagnostics.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/analyzer/tables.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/ast_nodes.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/__init__.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/helpers.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/helpers_syminfo.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/codegen/input.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/errors.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/lexer.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/pragmas.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/tokens.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pineforge_codegen/tv_input_choices.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/pyproject.toml +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/scripts/build-npm-package.mjs +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/scripts/dump-tables.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/scripts/worker-template.mjs +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/__init__.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/_compile.py +0 -0
- /pineforge_codegen-0.10.0/tests/gate-corpus/ok/validation__matrix-covariance-eigen-pca-01.pine → /pineforge_codegen-0.10.2/tests/fixtures/matrix_eigen_pca.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/const_ns_plot_style_free.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/const_ns_shape_free.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/export_func.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/footprint_new.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/hard_reject_dividends.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/matrix_unknown_elem.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/multi_error_one_line.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/sec_tf_invalid.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/unknown_color.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/unknown_math.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/unknown_str.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/unknown_strategy_fn.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/unknown_syminfo.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/err/unknown_ta.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/AAPL__session-ismarket-nyse-rth-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/AAPL__time-tradingday-daily-reset-counter-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/QQQ__session-ispremarket-nasdaq-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/SPY__session-firstbar-vwap-anchor-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/SPY__session-lastbar-flatten-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/chart_bg_color.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/crypto-htf__mtf-htf-monthly-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/crypto-leverage__leverage-margin-call-perp-5x-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/forex__symbol-fx-5dp-eurusd-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/futures__symbol-futures-pointvalue-es-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/tutorial__macd__strategy.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/tutorial__mtf__strategy_htf.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/tutorial__mtf__strategy_ltf.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/us-equity__symbol-equity-rth-gaps-aapl-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/us-equity__us-equity-exchange-tz-intraday-cap-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__analyzer-parity-choch-bos-isolator-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__analyzer-parity-edge-margin-50-pct-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__analyzer-parity-percent-of-equity-sizing-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__analyzer-parity-small-equity-fraction-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__analyzer-parity-stop-limit-timing-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__analyzer-self-test-multi-mode-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__anomaly-equity-mirror-strategy-equity-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-off-01b.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-on-01a.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-atr-trail-series-int-points-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-atr-trailing-stop-state-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-entry-exit-same-pass-attach-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-exit-stop-limit-trail-same-bar-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-exit-three-way-set-once-entry-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-exit-tp-sl-fixed-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-narrow-stop-limit-with-trail8-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-partial-exit-qty-percent-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-same-id-exit-replace-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-tp-sl-oca-reduce-isolate-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-trail-points-no-offset-explicit-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-trail-points-with-offset-only-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__bracket-trailing-activation-offset-path-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__cap-max-intraday-filled-orders-isolate-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__cap-risk-gates-allow-max-intraday-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-4emarsi-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-4emarsi-quad-ema-stack-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-4emarsi-rsi-pullback-latch-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-4emarsi-session-window-nbar-exit-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-boscurv-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-boscurv-linreg-slope-channel-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-boscurv-pivot-bos-trigger-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-bracket-cap-range-pending-stop-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-adx-regime-classify-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-bb-kc-squeeze-release-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-cooldown-daily-cap-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-equity-feedback-sizing-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-pivot-liquidity-sweep-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-pressure-gauge-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-rsi-macd-momentum-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-ies-three-ema-bias-score-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kanuck-calc-on-every-tick-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kanuck-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kanuck-kama-state-recurrence-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kanuck-max-bars-back-500-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kkb-ema-atr-breakout-band-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kkb-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kkb-kalman-filter-1d-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-kkb-margin-100-pct-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-liqsweep-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-liqsweep-pivot-hh-ll-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-liqsweep-wait-one-continuation-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-liqsweep-wick-pierce-close-back-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-marketshift-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-marketshift-pivot-state-machine-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-marketshift-rolling-highest-lowest-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-marketshift-state-edge-detector-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-scalping-fast-ma-cross-trigger-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-scalping-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-scalping-tight-tp-sl-points-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-trendmaster-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-trendmaster-line-new-projection-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-trendmaster-pivot-anchored-bracket-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-trendmaster-three-tier-ema-state-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-trendmaster-trend-momentum-structure-gate-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-cumulative-volume-delta-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-fvg-active-zones-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-manual-adx-regime-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-pivot-strength-5-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-rsi-smooth-divergence-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-session-tz-newyork-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-vcp-vol-zscore-anomaly-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-wunderscalper-alert-templates-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-wunderscalper-explicit-reverse-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__composite-wunderscalper-integration-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__input-source-runtime-override-high-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__input-source-subscript-hl2-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ltf-bool-array-bull-majority-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ltf-numeric-float-ratio15-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-rsi-cross-08a.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__magnifier-tick-dist-volume-weighted-on-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__matrix-bool-mask-explicit-utc-tz-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__matrix-bool-mask-no-transpose-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__matrix-bool-mask-transpose-roundtrip-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__matrix-bool-regime-mask-24x7-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__matrix-eigen-rank-deficient-cov-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__max-bars-back-function-call-deep-history-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-daily-array-median-percentrank-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-daily-ema26-warmup-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-daily-prev-high-break-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-dual-tf-60-240-rising-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-60-close-change-baseline-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-60-close-roll-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-60-gaps-on-roll-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-60-rsi14-inside-security-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-60-sma20-inside-security-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-60-volume-spike-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-confluence-manual-trail-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-confluence-static-bracket-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-htf-weekly-sma-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-roll-state-60-240-d-minimal-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-triple-tf-close-confluence-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__mtf-triple-tf-macd-hist-confluence-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__na-deep-history-int-na-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__na-nz-fixnan-history-chain-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__oca-exit-bracket-internal-cancel-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__oca-multi-bracket-isolation-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__oca-raw-strategy-order-reduce-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-close-all-cancel-all-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-close-immediate-vs-next-bar-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-cross-entry-cancel-same-pass-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-cross-entry-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-cross-exit-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-deferred-flip-guaranteed-gap-stops-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-deferred-flip-pooc-cross-bar-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-four-bar-stop-no-close-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-side-same-id-stop-no-cancel-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-both-touch-priority-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-cancel-rotation-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-far-only-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-near-only-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-open-high-first-path-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-open-low-first-path-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-open-tie-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-long-first-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-short-first-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-entry-implicit-reversal-exit-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-flip-stop-no-paired-close-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-market-close-fill-basis-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-one-side-four-bar-far-opposite-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-opposite-entry-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-percent-equity-cash-commission-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-process-on-close-false-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-process-on-close-true-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-range-expansion-pending-stop-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-entry-close-same-bar-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-market-entry-repeat-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-stop-after-flat-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-stop-cross-before-modify-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-stop-minute-zero-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-stop-modification-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-stop-raise-only-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-same-id-stop-window-four-bars-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-stale-stop-after-close-no-cancel-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-stop-cancel-no-regime-close-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-stop-entry-cancel-opposite-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-stop-entry-reversal-grouping-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__order-stop-entry-touch-boundary-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__pyramid-cash-fractional-commission-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__pyramid-close-id-grouping-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__pyramid-deferred-flip-close-all-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__pyramid-flip-stop-pyramiding-2-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__recompute-alma-sar-corr-magnifier-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__recompute-mtf-rsi-macd-bb-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__risk-max-contracts-held-gate-pyramid-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__session-hour-minute-pulse-filter-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__session-ny-spring-forward-dst-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__stats-eventrades-zero-pnl-count-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-accdist-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-bb-kc-squeeze-breakout-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-bb-rsi-mean-reversion-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-cci-threshold-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-chandelier-exit-direction-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-closedtrades-risk-introspection-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-cmo-9-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-cog-10-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-dmi-adx-di-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-donchian-channel-breakout-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-dual-ma-switch-dispatch-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-dual-thrust-open-anchored-range-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-elder-ray-bull-bear-power-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-ema-ribbon-stack-transition-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-engulfing-candle-pattern-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-highestbars-lowestbars-breakout-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-hma-55-close-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-hma-fast-slow-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-inside-bar-engulfing-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-kama-style-efficiency-ratio-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-keltner-channel-break-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-linreg-stdev-channel-revert-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-macd-12-26-9-line-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-macd-histogram-reversal-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-macd-line-gt-signal-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-map-regime-threshold-lookup-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-median-vs-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-mfi-14-bands-20-80-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-momentum-roc-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-multi-indicator-score-composite-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-nvi-pvi-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-obv-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-percentrank-mean-reversion-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-pivot-array-unshift-pop-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-pivot-atr-stop-target-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-pivot-confirmed-break-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-pivot-point-levels-break-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-pvt-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-range-filter-var-band-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rci-14-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rsi-bb-self-bands-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rsi-ema-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rsi-macd-and-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rsi14-bands-30-70-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rsi14-cross-50-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rsi14-gt-50-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-rsi14-gt60-lt45-no-matrix-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-sar-flip-entry-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-sma-152-close-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-sma-dual-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-stdev-sma-expansion-break-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-stoch-slow-k-d-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-stochastic-rsi-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-str-match-regex-filter-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-supertrend-adx-filter-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-supertrend-direction-flip-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-triple-sma-stack-latch-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-tsi-25-13-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-volume-spike-atr-breakout-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-vwma-vs-sma-divergence-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__ta-wpr-14-bands-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__timeframe-main-period-self-adaptive-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-calls-sibling-cumulative-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-default-param-kwargs-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-drives-strategy-entry-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-extra-primitive-args-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-feeds-strategy-exit-prices-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-in-for-loop-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-in-if-else-branch-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-in-switch-arms-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-in-while-loop-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-mutating-self-ref-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-on-array-element-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-reads-strategy-state-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-receives-ta-series-param-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-scalar-return-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-tuple-return-destructure-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-udt-return-from-func-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-uses-history-globals-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-uses-math-funcs-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-uses-na-nz-fixnan-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-var-instance-streak-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-method-windowed-method-chain-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__udt-regime-stack-stress-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__vwap-bands-breakout-1sigma-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/gate-corpus/ok/validation__vwap-bands-mean-reversion-2sigma-01.pine +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_analyzer.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_analyzer_matrix_inference.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_analyzer_ta_return_types.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_determinism.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_drawing_handles.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_fallthrough_guards.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_input_getters.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_codegen_string_escape.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_compile_corpus.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_errors.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_extract_inputs.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_glue_smoke.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_import_all.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_input_time_int64.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_int64_reassign_promotion.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_int64_time_storage.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_lexer.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_official_surface.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_parser.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_security_math_reducer.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_security_ohlc_hist_is_complete.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_security_tf_literal.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_chart_visible_bar_time.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_color_cast.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_const_namespaces.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_dividends_earnings.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_footprint.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_input_color.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_input_source.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_matrix.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_security_adjustment.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_syminfo_gap_fields.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_timeframe_from_seconds.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_varip.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_support_checker_volume_row.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_symbols.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_ta_official_surface.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_transpile_division.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_transpile_enum_order.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_transpile_pf_trace.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_transpile_tr_handle_na.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_transpiler_matrix_kwargs.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_typespec_matrix.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_unsupported_reporting.py +0 -0
- {pineforge_codegen-0.10.0 → pineforge_codegen-0.10.2}/tests/test_vwap_tuple_unpack.py +0 -0
|
@@ -124,7 +124,7 @@ jobs:
|
|
|
124
124
|
# failure would leave npm shipping a version PyPI never got.
|
|
125
125
|
- name: Publish to PyPI
|
|
126
126
|
if: ${{ !inputs.dry_run }}
|
|
127
|
-
uses: pypa/gh-action-pypi-publish@
|
|
127
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
128
128
|
|
|
129
129
|
# Commit + tag + push AFTER PyPI succeeds. The `git push --tags` triggers
|
|
130
130
|
# publish-pyodide.yml for npm (which re-runs the gate — defense in depth),
|
|
@@ -207,7 +207,7 @@ strategy. The taxonomy:
|
|
|
207
207
|
| -------------------------------- | -------------------------------------------------------------------- |
|
|
208
208
|
| `HARD_REJECT_FUNC` | Calls with no PineForge semantics at all (e.g. `request.financial`). |
|
|
209
209
|
| `HARD_REJECT_NAMESPACE` | Whole-namespace rejects — currently EMPTY (the old `ticker.*` blanket reject became per-function `HARD_REJECT_FUNC` entries: `ticker.{renko,kagi,linebreak,pointfigure,new,modify}`; `ticker.inherit`/`ticker.standard` pass through, `ticker.heikinashi` allowed for the chart's own symbol). |
|
|
210
|
-
| `DIVERGENT_VARS` (warning) / `DIVERGENT_VARS_ERROR` (reject) | Built-in variables whose value
|
|
210
|
+
| `DIVERGENT_VARS` (warning) / `DIVERGENT_VARS_ERROR` (reject) | Built-in variables whose value can diverge from TV. `bar_index` and `last_bar_index` warn because they depend on the fed data window; `last_bar_index` lowers to the window's true final index. The ERROR subset is reserved for silent mis-aliases and is currently empty. |
|
|
211
211
|
| `BARSTATE_APPROX_VARS` (warning) | Barstate flags PineForge approximates in batch mode. |
|
|
212
212
|
| `STRATEGY_UNSUPPORTED_PARAMS` | Per-strategy.* call kwargs that codegen drops silently. |
|
|
213
213
|
| `NOT_YET_FUNC` | Implementable but currently no codegen — reject loudly. |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: pineforge-codegen
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.2
|
|
4
4
|
Summary: PineScript v6 to C++ transpiler that targets the pineforge-engine runtime.
|
|
5
5
|
Project-URL: Homepage, https://github.com/pineforge-4pass/pineforge-codegen-oss
|
|
6
6
|
Project-URL: Issues, https://github.com/pineforge-4pass/pineforge-codegen-oss/issues
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.10.2
|
|
@@ -76,3 +76,55 @@ were added to convert the most fragile defensive paths from
|
|
|
76
76
|
silent-on-bug to loud-on-bug.
|
|
77
77
|
|
|
78
78
|
No new follow-up work identified by this audit.
|
|
79
|
+
|
|
80
|
+
## Residuals left open by the array-bounds guard (2026-07-25)
|
|
81
|
+
|
|
82
|
+
`array.insert`, the 3-argument `array.fill`, and `array.slice` now reject an
|
|
83
|
+
out-of-range index instead of emitting raw STL iterator arithmetic (undefined
|
|
84
|
+
behaviour). Three questions the bounds work deliberately does NOT settle:
|
|
85
|
+
|
|
86
|
+
1. **`array.slice` shares storage with its source; codegen deep-copies.**
|
|
87
|
+
The Pine v6 reference says "Changing the elements in a slice directly
|
|
88
|
+
changes the elements in the original array, and vice versa", while both
|
|
89
|
+
lowerings construct a fresh `std::vector` from the iterator range. Any
|
|
90
|
+
write through a slice (or through the source while a slice is live) is
|
|
91
|
+
therefore lost. Closing this needs a view/alias type over the receiver's
|
|
92
|
+
storage, not an index check, so it is a separate and much larger change.
|
|
93
|
+
The extent of the aliasing is itself unsettled: the reference sentence
|
|
94
|
+
says "an object from the slice", which is unambiguous for arrays of
|
|
95
|
+
reference-like elements (UDT instances) but does NOT establish that a
|
|
96
|
+
primitive `array<float>` slice aliases element-for-element. Pin that
|
|
97
|
+
against TradingView before designing the view type — the answer decides
|
|
98
|
+
whether the fix is "arrays of UDTs only" or "all arrays".
|
|
99
|
+
|
|
100
|
+
2. **Inverted ranges (`index_from > index_to`) are rejected, not clamped.**
|
|
101
|
+
No evidence pins TradingView's behaviour for `array.fill(id, v, 2, 1)` /
|
|
102
|
+
`array.slice(id, 2, 1)`. Rejecting is the fail-closed choice and the
|
|
103
|
+
3-argument `fill` range form has no current corpus exposure, but a
|
|
104
|
+
TradingView probe could show TV treats it as an empty range instead.
|
|
105
|
+
|
|
106
|
+
3. **Negative endpoints for `fill`/`slice` are rejected.** The reference
|
|
107
|
+
lists only `array.get`/`array.set`/`array.insert`/`array.remove` as
|
|
108
|
+
negative-indexing functions, so `fill`/`slice` follow `array.percentrank`
|
|
109
|
+
and reject. If TradingView in fact normalises them, this is an
|
|
110
|
+
over-rejection (a valid script fails to transpile), not a wrong result.
|
|
111
|
+
|
|
112
|
+
## Residual left open by the request.security rebind guard (2026-07-25)
|
|
113
|
+
|
|
114
|
+
`_scalar_rebinds` is keyed by BARE NAME with no scope resolution, mirroring
|
|
115
|
+
the existing `_scalar_defs`. A divergent `:=` rebind of a *local* named `sym`
|
|
116
|
+
inside a user function therefore also disqualifies an unrelated *global*
|
|
117
|
+
`sym` used as a `request.security` symbol. That direction is fail-closed
|
|
118
|
+
(over-rejection, never a silent wrong-symbol run), but a scoped symbol table
|
|
119
|
+
would be the exact fix. A 788-source differential shows the over-rejection
|
|
120
|
+
costs nothing on the current corpus.
|
|
121
|
+
|
|
122
|
+
**Still open — the ternary branch hole (KI-47(a)).** `_is_current_symbol_expr`
|
|
123
|
+
still accepts `cond ? "EXCH:OTHER" : syminfo.tickerid` because EITHER branch
|
|
124
|
+
resolving to the chart symbol is enough. Tightening it to require BOTH
|
|
125
|
+
branches is correct in principle but rejects
|
|
126
|
+
`data/standard/doriannnq-tjr-v4-strategy`, whose alternate branch is
|
|
127
|
+
unreachable at its declared input configuration (`smtSym` defaults to `""`)
|
|
128
|
+
and which grades Excellent at 44/44 / 100% match. Closing this needs the
|
|
129
|
+
checker to see the effective input configuration, which it currently cannot
|
|
130
|
+
(see the analysis in the R6 handoff). Held deliberately, not overlooked.
|
|
@@ -4,6 +4,7 @@ from .lexer import Lexer
|
|
|
4
4
|
from .parser import Parser
|
|
5
5
|
from .analyzer import Analyzer
|
|
6
6
|
from .codegen import CodeGen
|
|
7
|
+
from .finite_ta_length import expand_finite_choice_extrema_lengths
|
|
7
8
|
from .pragmas import extract_pf_trace_pragmas
|
|
8
9
|
from .support_checker import check_support_or_raise
|
|
9
10
|
|
|
@@ -44,6 +45,7 @@ def transpile(pine_source: str, *, check_support: bool = True, filename: str = "
|
|
|
44
45
|
ast = Parser(tokens, source=pine_source, filename=filename).parse()
|
|
45
46
|
if check_support:
|
|
46
47
|
check_support_or_raise(ast, filename=filename)
|
|
48
|
+
ast = expand_finite_choice_extrema_lengths(ast)
|
|
47
49
|
ctx = Analyzer(ast, filename=filename).analyze()
|
|
48
50
|
# Attach after analysis: pragma expressions are not part of the
|
|
49
51
|
# program body, so the analyzer never inspects them; the codegen
|
|
@@ -81,6 +83,7 @@ def transpile_full(pine_source: str, *, check_support: bool = True,
|
|
|
81
83
|
ast = Parser(tokens, source=pine_source, filename=filename).parse()
|
|
82
84
|
if check_support:
|
|
83
85
|
check_support_or_raise(ast, filename=filename)
|
|
86
|
+
ast = expand_finite_choice_extrema_lengths(ast)
|
|
84
87
|
ctx = Analyzer(ast, filename=filename).analyze()
|
|
85
88
|
ctx.pf_trace_pragmas = pragmas
|
|
86
89
|
gen = CodeGen(ctx)
|