From 3b6bf20ef5d7d0de34de4fb7ba9777af29ba55ae Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 26 Jun 2018 10:46:11 +0200 Subject: [PATCH] Most header files use forward decl for union scm_vm_stack_element * libguile.h: Add includes for frames.h and vm.h. Probably need to revisit these includes. * libguile/scm.h (struct scm_frame, union scm_vm_stack_element) (struct scm_vm): Add forward declarations. * libguile/vm.h: Remove frames.h include. * libguile/foreign.h: * libguile/gsubr.h: Remove forward decls of union scm_vm_stack_element. * libguile/control.c: * libguile/eval.c: * libguile/print.c: Add frames.h includes. * libguile/threads.h: Remove continuations.h. * libguile/vm.c: Add continuations.h. * libguile/control.h: Swap vm.h include for scm.h include. * libguile/continuations.h: Add programs.h include for SCM_PROGRAM_P. --- libguile.h | 2 ++ libguile/continuations.h | 1 + libguile/control.c | 1 + libguile/control.h | 2 +- libguile/eval.c | 1 + libguile/foreign.h | 2 -- libguile/gsubr.h | 1 - libguile/print.c | 1 + libguile/scm.h | 3 +++ libguile/threads.h | 1 - libguile/vm.c | 1 + libguile/vm.h | 1 - 12 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libguile.h b/libguile.h index bd6105363..53479d858 100644 --- a/libguile.h +++ b/libguile.h @@ -58,6 +58,7 @@ extern "C" { #include "libguile/foreign.h" #include "libguile/foreign-object.h" #include "libguile/fports.h" +#include "libguile/frames.h" #include "libguile/gc.h" #include "libguile/generalized-arrays.h" #include "libguile/generalized-vectors.h" @@ -116,6 +117,7 @@ extern "C" { #include "libguile/vectors.h" #include "libguile/srfi-4.h" #include "libguile/version.h" +#include "libguile/vm.h" #include "libguile/vports.h" #include "libguile/weak-set.h" #include "libguile/weak-table.h" diff --git a/libguile/continuations.h b/libguile/continuations.h index a7bfa60be..a9ab5eae8 100644 --- a/libguile/continuations.h +++ b/libguile/continuations.h @@ -24,6 +24,7 @@ #include +#include "libguile/programs.h" #include "libguile/throw.h" diff --git a/libguile/control.c b/libguile/control.c index 760539163..287f30f9e 100644 --- a/libguile/control.c +++ b/libguile/control.c @@ -25,6 +25,7 @@ #include "dynstack.h" #include "extensions.h" +#include "frames.h" #include "gsubr.h" #include "instructions.h" #include "list.h" diff --git a/libguile/control.h b/libguile/control.h index 1b4065661..c2bb5b5e3 100644 --- a/libguile/control.h +++ b/libguile/control.h @@ -22,7 +22,7 @@ #include -#include "libguile/vm.h" +#include "libguile/scm.h" SCM_INTERNAL SCM scm_i_prompt_pop_abort_args_x (struct scm_vm *vp, diff --git a/libguile/eval.c b/libguile/eval.c index 1403a14f5..c8e738019 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -37,6 +37,7 @@ #include "eq.h" #include "expand.h" #include "feature.h" +#include "frames.h" #include "fluids.h" #include "goops.h" #include "gsubr.h" diff --git a/libguile/foreign.h b/libguile/foreign.h index 01a1ef88a..d2278e801 100644 --- a/libguile/foreign.h +++ b/libguile/foreign.h @@ -98,8 +98,6 @@ SCM_INTERNAL SCM scm_pointer_to_string (SCM pointer, SCM length, SCM encoding); arguments. */ -union scm_vm_stack_element; - SCM_API SCM scm_pointer_to_procedure (SCM return_type, SCM func_ptr, SCM arg_types); SCM_API SCM scm_pointer_to_procedure_with_errno (SCM return_type, SCM func_ptr, diff --git a/libguile/gsubr.h b/libguile/gsubr.h index 963bf4871..8407ae5b3 100644 --- a/libguile/gsubr.h +++ b/libguile/gsubr.h @@ -55,7 +55,6 @@ SCM_INTERNAL int scm_i_primitive_code_p (const uint32_t *code); SCM_INTERNAL uintptr_t scm_i_primitive_call_ip (SCM subr); -union scm_vm_stack_element; SCM_INTERNAL SCM scm_apply_subr (union scm_vm_stack_element *sp, ptrdiff_t nargs); diff --git a/libguile/print.c b/libguile/print.c index 86f2b81fb..b5b5ec6e6 100644 --- a/libguile/print.c +++ b/libguile/print.c @@ -41,6 +41,7 @@ #include "eval.h" #include "fluids.h" #include "foreign.h" +#include "frames.h" #include "goops.h" #include "gsubr.h" #include "hashtab.h" diff --git a/libguile/scm.h b/libguile/scm.h index 9dee8fc95..9996ec47b 100644 --- a/libguile/scm.h +++ b/libguile/scm.h @@ -824,6 +824,9 @@ typedef struct scm_dynamic_state scm_t_dynamic_state; typedef struct scm_print_state scm_print_state; typedef struct scm_dynstack scm_t_dynstack; typedef int32_t scm_t_wchar; +struct scm_frame; +struct scm_vm; +union scm_vm_stack_element; diff --git a/libguile/threads.h b/libguile/threads.h index 6cbab2a10..50d4ba158 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -29,7 +29,6 @@ #include "libguile/dynstack.h" #include "libguile/iselect.h" #include "libguile/smob.h" -#include "libguile/continuations.h" #include "libguile/vm.h" #if SCM_USE_PTHREAD_THREADS diff --git a/libguile/vm.c b/libguile/vm.c index 1a7308c9c..bafdcf26a 100644 --- a/libguile/vm.c +++ b/libguile/vm.c @@ -41,6 +41,7 @@ #include "atomics-internal.h" #include "bdw-gc.h" #include "cache-internal.h" +#include "continuations.h" #include "control.h" #include "dynwind.h" #include "eval.h" diff --git a/libguile/vm.h b/libguile/vm.h index a018e39d6..9b97a6aa9 100644 --- a/libguile/vm.h +++ b/libguile/vm.h @@ -21,7 +21,6 @@ #define _SCM_VM_H_ #include -#include #include enum {