build: Don't include <config.h> in native programs when cross-compiling.
[bpt/guile.git] / libguile / goops.h
index 816b231..47a6e4e 100644 (file)
@@ -3,7 +3,7 @@
 #ifndef SCM_GOOPS_H
 #define SCM_GOOPS_H
 
-/* Copyright (C) 1998,1999,2000,2001,2002,2003, 2006, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2003, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
  */
 
 /* see also, SCM_VTABLE_BASE_LAYOUT, and build_class_class_slots */
-#define SCM_CLASS_CLASS_LAYOUT \
-  "pw" /* redefined */ \
-  "uw" /* h0 */ \
-  "uw" /* h1 */ \
-  "uw" /* h2 */ \
-  "uw" /* h3 */ \
-  "uw" /* h4 */ \
-  "uw" /* h5 */ \
-  "uw" /* h6 */ \
-  "uw" /* h7 */ \
-  "pw" /* direct supers */ \
-  "pw" /* direct slots */ \
-  "pw" /* direct subclasses */ \
-  "pw" /* direct methods */ \
-  "pw" /* cpl */ \
-  "pw" /* default-slot-definition-class */ \
-  "pw" /* slots */ \
-  "pw" /* getters-n-setters */ \
-  "pw" /* keyword access */ \
-  "pw" /* nfields */ \
-  "pw" /* environment */
+#define SCM_CLASS_CLASS_LAYOUT                  \
+  "pw" /* redefined */                          \
+  "uw" /* h0 */                                 \
+  "uw" /* h1 */                                 \
+  "uw" /* h2 */                                 \
+  "uw" /* h3 */                                 \
+  "uw" /* h4 */                                 \
+  "uw" /* h5 */                                 \
+  "uw" /* h6 */                                 \
+  "uw" /* h7 */                                 \
+  "pw" /* direct supers */                      \
+  "pw" /* direct slots */                       \
+  "pw" /* direct subclasses */                  \
+  "pw" /* direct methods */                     \
+  "pw" /* cpl */                                \
+  "pw" /* default-slot-definition-class */      \
+  "pw" /* slots */                              \
+  "pw" /* getters-n-setters */                  \
+  "pw" /* keyword access */                     \
+  "pw" /* nfields */
 
 #define scm_si_redefined         (scm_vtable_offset_user + 0)
 #define scm_si_h0                (scm_vtable_offset_user + 1)
 #define scm_si_getters_n_setters scm_si_name_access
 #define scm_si_keyword_access   (scm_vtable_offset_user + 17)
 #define scm_si_nfields          (scm_vtable_offset_user + 18) /* an integer */
-#define scm_si_environment      (scm_vtable_offset_user + 19) /* The environment in which class is built  */
-#define SCM_N_CLASS_SLOTS       (scm_vtable_offset_user + 20)
+#define SCM_N_CLASS_SLOTS       (scm_vtable_offset_user + 19)
 
 typedef struct scm_t_method {
   SCM generic_function;
@@ -179,9 +177,9 @@ SCM_API SCM scm_class_pair;
 SCM_API SCM scm_class_procedure;
 SCM_API SCM scm_class_string;
 SCM_API SCM scm_class_symbol;
-SCM_API SCM scm_class_procedure_with_setter;
 SCM_API SCM scm_class_primitive_generic;
-SCM_API SCM scm_class_vector, scm_class_null;
+SCM_API SCM scm_class_vector;
+SCM_API SCM scm_class_null;
 SCM_API SCM scm_class_real;
 SCM_API SCM scm_class_complex;
 SCM_API SCM scm_class_integer;
@@ -239,7 +237,6 @@ SCM_API void scm_load_goops (void);
 SCM_API SCM scm_make_extended_class (char const *type_name, int applicablep);
 SCM_API void scm_make_port_classes (long ptobnum, char *type_name);
 SCM_API SCM scm_ensure_accessor (SCM name);
-SCM_API void scm_add_method (SCM gf, SCM m);
 SCM_API SCM scm_class_of (SCM obj);
 
 /* Low level functions exported */
@@ -275,13 +272,11 @@ SCM_API SCM scm_class_direct_subclasses (SCM obj);
 SCM_API SCM scm_class_direct_methods (SCM obj);
 SCM_API SCM scm_class_precedence_list (SCM obj);
 SCM_API SCM scm_class_slots (SCM obj);
-SCM_API SCM scm_class_environment (SCM obj);
 SCM_API SCM scm_generic_function_name (SCM obj);
 SCM_API SCM scm_generic_function_methods (SCM obj);
 SCM_API SCM scm_method_generic_function (SCM obj);
 SCM_API SCM scm_method_specializers (SCM obj);
 SCM_API SCM scm_method_procedure (SCM obj);
-SCM_API SCM scm_sys_tag_body (SCM body);
 SCM_API SCM scm_sys_fast_slot_ref (SCM obj, SCM index);
 SCM_API SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value);
 SCM_API SCM scm_slot_ref_using_class (SCM cls, SCM obj, SCM slot_name);
@@ -312,6 +307,8 @@ SCM_API SCM scm_apply_generic (SCM gf, SCM args);
 */
 SCM_API SCM scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3);
 
+SCM_INTERNAL SCM scm_i_define_class_for_vtable (SCM vtable);
+
 
 SCM_INTERNAL SCM scm_init_goops_builtins (void);
 SCM_INTERNAL void scm_init_goops (void);