gec |

## Description

Execute gec.

## Parameters

ecf
  Description: Name of ECF file

  Domain: Valid filename pointing to existing file

  Default: -

target
  Name of target to be used in ECF file

  Domain: valid target name

  Default: Last target in ECF file

finalize
  Description: Should system be compiled in finalized mode?

  Domain: Boolean (true|false)

  Default: false

gelint
  Description: Should gelint be run on the full content of each class being compiled?

  Domain: Boolean (true|false)

  Default: false

catcall
  Description: Should CAT-call errors be considered as fatal errors, as warnings, or just ignored?

  Domain: (no|error|warning)

  Default: warning

split
  Description: Should C code be generated into several files?

  Domain: Boolean (true|false)

  Default: true

split_size
  Description: Size (in bytes) of generated C files in bytes when in split mode

  Domain: Positive integer

  Default: 2,500,000 bytes

c_compile
  Description: Should the back-end C compiler be invoked on the generated C code, and if yes with what method?

  Domain: (no|script|make|gecc)

  Default: gecc

gc
  Description: Which garbage collector should the application be compiled with?

  Domain: (no|boehm)

  Default: no

new_instance_types
  Description: File containing the list of types which can have instances created by 'TYPE.new_instance' or 'TYPE.new_special_any_instance'

  Domain: Valid filename pointing to existing file

  Default: Use all non-deferred, non-NONE, alive types

thread
  Description: Number of threads to be used to run gec. Negative numbers -N mean "number of CPUs - N"

  Domain: Integer

  Default: -3, aka "max (number of CPUs -3, 1)"

silent
  Description: Run gec in silent mode

  Domain: Boolean (true|false)

  Default: false

verbose
  Description: Run gec in verbose mode

  Domain: Boolean (true|false)

  Default: false

no_benchmark
  Description: Should no benchmark information be displayed? (default: display non-nested benchmark information)

  Domain: Boolean (true|false)

  Default: false

nested_benchmark
  Description: Should nested benchmark information be displayed?

  Domain: Boolean (true|false)

  Default: false

metrics
  Description: Should metrics information be displayed?

  Domain: Boolean (true|false)

  Default: false

executable
  Description: Filename (optionally with a pathname) of gec executable.

  Domain: Valid filename pointing to existing executable

  Default: Version of 'gec' in the PATH

clean
  Description: clean

  Domain: valid system name

  Default: empty string

exit_code_variable
  Description: Name of variable holding the compiler process's return code after it's run

  Domain: Integer (usually 0 for OK, and any other number for not OK)

  Default: `Void' (no variable is set if attribute is not specified)

## RNG Specification

      <define name="gec">
        <element name="gec">
          <ref name="dir_if_unless"/>
          <choice>
            <group>
              <attribute name="ecf"/>
              <optional>
                <attribute name="target"/>
              </optional>
              <optional>
                <attribute name="finalize"/>
              </optional>
              <optional>
                <attribute name="gelint"/>
              </optional>
              <optional>
                <attribute name="catcall"/>
              </optional>
              <optional>
                <attribute name="split"/>
              </optional>
              <optional>
                <attribute name="split_size"/>
              </optional>
              <optional>
                <attribute name="c_compile"/>
              </optional>
              <optional>
                <attribute name="gc"/>
              </optional>
              <optional>
                <attribute name="new_instance_types"/>
              </optional>
              <optional>
                <attribute name="thread"/>
              </optional>
              <optional>
                <attribute name="silent"/>
              </optional>
              <optional>
                <attribute name="verbose"/>
              </optional>
              <optional>
                <attribute name="no_benchmark"/>
              </optional>
              <optional>
                <attribute name="nested_benchmark"/>
              </optional>
              <optional>
                <attribute name="metrics"/>
              </optional>
              <optional>
                <attribute name="executable"/>
              </optional>
            </group>
            <attribute name="clean"/>
          </choice>
          <optional>
            <attribute name="exit_code_variable"/>
          </optional>
        </element>
      </define>

## Examples

      <gec ecf="system.ecf"/>

      <gec ecf="system.ecf" finalize="true"/>

      <gec clean="${system}"/>