Did you know ... Search Documentation:
Packs (add-ons) for SWI-Prolog

Package "xtools"

Title:Extended tools for Prolog
Rating:Not rated. Create the first rating!
Latest version:0.0.2
SHA1 sum:f8f30fdc91c44229399e8e6edcf6de5433bf325c
Author:Edison Mera Menendez http://www.edisonm.com/
Maintainer:Edison Mera Menendez http://www.edisonm.com/
Packager:Edison Mera Menendez http://www.edisonm.com/
Home page:https://github.com/edisonm/xtools
Download URL:https://github.com/edisonm/xtools.git

Reviews

No reviews. Create the first review!.

Details by download location

VersionSHA1#DownloadsURL
0.0.208676065e40852a73de2980a531b8ca5d7f1003e1https://github.com/edisonm/xtools.git
0ca714418e73a8e48674364c18f9f0f2cec8cf2d1https://github.com/edisonm/xtools.git
162ccef0335cd6ca7d6bd948c88292a913fceb522https://github.com/edisonm/xtools.git
1a798e34553a8e78b369a60aa93b5ea03dc295d42https://github.com/edisonm/xtools.git
1f19465876a88fcae3840c799af1a9d43a829fe91https://github.com/edisonm/xtools.git
2dc5e6f07c5c5fe8324288ec741b6c08717ed1fb2https://github.com/edisonm/xtools.git
4a3eb6aca89da7258e61081a31333ea0d8494a5d1https://github.com/edisonm/xtools.git
4a5ac605a2bdfcc2b82e30face908b1c927a9f511https://github.com/edisonm/xtools.git
54fa139e7ab5f68d08789df999be5e1b9faf95f91https://github.com/edisonm/xtools.git
65628b08d4ae88da6e0d66c1b9c602cfc07572ec1https://github.com/edisonm/xtools.git
6713c09daa4c9f42ccdc6773110d0aa31422fb431https://github.com/edisonm/xtools.git
67eb99834cc8d59be0cbf30b9ed2e698f3ced3491https://github.com/edisonm/xtools.git
6a0d2c0b299ccb7e55690ce84c529e3b1ef340511https://github.com/edisonm/xtools.git
6e8852f7ecc073d81054fc7af9587bfdc3d9794a1https://github.com/edisonm/xtools.git
7c38798979e403388584ad80485c3d6173e3156a1https://github.com/edisonm/xtools.git
7fe0a2c638d3d2dc88e16a817cb312cec580d3205https://github.com/edisonm/xtools.git
928231ddfc0bbcc166d9de6233d702577666d9de1https://github.com/edisonm/xtools.git
9546bc804679a399dfeec697b1e0f2e730c2e1fa1https://github.com/edisonm/xtools.git
9e12deba9e89ac907c49fc32eccdb65ac932407f1https://github.com/edisonm/xtools.git
a0a53cf57f87429d969e54ca0880343e105ac5d41https://github.com/edisonm/xtools.git
a488671d95df1d21251e826bd6ae0edeb980d2f41https://github.com/edisonm/xtools.git
b878050bc1666d6579afc4b2286df4d811176b8b1https://github.com/edisonm/xtools.git
ca1084e3ec9ea58798f5cf88b59bdf575368ffa81https://github.com/edisonm/xtools.git
d8dcc498d4d3a25d3adf2dd7a46577eba0fda8491https://github.com/edisonm/xtools.git
d9ea2735bf9732c6eff74daa0f98d4e10fdb66de3https://github.com/edisonm/xtools.git
e662d151e2acc38d88ab6bdec4a44e2b3c8f34e61https://github.com/edisonm/xtools.git
efb3ef0d8f8cd6fd3d3b77d9819554b16bf79a253https://github.com/edisonm/xtools.git
f066af1cf36ae3b0cfd4b245cee7b7232b7ac63f1https://github.com/edisonm/xtools.git
f8f30fdc91c44229399e8e6edcf6de5433bf325c2https://github.com/edisonm/xtools.git

xtools

Extended tools for Prolog

Usage

This library contains several development tools, although not all are listed here, the most stable and relevant ones follows:

Code Coverage

A code coverage tool that also work at a literal level, and that shows the result in a web server. It is easier to use the pltool.sh from plsteroids to see a demo:

./pltool.sh cover

Will execute the coverage over the unit tests.

Static Analysis

A static analysis tool mostly based on looking the abstract syntax graph for inconsistencies, for example:

 ?- [library(checkers)].
true.
 ?- checkall([dir('.')]).

will execute all the checkers to analyze the modules in the directory '.'. Alternatively you can use checkallc instead, which is the concurrent version of the above.

If you want to use specific analysis, use the predicate showcheck(Analysis, Options), where Analsyis can be:

[//]: # (prolog_ini checkhelp) [//]: # (Content generated automatically by pltoolmisc.pl) assertions: Check asssertions ----------------- The predicates contain assertions that are inconsistent with the implementation.

deprecated: Deprecated Predicates --------------------- The predicates below are marked as deprecated, so you have to avoid its usage in new code, and to refactorize old code.

dupcode: Duplicated Code --------------- The elements below would has been implemented in different modules, but are duplicates. Would be a symptom of duplicated functionality. In the case of predicate names, at least one has been exported, making difficult to import it in other modules without clash risk. This can be fixed by merging the duplicated code, or by refactoring one of the duplicated to avoid this warning. Note that predicates declared as public are ignored by this analysis.

imports: Unused Imports -------------- The predicates or modules below has been imported, however they are never used in the importing module, or they do not implement new clauses for multifile predicates. Note that modules that export operators, or that do not export any predicate are not reported. You can silent the warnings by declaring use_module/2 with an empty import list. If they have desirable side effects and still needs to be imported, you can refactorize your program so that such side effects are not required anymore.

meta_decls: Missing Meta Predicate Declarations ----------------------------------- The predicates below require a missing meta_predicate declaration. They have been automatically inferred. Although is not required, it is recommended to add them by hand or to fix the predicate in order to facilitate static analysis and refactoring.

non_loaded: Non Loaded ---------- The following files are not being loaded, which means you are not analyzing them statically

non_mutually_exclusive: Non Mutually Exclusive Predicates --------------------------------- The predicates below are marked as mutually_exclusive, but they have non mutually exclusive clauses. You can resolve the ambiguity unifying the non mutual exclusive clauses or changing the specification of such predicates.

trivial_fails: Trivial Fails ------------- The literals below always fails, due to there are no matching clauses for such calls, which is reported as a trivial fail, or because all paths leads to dead points, in such case the warning reports also the biggest failure chain found

undefined: Undefined Predicates -------------------- The predicates below are not defined. If these are defined at runtime using assert/1, use :- dynamic Name/Arity.

unused: Unused Predicates ----------------- The predicates has been implemented, however they are never referenced in the code nor exported. Probably are dead-code, part of an incomplete implementation, or called indirectly by some meta predicate without or with incorrect meta_predicate declaration. In any case this represents a bad design and must be fixed, either completing the program, or exporting/removing the unreferenced predicates.

wrong_dynamic: Wrong Dynamic Declarations -------------------------- The predicates present inconsistencies between its usage and the dynamic declarations. Could be that they are being used as dynamic without a proper declaration, being declared as dynamic but never asserted, retracted, or using a variable argument in a database predicate, making it difficult to analyze.

[//]: # (prolog_end)

Contents of pack "xtools"

Pack contains 63 files holding a total of 267K bytes.