[m-dev.] for review: add mdb support for interactive queries
Erwan Jahier
Erwan.Jahier at irisa.fr
Thu Mar 4 19:18:49 AEDT 1999
| Anyone care to review this?
I had a look to this change; it looks great.
| Estimated hours taken: 14
|
| Add support for invoking interactive queries to mdb.
|
| browser/interactive_query.m:
| New module, to implement interactive queries.
|
| browser/dl.m:
| browser/name_mangle.m:
| Copy these files from extras/dynamic_linking, since
| they are needed by browser/interactive_query.m.
|
| configure.in:
| runtime/mercury_conf.h.in:
| Autodetect the presence of support for dlopen() etc.
Don't you need to also modify bindist/build_vars.in and/or
bindist/bindist.configure.in?
| Index: runtime/mercury_grade.h
| ===================================================================
| RCS file: /home/mercury1/repository/mercury/runtime/mercury_grade.h,v
| retrieving revision 1.15
| diff -u -r1.15 mercury_grade.h
| --- mercury_grade.h 1998/11/11 01:53:06 1.15
| +++ mercury_grade.h 1999/03/03 15:26:06
| @@ -191,4 +191,123 @@
|
| extern const char MR_GRADE_VAR;
|
| +/*
| +** Here we do the same thing as above, but this time we build up a string
| +** containing the options to pass to the compiler to select this grade.
| +*/
| +
| +#ifdef USE_ASM_LABELS
| + #define MR_GRADE_OPT_PART_1 "asm_"
| +#else
| + #define MR_GRADE_OPT_PART_1 ""
| +#endif
| +
| +#ifdef USE_GCC_NONLOCAL_GOTOS
| + #ifdef USE_GCC_GLOBAL_REGISTERS
| + #define MR_GRADE_OPT_PART_2 MR_GRADE_OPT_PART_1 "fast"
| + #else
| + #define MR_GRADE_OPT_PART_2 MR_GRADE_OPT_PART_1 "jump"
| + #endif
| +#else
| + #ifdef USE_GCC_GLOBAL_REGISTERS
| + #define MR_GRADE_OPT_PART_2 MR_GRADE_OPT_PART_1 "reg"
| + #else
| + #define MR_GRADE_OPT_PART_2 MR_GRADE_OPT_PART_1 "none"
| + #endif
| +#endif
| +
| +#ifdef MR_THREAD_SAFE
| + #define MR_GRADE_OPT_PART_3 MR_GRADE_OPT_PART_2 ".par"
| +#else
| + #define MR_GRADE_OPT_PART_3 MR_GRADE_OPT_PART_2
| +#endif
| +#ifdef CONSERVATIVE_GC
| + #define MR_GRADE_OPT_PART_4 MR_GRADE_OPT_PART_3 ".gc"
| +#elif defined(NATIVE_GC)
| + #define MR_GRADE_OPT_PART_4 MR_GRADE_OPT_PART_3 ".agc"
| +#else
| + #define MR_GRADE_OPT_PART_4 MR_GRADE_OPT_PART_3
| +#endif
| +
| +#ifdef PROFILE_TIME
| + #ifdef PROFILE_CALLS
| + #ifdef PROFILE_MEMORY
| + #define MR_GRADE_OPT_PART_5 MR_GRADE_OPT_PART_4 ".profall"
| + #else
| + #define MR_GRADE_OPT_PART_5 MR_GRADE_OPT_PART_4 ".prof"
| + #endif
| + #else
| + #ifdef PROFILE_MEMORY
| + /*
| + ** Memory profiling interferes with time profiling,
| + ** so there's no point in allowing this.
| + */
| + #error "Invalid combination of profiling options"
| + #else
| + /* Currently useless "but... */
| + #define MR_GRADE_OPT_PART_5 MR_GRADE_OPT_PART_4 ".proftime"
| + #endif
| + #endif
| +#else
| + #ifdef PROFILE_CALLS
| + #ifdef PROFILE_MEMORY
| + #define MR_GRADE_OPT_PART_5 MR_GRADE_OPT_PART_4 ".memprof"
| + #else
| + #define MR_GRADE_OPT_PART_5 MR_GRADE_OPT_PART_4 ".profcalls"
| + #endif
| + #else
| + #ifdef PROFILE_MEMORY
| + /*
| + ** Call-graph memory profiling requires call profiling,
| + ** and call profiling is reasonably cheap "so there's
| + ** no point in allowing this.
| + */
There is an odd number of `"' in this comment.
--
R1.
More information about the developers
mailing list