[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