12 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
47c169f9f9 Enforce computed LEGO walkthroughs and registry-backed book sources.
Add binder gates that ban legacy constant aliases, hardcoded grid literals,
and prose operands next to {python} refs; migrate appendices and chapter
callouts to export intermediate values from mlsysim registries so worked
math stays machine-verified instead of hand-typed.
2026-05-25 15:49:27 -04:00
Vijay Janapa Reddi
69736d3bdb updates 2026-02-28 18:20:47 -05:00
Vijay Janapa Reddi
3266bc7dfa Standardize chapter discovery via Quarto config
Refactors chapter discovery across CLI commands to use a single, canonical source of truth: the volume's Quarto PDF configuration file.

Introduces a new `get_chapters_from_config` function in `core/discovery.py` that parses the `_quarto-pdf-{volume}.yml` to derive the ordered list of testable chapter stems. This ensures consistent chapter order for `build` and `debug` operations, reducing duplication and improving maintainability.

Updates `build.py` and `debug.py` to delegate all chapter list retrieval to this new centralized method within `ChapterDiscovery`. Also enhances chapter QMD file location to support shared content paths.
2026-02-28 17:08:17 -05:00
Vijay Janapa Reddi
d299e49d10 update 2026-02-28 16:25:00 -05:00
Vijay Janapa Reddi
2390c3ab31 Refactor: consolidate Quarto config layers and content reorganization.
Unifies Quarto metadata into shared base/format/volume fragments while carrying through chapter path, asset, and tooling updates to keep the repository consistent and easier to maintain.
2026-02-12 15:38:55 -05:00
Vijay Janapa Reddi
abe634ead2 Refactor: unify binder workflows and polish authoring UX
Consolidate Binder/extension command behavior, improve chapter navigation and QMD editor ergonomics, and carry forward Volume 1 content updates so build/debug and writing workflows stay aligned.
2026-02-11 12:34:06 -05:00
Vijay Janapa Reddi
51e720714d Add D·A·M Venn diagram and widen ML stack data bar connectors
- Widen gap between ML systems stack layers and data bar in both
  margin and full-size variants so connector lines are clearly visible
- Add D·A·M Intersection Landscape Venn diagram (SVG + PNG) to the
  D·A·M Taxonomy appendix with reference table and explanatory prose
- Add forward references to the Venn from Introduction and Part III
- Add learning objective for intersection mapping
- Chapter prose refinements across multiple chapters
2026-02-08 09:30:47 -05:00
Vijay Janapa Reddi
f4ce6e4055 Update Vol 1 and Vol 2 content, CLI tooling, and PDF config
Edits across all Vol 1 chapters (benchmarking, serving, training,
frameworks, hw_acceleration, etc.) and Vol 2 chapters. Includes
data_efficiency rename to data_selection, build CLI improvements,
and copyedit PDF config addition.
2026-01-30 09:02:39 -05:00
Vijay Janapa Reddi
ba737668c1 feat(cli): add volume flag support and fuzzy chapter matching
Implements two key improvements to the binder CLI:

1. **Volume flag support for chapter builds**
   - Volume flags (--vol1, --vol2) now work regardless of position in args
   - New build_chapters_with_volume() method routes chapters to correct config
   - Auto-prefixes chapter names with volume to disambiguate (intro -> vol2/intro)
   - Outputs to volume-specific directories (_build/FORMAT-vol1/, _build/FORMAT-vol2/)

2. **Smart fuzzy chapter name matching**
   - Prioritizes 'starts with' matches (ops -> ops_scale.qmd)
   - Falls back to 'contains' matches if no prefix match found
   - Enables shorter, more intuitive chapter references

Examples:
  ./binder pdf intro --vol2      # Uses vol2 config, auto-disambiguates
  ./binder html ops --vol2        # Fuzzy matches to ops_scale.qmd
  ./binder pdf serving --vol1     # Uses vol1 config, finds serving.qmd

Also fixes invalid aria-current property in Quarto YAML configs that
was causing validation errors during HTML builds.
2026-01-10 16:02:02 -05:00
Vijay Janapa Reddi
073231734b feat: add volume support to Binder CLI
Add --vol1 and --vol2 flags for building individual volumes:
- ./binder pdf --vol1   Build Volume I as PDF
- ./binder pdf --vol2   Build Volume II as PDF
- ./binder epub --vol1  Build Volume I as EPUB
- ./binder epub --vol2  Build Volume II as EPUB
- ./binder list --vol1  List Volume I chapters only
- ./binder list --vol2  List Volume II chapters only

Add ambiguous chapter detection for chapters that exist in both
volumes (e.g., introduction, conclusion). When ambiguous, the CLI
shows an error with guidance to use vol1/ or vol2/ prefix.

Changes:
- discovery.py: Add AmbiguousChapterError, volume-aware discovery
- build.py: Add build_volume() method
- main.py: Add volume flag handling and updated help text
2026-01-02 10:00:31 -05:00
Vijay Janapa Reddi
853eb03ee8 style: apply consistent whitespace and formatting across codebase 2025-12-13 14:05:34 -05:00
Vijay Janapa Reddi
7b92e11193 Repository Restructuring: Prepare for TinyTorch Integration (#1068)
* Restructure: Move book content to book/ subdirectory

- Move quarto/ → book/quarto/
- Move cli/ → book/cli/
- Move docker/ → book/docker/
- Move socratiQ/ → book/socratiQ/
- Move tools/ → book/tools/
- Move scripts/ → book/scripts/
- Move config/ → book/config/
- Move docs/ → book/docs/
- Move binder → book/binder

Git history fully preserved for all moved files.

Part of repository restructuring to support MLSysBook + TinyTorch.

Pre-commit hooks bypassed for this commit as paths need updating.

* Update pre-commit hooks for book/ subdirectory

- Update all quarto/ paths to book/quarto/
- Update all tools/ paths to book/tools/
- Update config/linting to book/config/linting
- Update project structure checks

Pre-commit hooks will now work with new directory structure.

* Update .gitignore for book/ subdirectory structure

- Update quarto/ paths to book/quarto/
- Update assets/ paths to book/quarto/assets/
- Maintain all existing ignore patterns

* Update GitHub workflows for book/ subdirectory

- Update all quarto/ paths to book/quarto/
- Update cli/ paths to book/cli/
- Update tools/ paths to book/tools/
- Update docker/ paths to book/docker/
- Update config/ paths to book/config/
- Maintain all workflow functionality

* Update CLI config to support book/ subdirectory

- Check for book/quarto/ path first
- Fall back to quarto/ for backward compatibility
- Maintain full CLI functionality

* Create new root and book READMEs for dual structure

- Add comprehensive root README explaining both projects
- Create book-specific README with quick start guide
- Document repository structure and navigation
- Prepare for TinyTorch integration
2025-12-05 14:04:21 -08:00