// vim: ts=4 sw=4 expandtab ft=c // Copyright (C) 1993-1998,2000,2003-2009 The University of Melbourne. // Copyright (C) 2016-2018 The Mercury team. // This file is distributed under the terms specified in COPYING.LIB. // mercury_imp.h - defines the interface to the Mercury abstract machine. // // IMPORTANT: this must be the *first* header file that is #included. // It must come before any system header files. This is because on some // systems, the system header files include inline functions, and this // causes problems when using global register variables, as gcc requires // global register variable declarations to precede any function definitions. // // This file just #includes most of the other Mercury runtime header files. #ifndef MERCURY_IMP_H #define MERCURY_IMP_H // The #include of "mercury_conf.h" must come before the `#ifdef MR_USE_DLLS', // because mercury_conf.h defines the MR_USE_DLLS macro. #include "mercury_conf.h" // The following must come before any declarations of or use of // global variables. This is necessary to support DLLs on Windows. // Note: `libmer_dll.h' is automatically generated by `Makefile.DLLs'. #ifdef MR_USE_DLLS #include "libmer_dll.h" #endif #include "mercury_regs.h" // Must come before any system headers. #ifdef MR_HIGHLEVEL_CODE #include "mercury.h" #endif #include "mercury_std.h" #include "mercury_debug.h" #include "mercury_types.h" #include "mercury_library_types.h" #include "mercury_file.h" #include "mercury_string.h" #include "mercury_float.h" #include "mercury_int.h" #include "mercury_stack_trace.h" #include "mercury_accurate_gc.h" #include "mercury_stack_layout.h" #include "mercury_tags.h" #include "mercury_goto.h" #include "mercury_calls.h" #include "mercury_ho_call.h" #include "mercury_engine.h" #include "mercury_memory.h" #include "mercury_heap.h" #include "mercury_stacks.h" #include "mercury_overflow.h" #include "mercury_label.h" #include "mercury_wrapper.h" #include "mercury_engine.h" #include "mercury_context.h" #include "mercury_thread.h" #include "mercury_type_info.h" #include "mercury_typeclass_info.h" #include "mercury_type_tables.h" #ifdef MR_USE_TRAIL #include "mercury_trail.h" #endif #include "mercury_prof.h" #include "mercury_misc.h" #include "mercury_region.h" #include "mercury_tabling.h" #ifdef MR_USE_MINIMAL_MODEL_STACK_COPY #include "mercury_minimal_model.h" #endif #ifdef MR_USE_MINIMAL_MODEL_OWN_STACKS #include "mercury_mm_own_stacks.h" #endif #include "mercury_par_builtin.h" #include "mercury_univ.h" #include "mercury_complexity.h" #include "mercury_term_size.h" #include "mercury_grade.h" #endif // not MERCURY_IMP_H