summaryrefslogtreecommitdiff
path: root/libguile/snarf.h
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/snarf.h')
-rw-r--r--libguile/snarf.h67
1 files changed, 3 insertions, 64 deletions
diff --git a/libguile/snarf.h b/libguile/snarf.h
index 1c072babb..afc4d8f2a 100644
--- a/libguile/snarf.h
+++ b/libguile/snarf.h
@@ -4,7 +4,7 @@
#define SCM_SNARF_H
/* Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
- * 2004, 2006, 2009, 2010, 2011 Free Software Foundation, Inc.
+ * 2004, 2006, 2009, 2010, 2011, 2013 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
@@ -96,48 +96,9 @@ scm_c_define_gsubr (s_ ## FNAME, REQ, OPT, VAR, \
)\
SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
-#ifdef SCM_SUPPORT_STATIC_ALLOCATION
-
-/* Static subr allocation. */
-/* FIXME: how to verify that req + opt + rest < 11, all are positive, etc? */
-#define SCM_DEFINE(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
-SCM_SYMBOL (scm_i_paste (FNAME, __name), PRIMNAME); \
-SCM_SNARF_HERE( \
- static const char scm_i_paste (s_, FNAME) [] = PRIMNAME; \
- SCM_API SCM FNAME ARGLIST; \
- SCM_IMMUTABLE_POINTER (scm_i_paste (FNAME, __subr_foreign), \
- (scm_t_bits) &FNAME); /* the subr */ \
- SCM_STATIC_SUBR_OBJVECT (scm_i_paste (FNAME, __raw_objtable), \
- /* FIXME: directly be the foreign */ \
- SCM_BOOL_F); \
- /* FIXME: be immutable. grr */ \
- SCM_STATIC_PROGRAM (scm_i_paste (FNAME, __subr), \
- SCM_BOOL_F, \
- SCM_PACK (&scm_i_paste (FNAME, __raw_objtable)), \
- SCM_BOOL_F); \
- SCM FNAME ARGLIST \
-) \
-SCM_SNARF_INIT( \
- /* Initialize the foreign. */ \
- scm_i_paste (FNAME, __raw_objtable)[2] = scm_i_paste (FNAME, __subr_foreign); \
- /* Initialize the procedure name (an interned symbol). */ \
- scm_i_paste (FNAME, __raw_objtable)[3] = scm_i_paste (FNAME, __name); \
- /* Initialize the objcode trampoline. */ \
- SCM_SET_CELL_OBJECT (scm_i_paste (FNAME, __subr), 1, \
- scm_subr_objcode_trampoline (REQ, OPT, VAR)); \
- \
- /* Define the subr. */ \
- scm_define (scm_i_paste (FNAME, __name), scm_i_paste (FNAME, __subr)); \
-) \
-SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
-
-#else /* !SCM_SUPPORT_STATIC_ALLOCATION */
-
/* Always use the generic subr case. */
#define SCM_DEFINE SCM_DEFINE_GSUBR
-#endif /* !SCM_SUPPORT_STATIC_ALLOCATION */
-
#define SCM_PRIMITIVE_GENERIC(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
SCM_SNARF_HERE(\
@@ -209,11 +170,11 @@ SCM_SNARF_INIT( \
# define SCM_SYMBOL(c_name, scheme_name) \
SCM_SNARF_HERE(static SCM c_name) \
-SCM_SNARF_INIT(c_name = scm_from_locale_symbol (scheme_name))
+SCM_SNARF_INIT(c_name = scm_from_utf8_symbol (scheme_name))
# define SCM_GLOBAL_SYMBOL(c_name, scheme_name) \
SCM_SNARF_HERE(SCM c_name) \
-SCM_SNARF_INIT(c_name = scm_from_locale_symbol (scheme_name))
+SCM_SNARF_INIT(c_name = scm_from_utf8_symbol (scheme_name))
#endif /* !SCM_SUPPORT_STATIC_ALLOCATION */
@@ -364,28 +325,6 @@ SCM_SNARF_INIT(scm_set_smob_apply((tag), (c_name), (req), (opt), (rest));)
#define SCM_IMMUTABLE_POINTER(c_name, ptr) \
SCM_IMMUTABLE_CELL (c_name, scm_tc7_pointer, ptr)
-/* for primitive-generics, add a foreign to the end */
-#define SCM_STATIC_SUBR_OBJVECT(c_name, foreign) \
- static SCM_ALIGNED (8) SCM c_name[4] = \
- { \
- SCM_PACK (scm_tc7_vector | (2 << 8)), \
- SCM_PACK (0), \
- foreign, \
- SCM_BOOL_F, /* the name */ \
- }
-
-#define SCM_STATIC_PROGRAM(c_name, objcode, objtable, freevars) \
- static SCM_ALIGNED (8) SCM_UNUSED SCM \
- scm_i_paste (c_name, _raw_cell)[] = \
- { \
- SCM_PACK (scm_tc7_program | SCM_F_PROGRAM_IS_PRIMITIVE), \
- objcode, \
- objtable, \
- freevars \
- }; \
- static SCM_UNUSED const SCM c_name = \
- SCM_PACK (& scm_i_paste (c_name, _raw_cell))
-
#endif /* SCM_SUPPORT_STATIC_ALLOCATION */