static void parse_camlrunparam(void) { char *opt = getenv ("OCAMLRUNPARAM"); uintnat p; if (opt == NULL) opt = getenv ("CAMLRUNPARAM"); if (opt != NULL){ while (*opt != '\0'){ switch (*opt++){ case 'a': scanmult (opt, &p); caml_set_allocation_policy (p); break; case 'b': caml_record_backtrace(Val_true); break; case 'h': scanmult (opt, &heap_size_init); break; case 'i': scanmult (opt, &heap_chunk_init); break; case 'l': scanmult (opt, &max_stack_init); break; case 'o': scanmult (opt, &percent_free_init); break; case 'O': scanmult (opt, &max_percent_free_init); break; case 'p': caml_parser_trace = 1; break; /* case 'R': see stdlib/hashtbl.mli */ case 's': scanmult (opt, &minor_heap_init); break; #ifdef DEBUG case 't': caml_trace_flag = 1; break; #endif case 'v': scanmult (opt, &caml_verb_gc); break; } } } }
static void parse_camlrunparam(void) { #if defined(__FreeBSD__) && defined(_KERNEL) char *opt; uintnat p; opt = get_rtparams(); #else char *opt = getenv ("OCAMLRUNPARAM"); uintnat p; if (opt == NULL) opt = getenv ("CAMLRUNPARAM"); #endif if (opt != NULL){ while (*opt != '\0'){ switch (*opt++){ case 's': scanmult (opt, &minor_heap_init); break; case 'i': scanmult (opt, &heap_chunk_init); break; case 'h': scanmult (opt, &heap_size_init); break; case 'l': scanmult (opt, &max_stack_init); break; case 'o': scanmult (opt, &percent_free_init); break; case 'O': scanmult (opt, &max_percent_free_init); break; case 'v': scanmult (opt, &caml_verb_gc); break; case 'b': caml_record_backtrace(Val_true); break; case 'p': caml_parser_trace = 1; break; case 'a': scanmult (opt, &p); caml_set_allocation_policy (p); break; } } } }
void caml_init_startup_params(void) { char *opt; init_startup_params(); opt = getenv ("OCAMLRUNPARAM"); if (opt == NULL) opt = getenv ("CAMLRUNPARAM"); if (opt != NULL){ while (*opt != '\0'){ switch (*opt++){ case 'b': caml_startup_params.backtrace_enabled_init = 1; break; case 'h': scanmult (opt, &caml_startup_params.heap_size_init); break; case 'i': scanmult (opt, &caml_startup_params.heap_chunk_init); break; case 'l': scanmult (opt, &caml_startup_params.max_stack_init); break; case 'o': scanmult (opt, &caml_startup_params.percent_free_init); break; case 'O': scanmult (opt, &caml_startup_params.max_percent_free_init); break; case 'p': caml_startup_params.parser_trace = 1; break; /* case 'R': see stdlib/hashtbl.mli */ case 's': scanmult (opt, &caml_startup_params.minor_heap_init); break; #ifdef DEBUG case 't': caml_startup_params.trace_flag = 1; break; #endif case 'v': scanmult (opt, &caml_startup_params.verb_gc); break; case 'e': caml_startup_params.eventlog_enabled = 1; break; } } } }
static void parse_camlrunparam(void) { char *opt = getenv ("OCAMLRUNPARAM"); if (opt == NULL) opt = getenv ("CAMLRUNPARAM"); if (opt != NULL){ while (*opt != '\0'){ switch (*opt++){ case 's': scanmult (opt, &minor_heap_init); break; case 'i': scanmult (opt, &heap_chunk_init); break; case 'h': scanmult (opt, &heap_size_init); break; case 'l': scanmult (opt, &max_stack_init); break; case 'o': scanmult (opt, &percent_free_init); break; case 'O': scanmult (opt, &max_percent_free_init); break; case 'v': scanmult (opt, &caml_verb_gc); break; case 'b': caml_init_backtrace(); break; case 'p': caml_parser_trace = 1; break; } } } }
void caml_parse_ocamlrunparam(void) { char_os *opt = caml_secure_getenv (_T("OCAMLRUNPARAM")); init_startup_params(); if (opt == NULL) opt = caml_secure_getenv (_T("CAMLRUNPARAM")); if (opt != NULL){ while (*opt != _T('\0')){ switch (*opt++){ //case _T('a'): scanmult (opt, &p); caml_set_allocation_policy (p); break; case _T('b'): scanmult (opt, ¶ms.backtrace_enabled_init); break; case _T('c'): scanmult (opt, ¶ms.cleanup_on_exit); break; case _T('e'): scanmult (opt, ¶ms.eventlog_enabled); break; case _T('f'): scanmult (opt, ¶ms.init_fiber_wsz); break; case _T('h'): scanmult (opt, ¶ms.init_heap_wsz); break; //case _T('H'): scanmult (opt, &caml_use_huge_pages); break; case _T('i'): scanmult (opt, ¶ms.init_heap_chunk_sz); break; case _T('l'): scanmult (opt, ¶ms.init_max_stack_wsz); break; case _T('o'): scanmult (opt, ¶ms.init_percent_free); break; case _T('O'): scanmult (opt, ¶ms.init_max_percent_free); break; case _T('p'): scanmult (opt, ¶ms.parser_trace); break; case _T('R'): break; /* see stdlib/hashtbl.mli */ case _T('s'): scanmult (opt, ¶ms.init_minor_heap_wsz); break; case _T('S'): scanmult (opt, ¶ms.print_stats); break; case _T('t'): scanmult (opt, ¶ms.trace_level); break; case _T('v'): scanmult (opt, ¶ms.verb_gc); break; case _T('V'): scanmult (opt, ¶ms.verify_heap); break; //case _T('w'): scanmult (opt, &caml_init_major_window); break; case _T('W'): scanmult (opt, &caml_runtime_warnings); break; } --opt; /* to handle patterns like ",b=1" */ while (*opt != _T('\0')){ if (*opt++ == ',') break; } } } }