Ravenbrook / mps

The Memory Pool System
http://www.ravenbrook.com/project/mps
Other
563 stars 77 forks source link

Critical path document needs review and cross-referencing #167

Open rptb1 opened 1 year ago

rptb1 commented 1 year ago

The critical path through the MPS is a key design document that justifies a lot of the MPS architecture.

As it currently appears in the manual at https://memory-pool-system.readthedocs.io/en/latest/design/critical-path.html it has errors:

  1. The indexing markup seems to have leaked into the text. This is probably a fault in the markup and/or designs.py
  2. The References section appears to be blank.
  3. The document is not tagged, and the parts of the MPS source that it talks about do not reference it. Marking up the critical path clearly in the source might have prevented #137 .

It somewhat likely that the document is a bit out of date as well and could do with a review.

rptb1 commented 1 year ago

3. Marking up the critical path clearly in the source

... would also help other developers with understanding when changes are a serious risk of introducing performance defects.

rptb1 commented 1 year ago

It might be a good idea to search the code for all the critical macros (AVER_CRITICAL etc.) and ensure that each location is connected to the design. Then add a rule that they must be. This would also help to trace the critical path through the code.

rb@plover:~/git/mps$ grep -F _CRITICAL code/*.[ch] | wc -l
417