1/* DO NOT EDIT! 2 * 3 * This file is created automatically by configure from the template 4 * in config.h.in. 5 */ 6 7#ifndef CONFIG_H__ 8#define CONFIG_H__ 1 9 10/* ----------- Commandline Argument Defaults ---------- 11 * These options provide default settings for those options which can 12 * also be set on the commandline. 13 */ 14 15 16/* Define COMPAT_MODE if you are using the 2.4.5 mudlib or one of its 17 * derivatives. 18 */ 19@cdef_compat_mode@ COMPAT_MODE 20 21/* The name of the master object. 22 */ 23#define MASTER_NAME @val_master_name@ 24 25/* Define ALLOW_FILENAME_SPACES if the driver should accept space characters 26 * in filenames. If it is not defined, a hardcoded test for space characters 27 * is activated. 28 */ 29@cdef_filename_spaces@ ALLOW_FILENAME_SPACES 30 31 32/* --- Runtime limits --- */ 33 34/* This is the maximum array size allowed for one single array. 35 * If 0, any size is allowed. 36 */ 37#define MAX_ARRAY_SIZE @val_max_array_size@ 38 39/* This is the maximum number of entries allowed for a single mapping. 40 * If 0, any size is allowed. 41 */ 42#define MAX_MAPPING_KEYS @val_max_mapping_keys@ 43 44/* This is the maximum number of values held in a single mapping. 45 * If 0, any size is allowed. 46 */ 47#define MAX_MAPPING_SIZE @val_max_mapping_size@ 48 49/* Max size of a file allowed to be read by 'read_file()'. 50 */ 51#define READ_FILE_MAX_SIZE @val_read_file_max_size@ 52 53/* Define MAX_BYTE_TRANSFER to the number of bytes you allow to be read 54 * and written with read_bytes and write_bytes 55 */ 56#define MAX_BYTE_TRANSFER @val_max_byte_transfer@ 57 58/* This is the maximum number of callouts allowed at one time. 59 * If 0, any number is allowed. 60 */ 61#define MAX_CALLOUTS @val_max_callouts@ 62 63/* Define this to the maximum amount of data 64 * to be held pending for writing per interactive. 65 * A value of 0 means 'unlimited'. 66 */ 67#define WRITE_BUFFER_MAX_SIZE @val_write_buffer_max_size@ 68 69 70/* --- Timing --- */ 71 72/* If an object is left alone for a certain time, then the 73 * function clean_up will be called. This function can do anything, 74 * like destructing the object. If the function isn't defined by the 75 * object, then nothing will happen. 76 * 77 * This time should be substantially longer than the swapping time. 78 */ 79#define TIME_TO_CLEAN_UP @val_time_to_clean_up@ 80 81/* How long time until an unused object is swapped out. 82 * Machine with too many players and too little memory: 900 (15 minutes) 83 * Machine with few players and lot of memory: 10000 84 * Machine with infinite memory: 0 (never swap). 85 */ 86#define TIME_TO_SWAP @val_time_to_swap@ 87#define TIME_TO_SWAP_VARIABLES @val_time_to_swap_variables@ 88 89/* How many seconds until an object is reset again. 90 * Set this value high if big system, otherwise low. 91 */ 92#define TIME_TO_RESET @val_time_to_reset@ 93 94/* The granularity of alarm() calls. 95 * This is the granularity of the call_outs, 96 * and base granularity of heart_beat, reset und clean_up calls. 97 */ 98#define ALARM_TIME @val_alarm_time@ 99 100/* The interval between heart beats. 101 */ 102#define HEART_BEAT_INTERVAL @val_heart_beat_interval@ 103 104/* Shall all heart beats happen in the same time frame? 105 * (i.e. only every HEART_BEAT_INTERVAL seconds.) 106 */ 107@cdef_synchronous_heart_beat@ SYNCHRONOUS_HEART_BEAT 108 109/* --- Memory --- */ 110 111/* Reserve an extra memory area from malloc(), to free when we run out 112 * of memory to get some warning and start Armageddon. 113 * If this value is 0, no area will be reserved. 114 */ 115#define RESERVED_USER_SIZE @val_reserved_user_size@ 116#define RESERVED_MASTER_SIZE @val_reserved_master_size@ 117#define RESERVED_SYSTEM_SIZE @val_reserved_system_size@ 118 119/* If MIN_MALLOCED is > 0, the gamedriver will reserve this amount of 120 * memory on startup for large blocks, thus reducing the large block 121 * fragmentation. The value therefore should be a significantly large 122 * multiple of the large chunk size. 123 * As a rule of thumb, reserve enough memory to cover the first couple 124 * of days of uptime. 125 */ 126#define MIN_MALLOCED @val_min_malloced@ 127 128/* If MIN_SMALL_MALLOCED is > 0, the gamedriver will reserve this 129 * amount of memory on startup for small blocks, thus reducing the small block 130 * fragmentation. The value therefore should be a significantly large 131 * multiple of the small chunk size. 132 * As a rule of thumb, reserve enough memory to cover the first couple 133 * of days of uptime. 134 */ 135#define MIN_SMALL_MALLOCED @val_min_small_malloced@ 136 137/* This value gives the upper limit for the total allocated memory 138 * (useful for systems with no functioning process limit). 139 * A value of 0 means 'unlimited'. 140 */ 141#define HARD_MALLOC_LIMIT_DEFAULT @val_hard_malloc_limit@ 142 143/* This value gives a soft limit of the allocated memory (kind of low 144 * watermark). If this value is exceeded, the driver will call low_memory() in 145 * the master to inform the mudlib about the (potenntially) developing low 146 * memory situation. 147 * A value of 0 means 'unlimited'. 148 */ 149#define SOFT_MALLOC_LIMIT_DEFAULT @val_soft_malloc_limit@ 150 151/* --- Random Number Generator (SFMT) --- */ 152/* Set the period length of the SFMT. 153 * Default is a period length of 2^19937 - 1 154 */ 155#define RANDOM_PERIOD_LENGTH @val_random_period_length@ 156 157/* --- Interpreter --- */ 158 159/* Define STRICT_EUIDS if the driver is to enforce the use of euids, 160 * ie. load_object() and clone_object() require the current object to 161 * have a non-zero euid. 162 */ 163@cdef_strict_euids@ STRICT_EUIDS 164 165/* Maximum number of evaluated nodes/loop. 166 * If this is exceeded, the current function is halted. 167 */ 168#define MAX_COST @val_max_cost@ 169 170/* Define SHARE_VARIABLES if a clone's variables are to be assigned 171 * from the current blueprint's variables. Undefine it if clones 172 * should be initialized by __INIT(). 173 */ 174@cdef_share_variables@ SHARE_VARIABLES 175 176 177/* --- Communication --- */ 178 179/* The input escape character. 180 */ 181#define INPUT_ESCAPE @val_input_escape@ 182 183/* Define what port number the game is to use. 184 */ 185#define PORTNO @val_portno@ 186 187/* Define this to the port on which the driver can receive UDP message. 188 * If set to -1, the port will not be opened unless the mud is given a valid 189 * port number on startup with the -u commandline option. 190 */ 191#define UDP_PORT @val_udp_port@ 192 193/* Maximum numbers of ports the GD accepts connections to. 194 */ 195#define MAXNUMPORTS @val_maxnumports@ 196 197/* Should code for the external request demon be included? 198 */ 199@cdef_erq_demon@ ERQ_DEMON 200 201/* Maximum sizes for an erq send or reply. 202 */ 203#define ERQ_MAX_REPLY @val_erq_max_reply@ 204#define ERQ_MAX_SEND @val_erq_max_send@ 205 206/* Define this if you want IPv6 support (assuming that your host 207 * actually offers this. 208 */ 209@cdef_use_ipv6@ USE_IPV6 210 211/* maximum number of concurrent outgoing connection attempts by net_connect() 212 * (that is connections that are in progress but not fully established yet). 213 */ 214#define MAX_OUTCONN @val_max_net_connects@ 215 216 217/* ----------- Compilation Options ---------- 218 * To change these options, the config.h must be recreated and the 219 * driver recompiled. 220 */ 221 222/* Trace the most recently executed bytecode instructions? 223 */ 224@cdef_trace_code@ TRACE_CODE 225 226/* If using TRACE_CODE , how many instructions should be kept? 227 */ 228#define TOTAL_TRACE_LENGTH @val_total_trace_length@ 229 230/* Runtime statistics: 231 * COMM_STAT: count number and size of outgoing packets. 232 * APPLY_CACHE_STAT: count number of hits and misses in the apply cache. 233 */ 234@cdef_comm_stat@ COMM_STAT 235@cdef_apply_cache_stat@ APPLY_CACHE_STAT 236 237/* The name of the swapfile used by the driver to swap out objects (if 238 * enabled), relative to the mudlib directory. The driver will append 239 * '.<hostname>' to the file. 240 */ 241#define SWAP_FILE @val_swap_file@ 242 243 244/* --- Memory --- */ 245 246/* Which memory manager to use. Possible defines are 247 * MALLOC_smalloc: Satoria's malloc. Fastest, uses the least memory, 248 * supports garbage collection. 249 * MALLOC_slaballoc: Slab allocator. Fastest, reduces fragmentation, 250 * supports garbage collection, not threadsafe. 251 * MALLOC_sysmalloc: the normal system malloc() 252 * MALLOC_ptmalloc: ptmalloc from www.malloc.de - threadsafe. 253 */ 254 255#define MALLOC_@val_malloc@ 256 257/* Define this to let the memory allocator request memory from the system 258 * directly using sbrk() (assuming the system supports it). 259 * If not defined, the memory allocator will use malloc(). 260 * Supported by: MALLOC_smalloc, MALLOC_slaballoc. 261 */ 262@cdef_malloc_sbrk@ MALLOC_SBRK 263 264/* Define this to annotate all allocations with a magic word to find 265 * simple misuses of memory (like multiple frees). 266 * Supported by: MALLOC_smalloc, MALLOC_slaballoc. 267 */ 268@cdef_malloc_check@ MALLOC_CHECK 269 270/* Define this to annotate all allocations with file:line of the driver 271 * source responsible for it. 272 */ 273@cdef_malloc_trace@ MALLOC_TRACE 274 275/* Define this to annotate all allocations with file:line of the lpc program 276 * responsible for it. 277 */ 278@cdef_malloc_lpc_trace@ MALLOC_LPC_TRACE 279 280/* Define this to log all calls to esbrk() (the system memory allocator). 281 * Works best if MALLOC_TRACE is defined. 282 * This define is useful if your mud keeps growing in total memory size 283 * instead of re-using the memory already allocated. 284 * Supported by: MALLOC_smalloc, MALLOC_slaballoc. 285 */ 286@cdef_malloc_sbrk_trace@ MALLOC_SBRK_TRACE 287 288/* --- Wizlist --- */ 289 290/* Where to save the WIZLIST information. 291 * If not defined, and neither given on the commandline, the driver will 292 * not read the WIZLIST file. 293 */ 294@cdef_wizlist_file@ WIZLIST_FILE @val_wizlist_file@ 295 296 297/* --- Access Control --- */ 298/* file for access permissions data. 299 * Don't define this if you don't want the driver to do any access control. 300 */ 301@cdef_access_control@ ACCESS_FILE @val_access_file@ 302 303/* logfile to show valid and rejected connections 304 * simple not define this for NO logs 305 */ 306@cdef_access_log@ ACCESS_LOG @val_access_log@ 307 308 309/* --- Language --- */ 310 311/* Define USE_PARSE_COMMAND if you want the efun parse_command(). 312 */ 313@cdef_use_parse_command@ USE_PARSE_COMMAND 314 315/* Define USE_SET_LIGHT if you want the efun set_light() and the 316 * simple 2.4.5 light system. 317 */ 318@cdef_use_set_light@ USE_SET_LIGHT 319 320/* Define USE_SET_IS_WIZARD if you want the efun set_is_wizard(). 321 */ 322@cdef_use_set_is_wizard@ USE_SET_IS_WIZARD 323 324/* Define USE_PROCESS_STRING if you want the efun process_string(). 325 */ 326@cdef_use_process_string@ USE_PROCESS_STRING 327 328/* Define this if you want MCCP (Mud Control Compression Protocol). 329 */ 330@cdef_use_mccp@ USE_MCCP 331 332/* Define this if you want TLS (Transport Layer Security) over Telnet. 333 */ 334@cdef_use_tls@ USE_TLS 335 336/* Default paths for TLS. 337 */ 338@cdef_tls_keyfile@ TLS_DEFAULT_KEYFILE @val_tls_keyfile@ 339@cdef_tls_certfile@ TLS_DEFAULT_CERTFILE @val_tls_certfile@ 340@cdef_tls_trustfile@ TLS_DEFAULT_TRUSTFILE @val_tls_trustfile@ 341@cdef_tls_trustdirectory@ TLS_DEFAULT_TRUSTDIRECTORY @val_tls_trustdirectory@ 342@cdef_tls_crlfile@ TLS_DEFAULT_CRLFILE @val_tls_crlfile@ 343@cdef_tls_crldirectory@ TLS_DEFAULT_CRLDIRECTORY @val_tls_crldirectory@ 344 345/* Define this if you want to use libgcrypt (and not OpenSSL). 346 */ 347@cdef_use_gcrypt@ USE_GCRYPT 348 349/* Define this if you want mySQL support (assuming that your host 350 * actually offers this. 351 */ 352@cdef_use_mysql@ USE_MYSQL 353 354/* Define this if you want PostgreSQL support (assuming that your host 355 * actually offers this. 356 */ 357@cdef_use_pgsql@ USE_PGSQL 358 359/* Define this if you want SQLite support (assuming that your host 360 * actually offers this. 361 */ 362@cdef_use_sqlite@ USE_SQLITE 363 364/* Define this if you want alist support. 365 */ 366@cdef_use_alists@ USE_ALISTS 367 368/* Define this if you want to allow call_other()s on arrays of objects. 369 */ 370@cdef_lpc_array_calls@ USE_ARRAY_CALLS 371 372/* Define this if you want PCRE instead of traditional regexps. 373 */ 374@cdef_use_pcre@ USE_PCRE 375 376/* Define this if you want to use builtin PCRE (ignored when PCRE 377 * is disabled as a whole). 378 */ 379@cdef_use_builtin_pcre@ USE_BUILTIN_PCRE 380 381/* Define this if you want iksemel library support. 382 */ 383@cdef_use_xml@ USE_XML 384 385/* Define this if you want the obsolete and deprecated efuns. 386 */ 387@cdef_use_deprecated@ USE_DEPRECATED 388 389 390/* --- Runtime limits --- */ 391 392/* Maximum size of a socket send buffer. 393 */ 394#define SET_BUFFER_SIZE_MAX @val_set_buffer_size_max@ 395 396/* CATCH_RESERVED_COST is the default value added to the eval cost for the 397 * time executing code guarded by a catch() statement, so that an 398 * eval_cost-too-big error can still be caught and handled. 399 * 400 * To catch an eval_cost too big error in an object that called recursive 401 * master functions, CATCH_RESERVED_COST should be greater than 402 * MASTER_RESERVED_COST. 403 */ 404#define CATCH_RESERVED_COST @val_catch_reserved_cost@ 405 406/* MASTER_RESERVED_COST is the total reserve available for master applies. 407 * It is halved for every recursion into another master apply. 408 */ 409#define MASTER_RESERVED_COST @val_master_reserved_cost@ /* must be power of 2 */ 410/* TODO: Check that at runtime */ 411 412/* If this is defined, expensive operations like string additions 413 * receive additional evalcosts depending on the amount of data handled. 414 */ 415@cdef_dynamic_costs@ DYNAMIC_COSTS 416 417/* Show the evaluation costs in the stacktrace. 418 */ 419@cdef_eval_cost_trace@ EVAL_COST_TRACE 420 421/* Define the maximum stack size of the stack machine. This stack will also 422 * contain all local variables and arguments. 423 */ 424#define EVALUATOR_STACK_SIZE @val_evaluator_stack_size@ 425 426/* Define the maximum call depth for functions. 427 * MAX_USER_TRACE is used for for normal program execution, the full 428 * MAX_TRACE is only available in error handling. 429 * 430 * MAX_TRACE must be larger than MAX_USER_TRACE (check at compile time). 431 */ 432#define MAX_USER_TRACE @val_max_user_trace@ 433#define MAX_TRACE @val_max_trace@ 434 435/* Maximum number of bits in a bit field. They are stored in printable 436 * strings, 6 bits per byte. 437 * The limit is more based on considerations of speed than memory 438 * consumption. 439 */ 440#define MAX_BITS @val_max_bits@ 441 442/* Maximum number of players in the game. 443 */ 444#define MAX_PLAYERS @val_max_players@ 445 446/* When uploading files, we want fast response; however, normal players 447 * shouldn't be able to hog the system in this way. Define ALLOWED_ED_CMDS 448 * to be the ratio of the no of ed cmds executed per player cmd. 449 */ 450#define ALLOWED_ED_CMDS @val_allowed_ed_cmds@ 451/* TODO: ALLOWED_ED_CMDS: make this a runtime option */ 452 453/* Limit the amount of recursion in the PCRE code. Setting it to low will 454 * prevent certain regexps to be executed properly, setting it too high can 455 * cause that regexps to crash the driver. Set it according to the 456 * available maximum stack size for the driver process. (Rule of thumb: 457 * The memory used for a recursion on the stack seems to be within 466 and 458 * 1008 bytes. If you have 8M of stack size, reserve half of it for LPC 459 * recursions and choose about 3000 - 4000.) In doubt, increase the stack 460 * size limit for the driver process with ulimit & Co.) 461 * Defaults to 3000 462 */ 463#define LD_PCRE_RECURSION_LIMIT @val_pcre_recursion_limit@ 464 465/* The maximum length of the buffer for commands. The maximum length of a 466 * command will be MAX_COMMAND_LENGTH - 1. 467 */ 468#define MAX_COMMAND_LENGTH @val_max_command_length@ 469 470/* --- Compiler --- */ 471 472/* Define the size of the compiler stack. This defines how complex 473 * expressions the compiler can parse. The value should be big enough. 474 */ 475#define COMPILER_STACK_SIZE @val_compiler_stack_size@ 476 477/* Max number of local variables in a function. 478 */ 479#define MAX_LOCAL @val_max_local@ 480 481/* Maximum size of an expanded preprocessor definition. 482 */ 483#define DEFMAX @val_defmax@ 484 485 486/* --- Internal Tables --- */ 487 488/* Define the size of the shared string hash table. This number needn't 489 * be prime, probably between 1000 and 30000; if you set it to about 1/5 490 * of the number of distinct strings you have, you will get a hit ratio 491 * (number of comparisons to find a string) very close to 1, as found strings 492 * are automatically moved to the head of a hash chain. You will never 493 * need more, and you will still get good results with a smaller table. 494 * If the size is a power of two, hashing will be faster. 495 */ 496#define HTABLE_SIZE @val_htable_size@ 497 498/* Object hash table size. 499 * Define this like you did with the strings; probably set to about 1/4 of 500 * the number of objects in a game, as the distribution of accesses to 501 * objects is somewhat more uniform than that of strings. 502 */ 503#define OTABLE_SIZE @val_otable_size@ 504 505/* Define the size of the ident_table. It contains all global identifiers 506 * (efuns and permanent defines) as well as the identifiers of a compiled 507 * program which are removed from the ident_table after compilation. 508 * Must be within 256 and the maximum of a short (SHRT_MAX, usually 32768). 509 */ 510#define ITABLE_SIZE @val_itable_size@ 511 512/* the number of apply_low cache entries will be 2^APPLY_CACHE_BITS. 513 */ 514#define APPLY_CACHE_BITS @val_apply_cache_bits@ 515 516/* The parameters of the regular expression/result cache. 517 * The expression cache uses a hashtable of RXCACHE_TABLE entries. 518 * Undefine RXCACHE_TABLE to disable the all regexp caching. 519 */ 520@cdef_rxcache_table@ RXCACHE_TABLE @val_rxcache_table@ 521 522/* --- Current Developments --- 523 * These options can be used to disable developments-in-progress if their 524 * code turns out to be interrrupting. 525 */ 526 527/* Define this if you want structs supported. 528 */ 529@cdef_use_structs@ USE_STRUCTS 530 531/* Define this if you want the new inline closure syntax supported. 532 * (f-020528). 533 */ 534@cdef_use_new_inlines@ USE_NEW_INLINES 535 536 537/* --- Profiling --- 538 * For profiling of the VM instruction implementations, refer to the Makefile 539 */ 540 541/* Enable usage statistics of VM instructions. 542 * For profiling of the VM instructions themselves, see the Profiling 543 * Options in the Makefile. 544 */ 545@cdef_opcprof@ OPCPROF 546 547#ifdef OPCPROF 548/* With OPCPROF, the dump of the statistics include the names 549 * of the instructions. 550 */ 551@cdef_verbose_opcprof@ VERBOSE_OPCPROF 552#endif 553 554 555/* --- Standard Debugging --- */ 556 557/* Enable basic run time sanity checks. This will use more time 558 * and space, but nevertheless you are strongly encouraged to keep 559 * it defined. 560 */ 561@cdef_debug@ DEBUG 562 563/* Enable debug output from the LPC compiler. 564 */ 565@cdef_yydebug@ YYDEBUG 566 567/* Disable inlining. 568 */ 569@cdef_no_inlines@ NO_INLINES 570 571/* Activate debug prints in the telnet machine. 572 */ 573@cdef_debug_telnet@ DEBUG_TELNET 574 575/* Activate allocation debug prints in the malloc module. 576 * Supported by: MALLOC_smalloc, MALLOC_slaballoc. 577 */ 578@cdef_debug_malloc_allocs@ DEBUG_MALLOC_ALLOCS 579 580/* The DEBUG level for the ERQ daemon: 581 * 0 : no debug output 582 * 1 : standard debug output 583 * 2 : verbose debug output 584 */ 585#define ERQ_DEBUG @val_erq_debug@ 586 587 588/* --- Specific Debugging --- 589 * These options have been introduced to debug specific problems and will 590 * be removed again later. 591 */ 592 593/* Enable the automatic data cleanup from the backend. 594 * TODO: Remove this macro once it is proven stable. 595 */ 596#define NEW_CLEANUP 597 598/* Log the details of the automatic data cleanup for each individual object. 599 * This is useful if the cleanup is suspected to hog the CPU. 600 * TODO: Remove this macro once it is proven stable. 601 */ 602#undef LOG_NEW_CLEANUP 603 604/* Log the details of the automatic data cleanup of all objects. This is 605 * useful if the cleanup is suspected to hog the CPU. 606 * TODO: Remove this macro once it is proven stable. 607 */ 608#define LOG_NEW_CLEANUP_ALL 609 610/* Enable the use of freelists in the malloc AVL nodes. 611 * Supported by: MALLOC_smalloc, MALLOC_slaballoc. 612 * TODO: Remove this macro once it is proven stable or if the change 613 * TODO:: didn't bring any advantages.. 614 */ 615#define USE_AVL_FREELIST 616 617/* Order malloc large block freelists by address. 618 * Supported by: MALLOC_smalloc, MALLOC_slaballoc. 619 * TODO: Remove if it doesn't help with the fragmentation, as it uses up 620 * TODO:: a small, but measurable amount of time in the allocator. 621 */ 622#define MALLOC_ORDER_LARGE_FREELISTS 623 624/* Order slaballoc partial-slab freelists by number of free blocks. 625 * Supported by: MALLOC_slaballoc. 626 * TODO: Remove if it doesn't help with the fragmentation, as it uses up 627 * TODO:: a small, but measurable amount of time in the allocator. 628 */ 629#define MALLOC_ORDER_SLAB_FREELISTS 630 631/* Allow slaballoc to use multiples of DESIRED_SLAB_SIZE when creating 632 * new slabs. 633 */ 634#define SLABALLOC_DYNAMIC_SLABS 635 636/* Collect extended malloc statistics. 637 * Supported by: MALLOC_smalloc, MALLOC_slaballoc. 638 * TODO: Remove this macro or make it configurable. 639 */ 640#define MALLOC_EXT_STATISTICS 641 642/* Collected statistics about string comparisons. 643 * TODO: Remove this macro after we got our data. 644 */ 645#define EXT_STRING_STATS 646 647/* Trace changes to the tot_alloc_object and tot_alloc_object_size 648 * statistics, in order to find the status bugs (enables commandline 649 * option --check-object-stat). Will produce a decent amount of 650 * output on stderr. 651 */ 652@cdef_check_object_stat@ CHECK_OBJECT_STAT 653 654/* Activate total mapping size consistency check code. It has a small 655 * impact on the execution speed. This define was used to find 656 * the inaccuracy in the mapping statistic. 657 */ 658@cdef_check_mapping_total@ CHECK_MAPPING_TOTAL 659 660/* Activate object refcount check code. It will produce a decent 661 * amount of log output. It will also fatal() the driver as soon 662 * as it detects an inconsistency in the list of destructed objects. 663 */ 664@cdef_check_object_ref@ CHECK_OBJECT_REF 665 666/* Activate object referencing checking code during the GC. It will 667 * print error messages to gcout when an object or program is 668 * referenced as something else. No penalty for using. 669 * Requires MALLOC_TRACE to work. Incompatible with DUMP_GC_REFS. 670 */ 671#ifdef MALLOC_TRACE 672@cdef_check_object_gc_ref@ CHECK_OBJECT_GC_REF 673#endif 674 675/* Sometimes the GC stumbles over invalid references to memory 676 * blocks (namely 'Program referenced as something else'). Define 677 * this macro to get a detailed dump of all found references 678 * (Warning: LOTS of output!). Incompatible with CHECK_OBJECT_GC_REF. 679 */ 680@cdef_dump_gc_refs@ DUMP_GC_REFS 681 682#endif /* CONFIG_H__ */ 683