[uim-commit] r3072 - branches/r5rs/sigscheme/src

yamaken at freedesktop.org yamaken at freedesktop.org
Thu Feb 2 00:54:21 PST 2006


Author: yamaken
Date: 2006-02-02 00:54:08 -0800 (Thu, 02 Feb 2006)
New Revision: 3072

Added:
   branches/r5rs/sigscheme/src/module-sscm-ext.c
Removed:
   branches/r5rs/sigscheme/src/module-nonstd.c
Modified:
   branches/r5rs/sigscheme/src/Makefile.am
   branches/r5rs/sigscheme/src/config.h
   branches/r5rs/sigscheme/src/module.c
   branches/r5rs/sigscheme/src/procedure.c
   branches/r5rs/sigscheme/src/sigscheme.c
   branches/r5rs/sigscheme/src/sigscheme.h
   branches/r5rs/sigscheme/src/sigschemeinternal.h
   branches/r5rs/sigscheme/src/storage-compact.h
   branches/r5rs/sigscheme/src/storage-fatty.h
   branches/r5rs/sigscheme/src/storage.c
Log:
* sigscheme/src/module-nonstd.c
  - Rename to module-sscm-ext.c
* sigscheme/src/module-sscm-ext.c
  - Renamed from module-nonstd.c
  - (scm_initialize_nonstd_features, scm_initialize_sscm_extensions):
    Rename scm_initialize_nonstd_features() to
    scm_initialize_sscm_extensions()
* sigscheme/src/config.h
  - (SCM_USE_NONSTD_FEATURES, SCM_USE_SSCM_EXTENSIONS): Rename
    SCM_USE_NONSTD_FEATURES to SCM_USE_SSCM_EXTENSIONS
* sigscheme/src/Makefile.am
  - (FUNC_TABLES, libsscm_la_SOURCES): Follow the file renaming
  - Rename the function table for functable-sscm-ext.c to
    scm_sscm_ext_func_info_table
* sigscheme/src/storage-fatty.h
* sigscheme/src/storage-compact.h
* sigscheme/src/sigschemeinternal.h
* sigscheme/src/storage.c
* sigscheme/src/sigscheme.c
* sigscheme/src/sigscheme.h
* sigscheme/src/procedure.c
  - Follow the renamings
* sigscheme/src/module.c
  - (module_info_table): Ditto


Modified: branches/r5rs/sigscheme/src/Makefile.am
===================================================================
--- branches/r5rs/sigscheme/src/Makefile.am	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/Makefile.am	2006-02-02 08:54:08 UTC (rev 3072)
@@ -13,7 +13,7 @@
         functable-sscm-core.c \
         functable-r5rs-syntax.c \
         functable-r5rs-procedure.c \
-        functable-nonstd.c \
+        functable-sscm-ext.c \
         functable-siod.c \
         functable-srfi1.c \
         functable-srfi2.c \
@@ -64,8 +64,8 @@
 functable-r5rs-procedure.c: $(R5RS_PROC_SRCS) $(BUILD_FUNCTBL_DEPS)
 	$(BUILD_FUNCTBL) $@ "scm_r5rs_procedure_func_info_table" \
 	  $(R5RS_PROC_SRCS)
-functable-nonstd.c: module-nonstd.c $(BUILD_FUNCTBL_DEPS)
-	$(BUILD_FUNCTBL) $@ "scm_nonstd_func_info_table" $<
+functable-sscm-ext.c: module-sscm-ext.c $(BUILD_FUNCTBL_DEPS)
+	$(BUILD_FUNCTBL) $@ "scm_sscm_ext_func_info_table" $<
 functable-srfi1.c: module-srfi1.c $(BUILD_FUNCTBL_DEPS)
 	$(BUILD_FUNCTBL) $@ "scm_srfi1_func_info_table" $<
 functable-srfi2.c: module-srfi2.c $(BUILD_FUNCTBL_DEPS)
@@ -141,7 +141,7 @@
   libsscm_la_SOURCES += encoding.c
 endif
 if USE_NONSTD_FEATURES
-  libsscm_la_SOURCES += module-nonstd.c
+  libsscm_la_SOURCES += module-sscm-ext.c
 endif
 if COMPAT_SIOD
   libsscm_la_SOURCES += module-siod.c nullport.h nullport.c

Modified: branches/r5rs/sigscheme/src/config.h
===================================================================
--- branches/r5rs/sigscheme/src/config.h	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/config.h	2006-02-02 08:54:08 UTC (rev 3072)
@@ -60,7 +60,7 @@
 /*===========================================================================
   Optional Features
 ===========================================================================*/
-#define SCM_USE_NONSTD_FEATURES 1  /* use Non-R5RS standard features such as "require" */
+#define SCM_USE_SSCM_EXTENSIONS 1  /* use SigScheme-specific extensions */
 #define SCM_USE_LEGACY_MACRO    0  /* (not supported yet) use define-macro */
 #define SCM_USE_DUMP            0  /* (not supported yet) use storage dump */
 #define SCM_USE_EVAL_C_STRING   1  /* use scm_eval_c_string() */
@@ -196,8 +196,8 @@
 #endif /* (SCM_USE_READER || SCM_USE_WRITER) */
 
 #if SCM_COMPAT_SIOD
-#undef SCM_USE_NONSTD_FEATURES
-#define SCM_USE_NONSTD_FEATURES 1
+#undef SCM_USE_SSCM_EXTENSIONS
+#define SCM_USE_SSCM_EXTENSIONS 1
 #undef SCM_USE_SRFI60
 #define SCM_USE_SRFI60          1
 #else /* SCM_COMPAT_SIOD */

Deleted: branches/r5rs/sigscheme/src/module-nonstd.c
===================================================================
--- branches/r5rs/sigscheme/src/module-nonstd.c	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/module-nonstd.c	2006-02-02 08:54:08 UTC (rev 3072)
@@ -1,287 +0,0 @@
-/*===========================================================================
- *  FileName : module-nonstd.c
- *  About    : SigScheme-specific non standard operations
- *
- *  Copyright (C) 2005-2006 Kazuki Ohta <mover AT hct.zaq.ne.jp>
- *
- *  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *  1. Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *  2. Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *  3. Neither the name of authors nor the names of its contributors
- *     may be used to endorse or promote products derived from this software
- *     without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
- *  IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
- *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- *  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-===========================================================================*/
-
-#include "config.h"
-
-/*=======================================
-  System Include
-=======================================*/
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-
-/*=======================================
-  Local Include
-=======================================*/
-#include "sigscheme.h"
-#include "sigschemeinternal.h"
-
-/*=======================================
-  File Local Macro Definitions
-=======================================*/
-
-/*=======================================
-  File Local Type Definitions
-=======================================*/
-
-/*=======================================
-  Variable Declarations
-=======================================*/
-#include "functable-nonstd.c"
-
-/* io.c */
-extern const char *scm_lib_path;
-
-/*=======================================
-  File Local Function Declarations
-=======================================*/
-static void scm_require_internal(const char *filename);
-static ScmObj make_loaded_str(const char *filename);
-
-/*=======================================
-  Function Implementations
-=======================================*/
-void
-scm_initialize_nonstd_features(void)
-{
-    scm_register_funcs(scm_nonstd_func_info_table);
-
-    scm_define_alias("call/cc", "call-with-current-continuation");
-}
-
-/*
- * TODO:
- * - describe compatibility with de facto standard of other Scheme
- *   implementations (accept env as optional arg, etc)
- *
- * NOTE: Gauche 0.8.6 has deprecated symbol-bound? and is going to replace the
- * procedure with global-variable-bound?.
- */
-/* The implementation is fully compatible with SIOD */
-ScmObj
-scm_p_symbol_boundp(ScmObj sym, ScmObj rest)
-{
-    ScmObj env;
-    ScmRef ref;
-    DECLARE_FUNCTION("symbol-bound?", procedure_variadic_1);
-
-    ENSURE_SYMBOL(sym);
-
-    if (NULLP(rest)) {
-        env = SCM_INTERACTION_ENV;
-    } else {
-        env = POP(rest);
-        ASSERT_NO_MORE_ARG(rest);
-        ENSURE_VALID_ENV(env);
-    }
-    ref = scm_lookup_environment(sym, env);
-
-    return MAKE_BOOL(ref != SCM_INVALID_REF || SCM_SYMBOL_BOUNDP(sym));
-}
-
-/* SRFI-77 compatible */
-ScmObj
-scm_p_least_fixnum(void)
-{
-    DECLARE_FUNCTION("least-fixnum", procedure_fixed_0);
-
-    return MAKE_INT(SCM_INT_MIN);
-}
-
-/* SRFI-77 compatible */
-ScmObj
-scm_p_greatest_fixnum(void)
-{
-    DECLARE_FUNCTION("greatest-fixnum", procedure_fixed_0);
-
-    return MAKE_INT(SCM_INT_MAX);
-}
-
-/* SIOD compatible */
-ScmObj
-scm_p_load_path(void)
-{
-    DECLARE_FUNCTION("load-path", procedure_fixed_0);
-
-    return CONST_STRING(scm_lib_path);
-}
-
-void
-scm_require(const char *filename)
-{
-#if !SCM_GCC4_READY_GC
-    ScmObj stack_start;
-#endif
-
-#if SCM_GCC4_READY_GC
-    SCM_GC_PROTECTED_CALL_VOID(scm_require_internal, (filename));
-#else
-    scm_gc_protect_stack(&stack_start);
-
-    scm_require_internal(filename);
-
-    scm_gc_unprotect_stack(&stack_start);
-#endif
-}
-
-static void
-scm_require_internal(const char *filename)
-{
-    ScmObj loaded_str;
-
-    loaded_str = make_loaded_str(filename);
-    if (!scm_providedp(loaded_str)) {
-        scm_load(filename);
-        scm_provide(loaded_str);
-    }
-}
-
-ScmObj
-scm_p_require(ScmObj filename)
-{
-#if SCM_COMPAT_SIOD
-    ScmObj loaded_str, retsym;
-#endif
-    DECLARE_FUNCTION("require", procedure_fixed_1);
-
-    ENSURE_STRING(filename);
-
-    scm_require_internal(SCM_STRING_STR(filename));
-
-#if SCM_COMPAT_SIOD
-    loaded_str = make_loaded_str(SCM_STRING_STR(filename));
-    retsym = scm_intern(SCM_STRING_STR(loaded_str));
-    SCM_SYMBOL_SET_VCELL(retsym, SCM_TRUE);
-
-    return retsym;
-#else
-    return SCM_TRUE;
-#endif
-}
-
-static ScmObj
-make_loaded_str(const char *filename)
-{
-    char *loaded_str;
-    size_t size;
-
-    size = strlen(filename) + sizeof("*-loaded*");
-    loaded_str = scm_malloc(size);
-    snprintf(loaded_str, size, "*%s-loaded*", filename);
-
-    return MAKE_IMMUTABLE_STRING(loaded_str, STRLEN_UNKNOWN);
-}
-
-/*
- * TODO: replace original specification with a SRFI standard or other de facto
- * standard
- */
-ScmObj
-scm_p_provide(ScmObj feature)
-{
-    DECLARE_FUNCTION("provide", procedure_fixed_1);
-
-    ENSURE_STRING(feature);
-
-    scm_provide(feature);
-
-    return SCM_TRUE;
-}
-
-/*
- * TODO: replace original specification with a SRFI standard or other de facto
- * standard
- */
-ScmObj
-scm_p_providedp(ScmObj feature)
-{
-    DECLARE_FUNCTION("provided?", procedure_fixed_1);
-
-    ENSURE_STRING(feature);
-
-    return MAKE_BOOL(scm_providedp(feature));
-}
-
-/*
- * TODO: describe compatibility with de facto standard of other Scheme
- * implementations
- */
-ScmObj
-scm_p_file_existsp(ScmObj filepath)
-{
-    FILE *f;
-    DECLARE_FUNCTION("file-exists?", procedure_fixed_1);
-
-    ENSURE_STRING(filepath);
-
-    f = fopen(SCM_STRING_STR(filepath), "r");
-    if (!f)
-        return SCM_FALSE;
-    fclose(f);
-
-    return SCM_TRUE;
-}
-
-/* TODO: remove to ensure security */
-ScmObj
-scm_p_delete_file(ScmObj filepath)
-{
-    DECLARE_FUNCTION("delete-file", procedure_fixed_1);
-
-    ENSURE_STRING(filepath);
-
-    if (remove(SCM_STRING_STR(filepath)) == -1)
-        ERR_OBJ("delete failed. file = ", filepath);
-
-    return SCM_TRUE;
-}
-
-/* to avoid being typo of length+, this procedure did not name as length++ */
-/* FIXME: replace with a SRFI or de facto standard equivalent if exist */
-ScmObj
-scm_p_lengthstar(ScmObj lst)
-{
-    scm_int_t len;
-    DECLARE_FUNCTION("length*", procedure_fixed_1);
-
-    len = scm_length(lst);
-    if (!SCM_LISTLEN_PROPERP(len)) { /* make fast path for proper list */
-        if (SCM_LISTLEN_DOTTEDP(len))
-            len = -SCM_LISTLEN_DOTTED(len);
-        else if (SCM_LISTLEN_CIRCULARP(len))
-            return SCM_FALSE;
-    }
-
-    return MAKE_INT(len);
-}

Copied: branches/r5rs/sigscheme/src/module-sscm-ext.c (from rev 3067, branches/r5rs/sigscheme/src/module-nonstd.c)
===================================================================
--- branches/r5rs/sigscheme/src/module-nonstd.c	2006-02-02 05:26:08 UTC (rev 3067)
+++ branches/r5rs/sigscheme/src/module-sscm-ext.c	2006-02-02 08:54:08 UTC (rev 3072)
@@ -0,0 +1,287 @@
+/*===========================================================================
+ *  FileName : module-sscm-ext.c
+ *  About    : SigScheme-specific extensions
+ *
+ *  Copyright (C) 2005-2006 Kazuki Ohta <mover AT hct.zaq.ne.jp>
+ *
+ *  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *  3. Neither the name of authors nor the names of its contributors
+ *     may be used to endorse or promote products derived from this software
+ *     without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ *  IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ *  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+===========================================================================*/
+
+#include "config.h"
+
+/*=======================================
+  System Include
+=======================================*/
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+
+/*=======================================
+  Local Include
+=======================================*/
+#include "sigscheme.h"
+#include "sigschemeinternal.h"
+
+/*=======================================
+  File Local Macro Definitions
+=======================================*/
+
+/*=======================================
+  File Local Type Definitions
+=======================================*/
+
+/*=======================================
+  Variable Declarations
+=======================================*/
+#include "functable-sscm-ext.c"
+
+/* io.c */
+extern const char *scm_lib_path;
+
+/*=======================================
+  File Local Function Declarations
+=======================================*/
+static void scm_require_internal(const char *filename);
+static ScmObj make_loaded_str(const char *filename);
+
+/*=======================================
+  Function Implementations
+=======================================*/
+void
+scm_initialize_sscm_extensions(void)
+{
+    scm_register_funcs(scm_sscm_ext_func_info_table);
+
+    scm_define_alias("call/cc", "call-with-current-continuation");
+}
+
+/*
+ * TODO:
+ * - describe compatibility with de facto standard of other Scheme
+ *   implementations (accept env as optional arg, etc)
+ *
+ * NOTE: Gauche 0.8.6 has deprecated symbol-bound? and is going to replace the
+ * procedure with global-variable-bound?.
+ */
+/* The implementation is fully compatible with SIOD */
+ScmObj
+scm_p_symbol_boundp(ScmObj sym, ScmObj rest)
+{
+    ScmObj env;
+    ScmRef ref;
+    DECLARE_FUNCTION("symbol-bound?", procedure_variadic_1);
+
+    ENSURE_SYMBOL(sym);
+
+    if (NULLP(rest)) {
+        env = SCM_INTERACTION_ENV;
+    } else {
+        env = POP(rest);
+        ASSERT_NO_MORE_ARG(rest);
+        ENSURE_VALID_ENV(env);
+    }
+    ref = scm_lookup_environment(sym, env);
+
+    return MAKE_BOOL(ref != SCM_INVALID_REF || SCM_SYMBOL_BOUNDP(sym));
+}
+
+/* SRFI-77 compatible */
+ScmObj
+scm_p_least_fixnum(void)
+{
+    DECLARE_FUNCTION("least-fixnum", procedure_fixed_0);
+
+    return MAKE_INT(SCM_INT_MIN);
+}
+
+/* SRFI-77 compatible */
+ScmObj
+scm_p_greatest_fixnum(void)
+{
+    DECLARE_FUNCTION("greatest-fixnum", procedure_fixed_0);
+
+    return MAKE_INT(SCM_INT_MAX);
+}
+
+/* SIOD compatible */
+ScmObj
+scm_p_load_path(void)
+{
+    DECLARE_FUNCTION("load-path", procedure_fixed_0);
+
+    return CONST_STRING(scm_lib_path);
+}
+
+void
+scm_require(const char *filename)
+{
+#if !SCM_GCC4_READY_GC
+    ScmObj stack_start;
+#endif
+
+#if SCM_GCC4_READY_GC
+    SCM_GC_PROTECTED_CALL_VOID(scm_require_internal, (filename));
+#else
+    scm_gc_protect_stack(&stack_start);
+
+    scm_require_internal(filename);
+
+    scm_gc_unprotect_stack(&stack_start);
+#endif
+}
+
+static void
+scm_require_internal(const char *filename)
+{
+    ScmObj loaded_str;
+
+    loaded_str = make_loaded_str(filename);
+    if (!scm_providedp(loaded_str)) {
+        scm_load(filename);
+        scm_provide(loaded_str);
+    }
+}
+
+ScmObj
+scm_p_require(ScmObj filename)
+{
+#if SCM_COMPAT_SIOD
+    ScmObj loaded_str, retsym;
+#endif
+    DECLARE_FUNCTION("require", procedure_fixed_1);
+
+    ENSURE_STRING(filename);
+
+    scm_require_internal(SCM_STRING_STR(filename));
+
+#if SCM_COMPAT_SIOD
+    loaded_str = make_loaded_str(SCM_STRING_STR(filename));
+    retsym = scm_intern(SCM_STRING_STR(loaded_str));
+    SCM_SYMBOL_SET_VCELL(retsym, SCM_TRUE);
+
+    return retsym;
+#else
+    return SCM_TRUE;
+#endif
+}
+
+static ScmObj
+make_loaded_str(const char *filename)
+{
+    char *loaded_str;
+    size_t size;
+
+    size = strlen(filename) + sizeof("*-loaded*");
+    loaded_str = scm_malloc(size);
+    snprintf(loaded_str, size, "*%s-loaded*", filename);
+
+    return MAKE_IMMUTABLE_STRING(loaded_str, STRLEN_UNKNOWN);
+}
+
+/*
+ * TODO: replace original specification with a SRFI standard or other de facto
+ * standard
+ */
+ScmObj
+scm_p_provide(ScmObj feature)
+{
+    DECLARE_FUNCTION("provide", procedure_fixed_1);
+
+    ENSURE_STRING(feature);
+
+    scm_provide(feature);
+
+    return SCM_TRUE;
+}
+
+/*
+ * TODO: replace original specification with a SRFI standard or other de facto
+ * standard
+ */
+ScmObj
+scm_p_providedp(ScmObj feature)
+{
+    DECLARE_FUNCTION("provided?", procedure_fixed_1);
+
+    ENSURE_STRING(feature);
+
+    return MAKE_BOOL(scm_providedp(feature));
+}
+
+/*
+ * TODO: describe compatibility with de facto standard of other Scheme
+ * implementations
+ */
+ScmObj
+scm_p_file_existsp(ScmObj filepath)
+{
+    FILE *f;
+    DECLARE_FUNCTION("file-exists?", procedure_fixed_1);
+
+    ENSURE_STRING(filepath);
+
+    f = fopen(SCM_STRING_STR(filepath), "r");
+    if (!f)
+        return SCM_FALSE;
+    fclose(f);
+
+    return SCM_TRUE;
+}
+
+/* TODO: remove to ensure security */
+ScmObj
+scm_p_delete_file(ScmObj filepath)
+{
+    DECLARE_FUNCTION("delete-file", procedure_fixed_1);
+
+    ENSURE_STRING(filepath);
+
+    if (remove(SCM_STRING_STR(filepath)) == -1)
+        ERR_OBJ("delete failed. file = ", filepath);
+
+    return SCM_TRUE;
+}
+
+/* to avoid being typo of length+, this procedure did not name as length++ */
+/* FIXME: replace with a SRFI or de facto standard equivalent if exist */
+ScmObj
+scm_p_lengthstar(ScmObj lst)
+{
+    scm_int_t len;
+    DECLARE_FUNCTION("length*", procedure_fixed_1);
+
+    len = scm_length(lst);
+    if (!SCM_LISTLEN_PROPERP(len)) { /* make fast path for proper list */
+        if (SCM_LISTLEN_DOTTEDP(len))
+            len = -SCM_LISTLEN_DOTTED(len);
+        else if (SCM_LISTLEN_CIRCULARP(len))
+            return SCM_FALSE;
+    }
+
+    return MAKE_INT(len);
+}

Modified: branches/r5rs/sigscheme/src/module.c
===================================================================
--- branches/r5rs/sigscheme/src/module.c	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/module.c	2006-02-02 08:54:08 UTC (rev 3072)
@@ -64,8 +64,8 @@
 static ScmObj features;
 
 static struct module_info module_info_table[] = {
-#if SCM_USE_NONSTD_FEATURES
-    {"sscm", scm_initialize_nonstd_features},
+#if SCM_USE_SSCM_EXTENSIONS
+    {"sscm-ext", scm_initialize_sscm_extensions},
 #endif
 #if SCM_USE_SRFI1
     {"srfi-1", scm_initialize_srfi1},

Modified: branches/r5rs/sigscheme/src/procedure.c
===================================================================
--- branches/r5rs/sigscheme/src/procedure.c	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/procedure.c	2006-02-02 08:54:08 UTC (rev 3072)
@@ -178,7 +178,7 @@
         }
         return SCM_TRUE;
 
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
     case ScmCPointer:
         return MAKE_BOOL(SCM_C_POINTER_VALUE(obj1)
                          == SCM_C_POINTER_VALUE(obj2));

Modified: branches/r5rs/sigscheme/src/sigscheme.c
===================================================================
--- branches/r5rs/sigscheme/src/sigscheme.c	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/sigscheme.c	2006-02-02 08:54:08 UTC (rev 3072)
@@ -131,8 +131,8 @@
     /* R5RS Procedures */
     scm_register_funcs(scm_r5rs_procedure_func_info_table);
 
-#if SCM_USE_NONSTD_FEATURES
-    scm_use("sscm");
+#if SCM_USE_SSCM_EXTENSIONS
+    scm_use("sscm-ext");
 #endif
 
     /*=======================================================================

Modified: branches/r5rs/sigscheme/src/sigscheme.h
===================================================================
--- branches/r5rs/sigscheme/src/sigscheme.h	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/sigscheme.h	2006-02-02 08:54:08 UTC (rev 3072)
@@ -712,12 +712,12 @@
     SCM_SAL_MAKE_IMMUTABLE_VECTOR((vec), (len))
 #define SCM_MAKE_PORT(cport, flag)        SCM_SAL_MAKE_PORT((cport), (flag))
 #define SCM_MAKE_CONTINUATION()           SCM_SAL_MAKE_CONTINUATION()
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
 /* SCM_MAKE_C_POINTER(void *ptr) */
 #define SCM_MAKE_C_POINTER(ptr)           SCM_SAL_MAKE_C_POINTER(ptr)
 /* SCM_MAKE_C_FUNCPOINTER(ScmCFunc ptr) */
 #define SCM_MAKE_C_FUNCPOINTER(ptr)       SCM_SAL_MAKE_C_FUNCPOINTER(ptr)
-#endif /* SCM_USE_NONSTD_FEATURES */
+#endif /* SCM_USE_SSCM_EXTENSIONS */
 #define SCM_MAKE_VALUEPACKET(vals)        SCM_SAL_MAKE_VALUEPACKET(vals)
 
 /*=======================================
@@ -1318,9 +1318,9 @@
 ScmObj scm_p_cddddr(ScmObj lst);
 #endif /* SCM_USE_DEEP_CADRS */
 
-/* module-nonstd.c */
-#if SCM_USE_NONSTD_FEATURES
-void scm_initialize_nonstd_features(void);
+/* module-sscm-ext.c */
+#if SCM_USE_SSCM_EXTENSIONS
+void scm_initialize_sscm_extensions(void);
 ScmObj scm_p_symbol_boundp(ScmObj sym, ScmObj rest);
 ScmObj scm_p_least_fixnum(void);
 ScmObj scm_p_greatest_fixnum(void);

Modified: branches/r5rs/sigscheme/src/sigschemeinternal.h
===================================================================
--- branches/r5rs/sigscheme/src/sigschemeinternal.h	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/sigschemeinternal.h	2006-02-02 08:54:08 UTC (rev 3072)
@@ -206,10 +206,10 @@
 #define MAKE_IMMUTABLE_VECTOR         SCM_MAKE_IMMUTABLE_VECTOR
 #define MAKE_PORT                     SCM_MAKE_PORT
 #define MAKE_CONTINUATION             SCM_MAKE_CONTINUATION
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
 #define MAKE_C_POINTER                SCM_MAKE_C_POINTER
 #define MAKE_C_FUNCPOINTER            SCM_MAKE_C_FUNCPOINTER
-#endif /* SCM_USE_NONSTD_FEATURES */
+#endif /* SCM_USE_SSCM_EXTENSIONS */
 #define MAKE_VALUEPACKET              SCM_MAKE_VALUEPACKET
 
 #define NUMBERP        SCM_NUMBERP

Modified: branches/r5rs/sigscheme/src/storage-compact.h
===================================================================
--- branches/r5rs/sigscheme/src/storage-compact.h	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/storage-compact.h	2006-02-02 08:54:08 UTC (rev 3072)
@@ -711,10 +711,10 @@
 #define SCM_SAL_MAKE_IMMUTABLE_VECTOR         scm_make_immutable_vector
 #define SCM_SAL_MAKE_PORT                     scm_make_port
 #define SCM_SAL_MAKE_CONTINUATION             scm_make_continuation
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
 #define SCM_SAL_MAKE_C_POINTER                scm_make_cpointer
 #define SCM_SAL_MAKE_C_FUNCPOINTER            scm_make_cfunc_pointer
-#endif /* SCM_USE_NONSTD_FEATURES */
+#endif /* SCM_USE_SSCM_EXTENSIONS */
 #define SCM_SAL_MAKE_VALUEPACKET              scm_make_value_packet
 
 /* Don't use these functions directly. Use SCM_MAKE_*() or MAKE_*() instead to
@@ -740,7 +740,7 @@
 #if !SCM_USE_VALUECONS
 ScmObj scm_make_value_packet(ScmObj values);
 #endif
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
 ScmObj scm_make_cpointer(void *ptr);
 ScmObj scm_make_cfunc_pointer(ScmCFunc ptr);
 #endif

Modified: branches/r5rs/sigscheme/src/storage-fatty.h
===================================================================
--- branches/r5rs/sigscheme/src/storage-fatty.h	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/storage-fatty.h	2006-02-02 08:54:08 UTC (rev 3072)
@@ -224,10 +224,10 @@
 #define SCM_SAL_MAKE_IMMUTABLE_VECTOR         scm_make_immutable_vector
 #define SCM_SAL_MAKE_PORT                     scm_make_port
 #define SCM_SAL_MAKE_CONTINUATION             scm_make_continuation
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
 #define SCM_SAL_MAKE_C_POINTER                scm_make_cpointer
 #define SCM_SAL_MAKE_C_FUNCPOINTER            scm_make_cfunc_pointer
-#endif /* SCM_USE_NONSTD_FEATURES */
+#endif /* SCM_USE_SSCM_EXTENSIONS */
 #if SCM_USE_VALUECONS
 #define SCM_SAL_MAKE_VALUEPACKET(vals)                                       \
     (NULLP(vals) ? scm_null_values : (SCM_ENTYPE_VALUEPACKET(vals), (vals)))
@@ -255,7 +255,7 @@
 #if !SCM_USE_VALUECONS
 ScmObj scm_make_value_packet(ScmObj values);
 #endif
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
 ScmObj scm_make_cpointer(void *ptr);
 ScmObj scm_make_cfunc_pointer(ScmCFunc ptr);
 #endif

Modified: branches/r5rs/sigscheme/src/storage.c
===================================================================
--- branches/r5rs/sigscheme/src/storage.c	2006-02-02 07:25:56 UTC (rev 3071)
+++ branches/r5rs/sigscheme/src/storage.c	2006-02-02 08:54:08 UTC (rev 3072)
@@ -377,7 +377,7 @@
 }
 #endif
 
-#if SCM_USE_NONSTD_FEATURES
+#if SCM_USE_SSCM_EXTENSIONS
 ScmObj
 scm_make_cpointer(void *ptr)
 {
@@ -401,7 +401,7 @@
 
     return obj;
 }
-#endif /* SCM_USE_NONSTD_FEATURES */
+#endif /* SCM_USE_SSCM_EXTENSIONS */
 
 #if SCM_OBJ_COMPACT
 enum ScmObjType



More information about the uim-commit mailing list