Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > ac50c8547d586963a47aff205a94967f > files > 53

dyalog-debug-1.11.3-1mdv2008.1.i586.rpm

/* $Id: param.h 490 2005-07-08 07:14:05Z clerger $
 * Copyright (C) 1996, 2005 Eric de la Clergerie
 * ------------------------------------------------------------
 *
 *   Parameters -- The various parameters for DyALog
 *
 * ------------------------------------------------------------
 * Description
 *
 * ------------------------------------------------------------
 */


#define FOLVAR_TAB_SIZE      32768        /* variable table size */

#define LSTACK_SIZE          32768        /* layer stack size    */
#define TRAIL_SIZE           2*32768*8     /* trail stack size    */
#define CTL_SIZE             2*32768*8      /* control stack size  */

#define COPY_THRESHOLD       400         /* threshold for small terms */

#define MAX_STREAM           128

/**********************************************************************
 * Statistics Mechanism
 **********************************************************************/

#ifdef STAT

#define STAT_UPDATE(name,i) ((name##_stat->i)++)

#define STAT_DECL(name, entries...)		\
extern struct name##_stat {			\
  int entries;					\
} *name##_stat;

#define STAT_LIGHT_DEF(name)				\
struct name##_stat name##_stat_record;			\
struct name##_stat *name##_stat= &name##_stat_record;

#define STAT_DEF(name, entries...)		\
STAT_DECL(name, ## entries )			\
STAT_LIGHT_DEF(name)

#define STAT_USE(name,i)    (name##_stat->i)

#else
#define STAT_UPDATE(name,i)
#define STAT_DEF(name, entries...)
#define STAT_DECL(name, entries...)
#define STAT_USE(name, i)
#endif /* STAT */

/**********************************************************************
 * Verbose Mechanism
 **********************************************************************/

extern int verbose_level;

extern Bool Flush_Output_0();
extern void dyalog_error_printf(const char*, ... );

#define V_DISPLAY(fmt, args...)      V_LEVEL_DISPLAY(V_LOW,fmt, ## args)

#define V_LEVEL_DISPLAY(level, fmt, args...)                                    \
if (verbose_level & level) { dyalog_printf(fmt, ## args), Flush_Output_0(); }

#define V_DYAM       1          /* Trace Dyam Instructions */
#define V_INDEX      2          /* Trace Indexation  */
#define V_SHARE      4          /* Trace Sharing (collapse and collect) */
#define V_TERM       8          /* Trace Term maninulations */
#define V_TFS       16          /* Trace Tfs */
#define V_BUILTINS  32          /* Trace Builtins */
#define V_LOW       64          /* Trace Low Level operations */

#if 0
#define V_DISPLAY(fmt, args...)                 \
    dyalog_printf( fmt, ## args );              \
    Flush_Output_0()
#endif