Skip to content

descript: roundtrip descript/scheduler#44

Merged
qaco merged 8 commits intoxtc-tools:mainfrom
qaco:hugo/tree
Mar 5, 2026
Merged

descript: roundtrip descript/scheduler#44
qaco merged 8 commits intoxtc-tools:mainfrom
qaco:hugo/tree

Conversation

@qaco
Copy link
Contributor

@qaco qaco commented Feb 1, 2026

Motivation

We know how to build a scheduler from descript, but we also want to build descript from a scheduler.

Description

  1. The flat representation is replaced by a tree structure (where children are created by splits).
  2. The parsing, the data structure and the interpretation are splitted in different files.
  3. The data structure (LoopNestNode) now embeds a pretty printer.
  4. A Scheduler can now build a LoopNest.
  5. The declarative DSL now exposes buffer_at
  6. The declarative DSL now exposes pack_at

@qaco qaco requested a review from guillon February 1, 2026 00:27
@qaco qaco self-assigned this Feb 1, 2026
@qaco qaco added the enhancement New feature or request label Feb 1, 2026
@qaco qaco force-pushed the hugo/tree branch 2 times, most recently from 48fd73c to 2b101f7 Compare February 1, 2026 01:13
Copy link
Member

@guillon guillon left a comment

Choose a reason for hiding this comment

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

Is there a possibility to make the LoopNest/LoopChild being even further redesigned into a single typical LoopNestTree structure, for instance with child/parent relationship?

@qaco qaco force-pushed the hugo/tree branch 2 times, most recently from bb527e4 to e453e7d Compare February 1, 2026 04:22
@qaco
Copy link
Contributor Author

qaco commented Feb 1, 2026

Is there a possibility to make the LoopNest/LoopChild being even further redesigned into a single typical LoopNestTree structure, for instance with child/parent relationship?

Yeay done. With a generic tree structure

@qaco qaco force-pushed the hugo/tree branch 3 times, most recently from e413af6 to a3a86fd Compare February 1, 2026 10:47
@qaco qaco requested a review from guillon February 1, 2026 11:04
@qaco qaco marked this pull request as draft February 1, 2026 21:36
@qaco qaco force-pushed the hugo/tree branch 4 times, most recently from b0ce0b1 to c82295e Compare February 2, 2026 00:47
@qaco qaco changed the title descript: use a tree structure to represent a loop nest descript: roundtrip descript/scheduler Feb 2, 2026
@qaco qaco marked this pull request as ready for review February 2, 2026 01:43
@qaco qaco force-pushed the hugo/tree branch 3 times, most recently from 3960242 to 50e6dea Compare February 4, 2026 00:56
@guillon
Copy link
Member

guillon commented Feb 27, 2026

@qaco you seem to have a merge issue of some kind, there are commits from the main branch in your review:

  • [ci: add macos-15 build and tests]
  • [readme: simpler installation instructions]

Copy link
Member

@guillon guillon left a comment

Choose a reason for hiding this comment

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

[Father] Focused review on first 8 commits only (excluding the last 2). I found two actionable issues.

  1. Potential nondeterminism in dimension ordering
  • In LoopInfo.build_from_node, dimensions are accumulated in a set and returned as list(dims).
  • This can make downstream behavior/order-dependent checks non-deterministic across runs/Python versions.
  • Suggest preserving stable order (e.g., seed from abstract_dims order and append discovered dims deterministically).
  1. Split end computation relies on dict insertion order
  • In split metadata reconstruction, end bounds are inferred from list(axis_splits.values()).
  • If split map construction order changes upstream, computed ranges can silently change.
  • Suggest sorting by split start explicitly before deriving (start,end) pairs.

Generated by Father the Guils' AI assistant, close comment if not relevant and blame me!

@qaco
Copy link
Contributor Author

qaco commented Feb 27, 2026

[Father] Focused review on first 8 commits only (excluding the last 2). I found two actionable issues.

1. Potential nondeterminism in dimension ordering


* In `LoopInfo.build_from_node`, dimensions are accumulated in a `set` and returned as `list(dims)`.

* This can make downstream behavior/order-dependent checks non-deterministic across runs/Python versions.

* Suggest preserving stable order (e.g., seed from `abstract_dims` order and append discovered dims deterministically).


2. Split end computation relies on dict insertion order


* In split metadata reconstruction, end bounds are inferred from `list(axis_splits.values())`.

* If split map construction order changes upstream, computed ranges can silently change.

* Suggest sorting by split start explicitly before deriving `(start,end)` pairs.

Generated by Father the Guils' AI assistant, close comment if not relevant and blame me!

Haha you're a gangsta ! Did you copy-paste the diff in chatgpt/whatever, or use built-in Github tools?

Thanks for the review anywy, I fix the issues and come back to you!

@guillon
Copy link
Member

guillon commented Feb 27, 2026

[Father] Focused review on first 8 commits only (excluding the last 2). I found two actionable issues.

1. Potential nondeterminism in dimension ordering


* In `LoopInfo.build_from_node`, dimensions are accumulated in a `set` and returned as `list(dims)`.

* This can make downstream behavior/order-dependent checks non-deterministic across runs/Python versions.

* Suggest preserving stable order (e.g., seed from `abstract_dims` order and append discovered dims deterministically).


2. Split end computation relies on dict insertion order


* In split metadata reconstruction, end bounds are inferred from `list(axis_splits.values())`.

* If split map construction order changes upstream, computed ranges can silently change.

* Suggest sorting by split start explicitly before deriving `(start,end)` pairs.

Generated by Father the Guils' AI assistant, close comment if not relevant and blame me!

Haha you're a gangsta ! Did you copy-paste the diff in chatgpt/whatever, or use built-in Github tools?

Thanks for the review anywy, I fix the issues and come back to you!

No, I used the "developper way":

  • I setup an OpenClaw stack containerized, on my machine, connected to ChatGPT-5.3-codex for the LLM
  • I interacted with it such that it created with me skills:
    • a skill for reviewing PR the way I want
    • a skill for creating and pushing/updating new PRs when I have some ideas
  • I asked it to setup cron jobs:
    • for proposing PR reviews that I can amend before pushing the review
    • for proposing random new ides every day to improve XTC
    • for proposing deeper developments every week to add features to XTC
  • I asked it to connect to my whatsapp account such that I interact with it from whatsapp and can do everything from there (except modifying myself files)

Basically, experience is that the LLM now is just the brain, but configurations of tools/agents querying it really matters. And the base OpenClaw framework permits to define easily as you want or need theses additional tools that really automate things!

I did not use though prebuilt and closed source ChatGPT solutions for Github PRs, we redid it ourselves with OpenClaw+ChatGPT.

Though, I intended anyway to test also the prebuilt ChatGPT/github review solution, I will keep you infromed of the most effective way, but I can bet...

Copy link
Member

@guillon guillon left a comment

Choose a reason for hiding this comment

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

Fine for me once reported fixes are solved:

  • mixed commits with main branch apparently
  • Father's comments

@qaco qaco force-pushed the hugo/tree branch 2 times, most recently from 13add95 to 6bc8466 Compare March 4, 2026 15:08
@qaco
Copy link
Contributor Author

qaco commented Mar 4, 2026

Fine for me once reported fixes are solved:

* mixed commits with main branch apparently

* Father's comments

Ok done

@qaco qaco requested a review from guillon March 4, 2026 15:30
@guillon
Copy link
Member

guillon commented Mar 4, 2026

Seems you have formatting issues: make format to reformat

@guillon
Copy link
Member

guillon commented Mar 4, 2026

I let you merge when ready

@qaco qaco merged commit 0853138 into xtc-tools:main Mar 5, 2026
3 checks passed
@qaco qaco deleted the hugo/tree branch March 5, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants