Skip to content

♻️ core dense adapter 제거#18

Merged
mingi3314 merged 1 commit into
mainfrom
core-remove-dense-adapters
Apr 27, 2026
Merged

♻️ core dense adapter 제거#18
mingi3314 merged 1 commit into
mainfrom
core-remove-dense-adapters

Conversation

@mingi3314
Copy link
Copy Markdown
Collaborator

@mingi3314 mingi3314 commented Apr 24, 2026

요약

  • 이 PR은 #17 위에 쌓인 stacked PR입니다. 리뷰는 core-nullable-composites 대비로 봐주시면 됩니다.
  • 남아 있던 dense-to-nullable bridge helper인 ema_dense, rsi_dense를 제거하고, 마지막 adapter 의존 indicator를 직접 nullable 입력 계약으로 전환합니다.
  • 하위 PR들에서 이미 정리한 nullable semantics를 그대로 재사용하면서, dense adapter 층만 걷어내는 좁은 범위의 cleanup입니다.

변경 사항

  • erbull, erbear, cv, stochrsi&[Option<f64>] 입력 기준으로 전환합니다.
  • 각 indicator가 ema, rsi 같은 nullable 본체를 직접 사용하도록 정리합니다.
  • ema_dense, rsi_dense를 제거합니다.
  • gap 전파와 재개 동작이 기존 nullable contract를 그대로 따르는지 확인하는 테스트를 보강합니다.

리뷰 포인트

  • touched indicator가 dense adapter 없이도 동일한 aligned nullable semantics를 유지하는지
  • EMA/RSI 기반 파생 지표가 gap 이후 조기 emission 없이 기존 contract를 그대로 따르는지
  • core 내부에 _dense adapter가 더 이상 남지 않는지

범위 외

  • 남아 있던 dense public indicator API의 최종 nullable 전환은 상위 PR #19에서 다룹니다.
  • plugin/polars nullable adapter 마이그레이션은 이번 stack 범위 밖입니다.

테스트 계획

  • cargo fmt --package techr-core --check
  • cargo test -p techr-core

Copy link
Copy Markdown
Collaborator Author

mingi3314 commented Apr 24, 2026

@mingi3314 mingi3314 changed the title Remove dense EMA and RSI adapters ♻️ core dense adapter 제거 Apr 24, 2026
@mingi3314 mingi3314 marked this pull request as ready for review April 24, 2026 06:26
@mingi3314 mingi3314 requested a review from sjquant April 24, 2026 08:18
@mingi3314 mingi3314 self-assigned this Apr 24, 2026
@alphaprime-dev-discord
Copy link
Copy Markdown

Copy link
Copy Markdown
Collaborator

@sjquant sjquant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 👍

Copy link
Copy Markdown
Collaborator Author

mingi3314 commented Apr 27, 2026

Merge activity

  • Apr 27, 2:16 AM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Apr 27, 2:21 AM UTC: Graphite rebased this pull request as part of a merge.
  • Apr 27, 2:22 AM UTC: @mingi3314 merged this pull request with Graphite.

@mingi3314 mingi3314 changed the base branch from core-nullable-composites to graphite-base/18 April 27, 2026 02:19
@mingi3314 mingi3314 changed the base branch from graphite-base/18 to main April 27, 2026 02:20
@mingi3314 mingi3314 force-pushed the core-remove-dense-adapters branch from 271e25d to 852c232 Compare April 27, 2026 02:21
@mingi3314 mingi3314 merged commit 91f1599 into main Apr 27, 2026
1 check passed
mingi3314 added a commit that referenced this pull request Apr 27, 2026
## 요약
- 이 PR은 `#18` 위에 쌓인 stacked PR입니다. 리뷰는 `core-remove-dense-adapters` 대비로 봐주시면 됩니다.
- `core`에 남아 있던 마지막 dense public indicator API를 nullable 입력 계약으로 전환해, 공개 surface 기준 nullable 마이그레이션을 마무리합니다.
- rolling extrema helper까지 같은 규칙으로 정리해서, 이제 `core`의 공개 API에는 `&[f64]` 기반 indicator entrypoint가 남지 않도록 맞춥니다.

## 변경 사항
- `mom`, `roc`, `psl`, `cci`, `mfi`를 nullable 입력 기준으로 전환합니다.
- `aroon`, `aroonosc`, `willr`, `pchan`, `stochf`, `stochs`, `ichimoku`를 nullable extrema/window semantics에 맞게 전환합니다.
- `core/src/utils.rs`의 `rolling_max_min`, `rolling_argmax_argmin`, `rolling_midpoint`를 full valid window를 요구하는 nullable helper로 정리합니다.
- `stochrsi` 경로를 새 nullable extrema helper에 맞게 정리합니다.
- 공개 surface에서 역할이 끝난 dense utility 흔적을 숨기고, 마지막 test-only dense helper는 테스트 내부 인라인으로 정리합니다.

## 리뷰 포인트
- rolling extrema 계열이 gap이 포함된 window를 valid 값으로 취급하지 않는지
- lag/pairwise 기반 indicator가 series를 압축하지 않고 aligned output을 유지하는지
- 이번 PR 이후 `core` 공개 API에 `&[f64]` 기반 indicator가 더 이상 남지 않는지
- `stoch*`, `aroon*`, `ichimoku`, `cci`, `mfi`가 대표적인 확인 포인트입니다.

## 범위 외
- `plugin/polars` nullable adapter 마이그레이션은 여전히 후속 작업입니다.
- 이번 PR은 `core` 공개 API와 helper semantics 정리에 집중하며, 별도의 성능 최적화 패스는 포함하지 않습니다.

## 테스트 계획
- [x] `cargo fmt --package techr-core --check`
- [x] `cargo test -p techr-core`
- [x] `rg '^pub fn .*\\[f64\\]' core/src` 결과 없음 확인
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants