.. index:: single: meta_compiler
.. _meta_compiler/0:

.. rst-class:: right

**object**

``meta_compiler``
=================

Compiler for the ``meta`` object meta-predicates. Generates auxiliary predicates in order to avoid meta-call overheads.

| **Availability:** 
|    ``logtalk_load(meta_compiler(loader))``

| **Author:** Paulo Moura
| **Version:** 0:16:0
| **Date:** 2024-10-24

| **Compilation flags:**
|    ``static, context_switching_calls``


| **Implements:**
|    ``public`` :ref:`expanding <expanding/0>`
| **Uses:**
|    :ref:`gensym <gensym/0>`
|    :ref:`list <list/0>`
|    :ref:`logtalk <logtalk/0>`
|    :ref:`user <user/0>`

| **Remarks:**

   - Usage: Compile source files with calls to the ``meta`` object meta-predicates using the compiler option ``hook(meta_compiler)``.

| **Inherited public predicates:**
|     :ref:`expanding/0::goal_expansion/2`  :ref:`expanding/0::term_expansion/2`  

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

(no local declarations; see entity ancestors if any)

Protected predicates
--------------------

(no local declarations; see entity ancestors if any)

Private predicates
------------------

.. index:: generated_predicate_/1
.. _meta_compiler/0::generated_predicate_/1:

``generated_predicate_/1``
^^^^^^^^^^^^^^^^^^^^^^^^^^

Table of generated auxiliary predicates.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``generated_predicate_(Predicate)``
| **Mode and number of proofs:**
|    ``generated_predicate_(?predicate_indicator)`` - ``zero_or_more``


------------

Operators
---------

(none)

.. seealso::

   :ref:`meta <meta/0>`

