1995-08-09 08:06:35 -07:00
|
|
|
/***********************************************************************/
|
|
|
|
/* */
|
1996-04-30 07:53:58 -07:00
|
|
|
/* Objective Caml */
|
1995-08-09 08:06:35 -07:00
|
|
|
/* */
|
|
|
|
/* Xavier Leroy and Damien Doligez, INRIA Rocquencourt */
|
|
|
|
/* */
|
1996-04-30 07:53:58 -07:00
|
|
|
/* Copyright 1996 Institut National de Recherche en Informatique et */
|
1995-08-09 08:06:35 -07:00
|
|
|
/* Automatique. Distributed only by permission. */
|
|
|
|
/* */
|
|
|
|
/***********************************************************************/
|
|
|
|
|
|
|
|
/* $Id$ */
|
|
|
|
|
1995-05-04 03:15:53 -07:00
|
|
|
#ifndef _config_
|
|
|
|
#define _config_
|
|
|
|
|
|
|
|
|
1996-11-02 10:00:46 -08:00
|
|
|
#if !macintosh
|
1995-05-04 03:15:53 -07:00
|
|
|
#include "../config/m.h"
|
|
|
|
#include "../config/s.h"
|
1996-11-02 10:00:46 -08:00
|
|
|
#else
|
|
|
|
#include "::config:sm-Mac.h"
|
|
|
|
#endif
|
1995-05-04 03:15:53 -07:00
|
|
|
|
|
|
|
/* Library dependencies */
|
|
|
|
|
|
|
|
#ifdef HAS_MEMMOVE
|
1995-09-25 07:42:51 -07:00
|
|
|
#undef bcopy
|
1995-05-04 03:15:53 -07:00
|
|
|
#define bcopy(src,dst,len) memmove((dst), (src), (len))
|
|
|
|
#else
|
|
|
|
#ifdef HAS_BCOPY
|
|
|
|
/* Nothing to do */
|
|
|
|
#else
|
1995-09-25 07:42:51 -07:00
|
|
|
#undef bcopy
|
1995-05-04 03:15:53 -07:00
|
|
|
#define bcopy(src,dst,len) memmov((dst), (src), (len))
|
|
|
|
#define USING_MEMMOV
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* We use threaded code interpretation if the compiler provides labels
|
1996-11-02 10:00:46 -08:00
|
|
|
as first-class values (GCC 2.x).
|
|
|
|
Macintosh 68k also uses threaded code, with the assembly-language
|
|
|
|
bytecode interpreter (THREADED_CODE defined in config/sm-Mac.h).
|
|
|
|
*/
|
1995-05-04 03:15:53 -07:00
|
|
|
|
1996-10-29 03:00:31 -08:00
|
|
|
#if defined(__GNUC__) && __GNUC__ >= 2 && !defined(DEBUG)
|
1995-05-04 03:15:53 -07:00
|
|
|
#define THREADED_CODE
|
|
|
|
#endif
|
|
|
|
|
1995-05-09 02:34:59 -07:00
|
|
|
/* Signed char type */
|
|
|
|
|
|
|
|
#if defined(__STDC__) || defined(SIGNED_CHAR_WORKS)
|
|
|
|
typedef signed char schar;
|
|
|
|
#else
|
|
|
|
typedef char schar;
|
|
|
|
#endif
|
|
|
|
|
1995-05-04 03:15:53 -07:00
|
|
|
/* Do not change this definition. */
|
|
|
|
#define Page_size (1 << Page_log)
|
|
|
|
|
|
|
|
/* Memory model parameters */
|
|
|
|
|
|
|
|
/* The size of a page for memory management (in bytes) is [1 << Page_log].
|
|
|
|
It must be a multiple of [sizeof (long)]. */
|
|
|
|
#define Page_log 12 /* A page is 4 kilobytes. */
|
|
|
|
|
1995-07-20 00:51:48 -07:00
|
|
|
/* Initial size of stack (bytes). */
|
1995-11-27 07:36:57 -08:00
|
|
|
#define Stack_size (4096 * sizeof(value))
|
1995-05-04 03:15:53 -07:00
|
|
|
|
|
|
|
/* Minimum free size of stack (bytes); below that, it is reallocated. */
|
1995-11-27 07:36:57 -08:00
|
|
|
#define Stack_threshold (256 * sizeof(value))
|
1995-05-04 03:15:53 -07:00
|
|
|
|
1997-05-13 07:45:38 -07:00
|
|
|
/* Default maximum size of the stack (words). */
|
|
|
|
#define Max_stack_def (256 * 1024)
|
1995-07-20 00:51:48 -07:00
|
|
|
|
1995-05-04 03:15:53 -07:00
|
|
|
|
|
|
|
/* Maximum size of a block allocated in the young generation (words). */
|
|
|
|
/* Must be > 4 */
|
|
|
|
#define Max_young_wosize 256
|
|
|
|
|
|
|
|
|
|
|
|
/* Minimum size of the minor zone (words).
|
|
|
|
This must be at least [Max_young_wosize + 1]. */
|
|
|
|
#define Minor_heap_min 4096
|
|
|
|
|
|
|
|
/* Maximum size of the minor zone (words).
|
|
|
|
Must be greater than or equal to [Minor_heap_min].
|
|
|
|
*/
|
|
|
|
#define Minor_heap_max (1 << 28)
|
|
|
|
|
|
|
|
/* Default size of the minor zone. (words) */
|
|
|
|
#define Minor_heap_def 32768
|
|
|
|
|
|
|
|
|
|
|
|
/* Minimum size increment when growing the heap (words).
|
|
|
|
Must be a multiple of [Page_size / sizeof (value)]. */
|
|
|
|
#define Heap_chunk_min (2 * Page_size / sizeof (value))
|
|
|
|
|
|
|
|
/* Maximum size of a contiguous piece of the heap (words).
|
|
|
|
Must be greater than or equal to [Heap_chunk_min].
|
|
|
|
Must be greater than or equal to [Bhsize_wosize (Max_wosize)]. */
|
|
|
|
#define Heap_chunk_max (Bhsize_wosize (Max_wosize))
|
|
|
|
|
1997-05-21 08:28:15 -07:00
|
|
|
/* Default size increment when growing the heap. (words)
|
1995-05-04 03:15:53 -07:00
|
|
|
Must be a multiple of [Page_size / sizeof (value)]. */
|
1997-05-21 08:28:15 -07:00
|
|
|
#define Heap_chunk_def (62 * 1024)
|
1995-05-04 03:15:53 -07:00
|
|
|
|
1997-05-21 08:28:15 -07:00
|
|
|
/* Default initial size of the major heap (words);
|
1997-05-13 07:45:38 -07:00
|
|
|
same constraints as for Heap_chunk_def. */
|
1997-05-21 08:28:15 -07:00
|
|
|
#define Init_heap_def (62 * 1024)
|
1997-05-13 07:45:38 -07:00
|
|
|
|
1995-05-04 03:15:53 -07:00
|
|
|
|
|
|
|
/* Default speed setting for the major GC. The heap will grow until
|
|
|
|
the dead objects and the free list represent this percentage of the
|
|
|
|
heap size. The rest of the heap is live objects. */
|
1997-05-21 08:28:15 -07:00
|
|
|
#define Percent_free_def 40
|
1995-05-04 03:15:53 -07:00
|
|
|
|
1997-05-13 07:45:38 -07:00
|
|
|
/* Default setting for the compacter: off */
|
1997-05-21 08:28:15 -07:00
|
|
|
#define Max_percent_free_def 1000000
|
1997-05-13 07:45:38 -07:00
|
|
|
|
1995-05-04 03:15:53 -07:00
|
|
|
|
|
|
|
#endif /* _config_ */
|