function_coverage.md - trueagi-io/metta-wam GitHub Wiki

Function coverage across source files.

The can be found at: https://docs.google.com/spreadsheets/d/1-ICkIlV1cCCDe8RVu1Y6is3q72wAu2g51aiCaNjS8d8/edit?gid=0#gid=0

The purpose of this spreadsheet is to see what functions are listed where across the metta-wam and hyperion-experimental repositories, so that we can best work out how to complete the coverage.

NOTE: Some functions have been included that are commented out in the code and possibly shouldn't be there. Better to have some things to remove than to overlook something that needs to be added later.

NOTE: this was done by hand, and will have some errors.

Columns from metta-wam:

  • name - the predicate name in src/canary/metta_eval.pl file (or other files if they don't exist there). The rows starting with %%%%% are not predicates, but included to try and keep some structure.

  • arity Arity of the predicate. This has been inferred from looking at the signatures, is incomplete and occasionally contradictory.

  • metta_eval line is the line that that name first occurs in src/canary/metta_eval.pl. This is only included so that we can get the metta_eval back after sorting. It is not expected that we keep these up to date (unless we script them) - I just wanted a relative order.

  • metta_interp Whether this is included in src/canary/metta_interp.pl. I understand this is going to be largely deprecated.

  • metta_ontology.pfc Whether this is included in src/canary/metta_ontology.pfc.pl.

  • metta_eval Which clause if any (eval_20, eval_40, eval_space etc.) this occurs in in metta_eval.pl. inactive means there but commented out.

  • corelib_defn Whether this is the subject of a metta_atom_corelib_defn clause in src/canary/metta_corelib.pl

  • corelib_types Whether this is the subject of a metta_atom_corelib_types clause in src/canary/metta_corelib.pl

  • corelib_decl Whether this is the subject of a op_decl clause in src/canary/metta_corelib.pl

  • docs Which of the files src/canary/stdlib_mettalog.metta (shown as stdlib_mettalog) or src/canary/stdlib_minimal.metta (shown as minimal) have documentation for this. It may be both.

  • ticket Ticket number in the github project.

TODO: note what the test coverage is.

Columns from hyperion-experimental:

  • Rust (rs) whether the function is in lib/src/metta/runner/stdlib.rs (shown as stdlib), lib/src/metta/runner/stdlib_minimal.rs (shown as stdlib_minimal) or both. Got from looking at the tref.register_token(...) statments.

  • Rust (metta) whether the function is in lib/src/metta/runner/stdlib.metta (shown as stdlib), lib/src/metta/runner/stdlib_minimal.metta or both.

  • Rust (py) whether the function is in python/hyperion/stdlib.py. I looked at OperationAtom(...) for this.