summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-06-26 10:46:11 +0200
committerAndy Wingo <wingo@pobox.com>2018-06-26 10:55:02 +0200
commit3b6bf20ef5d7d0de34de4fb7ba9777af29ba55ae (patch)
tree08f437897b7a2fdea3ff8c11f18aa19c747a55fa
parent5448e5a4b008a1e25b24f00dc627c08457b69914 (diff)
downloadguile-3b6bf20ef5d7d0de34de4fb7ba9777af29ba55ae.tar.gz
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.
-rw-r--r--libguile.h2
-rw-r--r--libguile/continuations.h1
-rw-r--r--libguile/control.c1
-rw-r--r--libguile/control.h2
-rw-r--r--libguile/eval.c1
-rw-r--r--libguile/foreign.h2
-rw-r--r--libguile/gsubr.h1
-rw-r--r--libguile/print.c1
-rw-r--r--libguile/scm.h3
-rw-r--r--libguile/threads.h1
-rw-r--r--libguile/vm.c1
-rw-r--r--libguile/vm.h1
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 <setjmp.h>
+#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 <setjmp.h>
-#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 <libguile/gc.h>
-#include <libguile/frames.h>
#include <libguile/programs.h>
enum {