2.4 Command line options
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Overview
        • Command line options
          • Informational command line options
          • Command line options for running Prolog
          • Controlling the stack sizes
          • Running goals from the command line
          • Compilation options
          • Maintenance options
    • Packages

2.4.3 Controlling the stack sizes

As of version 7.7.14 the stacks are no longer limited individually. Instead, only the combined size is limited. Note that 32 bit systems still pose a 128Mb limit. See section 2.20.1. The combined limit is by default 1Gb on 64 bit machines and 512Mb on 32 bit machines.

For example, to limit the stacks to 32Gb use the command below. Note that the stack limits apply per thread. Individual threads may be controlled using the stack_limit(+Bytes) option of thread_create. Any thread can call set_prolog_flag(stack_limit, Limit) (see stack_limit) to adjust the stack limit. This limit is inherited by threads created from this thread.

$ swipl --stack-limit=32g
--stack-limit=size[bkmg]
Limit the combined size of the Prolog stacks to the indicated size. The suffix specifies the value as bytes, Kbytes, Mbytes or Gbytes.
--table-space=size[bkmg]
Limit for the table space. This is where tries holding memoized11The letter M is used because the T was already in use. It is a memnonic for Memoizing. answers for tabling are stored. The default is 1Gb on 64 bit machines and 512Mb on 32 bit machines. See the Prolog flag table_space.
--shared-table-space=size[bkmg]
Limit for the table space for shared tables. See section 7.9.