(obarray_enter, obarray_replace): Call SCM_HASHTABLE_INCREMENT when
[bpt/guile.git] / libguile / environments.c
index 92b46f5..d3ef152 100644 (file)
@@ -118,7 +118,7 @@ SCM_DEFINE (scm_environment_bound_p, "environment-bound?", 2, 0, 0,
 #define FUNC_NAME s_scm_environment_bound_p
 {
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, FUNC_NAME);
-  SCM_ASSERT (SCM_SYMBOLP (sym), sym, SCM_ARG2, FUNC_NAME);
+  SCM_ASSERT (scm_is_symbol (sym), sym, SCM_ARG2, FUNC_NAME);
 
   return scm_from_bool (SCM_ENVIRONMENT_BOUND_P (env, sym));
 }
@@ -135,7 +135,7 @@ SCM_DEFINE (scm_environment_ref, "environment-ref", 2, 0, 0,
   SCM val;
 
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, FUNC_NAME);
-  SCM_ASSERT (SCM_SYMBOLP (sym), sym, SCM_ARG2, FUNC_NAME);
+  SCM_ASSERT (scm_is_symbol (sym), sym, SCM_ARG2, FUNC_NAME);
 
   val = SCM_ENVIRONMENT_REF (env, sym);
 
@@ -155,7 +155,7 @@ SCM
 scm_c_environment_ref (SCM env, SCM sym)
 {
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, "scm_c_environment_ref");
-  SCM_ASSERT (SCM_SYMBOLP (sym), sym, SCM_ARG2, "scm_c_environment_ref");
+  SCM_ASSERT (scm_is_symbol (sym), sym, SCM_ARG2, "scm_c_environment_ref");
   return SCM_ENVIRONMENT_REF (env, sym);
 }
 
@@ -203,7 +203,7 @@ SCM_DEFINE (scm_environment_fold, "environment-fold", 3, 0, 0,
 #define FUNC_NAME s_scm_environment_fold
 {
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, FUNC_NAME);
-  SCM_ASSERT (SCM_EQ_P (scm_procedure_p (proc), SCM_BOOL_T), 
+  SCM_ASSERT (scm_is_true (scm_procedure_p (proc)), 
              proc, SCM_ARG2, FUNC_NAME);
 
   return SCM_ENVIRONMENT_FOLD (env, environment_default_folder, proc, init);
@@ -240,13 +240,13 @@ SCM_DEFINE (scm_environment_define, "environment-define", 3, 0, 0,
   SCM status;
 
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, FUNC_NAME);
-  SCM_ASSERT (SCM_SYMBOLP (sym), sym, SCM_ARG2, FUNC_NAME);
+  SCM_ASSERT (scm_is_symbol (sym), sym, SCM_ARG2, FUNC_NAME);
 
   status = SCM_ENVIRONMENT_DEFINE (env, sym, val);
 
-  if (SCM_EQ_P (status, SCM_ENVIRONMENT_SUCCESS))
+  if (scm_is_eq (status, SCM_ENVIRONMENT_SUCCESS))
     return SCM_UNSPECIFIED;
-  else if (SCM_EQ_P (status, SCM_ENVIRONMENT_BINDING_IMMUTABLE))
+  else if (scm_is_eq (status, SCM_ENVIRONMENT_BINDING_IMMUTABLE))
     scm_error_environment_immutable_binding (FUNC_NAME, env, sym);
   else
     abort();
@@ -266,13 +266,13 @@ SCM_DEFINE (scm_environment_undefine, "environment-undefine", 2, 0, 0,
   SCM status;
 
   SCM_ASSERT(SCM_ENVIRONMENT_P(env), env, SCM_ARG1, FUNC_NAME);
-  SCM_ASSERT(SCM_SYMBOLP(sym), sym, SCM_ARG2, FUNC_NAME);
+  SCM_ASSERT(scm_is_symbol(sym), sym, SCM_ARG2, FUNC_NAME);
 
   status = SCM_ENVIRONMENT_UNDEFINE (env, sym);
 
-  if (SCM_EQ_P (status, SCM_ENVIRONMENT_SUCCESS))
+  if (scm_is_eq (status, SCM_ENVIRONMENT_SUCCESS))
     return SCM_UNSPECIFIED;
-  else if (SCM_EQ_P (status, SCM_ENVIRONMENT_BINDING_IMMUTABLE))
+  else if (scm_is_eq (status, SCM_ENVIRONMENT_BINDING_IMMUTABLE))
     scm_error_environment_immutable_binding (FUNC_NAME, env, sym);
   else
     abort();
@@ -294,15 +294,15 @@ SCM_DEFINE (scm_environment_set_x, "environment-set!", 3, 0, 0,
   SCM status;
 
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, FUNC_NAME);
-  SCM_ASSERT (SCM_SYMBOLP (sym), sym, SCM_ARG2, FUNC_NAME);
+  SCM_ASSERT (scm_is_symbol (sym), sym, SCM_ARG2, FUNC_NAME);
 
   status = SCM_ENVIRONMENT_SET (env, sym, val);
 
-  if (SCM_EQ_P (status, SCM_ENVIRONMENT_SUCCESS))
+  if (scm_is_eq (status, SCM_ENVIRONMENT_SUCCESS))
     return SCM_UNSPECIFIED;
   else if (SCM_UNBNDP (status))
     scm_error_environment_unbound (FUNC_NAME, env, sym);
-  else if (SCM_EQ_P (status, SCM_ENVIRONMENT_LOCATION_IMMUTABLE))
+  else if (scm_is_eq (status, SCM_ENVIRONMENT_LOCATION_IMMUTABLE))
     scm_error_environment_immutable_binding (FUNC_NAME, env, sym);
   else
     abort();
@@ -329,7 +329,7 @@ SCM_DEFINE (scm_environment_cell, "environment-cell", 3, 0, 0,
   SCM location;
 
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, FUNC_NAME);
-  SCM_ASSERT (SCM_SYMBOLP (sym), sym, SCM_ARG2, FUNC_NAME);
+  SCM_ASSERT (scm_is_symbol (sym), sym, SCM_ARG2, FUNC_NAME);
   SCM_ASSERT (scm_is_bool (for_write), for_write, SCM_ARG3, FUNC_NAME);
 
   location = SCM_ENVIRONMENT_CELL (env, sym, scm_is_true (for_write));
@@ -337,7 +337,7 @@ SCM_DEFINE (scm_environment_cell, "environment-cell", 3, 0, 0,
     return location;
   else if (SCM_UNBNDP (location))
     scm_error_environment_unbound (FUNC_NAME, env, sym);
-  else if (SCM_EQ_P (location, SCM_ENVIRONMENT_LOCATION_IMMUTABLE))
+  else if (scm_is_eq (location, SCM_ENVIRONMENT_LOCATION_IMMUTABLE))
     scm_error_environment_immutable_location (FUNC_NAME, env, sym);
   else /* no cell */
     return location;
@@ -355,7 +355,7 @@ SCM
 scm_c_environment_cell(SCM env, SCM sym, int for_write)
 {
   SCM_ASSERT (SCM_ENVIRONMENT_P (env), env, SCM_ARG1, "scm_c_environment_cell");
-  SCM_ASSERT (SCM_SYMBOLP (sym), sym, SCM_ARG2, "scm_c_environment_cell");
+  SCM_ASSERT (scm_is_symbol (sym), sym, SCM_ARG2, "scm_c_environment_cell");
 
   return SCM_ENVIRONMENT_CELL (env, sym, for_write);
 }
@@ -480,11 +480,11 @@ observer_mark (SCM observer)
 static int
 observer_print (SCM type, SCM port, scm_print_state *pstate SCM_UNUSED)
 {
-  SCM address = scm_ulong2num (SCM_UNPACK (type));
-  SCM base16 = scm_number_to_string (address, SCM_MAKINUM (16));
+  SCM address = scm_from_size_t (SCM_UNPACK (type));
+  SCM base16 = scm_number_to_string (address, scm_from_int (16));
 
   scm_puts ("#<observer ", port);
-  scm_puts (SCM_STRING_CHARS (base16), port);
+  scm_display (base16, port);
   scm_puts (">", port);
 
   return 1;
@@ -507,10 +507,11 @@ observer_print (SCM type, SCM port, scm_print_state *pstate SCM_UNUSED)
 static SCM
 obarray_enter (SCM obarray, SCM symbol, SCM data)
 {
-  size_t hash = SCM_SYMBOL_HASH (symbol) % SCM_HASHTABLE_N_BUCKETS (obarray);
+  size_t hash = scm_i_symbol_hash (symbol) % SCM_HASHTABLE_N_BUCKETS (obarray);
   SCM entry = scm_cons (symbol, data);
-  SCM slot = scm_cons (entry, SCM_HASHTABLE_BUCKETS (obarray)[hash]);
+  SCM slot = scm_cons (entry, SCM_HASHTABLE_BUCKET (obarray, hash));
   SCM_SET_HASHTABLE_BUCKET  (obarray, hash, slot);
+  SCM_HASHTABLE_INCREMENT (obarray);
   if (SCM_HASHTABLE_N_ITEMS (obarray) > SCM_HASHTABLE_UPPER (obarray))
     scm_i_rehash (obarray, scm_i_hash_symbol, 0, "obarray_enter");
 
@@ -525,25 +526,26 @@ obarray_enter (SCM obarray, SCM symbol, SCM data)
 static SCM
 obarray_replace (SCM obarray, SCM symbol, SCM data)
 {
-  size_t hash = SCM_SYMBOL_HASH (symbol) % SCM_HASHTABLE_N_BUCKETS (obarray);
+  size_t hash = scm_i_symbol_hash (symbol) % SCM_HASHTABLE_N_BUCKETS (obarray);
   SCM new_entry = scm_cons (symbol, data);
   SCM lsym;
   SCM slot;
 
-  for (lsym = SCM_HASHTABLE_BUCKETS (obarray)[hash];
-       !SCM_NULLP (lsym);
+  for (lsym = SCM_HASHTABLE_BUCKET (obarray, hash);
+       !scm_is_null (lsym);
        lsym = SCM_CDR (lsym))
     {
       SCM old_entry = SCM_CAR (lsym);
-      if (SCM_EQ_P (SCM_CAR (old_entry), symbol))
+      if (scm_is_eq (SCM_CAR (old_entry), symbol))
        {
          SCM_SETCAR (lsym, new_entry);
          return old_entry;
        }
     }
 
-  slot = scm_cons (new_entry, SCM_HASHTABLE_BUCKETS (obarray)[hash]);
+  slot = scm_cons (new_entry, SCM_HASHTABLE_BUCKET (obarray, hash));
   SCM_SET_HASHTABLE_BUCKET (obarray, hash, slot);
+  SCM_HASHTABLE_INCREMENT (obarray);
   if (SCM_HASHTABLE_N_ITEMS (obarray) > SCM_HASHTABLE_UPPER (obarray))
     scm_i_rehash (obarray, scm_i_hash_symbol, 0, "obarray_replace");
 
@@ -557,15 +559,15 @@ obarray_replace (SCM obarray, SCM symbol, SCM data)
 static SCM
 obarray_retrieve (SCM obarray, SCM sym)
 {
-  size_t hash = SCM_SYMBOL_HASH (sym) % SCM_HASHTABLE_N_BUCKETS (obarray);
+  size_t hash = scm_i_symbol_hash (sym) % SCM_HASHTABLE_N_BUCKETS (obarray);
   SCM lsym;
 
-  for (lsym = SCM_HASHTABLE_BUCKETS (obarray)[hash];
-       !SCM_NULLP (lsym);
+  for (lsym = SCM_HASHTABLE_BUCKET (obarray, hash);
+       !scm_is_null (lsym);
        lsym = SCM_CDR (lsym))
     {
       SCM entry = SCM_CAR (lsym);
-      if (SCM_EQ_P (SCM_CAR (entry), sym))
+      if (scm_is_eq (SCM_CAR (entry), sym))
        return entry;
     }
 
@@ -580,11 +582,11 @@ obarray_retrieve (SCM obarray, SCM sym)
 static SCM
 obarray_remove (SCM obarray, SCM sym)
 {
-  size_t hash = SCM_SYMBOL_HASH (sym) % SCM_HASHTABLE_N_BUCKETS (obarray);
-  SCM table_entry = SCM_HASHTABLE_BUCKETS (obarray)[hash];
+  size_t hash = scm_i_symbol_hash (sym) % SCM_HASHTABLE_N_BUCKETS (obarray);
+  SCM table_entry = SCM_HASHTABLE_BUCKET (obarray, hash);
   SCM handle = scm_sloppy_assq (sym, table_entry);
 
-  if (SCM_CONSP (handle))
+  if (scm_is_pair (handle))
     {
       SCM new_table_entry = scm_delq1_x (handle, table_entry);
       SCM_SET_HASHTABLE_BUCKET (obarray, hash, new_table_entry);
@@ -634,9 +636,9 @@ struct core_environments_base {
 #define CORE_ENVIRONMENT_WEAK_OBSERVER_VECTOR(env) \
   (CORE_ENVIRONMENTS_BASE (env)->weak_observers)
 #define CORE_ENVIRONMENT_WEAK_OBSERVERS(env) \
-  (SCM_VELTS (CORE_ENVIRONMENT_WEAK_OBSERVER_VECTOR (env)) [0])
+  (scm_c_vector_ref (CORE_ENVIRONMENT_WEAK_OBSERVER_VECTOR (env), 0))
 #define SCM_SET_CORE_ENVIRONMENT_WEAK_OBSERVERS(env, v) \
-  (SCM_VECTOR_SET (CORE_ENVIRONMENT_WEAK_OBSERVER_VECTOR (env), 0, (v)))
+  (scm_c_vector_set_x (CORE_ENVIRONMENT_WEAK_OBSERVER_VECTOR (env), 0, (v)))
 
 \f
 
@@ -675,14 +677,14 @@ core_environments_unobserve (SCM env, SCM observer)
        ? CORE_ENVIRONMENT_WEAK_OBSERVERS (env)
        : CORE_ENVIRONMENT_OBSERVERS (env);
 
-      if (!SCM_NULLP (l))
+      if (!scm_is_null (l))
        {
          SCM rest = SCM_CDR (l);
          SCM first = handling_weaks
            ? SCM_CDAR (l)
            : SCM_CAR (l);
 
-         if (SCM_EQ_P (first, observer))
+         if (scm_is_eq (first, observer))
            {
              /* Remove the first observer */
              handling_weaks
@@ -694,13 +696,13 @@ core_environments_unobserve (SCM env, SCM observer)
          do {
            SCM rest = SCM_CDR (l);
 
-           if (!SCM_NULLP (rest)) 
+           if (!scm_is_null (rest)) 
              {
                SCM next = handling_weaks
                  ? SCM_CDAR (l)
                  : SCM_CAR (l);
 
-               if (SCM_EQ_P (next, observer))
+               if (scm_is_eq (next, observer))
                  {
                    SCM_SETCDR (l, SCM_CDR (rest));
                    return;
@@ -708,7 +710,7 @@ core_environments_unobserve (SCM env, SCM observer)
              }
 
            l = rest;
-         } while (!SCM_NULLP (l));
+         } while (!scm_is_null (l));
        }
     }
 
@@ -745,7 +747,7 @@ core_environments_init (struct core_environments_base *body,
 {
   body->funcs = funcs;
   body->observers = SCM_EOL;
-  body->weak_observers = scm_make_weak_value_alist_vector (SCM_MAKINUM (1));
+  body->weak_observers = scm_make_weak_value_alist_vector (scm_from_int (1));
 }
 
 
@@ -787,7 +789,8 @@ update_catch_handler (void *ptr, SCM tag, SCM args)
 {
   struct update_data *data = (struct update_data *) ptr;
   SCM observer = data->observer;
-  SCM message = scm_makfrom0str ("Observer `~A' signals `~A' error: ~S");
+  SCM message =
+    scm_from_locale_string ("Observer `~A' signals `~A' error: ~S");
 
   return scm_cons (message, scm_list_3 (observer, tag, args));
 }
@@ -806,7 +809,7 @@ core_environments_broadcast (SCM env)
        ? CORE_ENVIRONMENT_WEAK_OBSERVERS (env)
        : CORE_ENVIRONMENT_OBSERVERS (env);
 
-      for (; !SCM_NULLP (observers); observers = SCM_CDR (observers))
+      for (; !scm_is_null (observers); observers = SCM_CDR (observers))
        {
           struct update_data data;
          SCM observer = handling_weaks
@@ -826,7 +829,7 @@ core_environments_broadcast (SCM env)
        }
     }
 
-  if (!SCM_NULLP (errors))
+  if (!scm_is_null (errors))
     {
       /* Dirk:FIXME:: As soon as scm_misc_error is fixed to handle the name
        * parameter correctly it should not be necessary any more to also pass
@@ -886,8 +889,8 @@ leaf_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM init)
   for (i = 0; i < SCM_HASHTABLE_N_BUCKETS (obarray); i++)
     {
       SCM l;
-      for (l = SCM_HASHTABLE_BUCKETS (obarray)[i];
-          !SCM_NULLP (l);
+      for (l = SCM_HASHTABLE_BUCKET (obarray, i);
+          !scm_is_null (l);
           l = SCM_CDR (l))
        {
          SCM binding = SCM_CAR (l);
@@ -978,11 +981,11 @@ leaf_environment_free (SCM env)
 static int
 leaf_environment_print (SCM type, SCM port, scm_print_state *pstate SCM_UNUSED)
 {
-  SCM address = scm_ulong2num (SCM_UNPACK (type));
-  SCM base16 = scm_number_to_string (address, SCM_MAKINUM (16));
+  SCM address = scm_from_size_t (SCM_UNPACK (type));
+  SCM base16 = scm_number_to_string (address, scm_from_int (16));
 
   scm_puts ("#<leaf environment ", port);
-  scm_puts (SCM_STRING_CHARS (base16), port);
+  scm_display (base16, port);
   scm_puts (">", port);
 
   return 1;
@@ -1084,9 +1087,9 @@ struct eval_environment {
 #define EVAL_ENVIRONMENT(env) \
   ((struct eval_environment *) SCM_CELL_WORD_1 (env))
 
-#define IMMUTABLE SCM_MAKINUM (0)
-#define MUTABLE   SCM_MAKINUM (1)
-#define UNKNOWN   SCM_MAKINUM (2)
+#define IMMUTABLE SCM_I_MAKINUM (0)
+#define MUTABLE   SCM_I_MAKINUM (1)
+#define UNKNOWN   SCM_I_MAKINUM (2)
 
 #define CACHED_LOCATION(x) SCM_CAR (x)
 #define CACHED_MUTABILITY(x) SCM_CADR (x)
@@ -1113,7 +1116,7 @@ eval_environment_lookup (SCM env, SCM sym, int for_write)
 
       SCM entry = SCM_CDR (binding);
 
-      if (SCM_CONSP (entry))
+      if (scm_is_pair (entry))
        {
          /* The entry in the obarray is a cached location. */
 
@@ -1124,15 +1127,15 @@ eval_environment_lookup (SCM env, SCM sym, int for_write)
            return location;
 
          mutability = CACHED_MUTABILITY (entry);
-         if (SCM_EQ_P (mutability, MUTABLE))
+         if (scm_is_eq (mutability, MUTABLE))
            return location;
 
-         if (SCM_EQ_P (mutability, UNKNOWN))
+         if (scm_is_eq (mutability, UNKNOWN))
            {
              SCM source_env = CACHED_SOURCE_ENVIRONMENT (entry);
              SCM location = SCM_ENVIRONMENT_CELL (source_env, sym, 1);
 
-             if (SCM_CONSP (location))
+             if (scm_is_pair (location))
                {
                  SET_CACHED_MUTABILITY (entry, MUTABLE);
                  return location;
@@ -1172,14 +1175,14 @@ eval_environment_lookup (SCM env, SCM sym, int for_write)
 
          if (!SCM_UNBNDP (location))
            {
-             if (SCM_CONSP (location))
+             if (scm_is_pair (location))
                {
                  SCM mutability = for_write ? MUTABLE : UNKNOWN;
                  SCM entry = scm_cons2 (location, mutability, source_env);
                  obarray_enter (obarray, sym, entry);
                  return location;
                }
-             else if (SCM_EQ_P (location, SCM_ENVIRONMENT_LOCATION_NO_CELL))
+             else if (scm_is_eq (location, SCM_ENVIRONMENT_LOCATION_NO_CELL))
                {
                  obarray_enter (obarray, sym, source_env);
                  return source_env;
@@ -1202,7 +1205,7 @@ eval_environment_ref (SCM env, SCM sym)
 {
   SCM location = eval_environment_lookup (env, sym, 0);
 
-  if (SCM_CONSP (location))
+  if (scm_is_pair (location))
     return SCM_CDR (location);
   else if (!SCM_UNBNDP (location))
     return SCM_ENVIRONMENT_REF (location, sym);
@@ -1220,7 +1223,7 @@ eval_environment_folder (SCM extended_data, SCM symbol, SCM value, SCM tail)
   if (!SCM_ENVIRONMENT_BOUND_P (local, symbol))
     {
       SCM proc_as_nr = SCM_CADR (extended_data);
-      unsigned long int proc_as_ul = scm_num2ulong (proc_as_nr, 0, NULL);
+      unsigned long int proc_as_ul = scm_to_ulong (proc_as_nr);
       scm_environment_folder proc = (scm_environment_folder) proc_as_ul;
       SCM data = SCM_CDDR (extended_data);
 
@@ -1238,7 +1241,7 @@ eval_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM init)
 {
   SCM local = EVAL_ENVIRONMENT (env)->local;
   SCM imported = EVAL_ENVIRONMENT (env)->imported;
-  SCM proc_as_nr = scm_ulong2num ((unsigned long int) proc);
+  SCM proc_as_nr = scm_from_ulong ((unsigned long) proc);
   SCM extended_data = scm_cons2 (local, proc_as_nr, data);
   SCM tmp_result = scm_c_environment_fold (imported, eval_environment_folder, extended_data, init);
 
@@ -1272,7 +1275,7 @@ eval_environment_set_x (SCM env, SCM sym, SCM val)
 {
   SCM location = eval_environment_lookup (env, sym, 1);
 
-  if (SCM_CONSP (location))
+  if (scm_is_pair (location))
     {
       SCM_SETCDR (location, val);
       return SCM_ENVIRONMENT_SUCCESS;
@@ -1281,7 +1284,7 @@ eval_environment_set_x (SCM env, SCM sym, SCM val)
     {
       return SCM_ENVIRONMENT_SET (location, sym, val);
     }
-  else if (SCM_EQ_P (location, IMMUTABLE))
+  else if (scm_is_eq (location, IMMUTABLE))
     {
       return SCM_ENVIRONMENT_LOCATION_IMMUTABLE;
     }
@@ -1299,11 +1302,11 @@ eval_environment_cell (SCM env, SCM sym, int for_write)
 {
   SCM location = eval_environment_lookup (env, sym, for_write);
 
-  if (SCM_CONSP (location))
+  if (scm_is_pair (location))
     return location;
   else if (SCM_ENVIRONMENT_P (location))
     return SCM_ENVIRONMENT_LOCATION_NO_CELL;
-  else if (SCM_EQ_P (location, IMMUTABLE))
+  else if (scm_is_eq (location, IMMUTABLE))
     return SCM_ENVIRONMENT_LOCATION_IMMUTABLE;
   else
     return SCM_UNDEFINED;
@@ -1338,11 +1341,11 @@ eval_environment_free (SCM env)
 static int
 eval_environment_print (SCM type, SCM port, scm_print_state *pstate SCM_UNUSED)
 {
-  SCM address = scm_ulong2num (SCM_UNPACK (type));
-  SCM base16 = scm_number_to_string (address, SCM_MAKINUM (16));
+  SCM address = scm_from_size_t (SCM_UNPACK (type));
+  SCM base16 = scm_number_to_string (address, scm_from_int (16));
 
   scm_puts ("#<eval environment ", port);
-  scm_puts (SCM_STRING_CHARS (base16), port);
+  scm_display (base16, port);
   scm_puts (">", port);
 
   return 1;
@@ -1558,7 +1561,7 @@ import_environment_lookup (SCM env, SCM sym)
   SCM result = SCM_UNDEFINED;
   SCM l;
 
-  for (l = imports; !SCM_NULLP (l); l = SCM_CDR (l))
+  for (l = imports; !scm_is_null (l); l = SCM_CDR (l))
     {
       SCM imported = SCM_CAR (l);
 
@@ -1566,14 +1569,14 @@ import_environment_lookup (SCM env, SCM sym)
        {
          if (SCM_UNBNDP (result))
            result = imported;
-         else if (SCM_CONSP (result))
+         else if (scm_is_pair (result))
            result = scm_cons (imported, result);
          else
            result = scm_cons2 (imported, result, SCM_EOL);
        }
     }
 
-  if (SCM_CONSP (result))
+  if (scm_is_pair (result))
     return scm_reverse (result);
   else
     return result;
@@ -1600,7 +1603,7 @@ import_environment_ref (SCM env, SCM sym)
     {
       return SCM_UNDEFINED;
     }
-  else if (SCM_CONSP (owner))
+  else if (scm_is_pair (owner))
     {
       SCM resolve = import_environment_conflict (env, sym, owner);
 
@@ -1625,11 +1628,11 @@ import_environment_folder (SCM extended_data, SCM symbol, SCM value, SCM tail)
   SCM imported_env = SCM_CADR (extended_data);
   SCM owner = import_environment_lookup (import_env, symbol);
   SCM proc_as_nr = SCM_CADDR (extended_data);
-  unsigned long int proc_as_ul = scm_num2ulong (proc_as_nr, 0, NULL);
+  unsigned long int proc_as_ul = scm_to_ulong (proc_as_nr);
   scm_environment_folder proc = (scm_environment_folder) proc_as_ul;
   SCM data = SCM_CDDDR (extended_data);
 
-  if (SCM_CONSP (owner) && SCM_EQ_P (SCM_CAR (owner), imported_env))
+  if (scm_is_pair (owner) && scm_is_eq (SCM_CAR (owner), imported_env))
     owner = import_environment_conflict (import_env, symbol, owner);
 
   if (SCM_ENVIRONMENT_P (owner))
@@ -1643,11 +1646,11 @@ import_environment_folder (SCM extended_data, SCM symbol, SCM value, SCM tail)
 static SCM
 import_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM init)
 {
-  SCM proc_as_nr = scm_ulong2num ((unsigned long int) proc);
+  SCM proc_as_nr = scm_from_ulong ((unsigned long) proc);
   SCM result = init;
   SCM l;
 
-  for (l = IMPORT_ENVIRONMENT (env)->imports; !SCM_NULLP (l); l = SCM_CDR (l))
+  for (l = IMPORT_ENVIRONMENT (env)->imports; !scm_is_null (l); l = SCM_CDR (l))
     {
       SCM imported_env = SCM_CAR (l);
       SCM extended_data = scm_cons (env, scm_cons2 (imported_env, proc_as_nr, data));
@@ -1690,7 +1693,7 @@ import_environment_set_x (SCM env, SCM sym, SCM val)
     {
       return SCM_UNDEFINED;
     }
-  else if (SCM_CONSP (owner))
+  else if (scm_is_pair (owner))
     {
       SCM resolve = import_environment_conflict (env, sym, owner);
 
@@ -1717,7 +1720,7 @@ import_environment_cell (SCM env, SCM sym, int for_write)
     {
       return SCM_UNDEFINED;
     }
-  else if (SCM_CONSP (owner))
+  else if (scm_is_pair (owner))
     {
       SCM resolve = import_environment_conflict (env, sym, owner);
 
@@ -1757,11 +1760,11 @@ static int
 import_environment_print (SCM type, SCM port, 
                          scm_print_state *pstate SCM_UNUSED)
 {
-  SCM address = scm_ulong2num (SCM_UNPACK (type));
-  SCM base16 = scm_number_to_string (address, SCM_MAKINUM (16));
+  SCM address = scm_from_size_t (SCM_UNPACK (type));
+  SCM base16 = scm_number_to_string (address, scm_from_int (16));
 
   scm_puts ("#<import environment ", port);
-  scm_puts (SCM_STRING_CHARS (base16), port);
+  scm_display (base16, port);
   scm_puts (">", port);
 
   return 1;
@@ -1880,20 +1883,20 @@ SCM_DEFINE (scm_import_environment_set_imports_x, "import-environment-set-import
   SCM l;
 
   SCM_ASSERT (SCM_IMPORT_ENVIRONMENT_P (env), env, SCM_ARG1, FUNC_NAME);
-  for (l = imports; SCM_CONSP (l); l = SCM_CDR (l))
+  for (l = imports; scm_is_pair (l); l = SCM_CDR (l))
     {
       SCM obj = SCM_CAR (l);
       SCM_ASSERT (SCM_ENVIRONMENT_P (obj), imports, SCM_ARG2, FUNC_NAME);
     }
-  SCM_ASSERT (SCM_NULLP (l), imports, SCM_ARG2, FUNC_NAME);
+  SCM_ASSERT (scm_is_null (l), imports, SCM_ARG2, FUNC_NAME);
 
-  for (l = body->import_observers; !SCM_NULLP (l); l = SCM_CDR (l))
+  for (l = body->import_observers; !scm_is_null (l); l = SCM_CDR (l))
     {
       SCM obs = SCM_CAR (l);
       SCM_ENVIRONMENT_UNOBSERVE (env, obs);
     }
 
-  for (l = imports; !SCM_NULLP (l); l = SCM_CDR (l))
+  for (l = imports; !scm_is_null (l); l = SCM_CDR (l))
     {
       SCM imp = SCM_CAR (l);
       SCM obs = SCM_ENVIRONMENT_OBSERVE (imp, import_environment_observer, env, 1);
@@ -1961,7 +1964,7 @@ export_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM ini
   SCM result = init;
   SCM l;
 
-  for (l = body->signature; !SCM_NULLP (l); l = SCM_CDR (l))
+  for (l = body->signature; !scm_is_null (l); l = SCM_CDR (l))
     {
       SCM symbol = SCM_CAR (l);
       SCM value = SCM_ENVIRONMENT_REF (body->private, symbol);
@@ -2005,7 +2008,7 @@ export_environment_set_x (SCM env, SCM sym, SCM val)
     }
   else
     {
-      if (SCM_EQ_P (SCM_CADR (entry), symbol_mutable_location))
+      if (scm_is_eq (SCM_CADR (entry), symbol_mutable_location))
        return SCM_ENVIRONMENT_SET (body->private, sym, val);
       else
        return SCM_ENVIRONMENT_LOCATION_IMMUTABLE;
@@ -2027,7 +2030,7 @@ export_environment_cell (SCM env, SCM sym, int for_write)
     }
   else
     {
-      if (!for_write || SCM_EQ_P (SCM_CADR (entry), symbol_mutable_location))
+      if (!for_write || scm_is_eq (SCM_CADR (entry), symbol_mutable_location))
        return SCM_ENVIRONMENT_CELL (body->private, sym, for_write);
       else
        return SCM_ENVIRONMENT_LOCATION_IMMUTABLE;
@@ -2062,11 +2065,11 @@ static int
 export_environment_print (SCM type, SCM port,
                          scm_print_state *pstate SCM_UNUSED)
 {
-  SCM address = scm_ulong2num (SCM_UNPACK (type));
-  SCM base16 = scm_number_to_string (address, SCM_MAKINUM (16));
+  SCM address = scm_from_size_t (SCM_UNPACK (type));
+  SCM base16 = scm_number_to_string (address, scm_from_int (16));
 
   scm_puts ("#<export environment ", port);
-  scm_puts (SCM_STRING_CHARS (base16), port);
+  scm_display (base16, port);
   scm_puts (">", port);
 
   return 1;
@@ -2234,11 +2237,11 @@ export_environment_parse_signature (SCM signature, const char* caller)
   SCM result = SCM_EOL;
   SCM l;
 
-  for (l = signature; SCM_CONSP (l); l = SCM_CDR (l))
+  for (l = signature; scm_is_pair (l); l = SCM_CDR (l))
     {
       SCM entry = SCM_CAR (l);
 
-      if (SCM_SYMBOLP (entry))
+      if (scm_is_symbol (entry))
        {
          SCM new_entry = scm_cons2 (entry, symbol_immutable_location, SCM_EOL);
          result = scm_cons (new_entry, result);
@@ -2252,22 +2255,22 @@ export_environment_parse_signature (SCM signature, const char* caller)
          SCM mutability;
          SCM l2;
 
-         SCM_ASSERT (SCM_CONSP (entry), entry, SCM_ARGn, caller);
-         SCM_ASSERT (SCM_SYMBOLP (SCM_CAR (entry)), entry, SCM_ARGn, caller);
+         SCM_ASSERT (scm_is_pair (entry), entry, SCM_ARGn, caller);
+         SCM_ASSERT (scm_is_symbol (SCM_CAR (entry)), entry, SCM_ARGn, caller);
 
          sym = SCM_CAR (entry);
 
-         for (l2 = SCM_CDR (entry); SCM_CONSP (l2); l2 = SCM_CDR (l2))
+         for (l2 = SCM_CDR (entry); scm_is_pair (l2); l2 = SCM_CDR (l2))
            {
              SCM attribute = SCM_CAR (l2);
-             if (SCM_EQ_P (attribute, symbol_immutable_location))
+             if (scm_is_eq (attribute, symbol_immutable_location))
                immutable = 1;
-             else if (SCM_EQ_P (attribute, symbol_mutable_location))
+             else if (scm_is_eq (attribute, symbol_mutable_location))
                mutable = 1;
              else
                SCM_ASSERT (0, entry, SCM_ARGn, caller);
            }
-         SCM_ASSERT (SCM_NULLP (l2), entry, SCM_ARGn, caller);
+         SCM_ASSERT (scm_is_null (l2), entry, SCM_ARGn, caller);
          SCM_ASSERT (!mutable || !immutable, entry, SCM_ARGn, caller);
 
          if (!mutable && !immutable)
@@ -2278,7 +2281,7 @@ export_environment_parse_signature (SCM signature, const char* caller)
          result = scm_cons (new_entry, result);
        }
     }
-  SCM_ASSERT (SCM_NULLP (l), signature, SCM_ARGn, caller);
+  SCM_ASSERT (scm_is_null (l), signature, SCM_ARGn, caller);
 
   /* Dirk:FIXME:: Now we know that signature is syntactically correct.  There
    * are, however, no checks for symbols entered twice with contradicting