githubnext / githubnext/tsb

[Autoloop: tsb-perf-evolve]

オープン
#189 コメント 103 件 リアクション 0 件 担当者 0 名 GitHub で見る
autoloop autoloop-program automation
主要言語
TypeScript
スター
7
フォーク
3
平均マージ
1時間 42分
マージ済み PR(30日)
1

説明

🤖 *Autoloop program issue for `tsb-perf-evolve`. The program definition below is mirrored from [`.autoloop/programs/tsb-perf-evolve/program.md`](https://github.com/githubnext/tsessebe/blob/main/.autoloop/programs/tsb-perf-evolve/program.md). Edit the file to update the definition; comment on this issue to steer the agent.*

---

# tsb perf evolve — Series.sortValues vs pandas Series.sort_values

## Goal

Evolve the implementation of `Series.sortValues` (`src/core/series.ts`) so that, on the synthetic benchmark in `code/benchmark.ts`, tsb runs **at least as fast as pandas** on the equivalent `Series.sort_values` call (`code/benchmark.py`).

Concretely, we minimize the **ratio**

fitness = mean_ms_tsb / mean_ms_pandas

`fitness < 1.0` means tsb is faster than pandas; lower is better. We will keep iterating as long as fitness keeps improving.

This is a **performance-evolution program** — there is one self-contained artifact (`Series.sortValues`), one scalar fitness (the ratio), and many plausible algorithmic families to try (comparison sort, typed-array indirect sort, dtype-dispatched non-comparison sort, batched/SoA, etc.). It is the canonical case for the AlphaEvolve strategy.

### Validity invariants

1. The existing test suite for `sortValues` passes.
2. The function signature is unchanged: `sortValues(ascending = true, naPosition: "first" | "last" = "last"): Series`.
3. No new runtime dependencies.
4. TypeScript strict mode satisfied.
5. Behaviour identical to reference for all dtypes, both ascending/descending, both `naPosition` values, and empty Series.

## Target

Only modify: `src/core/series.ts` (sortValues method body) and `.autoloop/programs/tsb-perf-evolve/code/**`.

## Evaluation

Metric: `fitness` = `tsb_mean_ms / pandas_mean_ms`. **Lower is better.** `< 1.0` means tsb is faster than pandas.

> Generated by [Autoloop](https://github.com/githubnext/tsessebe/actions/runs/24815695413/agentic_workflow) · ● 3.4M · [◷](https://github.com/search?q=repo%3Agithubnext%2Ftsessebe+is%3Aissue+%22gh-aw-workflow-call-id%3A+githubnext%2Ftsessebe%2Fautoloop%22&type=issues)

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず src/core/series.ts の sortValues メソッドと、.autoloop/programs/tsb-perf-evolve/code/benchmark.ts および benchmark.py のベンチマークペアを読みます。変更を fitness ratio に基づいて評価しながら、既存の sortValues テストと明記された不変条件を維持してください。完了とは、動作が同一のままで、TypeScript 実装が 1.0 未満の ratio に到達することを意味します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
typescript
領域
performance
issue の種類
リファクタリング
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。