<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-lorem-optimum-benchmark.el, branch load-graph-classify-start</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-12T05:09:15+00:00</updated>
<entry>
<title>test(lorem-optimum): tag benchmarks :perf and assert on scaling ratios</title>
<updated>2026-05-12T05:09:15+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-12T05:09:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=94ee5e4fac213de915a27906e4e0861e86de8914'/>
<id>urn:sha1:94ee5e4fac213de915a27906e4e0861e86de8914</id>
<content type='text'>
The benchmark suite carried no tag, so `make test' ran it every time, and three of its tests asserted absolute wall-clock times (`(should (&lt; time 5000.0))' and friends). Those numbers hold on my laptop and break on a slower box.

Every benchmark is now `:perf'-tagged so the default test run skips it. The three absolute learn thresholds collapse into one `benchmark-learn-scaling' test: it times 1K, 10K, and 100K learns and requires each 10x jump in input to cost under 40x the time. Linear scaling lands near 10x, and the 40x ceiling tolerates GC pauses and slow hardware while still catching an O(N^2) regression. The rest drop their absolute `should's and stay as timing reports for `make benchmark'.
</content>
</entry>
<entry>
<title>perf(lorem-optimum): speed up the Markov generation path</title>
<updated>2026-05-11T22:17:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-11T22:17:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=7f353e925b7dbd6d0c16962e0e822aea0093308b'/>
<id>urn:sha1:7f353e925b7dbd6d0c16962e0e822aea0093308b</id>
<content type='text'>
`cj/markov-join-tokens' collects tokens in a list and `mapconcat's once instead of repeated string concatenation. `cj/markov-generate' uses `push'/`nreverse' instead of repeated `append'. The Markov keys are cached as a vector so random key selection is O(1). Re-enabled the benchmark tests (the `:slow' tags were stale) and added a `cj/lipsum-title' test after byte-compilation flagged a malformed form there. `assets/liber-primus.txt' is left as-is (36 KB / 5,374 words, small enough not to need trimming). 100K-word learning now measures about 196 ms.
</content>
</entry>
<entry>
<title>Revert "checking in modified/removed tests and other misc changes"</title>
<updated>2025-11-14T08:35:00+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-14T08:35:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=2312e40358a923fe72785af504c9272506d8d58d'/>
<id>urn:sha1:2312e40358a923fe72785af504c9272506d8d58d</id>
<content type='text'>
This reverts commit 1218bae708a6755e3628f15fef58e6806ac81039.
</content>
</entry>
<entry>
<title>checking in modified/removed tests and other misc changes</title>
<updated>2025-11-14T08:31:16+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-14T08:31:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1218bae708a6755e3628f15fef58e6806ac81039'/>
<id>urn:sha1:1218bae708a6755e3628f15fef58e6806ac81039</id>
<content type='text'>
</content>
</entry>
<entry>
<title>perf: Merge performance branch - org-agenda cache, tests, and inbox zero</title>
<updated>2025-11-12T08:46:27+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-12T08:46:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=9e7787445878cfa719f335a9491e3a2a864385b7'/>
<id>urn:sha1:9e7787445878cfa719f335a9491e3a2a864385b7</id>
<content type='text'>
This squash merge combines 4 commits from the performance branch:

## Performance Improvements
- **org-agenda cache**: Cache org-agenda file list to reduce rebuild time
  - Eliminates redundant file system scans on each agenda view
  - Added tests for cache invalidation and updates

- **org-refile cache**: Optimize org-refile target building (15-20s → instant)
  - Cache eliminates bottleneck when capturing tasks

## Test Suite Improvements
- Fixed all 18 failing tests → 0 failures (107 test files passing)
- Deleted 9 orphaned test files (filesystem lib, dwim-shell-security, org-gcal-mock)
- Fixed missing dependencies (cj/custom-keymap, user-constants)
- Fixed duplicate test definitions and wrong variable names
- Adjusted benchmark timing thresholds for environment variance
- Added comprehensive tests for org-agenda cache functionality

## Documentation &amp; Organization
- **todo.org recovery**: Restored 1,176 lines lost in truncation
  - Recovered Methods 4, 5, 6 + Resolved + Inbox sections
  - Removed 3 duplicate TODO entries

- **Inbox zero**: Triaged 12 inbox items → 0 items
  - Completed: 3 tasks marked DONE (tests, transcription)
  - Relocated: 4 tasks to appropriate V2MOM Methods
  - Deleted: 4 duplicates/vague tasks
  - Merged: 1 task as subtask

## Files Changed
- 58 files changed, 29,316 insertions(+), 2,104 deletions(-)
- Tests: All 107 test files passing
- Codebase: Cleaner, better organized, fully tested
</content>
</entry>
<entry>
<title>test: Add slow tag to benchmarks taking too long</title>
<updated>2025-11-09T21:36:20+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-09T21:36:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=b642229c18da0b0d206a4615ae8d4eb40ab97f94'/>
<id>urn:sha1:b642229c18da0b0d206a4615ae8d4eb40ab97f94</id>
<content type='text'>
Disabled benchmarks for learning and tokenizing 10,000 words due to
prolonged execution times (minutes instead of seconds). Added
`:slow` tag to indicate need for performance optimization before
re-enabling.
</content>
</entry>
<entry>
<title>feat:text-generation: improve and rename lorem generator</title>
<updated>2025-10-27T04:56:03+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-27T04:56:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d0b16101cc7c07b2ebcc141be75f0436ae440348'/>
<id>urn:sha1:d0b16101cc7c07b2ebcc141be75f0436ae440348</id>
<content type='text'>
Rename `lorem-generator.el` to `lorem-optimum.el` for fun.
Enhance text tokenization, Markov chain learning, and text
generation functions. Introduce new configuration variables for
training files and improve efficiency with vectorized access. Add
comprehensive benchmarks and unit tests under `tests/`. This
improves performance and lays groundwork for further extensions.
</content>
</entry>
</feed>
