home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Caml Light 0.61 / Source / src / runtime / config.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-24  |  3.8 KB  |  149 lines  |  [TEXT/MPS ]

  1. #ifndef _config_
  2. #define _config_
  3.  
  4.  
  5. #ifdef macintosh
  6. #include ":::config:m.h"
  7. #include ":::config:s.h"
  8. #else
  9. #include "../../config/m.h"
  10. #include "../../config/s.h"
  11. #endif
  12.  
  13. /* Library dependencies */
  14.  
  15. #ifdef HAS_MEMMOVE
  16. #define bcopy(src,dst,len) memmove((dst), (src), (len))
  17. #else
  18. #ifdef HAS_BCOPY
  19. /* Nothing to do */
  20. #else
  21. #ifdef HAS_MEMCPY
  22. #define bcopy(src,dst,len) memcpy((dst), (src), (len))
  23. #else
  24. #define bcopy(src,dst,len) memmov((dst), (src), (len))
  25. #define USING_MEMMOV
  26. #endif
  27. #endif
  28. #endif
  29.  
  30. #ifndef HAS__SETJMP
  31. #define _setjmp setjmp
  32. #define _longjmp longjmp
  33. #endif
  34.  
  35. /* Signed char type */
  36.  
  37. #if defined(ANSI) || defined(SIGNED_CHAR_WORKS)
  38. typedef signed char schar;
  39. #else
  40. typedef char schar;
  41. #endif
  42.  
  43. /* Do not change this definition. */
  44. #define Page_size (1 << Page_log)
  45.  
  46. /* Memory model parameters */
  47.  
  48. #if !defined(SMALL) && !defined(SIXTEEN)
  49.  
  50. /* The size of a page for memory management (in bytes) is [1 << Page_log].
  51.    It must be a multiple of [sizeof (long)]. */
  52. #define Page_log 12             /* A page is 4 kB. */
  53.  
  54. /* Initial sizes of stacks (bytes). */
  55. #define Arg_stack_size 16384
  56. #define Ret_stack_size 16384
  57.  
  58. /* Minimum free size of stacks (bytes); below that, they are reallocated. */
  59. #define Arg_stack_threshold 1024
  60. #define Ret_stack_threshold 1024
  61.  
  62. /* Maximum sizes for the stacks (bytes). */
  63.    
  64. #ifdef MINIMIZE_MEMORY
  65. #define Max_arg_stack_size 131072
  66. #define Max_ret_stack_size 131072
  67. #else
  68. #define Max_arg_stack_size 524288
  69. #define Max_ret_stack_size 524288
  70. #endif
  71.  
  72. /* Maximum size of a block allocated in the young generation. (words) */
  73. /* Must be > 4 */
  74. #define Max_young_wosize 256
  75.  
  76. /* Default size of the minor zone. (bytes)
  77.    It is a good idea to have this smaller than your processor cache. */
  78. #define Generation_size 65536
  79.  
  80. /* Initial size of the major heap. (bytes)
  81.    It must be a multiple of [Page_size]. */
  82. #define Heap_size (62 * Page_size)
  83.  
  84. /* Size increment when growing the heap (bytes).  Depending on your [malloc]
  85.    library function, it might be a good idea to use a power of two minus
  86.    twice the page size. */
  87. #define Heap_chunk_min (62 * Page_size)
  88.  
  89. /* Maximum size of a contiguous piece of the heap (bytes).
  90.    Must be greater than or equal to [Heap_chunk_min].
  91.    Must be greater than or equal to [Max_hbsize].  (see mlvalues.h) */
  92. #define Heap_chunk_max (1 << 24)
  93.  
  94. /* The GC will try to have that much free memory at the start
  95.    of each cycle. (percent of the heap size) */
  96. #define Free_mem_percent_max 30
  97. #define Free_mem_percent_min 30
  98.  
  99. /* Maximum size of the cache for gray objects. (units) */
  100. #define Gray_vals_max 32768
  101.  
  102. #else
  103. #ifdef SIXTEEN                 /* Scaled-down parameters for 16-bit machines */
  104.  
  105. #define Page_log 10
  106. #define Arg_stack_size 16384
  107. #define Ret_stack_size 16384
  108. #define Arg_stack_threshold 1024
  109. #define Ret_stack_threshold 1024
  110. #define Max_arg_stack_size 49152
  111. #define Max_ret_stack_size 49152
  112. #define Max_young_wosize 256
  113. #define Generation_size 16384
  114. #define Heap_size 0xF000
  115. #define Heap_chunk_min 0x8000
  116. #define Heap_chunk_max 0xF000
  117. /* The GC will try to have between this and that much free memory at the start
  118.    of each cycle. (percent of the heap size) */
  119. #define Free_mem_percent_max 30
  120. #define Free_mem_percent_min 5
  121. #define Gray_vals_max 4096
  122.  
  123. #else
  124. #ifdef SMALL                   /* Scaled-down parameters for small memory */
  125.  
  126. #define Page_log 10
  127. #define Arg_stack_size 16384
  128. #define Ret_stack_size 16384
  129. #define Arg_stack_threshold 1024
  130. #define Ret_stack_threshold 1024
  131. #define Max_arg_stack_size 524288
  132. #define Max_ret_stack_size 524288
  133. #define Max_young_wosize 256
  134. #define Generation_size 32768
  135. #define Heap_size (126 * Page_size)
  136. #define Heap_chunk_min (62 * Page_size)
  137. #define Heap_chunk_max (1 << 24)
  138. #define Free_mem_percent_max 30
  139. #define Free_mem_percent_min 5
  140. #define Gray_vals_max 8192
  141.  
  142. #endif /* SMALL */
  143. #endif /* SIXTEEN */
  144.  
  145. #endif /* !defined(SMALL) && !defined(SIXTEEN) */
  146.  
  147.  
  148. #endif /* _config_ */
  149.