Dev Updates
Development in the open. PyneCore and PyneComp releases land here as they happen — what got fixed, what got added, and now and then what we got wrong — along with progress on work that is not finished yet. Synced directly from our Discord dev-updates channel.
PyneCore’s full changelog lives on GitHub; PyneComp’s progress you will find here and nowhere else. More granular and more technical than News — this is the engineering log, not the announcements.
PyneCore v6.10.2 released — load-time inlining and type erasure, a Decimal-free number…
Fixes - Security children now start on forkserver (or spawn) instead of the platform default — a live child was forked from a multi-threaded parent and could inherit locks nothing would release - The orphan watchdog…
Read more →PyneCore v6.10.1 released — faster request.security backtests and rollback that keeps…
Performance - request.security children run only the backward slice of main() they need, so multi-context scripts run several times faster - Contexts reading the same feed share one child process: 2-3x faster on…
Read more →PyneComp v6.0.68 — Converted and compiled scripts now match TradingView's results more…
Fixes - A function that reads an outside series with [n] (for example s[1]) and is called only on some bars now gets the value from its previous call, as on TradingView. Before, it got the previous bar's value, which…
Read more →PyneCore v6.10.0 released — backtests with request.security got much faster, plus…
Performance - Same-timeframe request.security contexts run their whole history as one batch round - lookahead_on higher-timeframe contexts are batched too, with a lazily streamed plan (lower memory, flat throughput on…
Read more →PyneCore v6.9.4 released — scripts can now declare their own timeframe in indicator(),…
Features - Script-level timeframe / timeframe_gaps in indicator(): the script runs once per completed period aggregated from the chart feed, with na or forward-filled values on the other chart bars. No higher-timeframe…
Read more →PyneCore v6.9.3 released — dependent request.security() expressions are now synchronized…
Features - A security expression reading another security call's result now sees the peer's value for the correct bar — scripts like request.security(sym, "M", ta.sma(monthlyRsi, n)) no longer diverge. One pairing rule…
Read more →PyneComp v6.0.67 — several converter fixes for correctness, mostly around edge cases in…
Fixes - array.sort and array.sort_indices calls using the sort_field parameter were rejected as invalid — they now work correctly. - Converting a script with a nested ?: ternary containing na could produce broken,…
Read more →PyneCore v6.9.2 released — the two reported regressions are fixed: na at an integer…
Fixes - na passed to an int-typed argument raised TypeError instead of answering na at 20 slots — every table dimension and cell coordinate, plus str.replace and str.substring; each now substitutes the integer…
Read more →PyneComp v6.0.66 — converting an older Pine script now keeps the three-state bool…
Fixes - Converting a v1–v5 script that let a bool hold na no longer collapses it to plain false — the converted script keeps the same three states the original ran with. - A bool-typed function parameter (e.g. f(simple…
Read more →PyneCore v6.9.0 released — Pine int is now a static type over a double-only runtime,…
Features - Every int-typed value travels as an integral float; na(int) is a plain nan, truncation happens at the consuming slot, storage keeps the value (array.new_int(1, 7 / 4) holds 1.75) - Static Pine type inference…
Read more →