/usr/lib/swipl/library/prolog_jiti.pl
All Application Manual Name SummaryHelp

  • swipl
    • library
      • error.pl
      • debug.pl -- Print debug messages and test assertions
      • apply.pl -- Apply predicates on a list
      • lists.pl
      • broadcast.pl -- Event service
      • shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
      • option.pl -- Option list processing
      • thread_pool.pl -- Resource bounded thread management
      • gensym.pl -- Generate unique symbols
      • settings.pl -- Setting management
      • arithmetic.pl
      • main.pl
      • readutil.pl -- Read utilities
      • operators.pl -- Manage operators
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl -- Examine Prolog source-files
      • record.pl
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • sandbox.pl
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • yall.pl -- Lambda expressions
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • pure_input.pl -- Pure Input from files and streams
      • solution_sequences.pl
      • ordsets.pl -- Ordered set manipulation
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl
      • predicate_options.pl -- Access and analyse predicate options
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • pprint.pl -- Pretty Print Prolog terms
      • atom.pl -- Operations on atoms
      • modules.pl
      • occurs.pl -- Finding and counting sub-terms
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl -- Prolog syntax colouring support.
      • lazy_lists.pl
      • ugraphs.pl -- Graph manipulation library
      • url.pl -- Analysing and constructing URL
      • www_browser.pl
      • prolog_pack.pl -- A package manager for Prolog
      • git.pl -- Run GIT commands
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • quintus.pl -- Quintus compatibility
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • prolog_wrap.pl -- Wrapping predicates
      • dialect.pl -- Support multiple Prolog dialects
      • date.pl -- Process dates and times
      • persistency.pl -- Provide persistent dynamic predicates
      • iostream.pl -- Utilities to deal with streams
      • prolog_code.pl -- Utilities for reasoning about code
      • strings.pl
      • dif.pl -- The dif/2 constraint
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • terms.pl -- Term manipulation
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • threadutil.pl -- Interactive thread utilities
      • prolog_stack.pl -- Examine the Prolog stack
      • prolog_clause.pl
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl -- Well Founded Semantics interface
      • sort.pl
      • dicts.pl -- Dict utilities
      • varnumbers.pl -- Utilities for numbered terms
      • rbtrees.pl -- Red black trees
      • base32.pl
      • charsio.pl
      • codesio.pl
      • coinduction.pl -- Co-Logic Programming
      • heaps.pl -- heaps/priority queues
      • statistics.pl -- Get information about resource usage
      • when.pl
      • backcomp.pl -- Backward compatibility
      • ctypes.pl -- Character code classification
      • check.pl
      • increval.pl -- Incremental dynamic predicate modification
      • tables.pl
      • shell.pl
      • thread.pl -- High level thread primitives
      • qpforeign.pl
      • listing.pl -- List programs and pretty print clauses
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
        • jiti_list/0
        • jiti_list/1
        • jiti_suggest_modes/0
        • jiti_suggest_modes/1
      • optparse.pl -- command line parsing
      • prolog_codewalk.pl -- Prolog code walker
      • fastrw.pl -- Fast reading and writing of terms
      • tableutil.pl -- Table inspection and statistics utilities
      • prolog_debug.pl -- User level debugging tools
      • portray_text.pl
      • prolog_coverage.pl -- Coverage analysis tool
      • system.pl
      • help.pl -- Text based manual
      • prolog_profile.pl
      • prolog_metainference.pl -- Infer meta-predicate properties
      • intercept.pl -- Intercept and signal interface
      • tty.pl
      • make.pl -- Reload modified source files
      • macros.pl
      • nb_set.pl
      • prolog_trace.pl
      • streams.pl -- Manage Prolog streams
      • rwlocks.pl
      • qsave.pl
      • zip.pl -- Access resource ZIP archives
      • edit.pl
      • prolog_qlfmake.pl -- Compile the library to QLF format
      • prolog_history.pl
      • prolog_autoload.pl
      • vm.pl
      • exceptions.pl -- Exception classification
      • oset.pl
      • writef.pl -- Old-style formatted write
      • check_installation.pl -- Check installation issues and features
      • hashtable.pl -- Hash tables
      • nb_rbtrees.pl -- Non-backtrackable operations on red black trees
      • readln.pl
      • files.pl
      • explain.pl
 jiti_suggest_modes is det
 jiti_suggest_modes(:Spec) is det
Propose modes for the predicates referenced by Spec. This utility may be executed after a clean load of your program and after running the program. It searches for static predicates that have been called and (thus) have been examined for candidate indexes. If candidate indexes have not been materialized this implies that the predicate was never called with a nonvar value for the corresponding argument. Adding a mode/1 declaration may be used to inform the system thereof. The system will never examine arguments for indexing that have been declared as mode -.

Note: This predicate merely detects that some predicate is never called with instantiated specific arguments during this run. The user should verify whether the suggested - arguments are correct and typically complete the mode by changing ? into + (or -) where applicable. Currently, in SWI-Prolog, mode/1 declarations have no effect on the semantics of the code. In particular, a predicate that declares some argument as - may be called with this argument instantiated. This may change in the future.

Arguments:
Spec- uses the same conventions as jiti_list/1.