Project

General

Profile

Support #1636

Missing/Incomplete manual entries

Added by John Abbott over 2 years ago. Updated 5 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
-
Category:
Manual/documentation
Target version:
Start date:
25 Nov 2021
Due date:
% Done:

10%

Estimated time:
Spent time:

Description

Some entries in the online manual are missing or very incomplete.

?uniq

Can we find and correct these systematically?

CheckManual-NoExactMatch.txt (2 KB) CheckManual-NoExactMatch.txt Names with no exact match John Abbott, 29 Nov 2023 21:36
CheckManual-NoMatches.txt (16.2 KB) CheckManual-NoMatches.txt Names with no matches John Abbott, 29 Nov 2023 21:36

History

#1 Updated by John Abbott 5 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10

Here is a start to finding which functions need manual entries but don't have them.

Below is some CoCoA-5 code which prints to the file CheckManual.cocoa5
lots of manual queries (one for each command which ought to have a manual entry.

Find all CoCoA commands which do not have manual entries:

// List of all commands which should have manual entries.
L1 := [entry in starting("") | entry.IsExported = true or entry.name[1] <> "$"];

define RemovePkg(str)
  posn := [i in 1..len(str) | str[i] = "."];
  if len(posn) > 1 then error("Expected at most one dot in string"); endif;
  if posn <> [] then return substring(str, posn[1]+1, len(str)); endif;
  return str;
enddefine;

L2 := [RemovePkg(entry.name) | entry in L1];

// print out CoCoA-5 commands to request manual entry for each fn:
OUTPUT := OpenOFile("CheckManual.cocoa5");
foreach name in L2 do
  println "? ",name on OUTPUT;
endforeach;
close(OUTPUT);

// Now source these commands into a CoCoA-5 session, and search
// for "No exact match for" and "No matches for" in the output.

#2 Updated by John Abbott 5 months ago

Here is the result of my first sweep:
  • fgrep "No exact match" ... [44 lines]
  • fgrep "No matches" ... [336 lines]

Are there other strings one should search for?

#3 Updated by Anna Maria Bigatti 5 months ago

I implemented and exported in CoCoA5 the function WordList(), it just is the CoCoA5 version of the utility function PrintWordList used for the autocompletion support.

This way we can just call diff(L2, WordList()) and get the functions without manual. It can also be fiddled with from CoCoA5.

["ApproxSolveTF",  "ApproxSolveVerify",  "Abs",  "Append",  "Ascii",  "Characteristic",  "Close",  "Coefficients",  "Colon",  "Comps",  "Concat",  "Count",  "Dashes",  "Date",  "Deg",  "Den",  "Depth",  "Det", ...

I cannot upload is right now because I have some problems with ssh-askpass....
1 Dec 23 checked-in

#4 Updated by Anna Maria Bigatti 5 months ago

Anna Maria Bigatti wrote:

I implemented and exported in CoCoA5 the function WordList(), it just is the CoCoA5 version of the utility function PrintWordList used for the autocompletion support.

This way we can just call diff(L2, WordList()) and get the functions without manual. It can also be fiddled with from CoCoA5.
[...]

Notice that this way is case sensitive, so also Abs is detected (when the manual is for abs). We can remove these functions by diff-ing off the functions in BackwardCompatible package.

Overall, I think it nice to be able to manipulate the list within CoCoA5, e.g. I might want to check the functions exported by a specific package.

Also available in: Atom PDF