TOPIC¶
Driver-defined preprocessor macros
DESCRIPTION¶
Several preprocessor macros are pre-#defined by the parser to provide information about parser version, compile time options and parser invocation options:
- LPC3
- always defined.
- __LDMUD__
- always defined.
- __EUIDS__
- always (for compatibility).
- COMPAT_FLAG, __COMPAT_MODE__
- defined if the driver runs in compat mode.
- __STRICT_EUIDS__
- defined if strict euid usage is enforced.
- __FILENAME_SPACES__
- defined if filenames may contain spaces.
- __MASTER_OBJECT__
- the name of the master object (in compat mode without leading ‘/’).
- __FILE__
- the name of the compiled file (in compat mode without leading ‘/’).
- __LINE__
- the current line number.
- __FUNCTION__
- the current function name.
- __DIR__
- the directory path of the compiled file (in compat mode without leading ‘/’).
- __PATH__()
- the directory path of the compiled file without the n trailing elements (in compat mode without leading ‘/’).
- __VERSION__
- the version string of the driver.
- __VERSION_MAJOR__
- the major version number of the driver.
- __VERSION_MINOR__
- the minor version number of the driver.
- __VERSION_MICRO__
- the micro version number of the driver.
- __VERSION_PATCH__
- the patchlevel of the driver; a 0 here means ‘no patchlevel’.
- __VERSION_COMMITID__
- the commit ID of the source of the driver (attention it might be <unknown>, if the driver was not compiled from a git repository)
- __VERSION_LOCAL__
- the (optional) LOCAL_LEVEL, the user has defined.
- __DOMAIN_NAME__
- the domain the host is part of.
- __HOST_IP_NUMBER__
- the hosts IP number (as a string).
- __HOST_NAME__
- the full hostname.
- __MAX_RECURSION__
- the max count of nested function calls (this is config.h:MAX_USER_TRACE).
- __MAX_EVAL_COST__
- the max evaluation cost.
- __RESET_TIME__
- default interval time between object resets.
- __CLEANUP_TIME__
- default interval time between object cleanups.
- __ALARM_TIME__
- the configured timing granularity.
- __HEART_BEAT_INTERVAL__
- the configured heartbeat time.
- __SYNCHRONOUS_HEART_BEAT__
- defined if synchronous heartbeats are enabled.
- __MAX_COMMAND_LENGTH__
- the maximum length a command can have.
- __EFUN_DEFINED__()
- if the efun ‘name’ exists, this macro evaluates to ” 1 ”, else to ” 0 ”.
- __DRIVER_LOG__
- the name of the default debug.log file (within the mudlib); undefined if a different name has been specified on the commandline.
- __WIZLIST__
- the name of the (mudlib) file from where the driver read the initial WIZLIST information. It is undefined if the driver was configured to not read the information.
- __MAX_MALLOC__
- the internal upper limit for total memory usage.
- __INT_MAX__
- the largest integer number.
- __INT_MIN__
- the smallest integer number.
- __FLOAT_MAX__
- the largest (positive) float number.
- __FLOAT_MIN__
- the smallest (positive) float number.
- __LPC_NOSAVE__
- always defined.
- __LPC_STRUCTS__
- always defined.
- __LPC_INLINE_CLOSURES__
- always defined.
- __LPC_ARRAY_CALLS__
- always defined.
- __BOOT_TIME__
- the time(E) the driver was started.
If the ERQ is supported, the following macros are defined:
- __ERQ_MAX_SEND__
- the max size of the send buffer.
- __ERQ_MAX_REPLY__
- the max size of the reply buffer.
The following macros are defined if their associated package has been compiled into the driver:
- __IDNA__
- support for IDNA.
- __IPV6__
- support for IP v.6.
- __MYSQL__
- support for mySQL.
- __PGSQL__
- support for PostgreSQL.
- __SQLITE__
- support for SQLite 3.
- __XML_DOM__
- support for XML parsing.
- __MCCP__
- support for MCCP.
- __ALISTS__
- support for alists.
- __PCRE__
- support for PCRE (always defined).
- __TLS__
- support for TLS (internal).
- __GNUTLS__
- if __TLS__: TLS support provided by GnuTLS.
- __OPENSSL__
- if __TLS__: TLS support provided by OpenSSL.
- __GCRYPT__
- cryptographic routines provided by libgcrypt.
- __DEPRECATED__
- support for obsolete and deprecated efuns.
HISTORY¶
- changed (3.2.1) – changed __DOMAIN_NAME__,__HOST_IP_NUMBER__,__HOST_NAME__,__MAX_RECURSION__,__EFUN_DEFINED__().
- changed (3.2.5) – added __COMPAT_MODE__,__NATIVE_MODE__,__EUIDS__,__ERQ_MAX_SEND__and__ERQ_MAX_REPLY__.
- changed (3.2.6) – added __MAX_EVAL_COST__.
- changed (3.2.7) – added __STRICT_EUIDS__and made__EUIDS__standard.
- changed (3.2.8) – added __IPV6__,__LPC_NOSAVE__,__DIR__,__PATH__().
- changed (3.2.9) – added __LDMUD__,__MYSQL__,__DEPRECATED__,__VERSION_MAJOR__,__VERSION_MINOR__,__VERSION_MICRO__,__VERSION_PATCH__,__INT_MAX__,__INT_MIN__,__FLOAT_MIN__,__FLOAT_MAX__,__CATCH_EVAL_COST__,__MASTER_EVAL_COST__,__RESET_TIME__,__CLEANUP_TIME__,__DRIVER_LOG__, and__WIZLIST__.
- changed (3.2.10) – added __MAX_MALLOC__,__MSDOS_FS__,__LPC_ARRAY_CALLS__and__FILENAME_SPACES__.
- changed (3.3) – - __LPC_NOSAVE__are now always defined
- added __ALISTS__,__MCCP__,__LPC_STRUCTS__,__LPC_INLINE_CLOSURES__,__PGSQL__,__PTHREADS__,__TLS__,__BOOT_TIME__,__ALARM_TIME__,__HEART_BEAT_INTERVAL__,__SYNCHRONOUS_HEART_BEAT__, and__PCRE__.
 
- changed (3.3.713) – added __IDNA__,__SQLITE__.
- changed (3.3.714) – added __OPENSSL__,__GNUTLS__.
- changed (3.3.718) – added __XML_DOM__.
- changed (3.3.719) – removed __PTHREADS__, AMIGA, MSDOS_FS, __BEOS__ and added __GCRYPT__.
- changed (3.3.721) – added __FUNCTION__.
- changed (3.5.0) – - __LPC_STRUCTS__,- __LPC_INLINE_CLOSURES__,- __LPC_ARRAY_CALLS__are now always on.
- removed __ALISTS__