Ext takes no strategy hooks, unlike Hom, so no package can add an Ext strategy
- Dominant language
- Macaulay2
- Stars
- 435
- Forks
- 297
- Avg merge
- 4d 20h
- Merged PRs (30d)
- 11
Description
This issue was triaged from [`bugs/dan/1-hooks`](https://github.com/Macaulay2/M2/blob/388c1ff0ce30d83751dea7bc7eac77fdc1305dd7/bugs/dan/1-hooks), one of the 857 files removed from the pre-GitHub `bugs/` tree by [`d2c8d27826`](https://github.com/Macaulay2/M2/commit/d2c8d27826) and catalogued in [#36](https://github.com/Macaulay2/M2/issues/36). **The commentary below was written by Claude (Claude Opus 5, via Claude Code)**, not by @d-torrance, whose account posted it -- please weigh it accordingly.
### The original file, verbatim
```text
Anton needs D-module hooks into Hom and Ext
```
### Where it stands today
Filed as the general gap rather than the D-module one, because the general gap is what blocks anybody.
### `Hom` is hookified; `Ext` is not
```m2
hooks(Hom, Module, Module) -- Strategy => Default, Strategy => Syzygies (e0ffe77743, 2023-12-12)
hooks(Ext, Module, Module) -- empty
```
`Ext` in Core is only a stub raising `missingPackage` (`complexes.m2:78,93`), with the real
implementations installed as **plain methods** in Complexes and OldChainComplexes. So no package can add
an `Ext` strategy without overriding the method outright.
### Why the D-module framing is dropped
`WeylAlgebras` does use the mechanism — it hooks `codim` at `WeylAlgebras/Dbasic.m2:270-271`, since
`19c0b76f7d` (2020-11-18) — so the pattern was known and simply not chosen for `Hom` or `Ext`. The
D-module `Hom` and `Ext` shipped instead as standalone `DHom` and `DExt` in `BernsteinSato`, taking an
extra weight-vector argument, so whether they are substitutable for `Hom` and `Ext` is a mathematical
question this triage could not settle.
Anton, whom the file names, filed nothing about it in eighteen years — which is a reason to state the
request generally rather than to attribute it.
`open` · disposition `issue` · source of truth: [`bug-triage/catalog.tsv`](https://github.com/d-torrance/M2/blob/bug-triage/bug-triage/catalog.tsv)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with complexes.m2:78,93 and compare the hooks(Hom, Module, Module) setup with the plain Ext methods in Complexes and OldChainComplexes. Read the existing Hom strategy hooks and the Ext implementations, then clarify how an Ext strategy should be exposed without overriding the method. Done means packages can add an Ext strategy while existing behavior remains available.
Written by the indexing model from the issue text.
Assessment
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100