Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make transforms part of the public MPS #214

Merged
merged 24 commits into from
Jun 17, 2023
Merged

Conversation

rptb1
Copy link
Member

@rptb1 rptb1 commented Apr 14, 2023

Fixes #111 .

Progress towards resolving #110 .

Part of the plan to meet Configura's requirements by separating and reviewing each implementation.

This branch cherry-picks and edits changes from branch/2022-01-23/cet-merge-2.

EDIT: Original requirements are discussed and linked in design.mps.transform, introduced by this work.

@rptb1 rptb1 added the essential Will cause failure to meet customer requirements. Assign resources. label Apr 14, 2023
@rptb1 rptb1 added this to the version 1.118 milestone Apr 14, 2023
@rptb1 rptb1 force-pushed the branch/2023-04-13/transforms branch from a56d1e2 to b745b69 Compare April 14, 2023 09:01
gareth-rees and others added 7 commits June 12, 2023 14:19
* Move transforms sources to the core sections of the makefiles.
* Move function declarations to the public header mps.h.
* Update copyright notices for transforms code.
* Remove references to Configura from the comments.
* Remove trailing whitespace.
* Translate design to reStructuredText.
* Move documentation to reference section of manual.
* Add warning about unsuitability when ambiguous references may exist.

(cherry picked from commit b1c3097)
…ticular) spills ambiguous references to stack and prevents it working properly.
@rptb1
Copy link
Member Author

rptb1 commented Jun 14, 2023

Executing proc.review.entry

  1. Start time 11:29.
  2. Entry criteria: entry.universal, entry.impl, entry.design.
  3. Source documents for recent requirements are available and linked via issues, and original discussions with Configura are linked via the design document.
  4. Most source documents are unreviewed.
  5. proc.review.brief-check: @thejayps and @rptb1 observed that the test, ztfm.c would not pass review and needs reworking. We have raised Testing of transforms is unclear and overengineered #242 and ztfm.c fails to meet its requirement to test transforms on all platforms #243 to fix this. We propose excluding ztfm.c from review except as a source document.
  6. Entry passed otherwise.
  7. End time 11:45.
  8. Entry took 16 minutes.

@rptb1
Copy link
Member Author

rptb1 commented Jun 14, 2023

Executing proc.review.plan

  1. Start time 11:46.
  2. plan.review.time: Git reports about 2400 lines, but we're not reviewing ztfm.c whic h is 1400 of those, leaving about 1000 lines. This is a bit over 1h @ 10 l/min but since this is mature tested and reviewed code, what we are mostly checking is consistency and correct merging of CET-specific code into master, so we can check faster over the tranforms code itself. I think we can do this within 1h of checking, and time during logging.
  3. proc.review.plan.schedule: Review is scheduled for 2023-06-15 13:00 for about 3h with breaks.
  4. proc.review.plan.source: Public MPS source code does not include transforms #111 , Ravenbrook MPS sources are out of sync with Configura's sources #110 , design references, and Testing of transforms is unclear and overengineered #242 , ztfm.c fails to meet its requirement to test transforms on all platforms #243 concerning why ztfm.c is excluded.
  5. proc.review.plan.rule: All rules except rule.code.python.
  6. proc.review.plan.roles: @thejayps is .role.leader, @UNAA008 could do .role.check.source and .role.check.clarity , @thejayps could do .role.check.consistency and .role.check.source , @rptb1 .role.check.consistency , .role.check.backwards and .role.check.correctness. Note that we do not consider correctness (of the transform code) to be a primary focus because it's mature and well tested code.
  7. proc.review.plan.homework: none.
  8. proc.review.plan.invite: done via Keybase.
  9. proc.review.plan.doc: See above for links, and this pull request.
  10. Planning finished 12:03.
  11. Time taken: 17 minutes.

@rptb1
Copy link
Member Author

rptb1 commented Jun 14, 2023

@thejayps asks that we spend a bit of time at the end of the review dividing the issues into those that must be edited before 1.118.0 and those which can be raised for later.

@thejayps
Copy link
Contributor

thejayps commented Jun 15, 2023

Executing proc.review.ko

  1. Start time 1305
  2. @thejayps specified that the product document does not include ztfm.c as it includes many defects. It is a source document.
  3. @thejayps explained that FIXME checks started failing after entry, but this does not need hold up the review.
  4. Checking roles as per suggested in plan: @thejayps to start from code and @rptb1 to start from documentation to achieve some role.check.backwards.
  5. .improve @rptb1 notes that comments that aren't inline ones haven't specifically referenced exactly what they are talking about. References must be made unambiguous and clear by checkers.
  6. Checking started at 1328, logging to commence at 1435 (5 mins break included in 1h check time).

@thejayps
Copy link
Contributor

thejayps commented Jun 15, 2023

Checking
comment: this PR doesn't obviously link to the review comments made by @gareth-rees in #76 .

M1 - this pull request doesn't obviously refer to the original requirements from Configura

Fix - reference added to PR description

Copy link
Contributor

@thejayps thejayps left a comment

Choose a reason for hiding this comment

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

performing proc.review.check

code/trans.c Outdated Show resolved Hide resolved
code/trans.c Outdated Show resolved Hide resolved
code/trans.c Outdated Show resolved Hide resolved
code/trans.c Outdated Show resolved Hide resolved
code/trans.c Show resolved Hide resolved
code/trans.c Outdated Show resolved Hide resolved
code/trans.c Outdated Show resolved Hide resolved
code/trans.c Outdated Show resolved Hide resolved
code/trans.c Show resolved Hide resolved
code/trans.c Show resolved Hide resolved
@thejayps
Copy link
Contributor

1h checking, checked all of trans.c
Found: 1M 8m 2comments 2questions

Copy link
Member Author

@rptb1 rptb1 left a comment

Choose a reason for hiding this comment

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

Executing proc.review.check

  1. Start time 13:30.
  2. Built and ran tests on Kiwi-Ubuntu (lii6ll) and build the manual, no errors.
  3. m. design.mps.transform is missing from design/index.txt. rule.generic.complete
  4. 10M, 16m.
  5. Finished checking 14:22.
  6. Checking took 52 minutes.

design/transform.txt Show resolved Hide resolved
design/transform.txt Show resolved Hide resolved
design/transform.txt Outdated Show resolved Hide resolved
design/transform.txt Outdated Show resolved Hide resolved
design/transform.txt Outdated Show resolved Hide resolved
code/trans.c Show resolved Hide resolved
code/trans.c Show resolved Hide resolved
code/trans.c Show resolved Hide resolved
code/trans.c Show resolved Hide resolved
code/trans.c Outdated Show resolved Hide resolved
Copy link
Contributor

@UNAA008 UNAA008 left a comment

Choose a reason for hiding this comment

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

M: Issue #111 refers to speculation about the use of mps_pool_walk and
mps mps_arena_roots_walk similar objectives to transforms
but the narrative in this issue doesn't reach a conclusion about
whether these are resolved sufficiently for the issue to be closed.
for example
#111 (comment)

M: Issue #110 refers to PR #76 as something that would close this issue.
Unclear whether that branch has been completely mined.

m: Copyright dates require update in design/transform.txt

M: The "not yet written" section in design/transform.txt is extensive, requires explicit review
to determine if any of it is essential for general release.
M: The transform.rst section of the manual does not appear to me to be comprehensive enough for a general release. Perhaps a use case would make a big difference.

@thejayps
Copy link
Contributor

Note to editor:

M: Issue #110 refers to PR #76 as something that would close this issue. Unclear whether that branch has been completely mined.

From #214 (review)
Check that #76 is completely mined as one of the steps pre release of 118

@UNAA008
Copy link
Contributor

UNAA008 commented Jun 15, 2023

I: Estimates for review time based on lines of code don't tend to work for role.check.source because this requires reading linked documents which add significantly to the bulk of the work.
Perhaps this could be estimated after a bit of analysis of what's listed as source documents.

rptb1 added 2 commits June 16, 2023 07:43
…he test, and converting some to TODOs. Linking issues to be resolved.
… updating, clarifying, and cross-referencing, in response to review <#214 (comment)>.
@rptb1
Copy link
Member Author

rptb1 commented Jun 16, 2023

M: The transform.rst section of the manual does not appear to me to be comprehensive enough for a general release. Perhaps a use case would make a big difference.

Raise: #246

@rptb1
Copy link
Member Author

rptb1 commented Jun 16, 2023

m: Copyright dates require update in design/transform.txt

Fixed: Updated in ebe0af1

@rptb1
Copy link
Member Author

rptb1 commented Jun 16, 2023

M1 - this pull request doesn't obviously refer to the original requirements from Configura

Fixed by edit to #214 (comment)

@rptb1
Copy link
Member Author

rptb1 commented Jun 16, 2023

m. design.mps.transform is missing from design/index.txt. rule.generic.complete

Fixed in 24417c2

@rptb1 rptb1 added the pending Something needs doing, even if closed. label Jun 16, 2023
@rptb1
Copy link
Member Author

rptb1 commented Jun 16, 2023

Added pending label so that we later deal with process improvements and meta issues raised in #214 (review)

@thejayps thejayps marked this pull request as ready for review June 16, 2023 17:35
Copy link
Contributor

@thejayps thejayps left a comment

Choose a reason for hiding this comment

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

resolving conversations pre exit

manual/source/release.rst Outdated Show resolved Hide resolved
manual/source/topic/transform.rst Show resolved Hide resolved
…sform may fail and the possible set of return codes
@thejayps
Copy link
Contributor

Executing proc.review.exit

  1. Start time 0150

  2. Transgression - Improvement not acted on: Make transforms part of the public MPS #214 (comment) - Raise Ways of estimating progress through checking are not clearly described for all checking roles #250

  3. Transgression - no remaining defects estimated. Do now: ~10 defects discovered considering duplicates. -> Use "75%" rule: 10/0.75 = 13.3 -> 3.3 Major defects remaining. This is at face value above the acceptable level for exit.pass, however we note that the code itself is mature and well tested with Configura, and most of the defects are around the documentation. As we have no other clients actively using transforms now we choose to exceptionally be more accommodating than usual of this estimated number of remaining defects in considering the outcome of this exit. Raise Transforms is estimated to contain more than 2 undiscovered major defects #251

  4. exit.pass

  5. review.exit.calc:

    • hours used: 25-30 (very roughly estimated),
    • hours saved: 100 - 30 = 70
    • major defects remaining: 3.3
  6. exit finished at 0222 - exit took ~30 mins

Copy link
Contributor

@thejayps thejayps left a comment

Choose a reason for hiding this comment

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

@thejayps thejayps merged commit 3af4410 into master Jun 17, 2023
@thejayps
Copy link
Contributor

executing proc.merge.pull-request (currently in #228)

  1. Start time 0225
  2. 3 'sort of': There is a test: ztfm.c which we believe tests transforms correctly. It has not been reviewed as it is likely to have many defects (not suspected to be around .correctness) and it needs redesigning. There are issues logged that will prompt this to happen.
  3. Commit messages for this merge may be incorrect, I was never invited to prepare the correct commit message despite following the merge procedure (and adapting it reasonably to take account of the merge conflicts)
  4. Merge finished at 0238

@rptb1
Copy link
Member Author

rptb1 commented Jun 17, 2023

Fixing up merge mistakes by catching up from master, re-merging, and force-pushing to master. See #253 for prevention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
essential Will cause failure to meet customer requirements. Assign resources. pending Something needs doing, even if closed.
Development

Successfully merging this pull request may close these issues.

Public MPS source code does not include transforms
4 participants