*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
1 2001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
2
3 * gc.c (scm_done_free): Always subtract size from scm_mallocated
4 when computing nm, even if it's negative.
5 (scm_must_malloc): Abort on overflow of scm_mtrigger.
6 (scm_must_realloc): Likewise.
7
8 2001-09-01 Michael Livshin <mlivshin@bigfoot.com>
9
10 * numbers.c (scm_sys_check_number_conversions): new function,
11 defined if Guile is compiled in debugging mode. currently checks
12 `scm_num2ulong', should check much much more.
13
14 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
15 unsigned, ensure that it's positive. thanks to Martin Baulig!
16
17 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
18
19 * __scm.h: Added new section about compile time selectable
20 features.
21
22 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
23 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
24 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
25 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
26 Removed.
27
28 * deprecation.c (scm_include_deprecated_features): Simplified.
29
30 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
31 `SCM_IMP´ instead of `!SCM_CELLP´.
32
33 * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests.
34 Extract side-effecting operations from macros.
35
36 (scm_init_eval): Don't initialize *top-level-lookup-closure*,
37 scm_top_level_lookup_closure_var and scm_system_transformer.
38
39 * gc.c (CELL_P): New local definition to replace SCM_CELLP.
40
41 (heap_segment): Use CELL_P instead of SCM_CELLP.
42
43 * init.c (start_stack): Don't initialize
44 scm_top_level_lookup_closure_var and scm_system_transformer.
45
46 * modules.c (scm_set_current_module): Don't access
47 scm_top_level_lookup_closure_var and scm_system_transformer.
48
49 (scm_sym2var): Don't call scm_variable_set_name_hint.
50
51 (scm_post_boot_init_modules): Removed deprecated initializations.
52
53 * print.c (scm_ipruk): Don't access cell contents of non cells.
54
55 * strings.c (scm_string_set_x): All strings are writable.
56
57 * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string
58 type. There is only one string type now.
59
60 (SCM_STRING_COERCE_0TERMINATION_X): Deprecated.
61
62 * tags.h: Remove comments about two different string types.
63
64 (SCM_CELLP, SCM_NCELLP): Deprecated.
65
66 * variable.c (make_variable): Remove code variant for vcells.
67
68 * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET,
69 SCM_VARIABLE_LOC): Remove code variant for vcells.
70
71 * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to
72 SCM_ENABLE_DEPRECATED with the logic reversed.
73
74 * dynl.c (moddata, registered_mods), dynl.[ch]
75 (scm_register_module_xxx, scm_registered_modules,
76 scm_clear_registered_modules), error.[ch] (scm_wta), eval.c
77 (*top-level-lookup-closure*), eval.[ch]
78 (scm_top_level_lookup_closure_var, scm_system_transformer,
79 scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR,
80 SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP,
81 SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16,
82 SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object,
83 scm_unprotect_object), modules.c (root_module_lookup_closure,
84 scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var,
85 beautify_user_module_x_var, try_module_autoload_var,
86 scm_module_full_name), modules.[ch] (scm_the_root_module,
87 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
88 ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active),
89 ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate,
90 scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP,
91 SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch]
92 (scm_read_only_string_p, scm_makstr, scm_makfromstr,
93 scm_make_shared_substring), tags.h (scm_tc7_substring,
94 SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol,
95 scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh),
96 variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable),
97 variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP):
98 Removed.
99
100 * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c
101 (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes,
102 scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir,
103 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
104 scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c
105 (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto,
106 scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port),
107 posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp,
108 scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale,
109 scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname),
110 regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c
111 (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c
112 (setzone, scm_strftime, scm_strptime), vports.c
113 (scm_make_soft_port): Remove calls to
114 SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is
115 gone, all strings are 0-terminated anyway.
116
117 * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH,
118 SCM_RANDOM_H): Renamed the macros that are defined to inhibit
119 double inclusion of the same headers to the SCM_<filename>_H
120 format.
121
122 * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c
123 (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of),
124 print.c (scm_iprin1): The type scm_tc7_substring does not exist
125 any more.
126
127 * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP,
128 SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h
129 (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer
130 !SCM_<foo> over SCM_N<foo>.
131
132 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
133
134 * Makefile.am: Remove references to symbols-deprecated.c.
135
136 * symbols.c (scm_init_symbols): Don't initialize deprecated
137 symbol functions.
138
139 * symbols-deprecated.c: Removed.
140
141 * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch]
142 (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch]
143 (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9],
144 scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv,
145 scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch]
146 (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum,
147 scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big,
148 scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h
149 (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt,
150 scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type,
151 setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch]
152 (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch]
153 (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h
154 (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP,
155 SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH,
156 SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS,
157 SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash,
158 scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell,
159 scm_intern_obarray_soft, scm_intern_obarray, scm_intern,
160 scm_intern0, scm_sysintern, scm_sysintern0,
161 scm_sysintern0_no_module_lookup, scm_symbol_value0,
162 scm_string_to_obarray_symbol, scm_intern_symbol,
163 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p,
164 scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp,
165 scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x),
166 vectors.[ch] (scm_vector_set_length_x): Removed.
167
168 * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H),
169 list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h
170 (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H):
171 Renamed the macros that are defined to inhibit double inclusion of
172 the same headers to the SCM_<filename>_H format.
173
174 * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h
175 (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_<foo> over
176 SCM_N<foo>.
177
178 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
179
180 * continuations.h (scm_contregs), debug.h (scm_debug_info,
181 scm_debug_frame, SCM_DSIDEVAL), filesys.h (SCM_OPDIRP), fports.h
182 (scm_fport), options.h (scm_option), snarf.h (SCM_CONST_LONG,
183 SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
184 SCM_GLOBAL_VCELL_INIT), srcprop.h (scm_srcprops,
185 scm_srcprops_chunk), stacks.h (scm_info_frame, scm_stack), unif.h
186 (scm_array, scm_array_dim, SCM_ARRAY_CONTIGUOUS, SCM_HUGE_LENGTH),
187 validate.h (SCM_FUNC_NAME, SCM_WTA, RETURN_SCM_WTA,
188 SCM_VALIDATE_NUMBER_COPY, SCM_VALIDATE_NUMBER_DEF_COPY,
189 SCM_VALIDATE_STRINGORSUBSTR, SCM_VALIDATE_ROSTRING,
190 SCM_VALIDATE_ROSTRING_COPY, SCM_VALIDATE_NULLORROSTRING_COPY,
191 SCM_VALIDATE_RWSTRING, SCM_VALIDATE_OPDIR): Removed.
192
193 * continuations.h (CONTINUATIONSH, SCM_CONTINUATIONS_H), filesys.h
194 (FILESYSH, SCM_FILESYS_H), fports.h (FPORTSH, SCM_FPORTS_H),
195 options.h (OPTIONSH, SCM_OPTIONS_H), regex-posix.h (REGEXPOSIXH,
196 SCM_REGEX_POSIX_H), snarf.h (LIBGUILE_SNARF_H, SCM_SNARF_H),
197 srcprop.h (SCM_SOURCE_PROPERTIES_H, SCM_SRCPROP_H), unif.h
198 (SCM_UNIFORM_VECTORS_H, SCM_UNIF_H), validate.h (SCM_VALIDATE_H__,
199 SCM_VALIDATE_H): Renamed the macros that are defined to inhibit
200 double inclusion of the same headers to the SCM_<filename>_H
201 format.
202
203 * debug.h (SCM_RESET_DEBUG_MODE), regex-posix.h (SCM_RGXP),
204 srcprop.h (SRCBRKP, PROCTRACEP), struct.h (SCM_STRUCTP),
205 validate.h (SCM_VALIDATE_THUNK, SCM_VALIDATE_ARRAY,
206 SCM_VALIDATE_VECTOR_OR_DVECTOR, SCM_VALIDATE_VTABLE): Prefer
207 !SCM_<foo> over SCM_N<foo>.
208
209 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
210
211 * _scm.h (_SCMH, SCM__SCM_H), alist.h (ALISTH, SCM_ALIST_H),
212 arbiters.h (ARBITERSH, SCM_ARBITERS_H), backtrace.h (BACKTRACEH,
213 SCM_BACKTRACE_H), boolean.h (BOOLEANH, SCM_BOOLEAN_H), chars.h
214 (SCM_CHARSH, SCM_CHARS_H), coop-defs.h (COOP_DEFSH,
215 SCM_COOP_DEFS_H), coop-threads.h (COOP_THREADSH,
216 SCM_COOP_THREADS_H), debug-malloc.h (DEBUGMALLOCH,
217 SCM_DEBUG_MALLOC_H), dynwind.h (DYNWINDH, SCM_DYNWIND_H),
218 environments.h (ENVIRONMENTS_H, SCM_ENVIRONMENTS_H), eq.h (EQH,
219 SCM_EQ_H), evalext.h (EVALEXTH, SCM_EVALEXT_H), extensions.h
220 (LIBGUILE_EXTENSIONS_H, SCM_EXTENSIONS_H), feature.h (FEATUREH,
221 SCM_FEATURE_H), gdbint.h (GDBINTH, SCM_GDBINT_H), guardians.h
222 (SCM_GUARDIANH, SCM_GUARDIANS_H), hash.h (HASHH, SCM_HASH_H),
223 hashtab.h (HASHTABH, SCM_HASHTAB_H), init.h (INITH, SCM_INIT_H),
224 ioext.h (IOEXTH, SCM_IOEXT_H), iselect.h (ISELECTH,
225 SCM_ISELECT_H), keywords.h (KEYWORDSH, SCM_KEYWORDS_H), lang.h
226 (LANGH, SCM_LANG_H), mallocs.h (MALLOCSH, SCM_MALLOCS_H), net_db.h
227 (SCM_NETDBH, SCM_NET_DB_H), objprop.h (OBJPROPH, SCM_OBJPROP_H),
228 posix.h (POSIXH, SCM_POSIX_H), procprop.h (PROCPROPH,
229 SCM_PROCPROP_H), properties.h (PROPERTIES_H, SCM_PROPERTIES_H),
230 ramap.h (RAMAPH, SCM_RAMAP_H), rdelim.h (SCM_RDELIM,
231 SCM_RDELIM_H), read.h (READH, SCM_READ_H), rw.h (SCM_RW,
232 SCM_RW_H), scmsigs.h (SCMSIGSH, SCM_SCMSIGS_H), script.h (SCRIPTH,
233 SCM_SCRIPT_H), simpos.h (SIMPOSH, SCM_SIMPOS_H), socket.h
234 (SCM_SOCKETH, SCM_SOCKET_H), sort.h (SORTH, SCM_SORT_H),
235 stackchk.h (STACKCHKH, SCM_STACKCHK_H), stime.h (STIMEH,
236 SCM_STIME_H), strop.h (STROPH, SCM_STROP_H), strorder.h
237 (STRORDERH, SCM_STRORDER_H), threads.h (THREADSH, SCM_THREADS_H),
238 throw.h (THROWH, SCM_THROW_H), version.h (VERSIONH,
239 SCM_VERSION_H), vports.h (VPORTSH, SCM_VPORTS_H): Renamed
240 the macros that are defined to inhibit double inclusion of the
241 same headers to the SCM_<filename>_H format.
242
243 2001-08-27 Marius Vollmer <mvo@zagadka.ping.de>
244
245 * ports.c, ports.h, fprots.c, gc.c, ioext.c: Replaced
246 "scm_t_portable" with "scm_port_table" which was an artifact from
247 the great "scm_*_t -> scm_t_" renaming.
248
249 2001-08-25 Thien-Thi Nguyen <ttn@revel.glug.org>
250
251 * gc_os_dep.c (GC_noop1): Move before `GC_find_limit' where it is
252 used; nfc. Thanks to Bill Schottstaedt.
253
254 * validate.h (SCM_VALIDATE_USHORT_COPY, SCM_VALIDATE_SHORT_COPY,
255 SCM_VALIDATE_UINT_COPY, SCM_VALIDATE_INT_COPY): New macros.
256 Thanks to Chris Cramer.
257
258 2001-08-25 Marius Vollmer <mvo@zagadka.ping.de>
259
260 * Makefile.am (AUTOMAKE_OPTIONS): Change "foreign" to "gnu".
261
262 * eval.c (scm_m_atbind): Redesigned to behvae like `let', but with
263 dynamic scope.
264 * dynwind.h (scm_swap_bindings): Declare.
265 * dynwind.c (scm_swap_bindings): Make non-static.
266
267 2001-08-25 Michael Livshin <mlivshin@bigfoot.com>
268
269 * gc.c (scm_gc_sweep): now can sweep unreachable variables (by
270 doing exactly nothing about them). thanks Neil!
271
272 2001-08-18 Neil Jerram <neil@ossau.uklinux.net>
273
274 * __scm.h (SCM_ENABLE_VCELLS): Fix spelling mistake in comment.
275
276 2001-08-17 Thien-Thi Nguyen <ttn@revel.glug.org>
277
278 * gc.c: Fix omission bug: Add `heap_segment' forward decl
279 (proto) in the case when either `GUILE_DEBUG' or
280 `GUILE_DEBUG_FREELIST' preprocessor symbols are defined.
281
282 (map_free_list): Fix typo: Ref `f' correctly.
283
284 Thanks to Chris Cramer.
285
286 2001-08-15 Rob Browning <rlb@defaultvalue.org>
287
288 * Makefile.am (libguile_la_LDFLAGS): use libtool interface version
289 variables.
290 (libpath.h): change libguileversion to libguileinterface.
291
292 2001-08-07 Marius Vollmer <mvo@zagadka.ping.de>
293
294 * Makefile.am (EXTRA_DIST): Distribute ChangeLog-1996-1999 and
295 ChangeLog-2000. Thanks to Daniel Skarda!
296
297 2001-08-07 Michael Livshin <mlivshin@bigfoot.com>
298
299 * guile-snarf-docs-texi.in: don't call the tokenizer here, we now
300 do it from the Makefile.
301
302 * Makefile.am: rearrange the snarfing slightly, so that .doc files
303 are of a reasonable size.
304
305 2001-08-02 Neil Jerram <neil@ossau.uklinux.net>
306
307 * stacks.c (scm_make_stack): Improve docstring by explaining use
308 of cutting args.
309
310 2001-08-01 Marius Vollmer <mvo@zagadka.ping.de>
311
312 * chars.c (scm_char_alphabetic_p, scm_char_numeric_p,
313 scm_char_whitespace_p, scm_char_upper_case_p,
314 scm_char_lower_case_p, scm_char_is_both_p): Do not require
315 characters to fulfill isascii in addition to the primary
316 predicate.
317
318 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
319
320 * numbers.c (DIGITS, scm_small_istr2int, scm_istr2int,
321 scm_istr2flo, scm_istring2number): Removed.
322
323 (iflo2str, scm_real_p, scm_integer_p): Use SCM_<foo> instead of
324 SCM_SLOPPY_<foo>.
325
326 (t_exactness, t_radix, DIGIT2UINT, XDIGIT2UINT, mem2uinteger,
327 mem2decimal_from_point, mem2ureal, mem2complex, scm_i_mem2number):
328 Added.
329
330 (scm_string_to_number): Use new number parser.
331
332 (scm_exact_to_inexact): Replace dummy by a GPROC, which also
333 handles complex numbers.
334
335 * numbers.h (NUMBERSH, SCM_NUMBERS_H): Rename <foo>H to
336 SCM_<foo>_H.
337
338 (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Prefer !SCM_<pred> over
339 SCM_N<pred>.
340
341 (scm_istr2int, scm_istr2flo, scm_istring2number): Removed.
342
343 (scm_i_mem2number): Added.
344
345 (scm_exact_to_inexact): Changed signature.
346
347 * read.c (scm_lreadr): Perform the shortcut test for '+ and '-
348 here instead of within scm_i_mem2number. Call scm_i_mem2number
349 instead of scm_istr2int and scm_istring2number.
350
351 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
352
353 * eval.c (scm_lookupcar, scm_m_body, scm_m_lambda, unmemocopy,
354 scm_unmemocopy, scm_badargsp, scm_eval_body, CHECK_EQVISH,
355 SCM_CEVAL, scm_nconc2last, SCM_APPLY, scm_copy_tree): Prefer
356 !SCM_<pred> over SCM_N<pred>.
357
358 (scm_eval_body): Remove side effecting code from macro call.
359
360 (SCM_CEVAL, SCM_APPLY): Remove goto statement and redundant
361 SCM_NIMP test.
362
363 2001-07-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
364
365 * pairs.h (SCM_VALIDATE_PAIR): Use SCM_CONSP, not SCM_ECONSP.
366
367 2001-07-29 Marius Vollmer <mvo@zagadka.ping.de>
368
369 Removed vcell slot from structs.
370
371 * struct.h (scm_vtable_index_vcell): Removed. Renumbered
372 subsequent indices.
373
374 * struct.c (scm_struct_vtable_p): Do not check vcell slot for
375 zero. Use scm_vtable_index_layout instead of "0" when accessing
376 said slot.
377 (scm_init_struct): Remove vcell slot layout code from
378 required_vtable_fields.
379
380 * objects.h (scm_si_redefined, scm_si_hashsets): Renumbered.
381
382 * goops.c (build_class_class_slots): Removed vcell slot
383 definition.
384
385 * goops.h: Renumbered slot indices. (SCM_CLASS_CLASS_LAYOUT):
386 Removed vcell slot layout code.
387 (scm_si_vcell): Removed.
388
389 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
390
391 "Glocs" have been removed.
392
393 * tags.h: Update tag system docs.
394 (scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses.
395 (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses.
396 (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP
397 or SCM_NCONSP, respectively.
398
399 * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c,
400 objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses
401 of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above.
402
403 * print.c (scm_iprin1): Remove printing of glocs. Do not try to
404 tell glocs from structs.
405
406 * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs.
407
408 * eval.c (scm_m_atbind): Make a list of variables, not glocs.
409 (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables
410 instead of with glocs.
411 (EVALCAR): Do not test for glocs.
412 (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race
413 condition.
414 (scm_unmemocar): Do not handle glocs.
415 (scm_m_atfop): Memoize as a variable, not as a gloc.
416 (scm_eval_args, scm_deval_args): Do not handle glocs.
417 (scm_ceval, scm_deval): Likewise.
418
419 * eval.h (SCM_XEVALCAR): Do not test for glocs.
420 (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC):
421 Removed.
422
423 * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed.
424
425 * dynwind.c (scm_swap_bindings): Likewise.
426 (scm_dowinds): Updated to recognize lists of variables instead of
427 lists of glocs.
428
429 * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
430
431
432 * gc_os_dep.c (GC_noop1): Moved into the same #if/#endif context
433 where it is needed.
434
435 2001-07-25 Gary Houston <ghouston@arglist.com>
436
437 * numbers.c (scm_logand, scm_logior, scm_logxor): adjusted the
438 docstrings to reflect the n-ary implementation.
439
440 2001-07-26 Marius Vollmer <mvo@zagadka.ping.de>
441
442 * eval.c (scm_ceval, scm_deval): Use "RETURN" macro when returning
443 value of a variable, not the plain "return" statement.
444
445 2001-07-25 Marius Vollmer <mvo@zagadka.ping.de>
446
447 * eval.c: Allow variables in memoized code (in addition to glocs).
448 (scm_lookupcar): Handle variables in lost races. Replace symbol
449 with variable directly, do not make a gloc.
450 (scm_unmemocar): Rewrite variables using a reverse lookup, just
451 like glocs.
452 (scm_ceval, scm_deval): Deal with variables in SCM_IM_SET and in
453 the main switch.
454
455 2001-07-25 Marius Vollmer <marius.vollmer@uni-dortmund.de>
456
457 * variable.c (scm_i_variable_print): Use "value" instead of
458 "binding" since a binding is the mapping between symbols and
459 variables, not between variables and their values.
460
461 * tags.h (scm_tc7_variable): New.
462 * gc.c (scm_gc_mark): Handle scm_tc7_variable objects.
463 * print.c (scm_iprin1): Likewise.
464
465 * variable.h (scm_tc16_variable): Removed.
466 (SCM_VARIABLEP): Test for new tc7 code.
467 (scm_i_variable_print): New.
468 * variable.c (scm_tc16_variable): Removed.
469 (variable_print): Renamed to scm_i_variable_print and made
470 non-static.
471 (variable_equal_p): Removed.
472 (make_variable): Construct a tc7 object instead of a smob.
473 (scm_init_variable): Do not register smob.
474
475 2001-07-22 Marius Vollmer <mvo@zagadka.ping.de>
476
477 * tags.h: Include inttypes.h when we have it.
478
479 2001-07-13 Marius Vollmer <mvo@zagadka.ping.de>
480
481 * tags.h (SCM_UNBOUND): Make it the 34th isym/iflag, the 33th slot
482 is taken by the new SCM_IM_CALL_WITH_VALUES.
483 * print.c (scm_isymnames): Update table accordingly.
484
485 2001-07-22 Gary Houston <ghouston@arglist.com>
486
487 * regex-posix.c (s_scm_regexp_exec): use scm_long2num not
488 SCM_MAKINUM to convert regoff_t value to SCM.
489
490 2001-07-21 Gary Houston <ghouston@arglist.com>
491
492 * scmsigs.c: include sys/time.h for itimer stuff.
493
494 2001-07-19 Rob Browning <rlb@defaultvalue.org>
495
496 * gc_os_dep.c (GC_noop1): ifdef out (unused) to quiet warning.
497
498 * c-tokenize.lex: add option %nounput to quiet warning.
499 Add prototype for yylex to quiet warning.
500
501 * scmconfig.h.in: add flags for setitimer and getitimer.
502
503 * scmsigs.h (scm_init_scmsigs): new prototype.
504 (scm_init_scmsigs): new prototype.
505
506 * scmsigs.c (s_scm_setitimer): new function.
507 (s_scm_setitimer): new function.
508
509 2001-07-18 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
510
511 * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,
512 chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c,
513 feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c,
514 gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c,
515 gh_predicates.c, gsubr.c, gsubr.h, guardians.h,
516 guile-func-name-check.in, guile-snarf-docs-texi.in,
517 guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in,
518 hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h,
519 objprop.c, objprop.h, options.c, options.h, random.h,
520 regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c,
521 strerror.c, strop.h, strports.h, threads.h, values.c, values.h,
522 version.c, version.h: Updated copyright notice.
523
524 2001-07-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
525
526 * goops.c (sym_layout, sym_vcell, sym_vtable, sym_print,
527 sym_procedure, sym_setter, sym_redefined, sym_h0, sym_h1, sym_h2,
528 sym_h3, sym_h4, sym_h5, sym_h6, sym_h7, sym_name,
529 sym_direct_supers, sym_direct_slots, sym_direct_subclasses,
530 sym_direct_methods, sym_cpl, sym_default_slot_definition_class,
531 sym_slots, sym_getters_n_setters, sym_keyword_access, sym_nfields,
532 sym_environment, scm_sym_change_class): New static variables to
533 hold predefined symbols.
534
535 (build_class_class_slots): Build the list using scm_list_n
536 instead of cons. Also, slots are already created as lists, thus
537 making a call to maplist unnecessary.
538
539 (scm_class_name, scm_class_direct_supers, scm_class_direct_slots,
540 scm_class_direct_subclasses, scm_class_direct_methods,
541 scm_class_precedence_list, scm_class_slots, scm_class_environment,
542 scm_method_procedure, create_standard_classes, purgatory): Use
543 predefined symbols.
544
545 (build_slots_list, compute_getters_n_setters,
546 scm_sys_initialize_object, scm_sys_inherit_magic_x,
547 get_slot_value_using_name, set_slot_value_using_name,
548 scm_sys_invalidate_method_cache_x, scm_generic_capability_p,
549 scm_compute_applicable_methods, scm_sys_method_more_specific_p,
550 make_struct_class): Prefer !SCM_<pred> over SCM_N<pred>.
551
552 (scm_sys_prep_layout_x): Minimize variable scopes.
553
554 (scm_sys_prep_layout_x, scm_sys_fast_slot_ref,
555 scm_sys_fast_slot_set_x): Fix signedness.
556
557 (go_to_hell, go_to_heaven, purgatory, scm_change_object_class,
558 lock_cache_mutex, unlock_cache_mutex, call_memoize_method,
559 scm_memoize_method, scm_wrap_object): Use packing and unpacking
560 when converting to and from SCM values.
561
562 (scm_enable_primitive_generic_x): Add rest argument checking.
563
564 (map, filter_cpl, maplist, scm_sys_initialize_object,
565 scm_sys_prep_layout_x, slot_definition_using_name,
566 scm_enable_primitive_generic_x, scm_compute_applicable_methods,
567 call_memoize_method, scm_make, scm_make_class): Prefer explicit
568 predicates over SCM_N?IMP tests.
569
570 (scm_sys_prep_layout_x): Fix typo in error message. Fix type
571 checking.
572
573 (burnin, go_to_hell): Use SCM_STRUCT_DATA instead of the SCM_INST
574 alias.
575
576 2001-07-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
577
578 * fports.c (fport_print): Don't use SCM_C[AD]R for non pairs.
579
580 * num2integral.i.c (INTEGRAL2NUM, INTEGRAL2BIG): Fix signedness.
581
582 * symbols-deprecated.c (scm_gentemp): Simplify vector test.
583
584 * vectors.c (scm_vector_p): Eliminate redundant IMP test.
585
586 2001-07-12 Michael Livshin <mlivshin@bigfoot.com>
587
588 * strings.c (s_scm_string): fix arg position in assert.
589
590 2001-07-11 Gary Houston <ghouston@arglist.com>
591
592 * strports.c (st_write): use memcpy, not strncpy. thanks to
593 Dale P. Smith.
594
595 2001-07-09 Thien-Thi Nguyen <ttn@revel.glug.org>
596
597 * alist.c, alloca.c, arbiters.c, async.c, async.h, backtrace.c,
598 boolean.c, chars.c, continuations.c, coop-defs.h, coop-threads.c,
599 debug-malloc.h, debug.c, debug.h, dynl.c, dynwind.c, eq.c,
600 error.c, eval.c, evalext.c, feature.c, feature.h, filesys.c,
601 filesys.h, fluids.c, fluids.h, fports.c, fports.h, gc.c, gc.h,
602 gdbint.c, gsubr.c, guardians.c, hash.c, hashtab.c, hooks.c,
603 hooks.h, inet_aton.c, init.c, ioext.c, keywords.c, keywords.h,
604 lang.c, list.c, load.c, macros.c, mallocs.c, memmove.c, modules.c,
605 net_db.c, numbers.c, numbers.h, objects.c, objprop.c, options.c,
606 pairs.c, pairs.h, ports.c, ports.h, posix.c, print.c, print.h,
607 procprop.c, procs.c, procs.h, properties.c, putenv.c, ramap.c,
608 random.c, random.h, read.c, regex-posix.c, regex-posix.h, root.c,
609 root.h, scmsigs.c, script.c, simpos.c, smob.c, snarf.h, socket.c,
610 sort.c, srcprop.c, srcprop.h, stackchk.c, stacks.c, stacks.h,
611 stime.c, strerror.c, strings.c, strings.h, strop.c, strorder.c,
612 strports.c, struct.c, struct.h, symbols-deprecated.c, symbols.c,
613 symbols.h, tags.h, threads.c, threads.h, throw.c, unif.c, unif.h,
614 variable.c, variable.h, vectors.c, vectors.h, version.c, vports.c,
615 weaks.c, weaks.h: Remove "face-lift" comment.
616
617 2001-07-08 Rob Browning <rlb@defaultvalue.org>
618
619 * .cvsignore: add stamp-h.in.
620
621 2001-07-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
622
623 * hooks.c (scm_make_hook, scm_add_hook_x),
624 (scm_remove_hook_x, scm_reset_hook_x, scm_run_hook): Added return
625 value info to the docstrings.
626
627 2001-07-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
628
629 Some more compatibility patches for Windows.
630
631 * posix.c (getlogin): getlogin() implementation for Windows.
632
633 * backtrace.c, ioext.c: Include <stdio.h>.
634
635 * unif.c, script.c, rw.c, error.c: Include <io.h>, if it does
636 exist.
637
638 * cpp_sig_symbols.in: Added SIGBREAK.
639
640 2001-07-01 Marius Vollmer <mvo@zagadka.ping.de>
641
642 * strports.c (scm_read_0str, scm_eval_0str): Call
643 scm_c_read_string and scm_c_eval_string respectively, not
644 themselves. Thanks to Dale P. Smith!
645
646 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
647
648 * unif.c (scm_array_set_x): The variable args does not
649 necessarily have to be a list. Further, got rid of a redundant
650 SCM_NIMP test.
651
652 2001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
653
654 * list.c (SCM_I_CONS): Make sure the cell type is initialized
655 last.
656
657 * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
658 init_heap_seg): Fixed signedness.
659
660 (init_heap_seg): Replaced strange for-loop with a while loop.
661
662 * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
663
664 (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
665
666 The following patch adds conservative marking for the elements of
667 free or allocated cells.
668
669 * gc.c (allocated_mark, heap_segment): New static functions.
670
671 (which_seg): Deleted, since the functionality is now provided by
672 function heap_segment.
673
674 (map_free_list): Use heap_segment instead of which_seg.
675
676 (MARK): If cell debugging is disabled, mark free cells
677 conservatively.
678
679 (scm_mark_locations, scm_cellp): Extracted the search for the
680 heap segment of a SCM value into function heap_segment.
681
682 (scm_init_storage): Allocated cells must be marked
683 conservatively.
684
685 * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
686
687 The following patch changes the representation of weak vectors to
688 double cells instead of using an extension of the vector's
689 allocated memory.
690
691 * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
692 the result of SCM_WVECT_GC_CHAIN.
693
694 (scm_gc_sweep): Weak vectors don't have extra fields any more.
695
696 * weaks.c (allocate_weak_vector): New static function. It does
697 not patch any previously created vector object during the
698 construction of a weak vector, and thus doesn't need to switch
699 off interrupts during vector creation.
700
701 (scm_make_weak_vector, scm_make_weak_key_hash_table,
702 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
703 Use allocate_weak_vector to provide the new weak vector object.
704
705 * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
706 SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
707 now stored in the double cell.
708
709 (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
710 Use SCM_WVECT_TYPE.
711
712 (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
713 using an entry of the double cell.
714
715 2001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
716
717 * stamp-h.in: bye bye
718
719 2001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
720
721 * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
722 scm_eval_0str.
723
724 * load.c, load.h (scm_c_primitive_load,
725 scm_c_primitive_load_path): New.
726
727 * strports.c, strports.h (scm_c_read_string): Renamed from
728 scm_read_0str. Also, added "const" qualifier to argument.
729 (scm_c_eval_string): Renamed from scm_eval_0str.
730 (scm_read_0str, scm_eval_0str): Deprecated.
731
732 2001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
733
734 * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
735 SCM_LIST1.
736
737 2001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
738
739 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
740 scm_list_n): New functions.
741 (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
742 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
743 (lots of files): Use the new functions.
744
745 * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
746
747 * strings.c: #include "libguile/deprecation.h".
748
749 2001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
750
751 * read.c (scm_lreadr): When reading a hash token, check for a
752 user-defined hash procedure first, so that overriding the builtin
753 hash characters is possible (this was needed for implementing
754 SRFI-4's read synax `f32(...)').
755
756 * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
757 because the latter is unsigned now and breaks comparisons like
758 (n < (scm_t_signed_bits)MIN_VALUE).
759
760 2001-06-26 Neil Jerram <neil@ossau.uklinux.net>
761
762 * eval.h, eval.c (scm_call_4): New function.
763
764 * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
765 directly rather than dispatching to them via scm_ithrow and a lazy
766 catch.
767
768 * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
769 SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
770 for trap handler procedures.
771
772 * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
773 procedures not being #f.
774
775 2001-06-27 Michael Livshin <mlivshin@bigfoot.com>
776
777 * Makefile.am (c-tokenize.c): add rule to generate it.
778 (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
779
780 filter-doc-snarfage.c: remove.
781
782 2001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
783
784 * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
785
786 The following set of changes makes compiling Guile under various
787 Windows compilers easier. Compilation under GNU systems should
788 not be affected at all.
789
790 Thanks to Stefan Jahn for all necessary information, patches and
791 testing.
792
793 * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
794 getpgrp, ttyname, primitive-fork and some header inclusion for
795 Windows.
796
797 * random.c: Define M_PI, if not predefined and use __int64 for
798 LONG64 under Windows.
799
800 * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
801 Windows and conditionalize some signal names.
802
803 * socket.c (scm_getsockopt): Added missing comma.
804 Include socket library header under Windows.
805
806 * stime.c (CLKTCK): Add cast to int, to make it compile under
807 Windows.
808
809 * ports.c (truncate): New function, compiled only under Windows.
810
811 * net_db.c: Do not declare errno under Windows.
812
813 * iselect.h, inet_aton.c: Include socket library headers under
814 Windows.
815
816 * guile.c (inner_main): Under Windows, initialize socket library
817 and initialize gdb_interface data structures.
818
819 * gdb_interface.h: Under Windows, gdb_interface cannot be
820 initialized statically. Initialize at runtime instead.
821
822 * fports.c (write_all): ssize_t -> size_t.
823 (fport_print): Conditionalize call to ttyname().
824 (getflags): New function, compiled only under Windows.
825
826 * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
827 primitives chown, link, fcntl.
828 (scm_basename, scm_dirname): Under Windows, handle \ as well as /
829 as path seperator.
830
831 * backtrace.c: Include <io.h> under Windows.
832
833 * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
834
835 * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
836 declaration.
837
838 2001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
839
840 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
841 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
842 * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
843 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
844 * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
845 scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
846 (scm_dynamic_wind, scm_dowinds), environments.c
847 (import_environment_conflict), eval.c (scm_macroexp, scm_force,
848 scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
849 goops.c (GETVAR, purgatory, make_class_from_template,
850 scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
851 scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
852 (scm_primitive_load), modules.c (scm_resolve_module,
853 scm_c_define_module, scm_c_use_module, scm_c_export,
854 module_variable, scm_eval_closure_lookup, scm_sym2var,
855 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
856 ports.c (scm_port_for_each), print.c (scm_printer_apply),
857 properties.c (scm_primitive_property_ref), ramap.c (ramap,
858 ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
859 scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
860 (scm_object_to_string, scm_call_with_output_string,
861 scm_call_with_input_string), throw.c (scm_body_thunk,
862 scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
863 scm_make_shared_array), vports.c (sf_flush, sf_write,
864 sf_fill_input, sf_close): Use one of the above functions.
865 * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
866
867 2001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
868
869 * filesys.c (scm_close), ports.c (scm_close_port,
870 scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
871 instead of SCM_NEGATE_BOOL.
872
873 * filesys.c (scm_stat): Clean up type dispatch.
874
875 * filesys.c (scm_stat), ports.c (scm_input_port_p,
876 scm_output_port_p): Get rid of redundant IM type check.
877
878 * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
879 (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
880 scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
881 scm_return_entry), numbers.c (scm_number_to_string), objects.c
882 (scm_make_subclass_object), ports.c (scm_port_mode), read.c
883 (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
884 scm_addr_vector), stime.c (scm_strftime), strings.c
885 (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
886 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
887 scm_string_split), strports.c (scm_strport_to_string), symbols.c
888 (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
889 instead of scm_makfromstr.
890
891 * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
892 ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
893 scm_read_hash_extend), stime.c (scm_strftime), strings.c
894 (scm_string_append, scm_string), strings.h (SCM_STRINGP,
895 SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
896 (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
897 !SCM_<pred> over SCM_N<pred>.
898
899 * strings.[ch] (scm_makfromstr): Deprecated.
900
901 (scm_mem2string): New function, replaces scm_makfromstr.
902
903 * strings.c (scm_substring), strop.c (string_copy,
904 scm_string_split), strports.c (scm_strport_to_string), symbols.c
905 (scm_symbol_to_string): Fix gc problem.
906
907 * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
908 SCM_<foo>_H.
909
910 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
911 warning about comparing signed and unsigned values. This fix is
912 not optimal, since it won't work reliably if sizeof (c_start) >
913 sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
914 solution is to define this macro as an inline function, thus
915 allowing to specifiy the types of c_start and c_end.
916
917 2001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
918
919 * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
920 scm_t_debug_frame*.
921
922 * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
923 Rename <foo>H to SCM_<foo>_H.
924
925 * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
926 over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
927
928 (narrow_stack): Make i unsigned. Don't use side-effecting
929 operations in conditions.
930
931 (narrow_stack, scm_make_stack, scm_stack_id,
932 scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
933
934 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
935 type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
936 more.
937
938 (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
939 signedness.
940
941 (scm_last_stack_frame): Remove bogus `;´.
942
943 * stacks.h (SCM_FRAMEP): Fix type check.
944
945 2001-06-25 Michael Livshin <mlivshin@bigfoot.com>
946
947 * Makefile.am (MAINTAINERCLEANFILES): be sure to remove
948 c-tokenize.c when doing maintainer-clean.
949
950 * snarf.h (SCM_SNARF_DOCS): change the "grammar" slightly.
951
952 * guile-snarf-docs.in, guile-snarf-docs-texi.in: rewrite &
953 simplify.
954
955 * eval.c: all hash signs are in column 0.
956
957 * Makefile.am (guile_filter_doc_snarfage): build using
958 c-tokenize.c, not filter-doc-snarfage.c.
959 rearrange snarfing dependencies a bit.
960
961 * c-tokenize.lex: new file.
962
963 2001-06-25 Marius Vollmer <mvo@zagadka.ping.de>
964
965 * srcprop.h, srcprop.c (scm_srcprops_to_plist): Renamed from
966 scm_t_srcpropso_plist. See the big type renaming.
967 * coop-defs.h (scm_mutex_trylock, scm_cond_timedwait): Likewise.
968 Thanks to Seth Alves!
969
970 * numbers.c (SIZE_MAX, PTRDIFF_MIN, PTRDIFF_MAX): Only define when
971 they aren't defined already.
972
973 2001-06-23 Dirk Herrmann <D.Herrmann@tu-bs.de>
974
975 * backtrace.c (display_backtrace_body): Use SCM_VALIDATE_STACK
976 and SCM_VALIDATE_OPOUTPORT instead of SCM_ASSERT. Fix signedness
977 problem.
978
979 * backtrace.c (display_expression, scm_set_print_params_x,
980 display_application, display_frame, scm_backtrace), numbers.c
981 (scm_istring2number), objects.c (scm_class_of,
982 scm_mcache_lookup_cmethod, scm_mcache_compute_cmethod): Prefer
983 explicit type check over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
984
985 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fluid numbers are
986 always positive.
987
988 * numbers.c (scm_i_mkbig): Remove unnecessary casts, remove
989 unnecessary SCM_DEFER_INTS, SCM_ALLOW_INTS.
990
991 * objects.c (scm_class_of): Type fix.
992
993 (scm_mcache_lookup_cmethod): Improved comment, simplified,
994 eliminated goto.
995
996 * pairs.h (scm_error_pair_access): The function can return if
997 called recursively.
998
999 2001-06-20 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1000
1001 * init.c (scm_init_guile_1): Removed initialization of tag.c.
1002
1003 * gdbint.c, init.c: Removed inclusion of tag.h.
1004
1005 * tag.h, tag.c: Removed files.
1006
1007 * Makefile.am: Removed tag.{h,c,doc,x} in various places.
1008
1009 2001-06-20 Gary Houston <ghouston@arglist.com>
1010
1011 * deprecation.c, extensions.c, rw.c: include string.h.
1012
1013 2001-06-19 Gary Houston <ghouston@arglist.com>
1014
1015 * filter-doc-snarfage.c (process): added ungetc in
1016 MULTILINE_COOKIE case since otherwise it fails when there's no
1017 space between the '(' and the quote of the following string
1018 (gcc 3.0).
1019
1020 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
1021
1022 Throughout: replace "scm_*_t" with "scm_t_*", except "scm_lisp_t".
1023
1024 2001-06-14 Marius Vollmer <mvo@zagadka.ping.de>
1025
1026 * unif.h (SCM_ARRAY_NDIM): Shift then cast so that no sign
1027 extension takes place.
1028 * strings.h (SCM_STRING_LENGTH): Likewise.
1029 (SCM_STRING_MAX_LENGTH): Use unsigned numbers.
1030
1031 * __scm.h (ptrdiff_t): Typedef to long when configure didn't find
1032 it.
1033
1034 * tags.h: Include <stdint.h> when we have it.
1035 (scm_bits_t): Changed to be a unsigned type. Use uintptr_t when
1036 available. Else use "unsigned long".
1037 (scm_signed_bits_t): New.
1038
1039 * numbers.h (SCM_SRS): Cast shiftee to scm_signed_bits_t.
1040 (SCM_INUM): Cast result to scm_signed_bits_t.
1041
1042 2001-06-13 Thien-Thi Nguyen <ttn@revel.glug.org>
1043
1044 * mkstemp.c: Update path to #include file scmconfig.h.
1045 Thanks to Golubev I. N.
1046
1047 2001-06-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
1048
1049 * struct.h (SCM_STRUCT_VTABLE_FLAGS): New macro.
1050
1051 * goops.h (SCM_NUMBER_OF_SLOTS): Removed bogus `\´ at the end of
1052 the macro definition.
1053
1054 (SCM_CLASSP, SCM_INSTANCEP, SCM_PUREGENERICP, SCM_ACCESSORP,
1055 SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Use SCM_STRUCT_VTABLE_FLAGS
1056 instead of SCM_INST_TYPE.
1057
1058 (SCM_ACCESSORP, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Make sure
1059 the object is a struct before accessing its struct flags.
1060
1061 (SCM_INST_TYPE, SCM_SIMPLEMETHODP, SCM_FASTMETHODP): Deprecated.
1062
1063 2001-06-10 Gary Houston <ghouston@arglist.com>
1064
1065 * rdelim.c (scm_init_rdelim_builtins): don't try to activate the
1066 (ice-9 rdelim) module in (guile) and (guile-user). it didn't
1067 work reliably anymore. try it from boot-9.scm instead.
1068
1069 2001-06-09 Marius Vollmer <mvo@zagadka.ping.de>
1070
1071 * ports.c (scm_lfwrite): Maintain columnd and row count in port.
1072 Thanks to Matthias Köppe!
1073
1074 2001-06-08 Michael Livshin <mlivshin@bigfoot.com>
1075
1076 * snarf.h, filter-doc-snarfage.c: more changes to cope with
1077 space-happy C preprocessors.
1078
1079 * filter-doc-snarfage.c, guile-snarf.in: try to cope with spaces
1080 inside cookies. thanks to Matthias Köppe!
1081
1082 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1083
1084 * keywords.c (keyword_print): Don't use SCM_C[AD]R to access
1085 keywords. Fix gc protection.
1086
1087 * objects.c (scm_mcache_lookup_cmethod): Don't use side effecting
1088 operations in macro calls.
1089
1090 * pairs.c (scm_error_pair_access): Avoid recursion.
1091
1092 Thanks to Matthias Koeppe for reporting the bugs that correspond
1093 to the following set of patches.
1094
1095 * unif.c (scm_bit_set_star_x, scm_bit_invert_x), vectors.h
1096 (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR): Obtain the
1097 bitvector base address using SCM_BITVECTOR_BASE.
1098
1099 * unif.h (SCM_BITVECTOR_BASE): Return the base address as an
1100 unsigned long*.
1101
1102 2001-06-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
1103
1104 * goops.c (SCM_CLASS_REDEF): Removed.
1105
1106 * vectors.h (VECTORSH, SCM_VECTORS_H): Renamed <foo>H to
1107 SCM_<foo>_H.
1108
1109 Thanks to Matthias Koeppe for reporting the bugs that correspond
1110 to the following set of patches.
1111
1112 * goops.c (scm_sys_prep_layout_x, scm_basic_basic_make_class,
1113 create_basic_classes, scm_sys_fast_slot_set_x, set_slot_value,
1114 scm_sys_allocate_instance, clear_method_cache,
1115 scm_sys_invalidate_method_cache_x, scm_make,
1116 create_standard_classes, scm_make_port_classes, scm_make_class,
1117 scm_add_slot): Use SCM_SET_SLOT to set slot values.
1118
1119 (prep_hashsets): Use SCM_SET_HASHSET to set class hash values.
1120
1121 * goops.h (SCM_SET_SLOT, SCM_SET_HASHSET): New macros.
1122
1123 * ramap.c (BINARY_ELTS_CODE, BINARY_PAIR_ELTS_CODE,
1124 UNARY_ELTS_CODE): Remove bogus break statement.
1125
1126 * vectors.h (SCM_BITVEC_REF, SCM_BITVEC_SET, SCM_BITVEC_CLR):
1127 Don't access bit vectors elements as SCM objects.
1128
1129 * weaks.c (scm_make_weak_vector, scm_make_weak_key_hash_table,
1130 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
1131 Don't assign to an unpacked value.
1132
1133 2001-06-07 Dirk Herrmann <D.Herrmann@tu-bs.de>
1134
1135 * __scm.h (SCM_NORETURN): Moved here from error.h.
1136
1137 (SCM_UNUSED): New macro.
1138
1139 (SCM_DEBUG_PAIR_ACCESSES): New macro.
1140
1141 * backtrace.c (display_error_handler), continuations.c
1142 (continuation_print), debug.c (debugobj_print), dynwind.c
1143 (guards_print), environments.c (observer_print,
1144 core_environments_finalize, leaf_environment_cell,
1145 leaf_environment_print, eval_environment_print,
1146 eval_environment_observer, import_environment_define,
1147 import_environment_undefine, import_environment_print,
1148 import_environment_observer, export_environment_define,
1149 export_environment_undefine, export_environment_print,
1150 export_environment_observer), eval.c (scm_m_quote, scm_m_begin,
1151 scm_m_if, scm_m_set_x, scm_m_and, scm_m_or, scm_m_case,
1152 scm_m_cond, scm_m_lambda, scm_m_letstar, scm_m_do, scm_m_delay,
1153 scm_m_letrec1, scm_m_apply, scm_m_cont, scm_m_nil_cond,
1154 scm_m_nil_ify, scm_m_t_ify, scm_m_0_cond, scm_m_0_ify,
1155 scm_m_1_ify, scm_m_atfop, scm_m_at_call_with_values), evalext.c
1156 (scm_m_generalized_set_x), fluids.c (fluid_print), fports.c
1157 (fport_print), gc.c (gc_start_stats, scm_remember_upto_here_1,
1158 scm_remember_upto_here_2, scm_remember_upto_here, mark_gc_async),
1159 gh_init.c (gh_standard_handler), goops.c (get_slot_value,
1160 set_slot_value, test_slot_existence, scm_change_object_class,
1161 scm_m_atslot_ref, scm_m_atslot_set_x, make_struct_class,
1162 default_setter), guardians.c (guardian_print, guardian_gc_init,
1163 guardian_zombify, whine_about_self_centered_zombies), guile.c
1164 (inner_main), init.c (stream_handler), keywords.c (keyword_print),
1165 mallocs.c (malloc_print), numbers.c (scm_print_real,
1166 scm_print_complex, scm_bigprint), ports.c (flush_port_default,
1167 end_input_default, scm_port_print, fill_input_void_port,
1168 write_void_port), root.c (root_print), smob.c (scm_mark0,
1169 scm_free0, scm_smob_print, scm_smob_apply_1_error,
1170 scm_smob_apply_2_error, scm_smob_apply_3_error, free_print),
1171 stime.c (restorezone), strings.c (scm_makfromstr), struct.c
1172 (scm_struct_free_0, scm_struct_free_standard,
1173 scm_struct_free_entity, scm_struct_gc_init, scm_free_structs),
1174 throw.c (jmpbuffer_print, lazy_catch_print, ss_handler,
1175 scm_handle_by_throw, scm_ithrow), weaks.c
1176 (scm_weak_vector_gc_init, scm_mark_weak_vector_spines,
1177 scm_scan_weak_vectors), ramap.c (scm_array_fill_int), filesys.c
1178 (scm_dir_print): Mark unused parameters with SCM_UNUSED.
1179
1180 * error.h (SCM_NORETURN): Moved to __scm.h.
1181
1182 * error.h (ERRORH, SCM_ERROR_H), pairs.h (PAIRSH, SCM_PAIRS_H):
1183 Renamed <foo>H to SCM_<foo>_H.
1184
1185 * gc.c (debug_cells_gc_interval): New static variable.
1186
1187 (scm_assert_cell_valid): If selected by the user, perform
1188 additional garbage collections.
1189
1190 (scm_set_debug_cell_accesses_x): Extended to let the user specify
1191 if additional garbage collections are desired.
1192
1193 (mark_gc_async): If additional garbage collections are selected
1194 by the user, don't call the after-gc-hook. Instead require the
1195 user to run the hook manually.
1196
1197 * pairs.c (scm_error_pair_access): New function. Only compiled
1198 if SCM_DEBUG_PAIR_ACCESSES is set to 1.
1199
1200 * pairs.h (SCM_VALIDATE_PAIR): New macro.
1201
1202 (SCM_CAR, SCM_CDR, SCM_SETCAR, SCM_SETCDR): If
1203 SCM_DEBUG_PAIR_ACCESSES is set to 1, make sure that the argument
1204 is a real pair object. (Glocs are also accepted, but that may
1205 change.) If not, abort with an error message.
1206
1207 2001-06-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
1208
1209 * eval.c (SCM_VALIDATE_NON_EMPTY_COMBINATION): New macro.
1210
1211 (SCM_CEVAL, SCM_APPLY): Replace calls to SCM_EVALIM2 with calls
1212 to SCM_VALIDATE_NON_EMPTY_COMBINATION.
1213
1214 2001-06-05 Marius Vollmer <mvo@zagadka.ping.de>
1215
1216 * extensions.c (scm_c_register_extension): Allow NULL as library
1217 name.
1218 (load_extension): Ignore NULL library names when comparing.
1219
1220 * hash.c (scm_hasher): Use SCM_UNPACK in the case labels so that
1221 non-pointers are being compared. Thanks to Alexander Klimov!
1222
1223 2001-06-04 Gary Houston <ghouston@arglist.com>
1224
1225 * rw.c (scm_write_string_partial): new procedure implementing
1226 write-string/partial in (ice-9 rw).
1227 * rw.h: declare scm_write_string_partial.
1228
1229 2001-06-04 Marius Vollmer <mvo@zagadka.ping.de>
1230
1231 * keywords.c (keyword_print): Substract 1 from length of symbol
1232 name, accounting for the silly dash.
1233
1234 * dynl.c (scm_registered_modules, scm_clear_registered_modules):
1235 Do not emit deprecation warning.
1236
1237 Added exception notice to all files.
1238
1239 * dynl.c: Include "deprecation.h".
1240
1241 2001-06-03 Marius Vollmer <mvo@zagadka.ping.de>
1242
1243 * dynl.c (scm_register_module_xxx, scm_registered_modules,
1244 scm_clear_registered_modules): Deprecated.
1245
1246 2001-06-02 Rob Browning <rlb@cs.utexas.edu>
1247
1248 * .cvsignore: add guile_filter_doc_snarfage guile-snarf-docs
1249 guile-snarf-docs-texi.
1250
1251 * fports.c: HAVE_ST_BLKSIZE changed to
1252 HAVE_STRUCT_STAT_ST_BLKSIZE.
1253 (scm_fport_buffer_add): HAVE_ST_BLKSIZE changed to
1254 HAVE_STRUCT_STAT_ST_BLKSIZE.
1255
1256 * filesys.c (scm_stat2scm): HAVE_ST_RDEV changed to
1257 HAVE_STRUCT_STAT_ST_RDEV.
1258 (scm_stat2scm): HAVE_ST_BLKSIZE changed to
1259 HAVE_STRUCT_STAT_ST_BLKSIZE.
1260 (scm_stat2scm): HAVE_ST_BLOCKS changed to
1261 HAVE_STRUCT_STAT_ST_BLOCKS.
1262
1263 2001-06-02 Marius Vollmer <mvo@zagadka.ping.de>
1264
1265 * strports.c (scm_eval_string): Use scm_primitive_eval_x instead
1266 of scm_eval_x to allow module changes between the forms in the
1267 string. Set/restore module using scm_c_call_with_current_module.
1268
1269 * mkstemp.c: New file, slightly modified from libiberties
1270 mkstemps.c.
1271
1272 2001-05-31 Michael Livshin <mlivshin@bigfoot.com>
1273
1274 * guile-snarf-docs.in, guile-snarf-docs-texi.in,
1275 filter-doc-snarfage.c: new files.
1276
1277 * Makefile.am: add stuff to [build,] use and distribute
1278 guile-snarf-docs, guile-snarf-docs-texi, guile_filter_doc_snarfage.
1279
1280 * guile-snarf.in: grok the new snarf output.
1281
1282 * snarf.h: make the output both texttools- and `read'-friendly.
1283
1284 * guile-doc-snarf.in: reimplement in terms of guile-snarf and
1285 guile-snarf-docs. (should also deprecate, I guess. maybe not).
1286
1287 2001-05-31 Marius Vollmer <mvo@zagadka.ping.de>
1288
1289 * print.c (scm_simple_format): Support "~~" and "~%". Signal
1290 error for unsupported format controls and for superflous
1291 arguments. Thanks to Daniel Skarda!
1292
1293 * print.h, print.c (scm_print_symbol_name): Factored out of
1294 scm_iprin1.
1295 (scm_iprin1): Call it.
1296
1297 * keywords.c (keyword_print): Use scm_print_symbol_name so that
1298 weird names are printed correctly.
1299
1300 * print.c (scm_print_symbol_name): Symbols whose name starts with
1301 `#' or `:' or ends with `:' are considered weird.
1302
1303 2001-05-30 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1304
1305 * numbers.c (scm_difference, scm_divide): Clarified comments for -
1306 and /.
1307
1308 2001-05-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1309
1310 * debug.h: Removed prototype for scm_eval_string.
1311
1312 2001-05-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1313
1314 * symbols.c (scm_gensym): Fix buffer overrun (try `(gensym
1315 (make-string 2000 #\!))' in an older version).
1316
1317 Change strncpy to memcpy to allow embedded NUL characters in
1318 symbol prefix.
1319
1320 2001-05-28 Michael Livshin <mlivshin@bigfoot.com>
1321
1322 * hooks.c (scm_create_hook): deprecated.
1323 (make_hook): deleted.
1324 (scm_make_hook): all the hook creation code is now here.
1325
1326 * gc.c (scm_init_gc): don't call `scm_create_hook'. instead make
1327 a hook, make it permanent, and do a `scm_c_define' on it.
1328
1329 * strop.c (s_scm_string_capitalize_x): fix docstring quoting.
1330
1331 * socket.c (s_scm_inet_pton): fix docstring quoting.
1332 (s_scm_inet_ntop): ditto.
1333
1334 * num2integral.i.c (INTEGRAL2NUM): cast to fix a warning.
1335
1336 * hashtab.c (scm_internal_hash_fold): fix argument position in
1337 SCM_ASSERT.
1338
1339 * environments.c (s_scm_import_environment_set_imports_x): fix
1340 argument position in SCM_ASSERT.
1341
1342 * debug.c (s_scm_make_gloc): fix SCM packing/unpacking.
1343 (s_scm_make_iloc): ditto.
1344
1345 2001-05-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
1346
1347 * __scm.h (SCM_DEBUG_TYPING_STRICTNESS): Make 1 the default.
1348
1349 * eval.c (promise_print): Read the promise's value as an object.
1350
1351 (SCM_CEVAL): Don't perform side-effecting operations in macro
1352 parameters.
1353
1354 * eval.h (SCM_EVALIM2): Fix the typing strictness of the
1355 conditional expression.
1356
1357 * gc.c (scm_master_freelist, scm_master_freelist2): Added missing
1358 initializer.
1359
1360 * gh_data.c (gh_set_substr): Removed redundant unsigned >= 0
1361 text, removed redundant computation of effective_length and fixed
1362 the overflow check.
1363
1364 * goops.c (test_slot_existence): Use SCM_EQ_P to compare SCM
1365 values.
1366
1367 (wrap_init): Don't use SCM_C[AD]R for non pairs.
1368
1369 (hell): Make it a scm_bits_t pointer rather than a SCM pointer.
1370
1371 * goops.c (scm_sys_modify_class), strports.c (st_resize_port),
1372 struct.h (SCM_SET_STRUCT_PRINTER): Store unpacked values.
1373
1374 * goops.h (SCM_ACCESSORS_OF, SCM_SLOT): Return a SCM value.
1375
1376 * goops.h (GOOPSH, SCM_GOOPS_H), modules.h (MODULESH,
1377 SCM_MODULES_H), objects.h (OBJECTSH, SCM_OBJECTS_H), struct.h
1378 (STRUCTH, SCM_STRUCT_H), symbols.h (SYMBOLSH, SCM_SYMBOLS_H),
1379 __scm.h (__SCMH, SCM___SCM_H): Change <foo>H to SCM_<foo>_H.
1380
1381 * modules.[ch] (scm_module_tag): Make it a scm_bits_t value.
1382
1383 * objects.h (SCM_SET_CLASS_INSTANCE_SIZE): Fixed typing.
1384
1385 * ramap.c (ramap_rp): Removed bogus `;´.
1386
1387 * sort.c (scm_restricted_vector_sort_x): Fixed signedness
1388 problem.
1389
1390 * symbols.h (SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS, SCM_SYMBOL_FUNC,
1391 SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS):
1392 Read SCM objects rather than scm_bits_t values.
1393
1394 * tags.h (SCM_VOIDP_TEST): Removed.
1395
1396 (SCM_DEBUG_TYPING_STRICTNESS): Now takes values 0, 1, 2. The
1397 value of 2 now corresponds to the former 1, the current 1
1398 corresponds to the former situation that SCM_VOIDP_TEST was
1399 defined.
1400
1401 (SCM): Now defined as typedef struct scm_unused_struct * SCM;
1402 If this appears to be not ANSI compliant, we will change it to
1403 typedef struct scm_unused_struct { } * SCM;
1404 Thanks to Han-Wen Nienhuys for the suggestion.
1405
1406 * unif.c (scm_array_set_x): Fix typing problem, and use
1407 SCM_UVECTOR_BASE instead of SCM_VELTS or SCM_CELL_WORD_1 when
1408 dealing with uniform vectors.
1409
1410 2001-05-27 Michael Livshin <mlivshin@bigfoot.com>
1411
1412 * gc.c (scm_init_storage): init `scm_gc_registered_roots'.
1413 (scm_igc): mark from them, too (precisely, not conservatively!).
1414
1415 * root.h (scm_gc_registered_roots): new object in
1416 scm_sys_protects.
1417
1418 * hooks.c (scm_create_hook): call `scm_gc_protect_object' instead
1419 `scm_protect_object'. shouldn't call it at all, though, it seems.
1420
1421 * gc.c (scm_[un]protect_object): deprecated.
1422 (scm_gc_[un]protect_object): new names for scm_[un]protect_object.
1423 (scm_gc_[un]register_root[s]): new.
1424
1425 * gc.h: add prototypes for scm_gc_[un]protect_object,
1426 scm_gc_[un]register_root[s].
1427
1428 2001-05-26 Michael Livshin <mlivshin@bigfoot.com>
1429
1430 revert the controversial part of the 2001-05-24 changes.
1431
1432 2001-05-25 Marius Vollmer <mvo@zagadka.ping.de>
1433
1434 * modules.c (scm_env_module): Exported to Scheme.
1435
1436 * eval.c (scm_debug_opts): New option `show-file-name'.
1437
1438 * debug.h (SCM_SHOW_FILE_NAME): New.
1439
1440 * backtrace.c: Include "libguile/filesys.h".
1441 (sym_base, display_backtrace_get_file_line,
1442 display_backtrace_file, display_backtrace_file_and_line): New.
1443 (display_frame): Call display_backtrace_file_and_line if that is
1444 requested.
1445 (display_backtrace_body): Call scm_display_backtrace_file if
1446 requested.
1447
1448 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr):
1449 Prototypes removed since there's no definition for these
1450 functions.
1451
1452 2001-05-24 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1453
1454 * unif.c (scm_make_ra, array_free), unif.h (SCM_ARRAY_DIMS):
1455 Changed use of scm_array->scm_array_t and
1456 scm_array_dim->scm_array_dim_t to enable build with
1457 --disable-deprecated.
1458
1459 2001-05-24 Michael Livshin <mlivshin@bigfoot.com>
1460
1461 The purpose of this set of changes is to regularize Guile's usage
1462 of ANSI C integral types, with the following ideas in mind:
1463
1464 - SCM does not nesessarily have to be long.
1465 - long is not nesessarily enough to store pointers.
1466 - long is not nesessarily the same size as int.
1467
1468 The changes are incomplete and possibly buggy. Please test on
1469 something exotic.
1470
1471 * validate.h
1472 (SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]):
1473 new macros.
1474
1475 * unif.h: type renaming:
1476 scm_array -> scm_array_t
1477 scm_array_dim -> scm_array_dim_t
1478 the old names are deprecated, all in-Guile uses changed.
1479
1480 * tags.h (scm_ubits_t): new typedef, representing unsigned
1481 scm_bits_t.
1482
1483 * stacks.h: type renaming:
1484 scm_info_frame -> scm_info_frame_t
1485 scm_stack -> scm_stack_t
1486 the old names are deprecated, all in-Guile uses changed.
1487
1488 * srcprop.h: type renaming:
1489 scm_srcprops -> scm_srcprops_t
1490 scm_srcprops_chunk -> scm_srcprops_chunk_t
1491 the old names are deprecated, all in-Guile uses changed.
1492
1493 * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c,
1494 rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c,
1495 strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c,
1496 vectors.c, vports.c, weaks.c:
1497 various int/size_t -> size_t/scm_bits_t changes.
1498
1499 * random.h: type renaming:
1500 scm_rstate -> scm_rstate_t
1501 scm_rng -> scm_rng_t
1502 scm_i_rstate -> scm_i_rstate_t
1503 the old names are deprecated, all in-Guile uses changed.
1504
1505 * procs.h: type renaming:
1506 scm_subr_entry -> scm_subr_entry_t
1507 the old name is deprecated, all in-Guile uses changed.
1508
1509 * options.h (scm_option_t.val): unsigned long -> scm_bits_t.
1510 type renaming:
1511 scm_option -> scm_option_t
1512 the old name is deprecated, all in-Guile uses changed.
1513
1514 * objects.c: various long -> scm_bits_t changes.
1515 (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t
1516
1517 * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to
1518 SCM_I_FIXNUM_BIT.
1519
1520 * num2integral.i.c: new file, multiply included by numbers.c, used
1521 to "templatize" the various integral <-> num conversion routines.
1522
1523 * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig,
1524 scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl):
1525 deprecated.
1526 (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig,
1527 scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big,
1528 scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big,
1529 scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big,
1530 scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big,
1531 scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num,
1532 scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num,
1533 scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int,
1534 scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff,
1535 scm_num2size): new functions.
1536
1537 * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.
1538
1539 * load.c: change int -> size_t in various places (where the
1540 variable is used to store a string length).
1541 (search-path): call scm_done_free, not scm_done_malloc.
1542
1543 * list.c (scm_ilength): return a scm_bits_t, not long.
1544 some other {int,long} -> scm_bits_t changes.
1545
1546 * hashtab.c: various [u]int -> scm_bits_t changes.
1547 scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef).
1548 (scm_ihashx): n: uint -> scm_bits_t
1549 use scm_bits2num instead of scm_ulong2num.
1550
1551 * gsubr.c: various int -> scm_bits_t changes.
1552
1553 * goops.[hc]: various {int,long} -> scm_bits_t changes.
1554
1555 * gh_data.c (gh_num2int): no loss of precision any more.
1556
1557 * gh.h (gh_str2scm): len: int -> size_t
1558 (gh_{get,set}_substr): start: int -> scm_bits_t,
1559 len: int -> size_t
1560 (gh_<num>2scm): n: int -> scm_bits_t
1561 (gh_*vector_length): return scm_[u]size_t, not unsigned long.
1562 (gh_length): return scm_bits_t, not unsigned long.
1563
1564 * gc.[hc]: various small changes relating to many things stopping
1565 being long and starting being scm_[u]bits_t instead.
1566 scm_mallocated should no longer wrap around.
1567
1568 * fports.h: type renaming:
1569 scm_fport -> scm_fport_t
1570 the old name is deprecated, all in-Guile uses changed.
1571
1572 * fports.c (fport_fill_input): count: int -> scm_bits_t
1573 (fport_flush): init_size, remaining, count: int -> scm_bits_t
1574
1575 * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed
1576 those prototypes, as the functions they prototype don't exist.
1577
1578 * fports.c (default_buffer_size): int -> size_t
1579 (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t
1580 default_size: int -> size_t
1581 (scm_setvbuf): csize: int -> scm_bits_t
1582
1583 * fluids.c (n_fluids): int -> scm_bits_t
1584 (grow_fluids): old_length, i: int -> scm_bits_t
1585 (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int ->
1586 scm_bits_t
1587 (scm_c_with_fluids): flen, vlen: int -> scm_bits_t
1588
1589 * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to
1590 the new and shiny SCM_NUM2INT.
1591
1592 * extensions.c: extension -> extension_t (and made a typedef).
1593
1594 * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so
1595 there are no nasty surprises if/when the various deeply magic tag
1596 bits move somewhere else.
1597
1598 * eval.c: changed the locals used to store results of SCM_IFRAME,
1599 scm_ilength and such to be of type scm_bits_t (and not int/long).
1600 (iqq): depth, edepth: int -> scm_bits_t
1601 (scm_eval_stack): int -> scm_bits_t
1602 (SCM_CEVAL): various vars are not scm_bits_t instead of int.
1603 (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t
1604 i: int -> scm_bits_t
1605
1606 * environments.c: changed the many calls to scm_ulong2num to
1607 scm_ubits2num.
1608 (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t
1609
1610 * dynwind.c (scm_dowinds): delta: long -> scm_bits_t
1611
1612 * debug.h: type renaming:
1613 scm_debug_info -> scm_debug_info_t
1614 scm_debug_frame -> scm_debug_frame_t
1615 the old names are deprecated, all in-Guile uses changed.
1616 (scm_debug_eframe_size): int -> scm_bits_t
1617
1618 * debug.c (scm_init_debug): use scm_c_define instead of the
1619 deprecated scm_define.
1620
1621 * continuations.h: type renaming:
1622 scm_contregs -> scm_contregs_t
1623 the old name is deprecated, all in-Guile uses changed.
1624 (scm_contregs_t.num_stack_items): size_t -> scm_bits_t
1625 (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t
1626
1627 * continuations.c (scm_make_continuation): change the type of
1628 stack_size from long to scm_bits_t.
1629
1630 * ports.h: type renaming:
1631 scm_port_rw_active -> scm_port_rw_active_t (and made a typedef)
1632 scm_port -> scm_port_t
1633 scm_ptob_descriptor -> scm_ptob_descriptor_t
1634 the old names are deprecated, all in-Guile uses changed.
1635 (scm_port_t.entry): int -> scm_bits_t.
1636 (scm_port_t.line_number): int -> long.
1637 (scm_port_t.putback_buf_size): int -> size_t.
1638
1639 * __scm.h (long_long, ulong_long): deprecated (they pollute the
1640 global namespace and have little value beside that).
1641 (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an
1642 SCM handle).
1643 (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they
1644 exist (for size_t & ptrdiff_t).
1645 (scm_sizet): deprecated.
1646
1647 * Makefile.am (noinst_HEADERS): add num2integral.i.c
1648
1649 2001-05-23 Marius Vollmer <mvo@zagadka.ping.de>
1650
1651 * snarf.h (SCM_CONST_LONG): Use SCM_VCELL_INIT instead of
1652 SCM_VARIABLE_INIT since that it what it used to be.
1653
1654 * deprecation.c (scm_include_deprecated_features): Make docstring
1655 ANSIsh. Thanks to Matthias Köppe!
1656
1657 2001-05-21 Marius Vollmer <mvo@zagadka.ping.de>
1658
1659 * symbols.c (scm_mem2symbol): Re-introduce indirect cell. It is
1660 needed for weak-key hashtables.
1661
1662 * procs.c (scm_make_subr_with_generic): Add missing last argument
1663 in call to scm_c_define_gsubr_with_generic. Thanks to Ariel Rios.
1664
1665 * eval.c: Use SCM_EQ_P instead of `==' or `!=' in certain
1666 places. (scm_c_improper_memq): Return 1 instead of SCM_BOOL_T.
1667
1668 * eval.h (SCM_EVALIM2): Use SCM_EQ_P instead of `=='.
1669
1670 2001-05-20 Marius Vollmer <mvo@zagadka.ping.de>
1671
1672 * symbols.c (scm_mem2symbol): Call `scm_must_strndup' instead of
1673 `duplicate_string'. Do not use an indirect cell, store symbol
1674 directly in collision list of hash table.
1675 (duplicate_string): Removed.
1676
1677 * init.c (scm_init_guile_1): Call scm_init_extensions.
1678
1679 * Makefile.am: Add "extensions.c" and related files in all the
1680 right places.
1681
1682 * extensions.h, extension.c: New files.
1683
1684 * gc.h, gc.c (scm_must_strdup, scm_must_strndup): New.
1685
1686 * modules.h (scm_system_module_env_p): Move out of deprecated
1687 section.
1688
1689 * rw.h (scm_init_rw): Added prototype.
1690
1691 * gsubr.h, gsubr.c (scm_c_make_gsubr, scm_c_define_gsubr,
1692 scm_c_make_gsubr_with_generic, scm_c_define_gsubr_with_generic):
1693 New functions. They replace scm_make_gsubr and
1694 scm_make_gsubr_with_generic. The `make' variants only create the
1695 gsubr object, while the `define' variants also put it into the
1696 current module. Changed all callers.
1697 (scm_make_gsubr, scm_make_gsubr_with_generic): Deprecated.
1698
1699 * procs.h, procs.c (scm_c_make_subr, scm_c_define_subr,
1700 scm_c_make_subr_with_generic, scm_c_define_subr_with_generic): New
1701 functions. They replace scm_make_subr, scm_make_subr_opt and
1702 scm_make_subr_with_generic. The `make' variants only create the
1703 subr object, while the `define' variants also put it into the
1704 current module. Changed all callers.
1705 (scm_make_subr, scm_make_subr_opt, scm_make_subr_with_generic):
1706 Deprecated.
1707
1708 * eval.c, gc.c, gh_funcs.c, goops.c, macros.c, pairs.c, ramap.c,
1709 rdelim.c, rw.c, scmsigs.c, snarf.h, values.c: Changed according to
1710 the comments above.
1711
1712 2001-05-19 Neil Jerram <neil@ossau.uklinux.net>
1713
1714 * throw.c (scm_lazy_catch): Slight docstring clarification.
1715
1716 2001-05-19 Marius Vollmer <mvo@zagadka.ping.de>
1717
1718 * throw.c: Lazy-catch handlers are no longer allowed to return.
1719 Fixed comments throughout.
1720 (scm_ithrow): Signal an error when a lazy-catch handler returns.
1721 Moved actual jump to jmpbuf into if-branch where the jmpbuf is
1722 recognized as such.
1723
1724 * version.c (s_scm_micro_version): Fix typo in FUNC_NAME, it
1725 refered to s_scm_minor_version previously.
1726
1727 * modules.h, modules.c: Moved around a lot of code so that
1728 deprecated features appear at the bottom.
1729 (root_module_lookup_closure, scm_sym_app, scm_sym_modules,
1730 module_prefix, make_modules_in_var, beautify_user_module_x_var,
1731 scm_the_root_module, scm_make_module, scm_ensure_user_module,
1732 scm_load_scheme_module): Deprecated.
1733 (scm_system_module_env_p): Return SCM_BOOL_T directly for
1734 environments corresponding to the root module.
1735 (convert_module_name, scm_c_resolve_module,
1736 scm_c_call_with_current_module, scm_c_define_module,
1737 scm_c_use_module, scm_c_export): New.
1738 (the_root_module): New static variant of scm_the_root_module. Use
1739 it everywhere instead of scm_the_root_module.
1740
1741 * fluids.h, fluids.c (scm_internal_with_fluids): Deprecated.
1742 (scm_c_with_fluids): Renamed from scm_internal_with_fluids.
1743 (scm_c_with_fluid): New.
1744 (scm_with_fluids): Use scm_c_with_fluids instead of
1745 scm_internal_with_fluids.
1746
1747 * goops.h, goops.c (scm_init_goops_builtins): Renamed from
1748 `scm_init_goops'. Do not explicitly create/switch modules.
1749 Return SCM_UNSPECIFIED.
1750 (scm_init_goops): Only register `%init-goops-builtins' procedure.
1751 (scm_load_goops): Use scm_c_resolve_module instead of
1752 scm_resolve_module.
1753
1754 * init.c (scm_init_guile_1): Call `scm_init_goops' instead of
1755 `scm_init_oop_goops_goopscore_module'. Call `scm_init_rdelim' and
1756 `scm_init_rw' prior to loading the startup files.
1757
1758 * rdelim.h, rdelim.c: (scm_init_rdelim_builtins): Renamed from
1759 scm_init_rdelim. Do not explicitly create/switch modules.
1760 Return SCM_UNSPECIFIED.
1761 (scm_init_rdelim): Only register `%init-rdelim-builtins'
1762 procedure.
1763
1764 * rw.c (scm_init_rw_builtins): Renamed from scm_init_rw. Do not
1765 explicitly create/switch modules. Return SCM_UNSPECIFIED.
1766 (scm_init_rw): Only register `%init-rw-builtins' procedure.
1767
1768 * script.c (scm_shell): Evaluate the compiled switches in the
1769 current module, not in the root module.
1770
1771 2001-05-18 Marius Vollmer <mvo@zagadka.ping.de>
1772
1773 * fluids.c (scm_c_with_fluids): Rename from
1774 scm_internal_with_fluids.
1775 (scm_internal_with_fluids): Deprecated.
1776 (scm_c_with_fluid): New.
1777
1778 2001-05-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
1779
1780 * print.h (PRINTH, SCM_PRINT_H): Renamed PRINTH to SCM_PRINT_H.
1781
1782 (SCM_PORT_WITH_PS_PORT, SCM_PORT_WITH_PS_PS): Only pairs may be
1783 accessed with SCM_C[AD]R.
1784
1785 (SCM_COERCE_OUTPORT): Removed redundant SCM_NIMP test.
1786
1787 2001-05-16 Rob Browning <rlb@cs.utexas.edu>
1788
1789 * version.c (s_scm_major_version): doc fixes.
1790 (s_scm_minor_version): doc fixes.
1791 (s_scm_minor_version): new function.
1792
1793 * version.h (scm_init_version): new function.
1794
1795 * versiondat.h.in: add GUILE_MICRO_VERSION.
1796
1797 2001-05-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
1798
1799 * deprecation.c (scm_init_deprecation): Renamed
1800 GUILE_WARN_DEPRECATED_DEFAULT to SCM_WARN_DEPRECATED_DEFAULT.
1801
1802 2001-05-16 Marius Vollmer <mvo@zagadka.ping.de>
1803
1804 * Makefile.am (cpp_sig_symbols.c, cpp_err_symbols.c): Make
1805 dependent on cpp_cnvt.awk
1806
1807 2001-05-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
1808
1809 * script.c (scm_compile_shell_switches): New command line option
1810 `--use-srfi' for loading a list of SRFIs on startup.
1811 (scm_shell_usage): Added `--use-srfi' to help message.
1812
1813 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
1814
1815 Merged from mvo-vcell-cleanup-1-branch.
1816
1817 The concept of vcells has been removed from Guile. With it,
1818 explicit obarrays and associated operations are gone. Use
1819 hashtables instead of obarrays.
1820
1821 Throughout: use scm_sym2var instead of scm_sym2vcell and treat
1822 result as variable instead of vcell. Glocs no longer point to a
1823 vcell but to a variable. Use scm_c_define instead of
1824 scm_sysintern and treat the result as a variable (which it is),
1825 not a vcell.
1826
1827 * variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
1828 SCM_DEFVARIABLEP): Deprecated.
1829 (SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
1830 (variable_print): Do not print name of variable.
1831 (variable_equalp): Compare values, not vcells.
1832 (anonymous_variable_sym): Removed.
1833 (make_vcell_variable): Removed.
1834 (make_variable): New, as replacement.
1835 (scm_make_variable, scm_make_undefined_variable): Do not take name
1836 hint parameter.
1837 (scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
1838 error in that case.
1839 (scm_builtin_variable): Deprecated.
1840
1841 * symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
1842 scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
1843 scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
1844 scm_sysintern, scm_sysintern0, scm_symbol_value0,
1845 scm_string_to_obarray_symbol, scm_intern_symbol,
1846 scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
1847 scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
1848 Deprecated and moved to "symbols-deprecated.c".
1849 (copy_and_prune_obarray, scm_builtin_bindings): Removed.
1850 (scm_init_symbols): Call scm_init_symbols_deprecated.
1851 * symbols-deprecated.c: New file.
1852 * Makefile.am: Added symbols-deprecated.c and related files in all
1853 the right places.
1854
1855 * snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
1856 SCM_GLOBAL_VCELL_INIT): Deprecated.
1857 (SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
1858 SCM_GLOBAL_VARIABLE_INIT): New, as replacement. Changed all uses.
1859
1860 * print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
1861 SCM_GLOC_SYM.
1862
1863 * evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
1864 hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
1865 ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
1866 socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
1867 Changed according to the `throughout' comments.
1868
1869 * modules.h, modules.c (scm_module_system_booted_p): Changed type
1870 to `int'.
1871 (scm_module_type): Removed.
1872 (the_root_module): Renamed to the_root_module_var. Now points to
1873 a variable instead of a vcell. Updated all uses.
1874 (scm_the_root_module): Return SCM_BOOL_F when module systems
1875 hasn't been booted yet.
1876 (SCM_VALIDATE_STRUCT_TYPE): Removed.
1877 (scm_post_boot_init_modules): Made static.
1878 (scm_set_current_module): Call scm_post_boot_init_modules on first
1879 call.
1880 (make_modules_in, beautify_user_module_x, resolve_module,
1881 try_module_autoload, module_make_local_var_x): Tacked on "_var"
1882 suffix. Now point to variables instead of vcells. Updated all
1883 uses.
1884 (scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
1885 and return SCM_BOOL_F in that case.
1886 (scm_module_transformer): Likewise.
1887 (sym_module, scm_lookup_closure_module, scm_env_module): New.
1888 (SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
1889 (scm_eval_closure_lookup): Do not allow new definitions when
1890 `interface' flag is set.
1891 (scm_standard_interface_eval_closure): New.
1892 (scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
1893 scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
1894 scm_c_lookup, scm_c_module_define, scm_c_define,
1895 scm_module_reverse_lookup, scm_get_pre_modules_obarray,
1896 scm_modules_prehistory): New.
1897 (scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
1898 instead of scm_intern0.
1899
1900 * macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
1901 symbol.
1902
1903 * keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
1904 hashtable operations to maintain the keywords, not obarray ones.
1905
1906 * init.c (scm_load_startup_files): Do not call
1907 scm_post_boot_init_modules. This is done by
1908 scm_set_current_module now.
1909 (scm_init_guile_1): Call scm_modules_prehistory. Call
1910 scm_init_variable early on.
1911
1912 * goops.c (s_scm_sys_goops_loaded): Get
1913 var_compute_applicable_methods from scm_sym2var, not from a direct
1914 invocation of scm_goops_lookup_closure.
1915
1916 * gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.
1917
1918 * gc.c: Added simple debugging hack to mark phase of GC: When
1919 activated, do not tail-call scm_gc_mark. This gives nice
1920 backtraces.
1921 (scm_unhash_name): Removed.
1922
1923 * feature.c (features): Renamed to features_var. Now points to a
1924 variable instead of a vcell. Updated all uses.
1925
1926 * eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
1927 `scm_current_module_lookup_closure' which will do the right thing
1928 when the module system hasn't been booted yet.
1929 (SCM_GLOC_SYM): Removed.
1930 (SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
1931 (SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
1932
1933 * eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
1934 instead of with vcells. Do not overwrite `var' with the result of
1935 the lookup, use the new `real_var' instead. Remove `var2' in
1936 exchange (which was only used with threads).
1937 (sym_three_question_marks): New.
1938 (scm_unmemocar): Use `scm_module_reverse_lookup' instead of
1939 `SCM_GLOC_SYM'.
1940 (scm_lisp_nil, scm_lisp_t): Directly define as symbols.
1941 (scm_m_atfop): Expect the function definition to be a variable
1942 instead of a vcell.
1943 (scm_macroexp): Do not use `unmemocar', explicitely remember the
1944 symbol instead.
1945 (scm_unmemocopy): Removed thoughts about anti-macro interface.
1946 (scm_eval_args): Use more explicit code in the gloc branch of the
1947 atrocious struct ambiguity test. The optimizer will sort this
1948 out.
1949 (scm_deval_args): Likewise.
1950 (SCM_CEVAL): Likewise. Also, do not use unmemocar, explicitely
1951 remember the symbol instead. Added some comments where
1952 scm_tc3_cons_gloc really exclusively refers to structs.
1953 (scm_init_eval): Use scm_define to initialize "nil" and "t" to
1954 scm_lisp_nil and scm_lisp_t, respectively. Use scm_define instead
1955 of scm_sysintern in general.
1956
1957 * dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
1958 explicit magic.
1959
1960 * debug.c (s_scm_make_gloc): Only allow proper variables, no
1961 pairs. Put the variable directly in the gloc.
1962 (s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
1963 (scm_init_debug): Use scm_c_define instead scm_sysintern.
1964
1965 * cpp_cnvt.awk: Emit "scm_c_define" instead of "scm_sysintern".
1966
1967 * backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
1968 scm_the_last_stack_fluid_var. It now points to a variable instead
1969 of a vcell. Updated all uses.
1970 (scm_has_shown_backtrace_hint_p_var): Now points to a variable
1971 instead of a vcell. Updated all uses.
1972
1973 * _scm.h: Include "variables.h" and "modules.h" since almost
1974 everybody needs them now.
1975
1976 * root.h (scm_symhash, scm_symhash_vars): Removed.
1977 * gc.c (scm_init_storage): Do not initialize them.
1978
1979 2001-05-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
1980
1981 * eval.c (scm_init_eval): Initialize scm_undefineds and
1982 scm_listofnull.
1983
1984 * gc.c (scm_debug_newcell, scm_debug_newcell2): Fixed to behave
1985 like the SCM_NEWCELL macro counterparts.
1986
1987 (scm_init_storage, scm_init_gc): Moved initialization of
1988 scm_tc16_allocated from scm_init_gc to scm_init_storage.
1989
1990 (scm_init_storage): Moved initialization of scm_undefineds and
1991 scm_listofnull to eval.c, initializion of scm_nullstr to
1992 strings.c, initializion of scm_nullvect to vectors.c.
1993
1994 * gc.h (SCM_NEWCELL, SCM_NEWCELL2): Prefer SCM_NULLP over
1995 SCM_IMP, as in scm_debug_newcell and scm_debug_newcell2.
1996
1997 * init.c (scm_init_guile_1): Reordered some initializations and
1998 added dependcy information comments.
1999
2000 * load.c (scm_init_load): Use scm_nullstr.
2001
2002 * strings.c (scm_init_strings): Initialize scm_nullstr.
2003
2004 * vectors.c (scm_init_vectors): Initialize scm_nullvect.
2005
2006 2001-05-15 Marius Vollmer <mvo@zagadka.ping.de>
2007
2008 * values.c (print_values): Print as a unreadable object, not as
2009 multiple lines. Thanks to Matthias Köppe!
2010
2011 2001-05-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
2012
2013 * deprecation.c: Fixed copyright date.
2014
2015 * deprecation.h (DEPRECATION_H, SCM_DEPRECATION_H): Renamed
2016 DEPRECATION_H to SCM_DEPRECATION_H.
2017
2018 2001-05-10 Thien-Thi Nguyen <ttn@revel.glug.org>
2019
2020 * guile-doc-snarf.in: Update copyright.
2021 Fix relative path bug. Thanks to Sergey Poznyakoff.
2022
2023 2001-05-10 Marius Vollmer <mvo@zagadka.ping.de>
2024
2025 * ports.c (scm_port_revealed, scm_set_port_revealed_x): Only
2026 accept open ports. Thanks to Quetzalcoatl Bradley!
2027
2028 2001-05-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2029
2030 * procs.c: Increased `scm_subr_table_room' to 800 because Guile now
2031 has 779 primitives on startup.
2032
2033 2001-05-09 Marius Vollmer <mvo@zagadka.ping.de>
2034
2035 * eval.c (scm_i_eval): Copy expression before passing it to
2036 SCM_XEVAL. The copy operation was removed unintendedly during my
2037 change on 2001-03-25.
2038
2039 2001-05-09 Michael Livshin <mlivshin@bigfoot.com>
2040
2041 from Matthias Köppe (thanks!):
2042
2043 * ports.c (scm_c_read): pointer arithmetic on void pointers isn't
2044 portable.
2045
2046 * deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
2047 docstring.
2048
2049 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2050
2051 * gc.c (scm_init_gc): Added FIXME comment.
2052
2053 * hooks.c: Since hooks don't have a name any more, it is not
2054 necessary to include objprop.h.
2055
2056 (hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.
2057
2058 (symbol_name, scm_make_hook_with_name): Removed.
2059
2060 (scm_create_hook): Don't set the hook's name property.
2061
2062 * hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.
2063
2064 (SCM_HOOK_NAME, scm_make_hook_with_name): Removed.
2065
2066 * init.c (scm_init_guile_1): Hooks don't use objprops any more.
2067
2068 * numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
2069 scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
2070 FLOBUFLEN and define it unconditionally.
2071
2072 2001-05-07 Marius Vollmer <mvo@zagadka.ping.de>
2073
2074 * gh_data.c (gh_lookup): Call gh_module_lookup with
2075 `scm_current_module ()', not `#f'.
2076 (gh_module_lookup): Expect a module instead of an obarray as first
2077 argument and do lookup in that module.
2078
2079 * ramap.c (raeql_1): Do not call scm_uniform_vector_length on
2080 arrays. The length of array is already determined differently and
2081 scm_uniform_vector_length does not work on arrays.
2082
2083 2001-05-06 Marius Vollmer <mvo@zagadka.ping.de>
2084
2085 * snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
2086 as well. "SCM (*)(...)" does not work on RedHat 7.1.
2087
2088 * __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
2089 they are not used. Changed `wrong type' error into `wrong num
2090 args' error. Changed all callers.
2091
2092 * numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
2093 arguments are supplied.
2094
2095 2001-05-05 Thien-Thi Nguyen <ttn@revel.glug.org>
2096
2097 * regex-posix.c (scm_regexp_exec): Expand docstring to briefly
2098 describe `regexp/notbol' and `regexp/noteol' execution flags.
2099
2100 * strop.c (scm_substring_move_x): Doc fix; nfc.
2101
2102 2001-05-05 Marius Vollmer <mvo@zagadka.ping.de>
2103
2104 * objects.c, objects.h (scm_valid_object_procedure_p): New.
2105 (scm_set_object_procedure_x): Use it to check argument. Fix
2106 docstring.
2107
2108 * evalext.c (scm_definedp): Fix docstring.
2109
2110 2001-05-05 Gary Houston <ghouston@arglist.com>
2111
2112 * socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
2113 support.
2114
2115 2001-05-04 Neil Jerram <neil@ossau.uklinux.net>
2116
2117 * eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
2118 symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
2119 Change R4RS references to R5RS.
2120
2121 * guile-snarf.awk.in: Fixes so that (i) blank lines in the
2122 docstring source are correctly reproduced in the output (ii)
2123 we don't anymore get occasional trailing quotes. Also reorganized
2124 and commented the code a little.
2125
2126 * scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
2127 fixes.
2128
2129 2001-05-04 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2130
2131 * strop.c (scm_string_split): New procedure.
2132
2133 * strop.h (scm_string_split): Added prototype.
2134
2135 2001-05-04 Gary Houston <ghouston@arglist.com>
2136
2137 * socket.c: define uint32_t if netdb.h doesn't. thanks to
2138 Dale P. Smith.
2139
2140 2001-05-02 Marius Vollmer <mvo@zagadka.ping.de>
2141
2142 * rw.c: Include "modules.h" and "strports.h".
2143
2144 * net_db.h (scm_gethost): Added prototype.
2145
2146 * deprecation.h, deprecation.c: New.
2147 * Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
2148 (DOT_X_FILES): Added "deprecation.x".
2149 (modinclude_HEADERS): Added "deprecation.h".
2150
2151 * init.c: Include "deprecation.h".
2152 (scm_init_guile_1): Call scm_init_deprecation.
2153
2154 2001-05-01 Marius Vollmer <mvo@zagadka.ping.de>
2155
2156 * gh.h (gh_init_guile, gh_make_string, gh_string_length,
2157 gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
2158 New.
2159
2160 2001-04-29 Gary Houston <ghouston@arglist.com>
2161
2162 * rw.c: new file, implementing C part of module (ice-9 rw).
2163 (scm_read_string_x_partial): moved from ioext.c
2164 (scm_init_rw): new proc.
2165 * rw.h: new file.
2166 init.c: include rw.h and call scm_init_rw.
2167 Makefile.am: include rw.c and rw.h.
2168
2169 2001-04-28 Rob Browning <rlb@cs.utexas.edu>
2170
2171 * numbers.c: enabled local definition of SCM_FLOBUFLEN until we
2172 know what's supposed to happen to it.
2173
2174 * list.h (scm_list_star): deprecation expired - removed.
2175
2176 * numbers.h (scm_dblproc): deprecation expired - removed.
2177 (SCM_UNEGFIXABLE): deprecation expired - removed.
2178 (SCM_FLOBUFLEN): deprecation expired - removed.
2179 (SCM_INEXP): deprecation expired - removed.
2180 (SCM_CPLXP): deprecation expired - removed.
2181 (SCM_REAL): deprecation expired - removed.
2182 (SCM_IMAG): deprecation expired - removed.
2183 (SCM_REALPART): deprecation expired - removed.
2184 (scm_makdbl): deprecation expired - removed.
2185 (SCM_SINGP): deprecation expired - removed.
2186 (SCM_NUM2DBL): deprecation expired - removed.
2187 (SCM_NO_BIGDIG): deprecation expired - removed.
2188
2189 * tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
2190 (scm_tc_dblr): deprecation expired - removed.
2191 (scm_tc_dblc): deprecation expired - removed.
2192 (scm_tc16_flo): deprecation expired - removed.
2193 (scm_tc_flo): deprecation expired - removed.
2194
2195 * tag.h (scm_tag): deprecation expired - removed.
2196
2197 * tag.c: (scm_tag): deprecation expired - removed.
2198
2199 * ioext.c: (scm_fseek): deprecation expired - removed.
2200
2201 * ioext.h (scm_fseek): deprecation expired - removed.
2202
2203 * gh_data.c (gh_int2scmb): deprecation expired - removed.
2204
2205 * gh.h (gh_int2scmb): deprecation expired - removed.
2206
2207 2001-04-28 Neil Jerram <neil@ossau.uklinux.net>
2208
2209 * stacks.c (scm_make_stack): Fix typo in docstring.
2210
2211 2001-04-27 Rob Browning <rlb@cs.utexas.edu>
2212
2213 * error.c (scm_sysmissing): deprecation expired - removed.
2214
2215 * error.h (scm_sysmissing): deprecation expired - removed.
2216
2217 * gc.c
2218 (scm_init_gc): gc-thunk deprecation expired - removed.
2219 (scm_gc_vcell): deprecation expired - removed.
2220 (gc_async_thunk): scm_gc_vcell related code removed.
2221
2222 * vectors.h (SCM_NVECTORP): deprecation expired - removed.
2223
2224 * strings.h
2225 (SCM_NSTRINGP): deprecation expired - removed.
2226 (SCM_NRWSTRINGP): deprecation expired - removed.
2227
2228 * continuations.h (SCM_SETJMPBUF): deprecation expired - removed.
2229
2230 * chars.h
2231 (SCM_ICHRP): deprecation expired - removed.
2232 (SCM_ICHR): deprecation expired - removed.
2233 (SCM_MAKICHR): deprecation expired - removed.
2234
2235 * ports.h
2236 (SCM_INPORTP): deprecation expired - removed.
2237 (SCM_OUTPORTP): deprecation expired - removed.
2238
2239 2001-04-25 Marius Vollmer <mvo@zagadka.ping.de>
2240
2241 * modules.c (scm_module_type): New.
2242 (scm_post_boot_init_modules): Initialize from Scheme value.
2243 (the_module, scm_current_module, scm_init_modules): the_module is
2244 now a C only fluid.
2245 (scm_current_module): Export to Scheme.
2246 (scm_set_current_module): Do not call out to Scheme, do all the
2247 work in C. Export procedure to Scheme. Only accept modules, `#f'
2248 is no longer valid as the current module. Only set
2249 scm_top_level_lookup_closure_var and scm_system_transformer when
2250 they are not deprecated.
2251 (scm_module_transformer, scm_current_module_transformer): New.
2252
2253 * modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
2254 scm_current_module_transformer, scm_module_transformer): New.
2255
2256 * gh_data.c: Removed FIXME comment about gh_lookup returning
2257 SCM_UNDEFINED. That's the right thing to do.
2258
2259 * eval.h, eval.c (scm_system_transformer): Deprecated by moving it
2260 into the conditionally compiled sections.
2261 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
2262 scm_current_module_transformer instead of scm_system_transformer.
2263 * init.c (start_stack): Move initialization of
2264 scm_system_transformer to the deprecated section.
2265
2266 2001-04-22 Neil Jerram <neil@ossau.uklinux.net>
2267
2268 * throw.c (scm_throw): Correct docstring.
2269
2270 2001-04-22 Gary Houston <ghouston@arglist.com>
2271
2272 * socket.c: attempted to improve the docstrings slightly.
2273
2274 * net_db.c: remove bogus "close" declaration.
2275 (inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
2276 scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
2277 moved to socket.c.
2278 * net_db.h: declarations moved too.
2279
2280 * socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
2281 long.
2282 (ipv6_net_to_num, ipv6_num_to_net): new static procedures.
2283 (VALIDATE_INET6): new macro.
2284 (scm_inet_pton, scm_inet_ntop): new procedures, implementing
2285 inet-pton and inet-ntop.
2286 (scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
2287 (scm_addr_vector): use ipv6_net_to_num.
2288
2289 2001-04-21 Dirk Herrmann <D.Herrmann@tu-bs.de>
2290
2291 * eq.c (scm_equal_p), ramap.c (scm_init_ramap): Don't compute the
2292 smob number explicitly. Use SCM_TC2SMOBNUM instead.
2293
2294 * gc.c (MARK, scm_gc_sweep): Only check for illegal heap objects
2295 when compiled in debug mode.
2296
2297 (scm_gc_sweep): Only call smob's free function if it is defined.
2298
2299 * print.c (scm_iprin1): No need to check for validity of smob
2300 type or existence of print function.
2301
2302 * smob.[ch] (scm_smobs): Made into a fixed size global array.
2303 Resizing will not work well with preemptive threading.
2304
2305 * smob.c (scm_smob_print): Don't use SCM_CDR to access smob data.
2306
2307 (scm_make_smob_type): Extracted initialization of smob
2308 descriptors to scm_smob_prehistory. Don't use scm_numsmob outside
2309 of the critical section.
2310
2311 (scm_smob_prehistory): Initialize all smob descriptors. By
2312 default, don't assign a smob free function: Most smob types don't
2313 need one.
2314
2315 * smob.h (SMOBH, SCM_SMOB_H): Renamed SMOBH to SCM_SMOB_H.
2316
2317 2001-04-21 Gary Houston <ghouston@arglist.com>
2318
2319 * socket.c (FLIP_NET_HOST_128): new macro.
2320 (scm_fill_sockaddr): use new macro.
2321 (scm_addr_vector): completed IPv6 address support. added const
2322 to the address parameter.
2323
2324 2001-04-20 Gary Houston <ghouston@arglist.com>
2325
2326 * socket.c (scm_fill_sockaddr): call htons for sin6_port.
2327 Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
2328 is defined.
2329 (scm_addr_vector): use a switch instead of multiple if statements.
2330 Add support for IPv6 (incomplete) .
2331 MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.
2332
2333 2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
2334
2335 * struct.c (scm_free_structs): Only pairs may be accessed with
2336 SCM_C[AD]R.
2337
2338 2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2339
2340 * unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
2341
2342 * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
2343 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
2344 parentheses in order to get the correct associativity.
2345
2346 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2347
2348 * unif.c (scm_array_to_list): Added missing handling of arrays of
2349 bytes. Thanks to Masao Uebayashi for the bug report.
2350
2351 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2352
2353 * debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
2354 consistently.
2355
2356 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2357
2358 * procs.h (SCM_CLOSURE_FORMALS): New macro.
2359
2360 * debug.c (scm_procedure_source), eval.c (scm_badformalsp,
2361 SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
2362 procprop.c (scm_i_procedure_arity), sort.c (closureless): Use
2363 SCM_CLOSURE_FORMALS.
2364
2365 * eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
2366 (scm_i_procedure_arity): Prefer stronger predicates like
2367 SCM_NULLP or SCM_FALSEP over SCM_IMP.
2368
2369 * macros.c (macro_print): Extracted macro printing code from
2370 print.c and simplified it.
2371
2372 (scm_macro_type): Use SCM_MACRO_TYPE;
2373
2374 (scm_init_macros): Use macro_print for printing macros.
2375
2376 * print.c (scm_print_opts): Improved option documentation.
2377
2378 (scm_iprin1): Extracted printing of macros to macros.c.
2379 Simplified printing of ordinary closures.
2380
2381 * procs.c (scm_thunk_p): Fixed handling of closures. Thanks to
2382 Martin Grabmueller for the bug report.
2383
2384 2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
2385
2386 This patch eliminates some further applications of SCM_C[AD]R to
2387 non pair cells.
2388
2389 * gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR): Deprecated. These have
2390 never been applied to real pairs.
2391
2392 * srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK): Added.
2393
2394 (SRCPROPBRK): Use SCM_SOURCE_PROPERTY_FLAG_BREAK.
2395
2396 * unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
2397 SCM_ARRAY_CONTP): Renamed SCM_ARRAY_CONTIGUOUS to
2398 SCM_ARRAY_FLAG_CONTIGUOUS and use it.
2399
2400 (SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
2401 Added.
2402
2403 * srcprop.h (SRCPROPH), unif.h (UNIFH): Renamed to
2404 SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.
2405
2406 * srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
2407 (scm_dimensions_to_uniform_array, scm_ra_set_contp): Don't use
2408 SCM_SET{AND,OR}_CAR.
2409
2410 2001-04-17 Gary Houston <ghouston@arglist.com>
2411
2412 * some initial support for IPv6:
2413
2414 * socket.c (scm_fill_sockaddr): improve the argument validation.
2415 don't allocate memory until all args are checked. instead of
2416 unconditional memset of soka, try setting sin_len to 0 if
2417 SIN_LEN is defined. add support for AF_INET6. define FUNC_NAME.
2418 (scm_socket, scm_connect): extend docstrings for IPv6.
2419 (scm_init_socket): intern AF_INET6 and PF_INET6.
2420
2421 2001-04-17 Niibe Yutaka <gniibe@m17n.org>
2422
2423 * srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
2424 matches SCM_DEFER_INTS at the beginning of the function.
2425
2426 * mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.
2427
2428 * gc.c (scm_igc): Unconditionally call
2429 SCM_CRITICAL_SECTION_START/END.
2430
2431 * fluids.c (next_fluid_num): Unconditionally call
2432 SCM_CRITICAL_SECTION_START/END.
2433 (s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.
2434
2435 * coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
2436 SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
2437 Removed.
2438
2439 * __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
2440 Defined as nothing for the case of !defined(USE_THREADS).
2441 (SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
2442 Removed.
2443 (<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
2444 (SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
2445 LINE.
2446 (SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
2447 SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
2448 SCM_THREAD_DEFER/SCM_THREAD_ALLOW. Instead, use
2449 SCM_CRITICAL_SECTION_START/END.
2450 (SCM_REALLOW_INTS: Bug fix. Don't call
2451 SCM_THREAD_SWITCHING_CODE.
2452 (SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS. Instead, use
2453 SCM_THREAD_SWITCHING_CODE directly.
2454 (SCM_ENTER_A_SECTION): Unconditionally use
2455 SCM_CRITICAL_SECTION_START/END. (was:
2456 SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).
2457
2458 2001-04-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2459
2460 * __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS): Replaced the
2461 macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
2462 allowed to explicitly set this macro via the CFLAGS variable
2463 during make.
2464
2465 * fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
2466 (SCM_THREAD_CRITICAL_SECTION_START,
2467 SCM_THREAD_CRITICAL_SECTION_END): Renamed
2468 SCM_THREAD_CRITICAL_SECTION_START/END to
2469 SCM_CRITICAL_SECTION_START/END.
2470
2471 2001-04-11 Keisuke Nishida <kxn30@po.cwru.edu>
2472
2473 * debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
2474 instead of bzero.
2475
2476 * coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
2477 (MISSING_BZERO_DECL): Remove the declaration.
2478
2479 Thanks to NIIBE Yutaka.
2480
2481 2001-04-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
2482
2483 * init.c, goops.c, goops.h: Reverted change of 2001-03-29. (The
2484 goops module should be registered in order to work for an
2485 application which uses libguile statically linked.)
2486
2487 2001-04-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
2488
2489 * numbers.[ch] (scm_num2long, scm_num2long_long,
2490 scm_num2ulong_long, scm_num2ulong): Argument position is an
2491 unsigned integer.
2492
2493 * environments.c (eval_environment_folder,
2494 import_environment_folder), gh_data.c (gh_scm2longs,
2495 gh_scm2floats, gh_scm2doubles): Distinguish between 0 and NULL
2496 for integers and pointers, respectively.
2497
2498 * gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
2499 (scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
2500 (SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
2501 SCM_NUM2LONG_LONG): Don't pass argument positions as pointers.
2502
2503 * filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
2504 scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
2505 (scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
2506 (scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
2507 stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
2508 validate.h (SCM_VALIDATE_LONG_COPY): Whitespace fixes.
2509
2510 2001-04-09 Neil Jerram <neil@ossau.uklinux.net>
2511
2512 * strings.c (scm_read_only_string_p): Update docstring to reflect
2513 current (non-)usage of "read only" strings.
2514 (scm_make_shared_substring): Clarify docstring by changing
2515 "semantics" to "arguments".
2516
2517 2001-04-06 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2518
2519 * hooks.c (scm_make_hook, scm_make_hook_with_name),
2520 (scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
2521 improvements.
2522
2523 2001-04-03 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2524
2525 The following changes make the documentation more consistent.
2526
2527 * rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
2528 (scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
2529 (scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
2530 (scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
2531 ... @end lisp.
2532
2533 * vports.c (scm_make_soft_port), version.c (scm_version), unif.c
2534 (scm_array_dimensions, scm_make_shared_array),
2535 (scm_transpose_array, scm_enclose_array, scm_bit_count_star),
2536 throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
2537 (scm_string_rindex, scm_string_index, scm_substring_fill_x),
2538 (scm_string_null_p), strings.c (scm_read_only_string_p), root.c
2539 (scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
2540 posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
2541 macros.c (scm_makmmacro), list.c (scm_append), environments.c
2542 (scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
2543 @example ... @end example to @lisp ... @end lisp.
2544
2545 * weaks.c (scm_weak_vector): Corrected docstring.
2546
2547 * hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
2548 (scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
2549 (scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
2550 (scm_hashx_set_x, scm_hashx_get_handle),
2551 (scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
2552 (scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
2553 vectors.c (scm_vector_fill_x), strings.c
2554 (scm_make_shared_substring), symbols.c (scm_string_to_symbol),
2555 objprop.c (scm_set_object_properties_x):
2556 (scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
2557 strports.c (scm_call_with_input_string), ports.c
2558 (scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
2559 list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
2560 (scm_error_scm), vports.c (scm_make_soft_port), weaks.c
2561 (scm_make_weak_vector,scm_weak_vector_p),
2562 (scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
2563 (scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
2564 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
2565 macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
2566 (scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
2567 Made parameter names match documentation by renaming parameters
2568 and/or fixing docstrings.
2569
2570 * numbers.c (scm_ash): Corrected Texinfo markup.
2571
2572 * strop.c (scm_string_index, scm_string_rindex),
2573 (scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.
2574
2575 * vports.c (scm_make_soft_port), unif.c
2576 (scm_uniform_vector_length, scm_array_p, scm_array_rank),
2577 (scm_dimensions_to_uniform_array, scm_transpose_array),
2578 (scm_array_in_bounds_p, scm_uniform_vector_ref),
2579 (scm_bit_count, scm_bit_position, scm_bit_count_star),
2580 (scm_array_to_list, scm_list_to_uniform_array),
2581 (scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
2582 (scm_open_input_string, scm_open_output_string),
2583 (scm_get_output_string), strop.c (scm_string_copy),
2584 (scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
2585 (scm_get_internal_real_time, scm_times),
2586 (scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
2587 (scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
2588 (scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
2589 (scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
2590 simpos.c (scm_system), random.c (scm_random_uniform),
2591 (scm_random_normal, scm_random_exp), ramap.c
2592 (scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
2593 (scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
2594 (scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
2595 (scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
2596 (scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
2597 (scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
2598 (scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
2599 (scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
2600 (scm_port_closed_p, scm_eof_object_p, scm_read_char),
2601 (scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
2602 (scm_logand, scm_logior, scm_logxor, scm_lognot),
2603 (scm_integer_expt, scm_bit_extract, scm_logcount),
2604 (scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
2605 net_db.c (scm_inet_netof, scm_lnaof), modules.c
2606 (scm_interaction_environment), macros.c (scm_makacro),
2607 (scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
2608 (scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
2609 (scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
2610 (scm_fluid_ref), filesys.c (scm_open_fdes),
2611 (scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
2612 Docstring correction: `Returns' -> `Return'
2613
2614 * gc.c (scm_set_debug_cell_accesses_x):
2615 (s_scm_gc_set_debug_check_freelist_x):
2616 * fluids.c (scm_fluid_p): Added texinfo markup.
2617
2618 * error.c (scm_strerror): Made docstring more precise.
2619
2620 * vectors.c (scm_vector_p, scm_vector, scm_make_vector),
2621 (scm_vector_to_list, _scm_vector_fill_x), symbols.c
2622 (scm_symbol_p, scm_symbol_to_string), strorder.c
2623 (scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
2624 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
2625 (scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
2626 (scm_string_ci_geq_p), strop.c (scm_string_copy),
2627 (scm_string_fill_x): Removed `(r5rs)' from docstrings.
2628
2629 2001-04-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
2630
2631 * gc.c (MARK): Re-introduce a cheap sanity test for non debug
2632 mode, as suggested by Michael Livshin.
2633
2634 2001-03-31 Michael Livshin <mlivshin@bigfoot.com>
2635
2636 * backtrace.c (display_backtrace_body): since the `print_state'
2637 variable is not used (instead its data field is used directly as
2638 `pstate'), protect it from the hungry compiler optimizations.
2639 thanks to Bill Schottstaedt for the report.
2640
2641 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2642
2643 * gc.[ch] (scm_tc16_allocated): New type tag for allocated cells.
2644 It is only defined and used if guile is compiled with
2645 SCM_DEBUG_CELL_ACCESSES set to true. It's purpose is, to never
2646 let cells with a free_cell type tag be visible outside of the
2647 garbage collector when in debug mode.
2648
2649 * gc.c (scm_debug_cell_accesses_p): Set to true as default.
2650
2651 (scm_assert_cell_valid): Use a local static variable to avoid
2652 recursion.
2653
2654 (MARK): Only check for rogue cell pointers in debug mode. Use
2655 scm_cellp for this purpose and place all checks for rogue pointers
2656 into that function. Further, since due to conservative scanning
2657 we may encounter free cells during marking, don't use the standard
2658 cell type accessor macro to determine the cell type.
2659
2660 (scm_cellp): Check if the cell pointer actually points into a
2661 card header.
2662
2663 (scm_init_gc): Initalize scm_tc16_allocated.
2664
2665 * gc.h (GCH): Renamed to SCM_GC_H.
2666
2667 (SCM_VALIDATE_CELL): Enclose the expression in brackets. This
2668 might be unnecessary, but I feel better this way :-)
2669
2670 (SCM_GC_CELL_TYPE): New macro.
2671
2672 (SCM_SETAND_CDR, SCM_SETOR_CDR): Deprecated. These are not used
2673 in guile, and it is unlikely that they will be applied to real
2674 pairs anyway.
2675
2676 (SCM_SET_FREE_CELL_TYPE): Removed. It was not used.
2677
2678 (SCM_GC_SET_ALLOCATED): New macro. Only non-empty if guile is
2679 compiled with SCM_DEBUG_CELL_ACCESSES set to true.
2680
2681 (SCM_NEWCELL, SCM_NEWCELL2): Use of SCM_GC_SET_ALLOCATED will
2682 make sure that in debug mode no free cell will ever be visible
2683 outside of the garbage collector.
2684
2685 2001-03-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2686
2687 * async.c (scm_asyncs_pending): Don't use != to compare SCM
2688 values.
2689
2690 * async.c (scm_system_async), variable.c (scm_make_variable,
2691 scm_make_undefined_variable): Use scm_cons to create a pair.
2692
2693 * debug.c (scm_reverse_lookup): Perform proper type checking.
2694 Remove suspicious use of SCM_SLOPPY_CONSP.
2695
2696 * eq.c (scm_equal_p), tags.h (SCM_ECONSP): Use SCM_CONSP instead
2697 of SCM_SLOPPY_CONSP. A sane compiler should be able to perform
2698 the corresponding optimization.
2699
2700 * eval.c (iqq): Use proper type check.
2701
2702 (scm_m_expand_body): Remove redundant type checks.
2703
2704 (promise_print): Don't access promise cells as pairs.
2705
2706 * eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
2707 scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
2708 (scm_internal_hash_fold), print.c (scm_iprlist): Use !SCM_CELLP
2709 for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
2710 !SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP
2711
2712 * eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
2713 (scm_iprin1): Use new macro predicate and accessors.
2714
2715 * eval.h (scm_tc16_macro): Removed declaration. It is declared
2716 in macros.h.
2717
2718 * eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
2719 (PROCSH), tags.h (TAGSH), variable.h (VARIABLEH): Renamed to
2720 SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
2721 SCM_VARIABLE_H. Even the macros that are used to inhibit
2722 including a header file twice should be in the SCM_ namespace.
2723
2724 * fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
2725 properties.c (scm_primitive_property_ref,
2726 scm_primitive_property_del_x): Prefer stronger predicates like
2727 SCM_NULLP or SCM_FALSEP over SCM_IMP.
2728
2729 * gc.c (MARK): Use proper macros to access procedure-with-setter
2730 cell elements and closure cell elements.
2731
2732 (gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg): Don't
2733 access free cells as pairs.
2734
2735 (scm_unprotect_object): scm_hashq_get_handle returns #f if
2736 no hashtab entry is found.
2737
2738 * gc.c (scm_gc_sweep), ports.c (scm_close_port): Use new macro
2739 SCM_CLR_PORT_OPEN_FLAG.
2740
2741 * guardians.c (TCONC_IN), print.c (scm_free_print_state): Don't
2742 use SCM_SET_C[AD]R for uninitialized cells.
2743
2744 * hashtab.c (scm_hash_fn_get_handle): Use SCM_VALIDATE_VECTOR.
2745 If the hashtable has no slots, return #f instead of '(). This
2746 unifies the return value with most assoc-functions.
2747
2748 (scm_hash_fn_ref): Use proper type check.
2749
2750 (scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
2751 Removed references to non-existing functions from documentation.
2752
2753 * keywords.c (scm_keyword_dash_symbol): Use proper macros to
2754 access keyword cell elements.
2755
2756 * macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE): New
2757 macros.
2758
2759 * ports.h (SCM_CLR_PORT_OPEN_FLAG): New macro.
2760
2761 * print.c (scm_iprlist): Added comment. Improved loop
2762 conditions.
2763
2764 * procs.h (SCM_ENV, SCM_SETENV): Don't access closure cells as
2765 pairs.
2766
2767 * smob.c (scm_markcdr): Don't access smob cells as pairs.
2768
2769 * tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP): Deprecated.
2770
2771 * throw.c (ACTIVATEJB, DEACTIVATEJB): Don't access jump buffer
2772 cells as pairs.
2773
2774 * variable.c (variable_print, variable_equalp, scm_variable_ref,
2775 scm_variable_set_x): Use proper macros to access variable cell
2776 elements.
2777
2778 (scm_variable_bound_p): Don't use SCM_NEGATE_BOOL.
2779
2780 * variable.h (SCM_VARVCELL): Don't access variable cells as
2781 pairs.
2782
2783 * vectors.c (scm_vector), weaks.c (scm_weak_vector): Simplified,
2784 added FIXME comment, removed register specifier.
2785
2786 2001-03-29 Keisuke Nishida <kxn30@po.cwru.edu>
2787
2788 * goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
2789 * init.c (scm_init_guile_1): Don't init goopscore module.
2790
2791 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
2792
2793 * eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.
2794
2795 2001-03-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2796
2797 * strop.c (scm_string_to_list): Fixed docstring markup.
2798 (scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
2799 (scm_string_downcase, scm_string_capitalize_x),
2800 (scm_string_capitalize): Rewrote and corrected docstrings.
2801 (scm_string_ci_to_symbol): Made docstring more explicit.
2802
2803 2001-03-27 Marius Vollmer <mvo@zagadka.ping.de>
2804
2805 * values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
2806 eval.c can use it.
2807 (scm_call_with_values): Removed.
2808 * values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
2809 so that it can be exported.
2810 (scm_call_with_values): Removed.
2811
2812 * tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
2813 * eval.c: Include "libguile/values.h"
2814 (scm_m_at_call_with_values, scm_sym_at_call_with_values):
2815 New.
2816 (unmemocopy, scm_ceval, scm_deval): Handle new isym.
2817 * eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
2818 New delcarations to support above change.
2819
2820 * eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
2821 errors with last change.
2822
2823 2001-03-25 Marius Vollmer <mvo@zagadka.ping.de>
2824
2825 * eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
2826 scm_i_eval): Moved the application of the system transformer from
2827 scm_i_eval to scm_primitive_eval.
2828
2829 2001-03-23 Neil Jerram <neil@ossau.uklinux.net>
2830
2831 * guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.
2832
2833 * strop.c (scm_string_index): Fix docstring line break
2834 regression.
2835
2836 * list.c (scm_cons_star): Fix docstring typo.
2837
2838 2001-03-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
2839
2840 * gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
2841 (big2str), ports.c (scm_drain_input), read.c (scm_read,
2842 scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
2843 scm_make_string, scm_string_append), strports.c (st_resize_port,
2844 scm_object_to_string), unif.c (scm_make_uve): Replace calls to
2845 scm_makstr with calls to scm_allocate_string.
2846
2847 * strings.[ch] (scm_allocate_string): New function.
2848
2849 * strings.[ch] (scm_makstr): Deprecated.
2850
2851 2001-03-18 Gary Houston <ghouston@arglist.com>
2852
2853 * posix.c (scm_tmpnam): check that return value from tmpnam is not
2854 NULL. rewrote the docstring.
2855 (scm_mkstemp): new procedure implementing "mkstemp!".
2856 * posix.h: declare scm_mkstemp.
2857
2858 * net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
2859 normally it would be found in netdb.h.
2860
2861 2001-03-17 Gary Houston <ghouston@arglist.com>
2862
2863 * sort.c (scm_sort): move sortvec variable to avoid a compiler
2864 warning when HAVE_ARRAYS is not defined. move len too.
2865
2866 * Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
2867 (EXTRA_DOT_X_FILES): let configure set the value.
2868 (DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.
2869
2870 * gc.c (scm_must_malloc): changed the comment explaining when
2871 scm_must variants of malloc/free etc., should be used, based on
2872 explanation from Dirk Herrmann.
2873 * fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
2874 string with procedure name. use scm_must_malloc instead of malloc.
2875 (scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
2876 of malloc/free.
2877 * ports.c (scm_add_to_port_table, scm_remove_from_port_table,
2878 scm_ungetc): use scm_must variants of malloc/realloc/free.
2879 (scm_add_to_port_table, scm_ungetc): define FUNC_NAME.
2880
2881 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2882
2883 * __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
2884 SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Don't call scm_wta, call
2885 scm_wrong_type_arg instead.
2886
2887 (SCM_WNA): Deprecated.
2888
2889 * error.[ch] (scm_wta): Deprecated.
2890
2891 * numbers.c (s_i_log): Minor comment fix.
2892
2893 * read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
2894 scm_make_shared_array, scm_transpose_array, scm_enclose_array,
2895 scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
2896 wrong-num-args or misc errors.
2897
2898 * unif.c (scm_make_shared_array, scm_transpose_array,
2899 scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
2900 Validate the rest argument (note: this is only done when guile is
2901 built with SCM_DEBUG_REST_ARGUMENT=1)
2902
2903 (scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
2904 Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.
2905
2906 * validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
2907 SCM_VALIDATE_NUMBER_DEF_COPY): Deprecated.
2908
2909 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2910
2911 * validate.h (SCM_WRONG_NUM_ARGS): Call scm_error_num_args_subr
2912 instead of scm_wrong_num_args.
2913
2914 * coop-threads.c: Don't include libguile/strings.h. (Was only
2915 needed for former implementation of SCM_WRONG_NUM_ARGS.)
2916
2917 * debug.c (scm_m_start_stack): Don't use SCM_ASSERT to check for
2918 wrong-num-args errors.
2919
2920 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
2921
2922 * error.[ch] (scm_error_num_args_subr): New function.
2923
2924 2001-03-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2925
2926 * list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
2927 (scm_length, scm_append, scm_reverse, scm_list_ref),
2928 (scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
2929 (scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
2930 (scm_delete1_x), gc.c (scm_map_free_list),
2931 (scm_free_list_length), hash.c (scm_hashq, scm_hashv),
2932 (scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
2933 (scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
2934 (scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
2935 (scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
2936 (scm_current_pstate), scmsigs.c (scm_usleep), goops.c
2937 (scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.
2938
2939 * weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
2940 (scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
2941 rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
2942 symbols.c (scm_symbol_interned_p), numbers.c
2943 (scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
2944 markup.
2945
2946 2001-03-16 Keisuke Nishida <kxn30@po.cwru.edu>
2947
2948 * snarf.h (SCM_CONST_LONG): Deprecated.
2949 * tag.c (CONST_INUM): New macro. Use it to define scm_utag_*.
2950
2951 2001-03-15 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2952
2953 * numbers.c (scm_num2ulong): Check that a bignum is positive
2954 before looking at the magnitude. Correctly check for overflow
2955 during conversion.
2956 (scm_num2long_long): Likewise.
2957 (scm_num2ulong_long): New.
2958 (ULONG_LONG_MAX): Define if not already defined.
2959 * numbers.h: (scm_num2ulong_long): New prototype.
2960
2961 2001-03-15 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2962
2963 * validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.
2964
2965 * strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
2966 (SCM_OPOUTSTRPORTP): New predicate macros.
2967 (scm_open_input_string, scm_open_output_string),
2968 (scm_get_output_string): New prototypes.
2969
2970 * strports.c (scm_open_input_string, scm_open_output_string),
2971 (scm_get_output_string): New procedures (SRFI-6 compliant).
2972 Made scm_tc16_strport non-static.
2973
2974 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2975
2976 * macros.h (SCM_ASSYNT): Removed unused object argument from
2977 signature.
2978
2979 * eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
2980 scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
2981 scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
2982 scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
2983 scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
2984 scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
2985 scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
2986 scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
2987 scm_m_atdispatch): Removed unused object argument from call to
2988 SCM_ASSYNT.
2989
2990 2001-03-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
2991
2992 * gh.h/gh_data.c (gh_ints2scm): Changed the signature to use a
2993 const int* to reflect that the input array of integers remains
2994 unchanged. Thanks to Brett Viren for the hint.
2995
2996 2001-03-14 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
2997
2998 * gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
2999 (gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
3000 in various places.
3001 (gh_scm2newstr, gh_symbol2newstr): Change call to
3002 scm_must_malloc() to malloc(), because user-free()able memory is
3003 allocated.
3004
3005 * gc.c: Added declaration of `scm_debug_check_freelist'.
3006
3007 2001-03-13 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3008
3009 * ports.c (scm_port_mode): Changed `mode' array size to 4.
3010
3011 2001-03-12 Keisuke Nishida <kxn30@po.cwru.edu>
3012
3013 * strports.c (scm_object_to_string): New procedure.
3014 (scm_strprint_obj): Deprecated.
3015 * strports.h: Reflect the changes.
3016
3017 2001-03-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
3018
3019 * goops.h (SCM_VALIDATE_PUREGENERIC): New macro.
3020
3021 * goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
3022 scm_m_atdispatch): Provide definitions for FUNC_NAME. Don't use
3023 SCM_ASSYNT to check for correct argument types. Either use some
3024 SCM_VALIDATE_* macro or an explicit test.
3025
3026 (scm_make_foreign_object): Don't use SCM_ASSERT to check for
3027 misc-errors.
3028
3029 * macros.h (SCM_ASSYNT): On assertion failure, issue a misc-error
3030 instead of calling scm_wta.
3031
3032 2001-03-12 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3033
3034 * load.c (scm_primitive_load, scm_primitive_load_path),
3035 (scm_sys_search_load_path): Corrected docstrings (file ->
3036 filename).
3037
3038 * eval.c (scm_force): Added texinfo markup to docstring.
3039 (scm_promise_p): Renamed parameter to `obj' to match docstring.
3040
3041 * debug-malloc.c: Reinserted #include <stdio.h>.
3042
3043 2001-03-11 Keisuke Nishida <kxn30@po.cwru.edu>
3044
3045 * list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.
3046
3047 * environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
3048 net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
3049 Use SCM_LISTn instead of scm_listify.
3050
3051 2001-03-10 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3052
3053 * _scm.h: Removed #include <errno.h>.
3054
3055 * error.c, net_db.c, putenv.c, stime.c: Removed declaration of
3056 errno variable (can be a macro on some systems, for example when
3057 using linux libc with threads).
3058
3059 * error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
3060 posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
3061 socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
3062 #include <errno.h> in these 20 out of 100 files.
3063
3064 2001-03-10 Gary Houston <ghouston@arglist.com>
3065
3066 * socket.c: add a definition of SUN_LEN (from glibc) for when it's
3067 not already defined.
3068
3069 2001-03-09 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3070
3071 * coop.c: Inserted #include <stdio.h>.
3072
3073 * iselect.c: Reinserted #include <stdio.h>.
3074
3075 2001-03-10 Marius Vollmer <mvo@zagadka.ping.de>
3076
3077 * posix.c: Replaced `#define' of __USE_XOPEN right before
3078 including unistd.h with a define of _GNU_SOURCE at the very top of
3079 the file.
3080
3081 2001-03-09 Keisuke Nishida <kxn30@po.cwru.edu>
3082
3083 * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
3084 continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
3085 feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
3086 gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
3087 hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
3088 net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
3089 print.c, procprop.c, procs.c, properties.c, ramap.c,
3090 regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
3091 stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
3092 symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
3093 Remove #include <stdio.h>
3094 * gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.
3095
3096 * procs.c (scm_make_subr_opt): Init symcell to avoid warning.
3097
3098 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3099
3100 * posix.c (scm_gethostname): Set initial name length to 256 for
3101 Solaris.
3102
3103 2001-03-09 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3104
3105 * posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
3106 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
3107 (scm_sethostname, scm_gethostname): New prototypes.
3108
3109 * posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
3110 <sys/file.h>, if present.
3111 (scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
3112 LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
3113 (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
3114 (scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
3115 (scm_sethostname, scm_gethostname): New procedures.
3116
3117 2001-03-08 Neil Jerram <neil@ossau.uklinux.net>
3118
3119 * ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
3120 not optional (ii) "recommend" spelling correction.
3121
3122 2001-03-08 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3123
3124 * ramap.c (racp): Removed optimization which caused array copying
3125 to fail if the two arrays shared storage. Re-inserted the IVDEP
3126 macros removed in the change of 2000-03-09. (Don't really have a
3127 complete grasp of what they are for, but they seem to be necessary
3128 on Crays. This needs testing!) Thanks to Miroslav Silovic.
3129
3130 * hash.c (scm_string_hash): Don't downcase characters.
3131
3132 2001-03-07 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3133
3134 * symbols.c (scm_symbols_prehistory): Changed symbol hash table
3135 size from 277 --> 1009.
3136
3137 * symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
3138 function.
3139
3140 * coop-threads.c: Fixed change of 2001-03-06.
3141
3142 * validate.h: Code formatting.
3143
3144 2001-03-07 Keisuke Nishida <kxn30@po.cwru.edu>
3145
3146 * Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
3147 (*.doc): Add dependency on guile-snarf.awk.in.
3148
3149 * guile-snarf.awk.in: Neglect spaces at the end of
3150 SCM_SNARF_DOCSTRING_END. Skip lines "# NN ..." in the
3151 middle of docstrings. (To avoid the problem with gcc-2.96.)
3152
3153 2001-03-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
3154
3155 * coop-threads.c (scm_call_with_new_thread), load.c
3156 (scm_primitive_load, scm_sys_search_load_path), random.c
3157 (scm_c_default_rstate), struct.c (scm_make_struct_layout,
3158 scm_struct_ref, scm_struct_set_x): Don't use SCM_ASSERT to
3159 (potentially) issue a scm-misc-error or wrong-num-args error
3160 message.
3161
3162 * load.c (scm_search_path): Use SCM_ASSERT_TYPE to give details
3163 about the expected type with the wrong-type-arg error message.
3164
3165 * smob.c (scm_make_smob): Abort on misuse of smob - it indicates
3166 a C level bug that can't be fixed from scheme anyway.
3167
3168 2001-03-05 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3169
3170 * eval.c (scm_m_letstar): Removed check for duplicate bindings.
3171 Duplicate bindings are OK in a let* since a let* is semantically
3172 equivalent to a nested set of let:s.
3173
3174 2001-03-05 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3175
3176 * print.c (scm_print_options): Fixed texinfo in docstring.
3177
3178 * net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
3179 the underlying functions getservent, getprotoent or getnetent
3180 return NULL instead of signalling an error.
3181
3182 2001-03-04 Gary Houston <ghouston@arglist.com>
3183
3184 * socket.c (scm_fill_sockaddr): don't allow buffer overflows when
3185 taking an unexpectedly large filename for an AF_UNIX socket from
3186 bind/connect/sendto (thanks to Martin Grabmueller).
3187
3188 * socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
3189 former and adjusted the latter.
3190 (scm_socket, scm_socketpair): cosmetic changes.
3191 (scm_getsockopt, scm_setsockopt): declare optlen as int, not
3192 size_t as socklen_t substitute. don't restrict args/return values
3193 to INUM: allow full range of int or size_t.
3194 (scm_fill_sockaddr): check arguments before allocating memory, to
3195 avoid leakage. use malloc, not scm_must_malloc.
3196 (scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
3197 substitute. free the sockaddr structure before throwing an error.
3198 (scm_init_add_buffer): procedure removed, together with its static
3199 buffer scm_addr_buffer, which wouldn't be thread safe. instead,
3200 define a macro MAX_ADDR_SIZE and declare the buffer where needed.
3201 (scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
3202 scm_sendto): use a local buffer instead of scm_addr_buffer.
3203 adjust for new SCM_SOCK_FD_TO_PORT. use int for address size,
3204 not size_t.
3205 (scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
3206 call to detect whether recvfrom could be bothered to set the address.
3207 (scm_init_socket): don't call scm_init_addr_buffer.
3208
3209 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
3210
3211 * debug.c (scm_procedure_source, scm_procedure_environment),
3212 print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
3213 scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
3214 scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
3215 scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
3216 unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
3217 scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
3218 scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
3219 scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
3220 scm_array_to_list, scm_array_prototype), validate.h
3221 (SCM_VALIDATE_NUMBER_COPY): Don't call function scm_wta, call
3222 scm_misc_error or scm_wrong_type_arg instead.
3223
3224 * validate.h (SCM_WTA, RETURN_SCM_WTA): Deprecated.
3225
3226 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3227
3228 * goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
3229 (scm_sys_tag_body): Added.
3230
3231 2001-03-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
3232
3233 * continuations.c (continuation_apply), eval.c (scm_m_lambda,
3234 scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
3235 (SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
3236 (get_bvec, MARK), goops.c (scm_primitive_generic_generic),
3237 options.c (scm_options), ports.c (scm_remove_from_port_table),
3238 ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
3239 scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
3240 script_get_backslash, script_read_arg), unif.c (scm_cvref): Don't
3241 call function scm_wta, call scm_misc_error or scm_wrong_type_arg
3242 instead.
3243
3244 2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3245
3246 * goops.c (scm_sys_pre_expand_closure_x): New procedure.
3247
3248 2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
3249
3250 * eval.c (scm_s_duplicate_bindings): New error message.
3251 (scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.
3252
3253 2001-03-03 Marius Vollmer <mvo@zagadka.ping.de>
3254
3255 * eval.h (SCM_EVALIM2): New macro. Use it when a
3256 immediate, literal constant should be evaluated.
3257 * eval.c (scm_s_duplicate_formals): New error message string.
3258 (scm_c_improper_memq): New function.
3259 (scm_m_lambda): Check for duplicate arguments.
3260 (scm_ceval, scm_deval): When executing a body: only cons a new
3261 toplevel environment frame when it is different from the
3262 existing one; use EVALCAR instead of SIDEVAL so that we can properly
3263 check for empty combinations; use SCM_EVALIM2 for the same reason
3264 in the non-toplevel loop.
3265 (nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
3266 New labels with the meaning of their non-"nontoplevel" partners,
3267 but they are used when it is known that the body is not evaluated at
3268 top-level.
3269 (scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
3270 reporting for empty combinations.
3271
3272 2001-03-02 Keisuke Nishida <kxn30@po.cwru.edu>
3273
3274 * Remove dump facilities.
3275 * dump.c, dump.h: Removed.
3276 * Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
3277 * init.c: Remove #include "libguile/dump.h".
3278 (scm_init_guile_1): Remove scm_init_dump.
3279 * smob.h (scm_smob_descriptor): Remove slots: dump, undump.
3280 (scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
3281 * smob.c (scm_make_smob_type): Remove initialization: dump, undump.
3282 (scm_set_smob_dump, scm_set_smob_undump): Removed.
3283
3284 * keywords.c: Remove #include "libguile/dump.h".
3285 (keyword_dump, keyword_undump): Removed.
3286 (scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.
3287
3288 2001-03-02 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3289
3290 * vectors.c (s_scm_vector_p, list->vector, scm_vector)
3291 (scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
3292 (scm_vector_fill_x), strorder.c (scm_string_equal_p)
3293 (scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
3294 (scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
3295 (scm_string_ci_geq_p), symbols.c (scm_symbol_p)
3296 (scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
3297 to @code{} as the texinfo manual recommends, converted the
3298 examples to use a @lisp{}-environment.
3299
3300 * strports.c (scm_eval_string): Cleaned up the docstring.
3301
3302 * struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
3303 markup.
3304
3305 * numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
3306 (scm_number_to_string, scm_string_to_number, scm_number_p)
3307 (scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
3308 (scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
3309 (scm_ash): Added texinfo markup and removed obsolete @refill.
3310 (scm_gr_p): Corrected comment.
3311 (scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
3312 docstring) comments.
3313 (scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
3314 (scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
3315 (scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
3316 (scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
3317 (floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
3318 ($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
3319 (scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
3320 (scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.
3321
3322 2001-02-28 Dirk Herrmann <D.Herrmann@tu-bs.de>
3323
3324 * __scm.h (SCM_ASSERT_TYPE): Add missing macro parameter.
3325 (Obviously nobody compiles with SCM_RECKLESS defined...)
3326
3327 * validate.h (SCM_ASSERT_RANGE): Use the argument number.
3328
3329 2001-02-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3330
3331 * ports.c, ports.h (scm_c_read, scm_c_write): New functions.
3332
3333 * ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.
3334
3335 2001-02-24 Neil Jerram <neil@ossau.uklinux.net>
3336
3337 * numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
3338 scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
3339 since use of `z' suggests that the arguments may be complex.
3340
3341 * goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
3342 typos.
3343
3344 2001-02-23 Neil Jerram <neil@ossau.uklinux.net>
3345
3346 * dump.c (scm_binary_write, scm_binary_read), eval.c
3347 (scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
3348 scm_guardian_greedy_p, scm_make_guardian), fports.c
3349 (scm_file_port_p): Minor docstring fixes.
3350
3351 2001-02-22 Marius Vollmer <mvo@zagadka.ping.de>
3352
3353 * load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.
3354
3355 * goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
3356 scm_i_eval.
3357 (make_class_from_template): Do not bother to set the current
3358 module around the call to DEFVAR, scm_eval takes care of that.
3359 (scm_init_goops): Make scm_module_goops and
3360 scm_goops_lookup_closure permanent objects.
3361
3362 * eval.c (scm_ceval, scm_deval): When evaluating expressions on
3363 top level, create a fresh top-level environment for each
3364 expression instead of mutating the exisint frame. This is
3365 important when that frame is closed over.
3366
3367 * numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
3368 SCM_DIGSPERLONG instead of DIGSPERLONG.
3369
3370 2001-02-21 Marius Vollmer <mvo@zagadka.ping.de>
3371
3372 * eval.c (scm_ceval, scm_deval): Check for wrong number of args
3373 before applying arrow procedure in `cond' and before applying
3374 receiver procedure in call-with-current-continuation.
3375 (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
3376 macro. The argument is expanded more than one time.
3377
3378 * numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
3379 SCM_BIGDIG instead of BIGDIG. Thanks to Steven G. Johnson!
3380
3381 2001-02-20 Marius Vollmer <mvo@zagadka.ping.de>
3382
3383 * guile-doc-snarf.in, guile-func-name-check.in: Added copyright
3384 notice and license.
3385
3386 2001-02-17 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3387
3388 * variable.c (scm_make_variable, scm_make_undefined_variable)
3389 (scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
3390 (scm_variable_bound_p), values.c (scm_values)
3391 (scm_call_with_values), unif.c (scm_bit_count)
3392 (scm_bit_set_star_x), symbols.c (scm_gentemp)
3393 (scm_gensym), strings.c (scm_string_p, scm_make_string)
3394 (scm_read_only_string_p, scm_string_length, scm_string_ref)
3395 (scm_string_set_x, scm_substring, scm_string_append), stime.c
3396 (scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
3397 (scm_copy_random_state, scm_random), print.c (scm_newline)
3398 (scm_write_char, scm_simple_format), debug-malloc.c
3399 (scm_malloc_stats), environments.c (scm_environment_p)
3400 (scm_environment_bound_p, scm_environment_ref)
3401 (scm_environment_fold, scm_environment_define)
3402 (scm_environment_undefine, scm_environment_set_x)
3403 (scm_environment_cell, scm_environment_observe)
3404 (scm_environment_observe_weak, scm_environment_unobserve)
3405 (scm_make_eval_environment, scm_eval_environment_p)
3406 (scm_eval_environment_set_local_x, scm_eval_environment_local)
3407 (scm_eval_environment_imported)
3408 (scm_eval_environment_set_imported_x, scm_make_import_environment)
3409 (scm_import_environment_p, scm_import_environment_imports)
3410 (scm_import_environment_set_imports_x, scm_make_export_environment)
3411 (scm_export_environment_p, scm_export_environment_private)
3412 (scm_export_environment_set_private_x)
3413 (scm_export_environment_signature)
3414 (scm_export_environment_set_signature_x, scm_leaf_environment_p):
3415 Added texinfo markup.
3416
3417 * ports.c (scm_drain_input): Lowercased argument to @var.
3418 (scm_current_input_port, scm_current_output_port): Filled in
3419 missing explanation.
3420 (scm_current_load_port, scm_set_current_output_port)
3421 (scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
3422 Added texinfo markup.
3423
3424 * arbiters.c (scm_make_arbiter, scm_try_arbiter)
3425 (scm_release_arbiter): Added texinfo markup to docstrings.
3426 Changed `Returns' to `Return'.
3427 (arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.
3428
3429 2001-02-16 Neil Jerram <neil@ossau.uklinux.net>
3430
3431 * guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
3432 by doubling them to `@@'.
3433
3434 2001-02-16 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3435
3436 * numbers.c (scm_lognot), random.c (scm_random,
3437 scm_random_normal, scm_random_solid_sphere_x,
3438 scm_random_hollow_sphere_x, scm_random_normal_vector_x,
3439 scm_random_exp), dynwind.c
3440 (scm_dynamic_wind): Removed unnecessary "" from docstrings.
3441
3442 * goops.c (scm_sys_initialize_object, scm_instance_p,
3443 scm_class_name, scm_class_precedence_list, scm_class_slots,
3444 scm_class_environment, scm_generic_function_name,
3445 scm_generic_function_methods, scm_method_generic_function,
3446 scm_method_specializers, scm_method_procedure, scm_make_unbound,
3447 scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
3448 scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
3449 scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
3450 scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
3451 scm_class_direct_supers, scm_class_direct_slots,
3452 scm_class_direct_subclasses, scm_class_direct_methods,
3453 scm_accessor_method_slot_definition, scm_sys_goops_loaded),
3454 debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
3455 scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
3456 scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
3457 scm_memoized_environment, scm_procedure_name,
3458 scm_procedure_source, scm_procedure_environment, scm_debug_hang),
3459 objects.c
3460 (scm_class_of, scm_entity_p, scm_operator_p,
3461 scm_set_object_procedure_x, scm_object_procedure,
3462 scm_make_class_object), hooks.c (scm_make_hook_with_name,
3463 scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
3464 scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
3465 scm_hook_to_list), lang.c
3466 (scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
3467 numbers.c (scm_sys_expt, scm_sys_atan2), print.c
3468 (scm_print_options, scm_port_with_print_state,
3469 scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
3470 scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
3471 scm_make_procedure_with_setter, scm_procedure), throw.c
3472 (scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
3473 (scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
3474 scm_stack_ref, scm_stack_length, scm_frame_p,
3475 scm_last_stack_frame, scm_frame_number, scm_frame_source,
3476 scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
3477 scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
3478 scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
3479 (scm_dirname, scm_basename), dynwind.c
3480 (scm_wind_chain), read.c (scm_read_options, scm_read,
3481 scm_read_hash_extend), gc.c
3482 (scm_unhash_name), eval.c (scm_eval_options_interface,
3483 scm_evaluator_traps, s_scm_nconc2last), backtrace.c
3484 (scm_display_error, scm_set_print_params_x,
3485 scm_display_application, scm_display_backtrace, scm_backtrace),
3486 async.c (scm_async, scm_system_async, scm_async_mark,
3487 scm_system_async_mark, scm_run_asyncs, scm_noop,
3488 scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
3489 scm_mask_signals): Added docstrings.
3490
3491 2001-02-15 Keisuke Nishida <kxn30@po.cwru.edu>
3492
3493 * dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
3494 address of car/cdr. (Thanks to Dirk Herrmann)
3495 Use scm_sizet to obtain the length of strings.
3496 (Thanks to Matthias Koeppe)
3497
3498 2001-02-15 Marius Vollmer <mvo@zagadka.ping.de>
3499
3500 * symbols.c (scm_mem2symbol): Put a empty statement after the
3501 next_symbol label. This is mandated by ANSI, appearantly.
3502
3503 2001-02-13 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3504
3505 * gc_os_dep.c: Do not include <linux/version.h>. It makes no
3506 sense to compile for a specific kernel version. Do not include
3507 <asm/signal.h> while defining __KERNEL__. This hack should no
3508 longer be needed and caused problems.
3509
3510 2001-02-13 Marius Vollmer <mvo@zagadka.ping.de>
3511
3512 * eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
3513 SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
3514 can not deal with immediates.
3515
3516 2001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
3517
3518 * list.c (scm_list_copy): Validate the first argument.
3519
3520 2001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
3521
3522 Fix evaluator so that top-level expressions are correctly
3523 evaluated with respect to the module system.
3524
3525 * modules.h. modules.c (scm_current_module_lookup_closure): New
3526 function.
3527
3528 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
3529 prototypes.
3530 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
3531 names to better reflect their meaning.
3532
3533 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
3534 evaluated at top-level and synronize lookup closure before
3535 executing every subform.
3536 (scm_primitve_eval_x, scm_primitive_eval): New functions.
3537 (scm_eval_x, scm_eval): Reimplement in terms of
3538 scm_primitive_eval_x and scm_primitive_eval, respectively.
3539
3540 2001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
3541
3542 * macros.c (scm_macro_name, scm_macro_transformer): Use
3543 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
3544 Thanks!
3545
3546 2001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
3547
3548 * dump.c (scm_store_bytes): Store data size before data.
3549 (scm_restore_bytes): Restore data size. Takes a pointer to size.
3550 * dump.h (scm_restore_bytes): Updated.
3551
3552 2001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
3553
3554 * dump.c: Use double cells for update schedule.
3555
3556 2001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
3557
3558 * ports.c (scm_unread_char): Take an optional argument.
3559
3560 2001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
3561
3562 * modules.h (scm_selected_module, scm_current_module): Renamed
3563 scm_selected_module to scm_current_module to synchronize Scheme
3564 and C names.
3565 (scm_select_module, scm_set_current_module): Likewise. Changed
3566 all uses.
3567
3568 * ports.c (scm_port_for_each): Make a snapshot of the port table
3569 before iterating over it. The table might change while the user
3570 code is running. With the snapshot, the user can depend on the
3571 fact that each port that existed at the start of the iteration is
3572 encountered exactly once. (ice-9 popen) depends on this.
3573
3574 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
3575
3576 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
3577
3578 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
3579 range checking for the size parameter. Thanks to Martin
3580 Grabmueller for the hint.
3581
3582 (scm_makstr): Reordered string initialization to make interrupt
3583 deferring unnecessary.
3584
3585 * vectors.c (scm_make_vector): Fixed range checking.
3586
3587 2001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
3588
3589 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
3590
3591 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
3592 checking of the size parameter for type correctness and valid
3593 range. Thanks to Rob Browning for reporting the problem. Instead
3594 of deferring interrupts, scm_remember_upto_here_1 is used.
3595
3596 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
3597
3598 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
3599 (scm_dump_cell_update): Removed.
3600 (scm_dump_update): Renamed from scm_dump_object_update.
3601 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
3602 a pointer instead of returning a value.
3603 * keywords.c (keyword_undump): Updated.
3604
3605 2001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
3606
3607 * dump.c, dump.h: Modified a lot.
3608 (SCM_DUMP_COOKIE): Version 0.1
3609 (scm_dump_mark): Removed.
3610 (scm_restore_cell_object, scm_store_cell_object): New functions.
3611
3612 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
3613 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
3614 New slots: dump, undump.
3615 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
3616 Updated.
3617
3618 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
3619 (keyword_undump): Renamed from keyword_alloc.
3620 (scm_init_keywords): Set keyword_dump and keyword_undump.
3621
3622 2001-02-03 Michael Livshin <mlivshin@bigfoot.com>
3623
3624 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
3625 the deprecated SCM_DOUBLE_CELLP.
3626
3627 * tags.h (SCM_DOUBLE_CELLP): deprecated.
3628
3629 2001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
3630
3631 * dump.c, dump.h: New files.
3632 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
3633 * init.c: #include "libguile/dump.h".
3634 (scm_init_guile_1): Call scm_init_dump.
3635 * smob.h (scm_smob_descriptor): New slots: dump_mark,
3636 dump_dealloc, dump_store, undump_alloc, undump_restore,
3637 undump_init.
3638 * smob.c (scm_make_smob_type): Init the new slots.
3639 (scm_set_smob_dump, scm_set_smob_undump): New functions.
3640 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
3641
3642 * keywords.c: #include "libguile/dump.h".
3643 (keyword_dealloc, keyword_alloc): New functions.
3644 (scm_init_keywords): Set smob_dump and smob_undump.
3645
3646 2001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
3647
3648 * vectors.c (scm_c_make_vector): New function.
3649 * vectors.h (scm_c_make_vector): Declared.
3650 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
3651 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
3652 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
3653 (scm_make_method_cache, scm_i_vector2list,
3654 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
3655 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
3656 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
3657 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
3658 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
3659 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
3660 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
3661 (scm_vector, scm_make_vector): Use scm_c_make_vector.
3662
3663 * hashtab.c (scm_c_make_hash_table): New function.
3664 * hashtab.h (scm_c_make_hash_table): Declared.
3665 * environments.c (scm_make_leaf_environment,
3666 scm_make_eval_environment), gc.c (scm_init_storage),
3667 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
3668 Use scm_c_make_hash_table.
3669
3670 2001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3671
3672 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
3673
3674 2001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
3675
3676 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
3677 end of docstring.
3678
3679 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
3680 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
3681 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
3682 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
3683 srcprop.c (scm_source_properties, scm_set_source_properties_x,
3684 scm_source_property, scm_set_source_property_x), sort.c
3685 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
3686 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
3687 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
3688 docstrings.
3689
3690 2001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3691
3692 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
3693 really get that arg.
3694
3695 2001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
3696
3697 * goops.c (s_scm_get_keyword): Bug fix.
3698
3699 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
3700
3701 The following patch was sent by Martin Grabmueller. It makes sure
3702 that in case of parameter errors the correct function name is
3703 shown, and that parameter types are only checked once.
3704
3705 * strop.c (string_copy, string_upcase_x, string_downcase_x,
3706 string_capitalize_x): New functions. Each one performs the core
3707 functionality of the corresponding scm_* function.
3708
3709 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
3710 scm_string_downcase_x, scm_string_downcase,
3711 scm_string_capitalize_x, scm_string_capitalize): Reduced to
3712 parameter checking wrappers of the above functions.
3713
3714 2001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
3715
3716 * continuations.c, dynl.c, keywords.c, load.c: Include
3717 strings.h. Thanks to Bill Schottstaedt for the bug report.
3718
3719 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3720
3721 * backtrace.c (display_header): Make sure that line and column
3722 information is shown independent of whether the port the code was
3723 read from had an associated filename. Thanks to Martin
3724 Grabmueller for providing this patch.
3725
3726 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3727
3728 * fports.[ch] (scm_file_port_p): New primitive.
3729
3730 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3731
3732 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
3733 These are now defined in fports.c, strports.c and vports.c.
3734
3735 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
3736 vports.c (scm_tc16_sfport): Made variables (were macros defined in
3737 tags.h).
3738
3739 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
3740 (scm_make_sfptob): Made static. These return a type code now.
3741
3742 fports.c (scm_init_fports), strports.c (scm_init_strports),
3743 vports.c (scm_init_vports): Create the corresponding port types.
3744
3745 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
3746 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
3747
3748 * init.c (scm_init_guile_1): Make sure strports are initialized
3749 before gdbint.
3750
3751 * ports.[ch] (scm_make_port_type): Changed the return type to
3752 scm_bits_t.
3753
3754 * ports.c (scm_ports_prehistory): Don't create any port types
3755 here.
3756
3757 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
3758 against scm_tc16_fport directly.
3759
3760 2001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
3761
3762 * srcprop.c (scm_set_source_property_x): Fix to handle
3763 (set-source-property! <obj> 'copy <datum>) correctly.
3764
3765 2001-01-24 Gary Houston <ghouston@arglist.com>
3766
3767 * filesys.c (scm_link): docstring fix.
3768 * fports.h (scm_setfileno): obsolete declaration removed.
3769 * posix.c: bogus popen declaration removed.
3770
3771 * rdelim.c: new file, split from ioext.c.
3772 * rdelim.h: new file, split from ioext.h
3773 * Makefile.am: add rdelim.c and related files.
3774 * init.c: call scm_init_rdelim. include rdelim.h.
3775
3776 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3777
3778 This patch was sent by Martin Grabmueller and makes sure that
3779 parameter errors are reported correctly by the lexicographic
3780 ordering predicates.
3781
3782 * strorder.c (string_less_p, string_ci_less_p): New functions.
3783
3784 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
3785 functionality into string_less_p, string_ci_less_p respectively.
3786 The remaining code is just a wrapper to do the parameter
3787 checking.
3788
3789 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
3790 parameters and call string_less_p instead of scm_string_less_p.
3791
3792 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
3793 Check the parameters and call string_less_ci_p instead of
3794 scm_string_ci_less_p.
3795
3796 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3797
3798 This patch modifies scm_display_error to perform parameter
3799 checking. Thanks to Neil Jerram for the bug report.
3800
3801 * backtrace.[ch] (scm_i_display_error): New function.
3802
3803 * backtrace.c (scm_display_error): Added parameter check and
3804 extracted the core functionality into function
3805 scm_i_display_error.
3806
3807 * throw.c (handler_message): Call scm_i_display_error to display
3808 the error message.
3809
3810 2001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
3811
3812 * eval.c (SCM_APPLY): Added # args check for application of
3813 procedures with arity 3. (Thanks to Anders Holst.)
3814
3815 2001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
3816
3817 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
3818
3819 (SCM_OPDIRP): Deprecated.
3820
3821 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
3822 SCM_OPN.
3823
3824 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
3825 Instead, give an explicit error message in case the directory is
3826 closed.
3827
3828 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
3829 instead of SCM_OPENP and SCM_CLOSEDP.
3830
3831 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
3832
3833 2001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
3834
3835 * eval.c (inner_eval, scm_eval): Move all real functionality into
3836 inner_eval. Avoid to copy the expression twice by inlining some
3837 code from scm_i_eval.
3838
3839 2001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
3840
3841 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
3842 now has to be the last clause, as required by R5RS. Thanks to
3843 Martin Grabmueller for the patch.
3844
3845 2001-01-18 Gary Houston <ghouston@arglist.com>
3846
3847 * ioext.c: further simplify scm_read_string_x_partial by defining
3848 a macro SCM_EBLOCK.
3849
3850 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3851
3852 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
3853
3854 2001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
3855
3856 * __scm.h: Added comment about architecture and compiler
3857 properties that are required by guile.
3858
3859 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
3860 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
3861
3862 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
3863
3864 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
3865
3866 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
3867 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
3868
3869 2001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
3870
3871 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
3872 to the names in limits.h.
3873
3874 * numbers.c (abs_most_negative_fixnum): Added.
3875
3876 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
3877 fixnum-min) special case.
3878
3879 (scm_big_and): Fix for negative first parameter.
3880
3881 (scm_bit_extract): Fix for fixnum paramters.
3882 Thanks to Rob Browning for the bug report.
3883
3884 (scm_init_numbers): Initialize abs_most_negative_fixnum.
3885
3886 2001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
3887
3888 * symbols.c (scm_symbol_bound_p): Fixed comment.
3889 Thanks to Chris Cramer.
3890
3891 2001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
3892
3893 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
3894 Thanks to Bill Schottstaedt.
3895
3896 2001-01-11 Michael Livshin <mlivshin@bigfoot.com>
3897
3898 from Matthias Köppe:
3899
3900 * objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
3901 casts its result, so doesn't yield an lvalue per ANSI C.
3902
3903 * goops.c (s_scm_sys_set_object_setter_x): use
3904 SCM_SET_ENTITY_SETTER.
3905 (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
3906
3907 * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
3908 its result, so doesn't yield an lvalue per ANSI C.
3909 (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
3910 (SCM_GC_CLR_CARD_FLAGS): redefined in terms of
3911 SCM_GC_SET_CARD_FLAGS.
3912 (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
3913
3914 * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
3915
3916 2001-01-08 Gary Houston <ghouston@arglist.com>
3917
3918 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
3919 * ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
3920 socket.c (scm_recvfrom): use the new macro, plus minor docstring
3921 changes.
3922 * ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
3923 for fdes. if current input port is used, check that it's a file
3924 port.
3925
3926 2001-01-06 Gary Houston <ghouston@arglist.com>
3927
3928 * ioext.c (scm_read_string_x_partial): new procedure, implements
3929 read-string!/partial.
3930 * ports.c (scm_take_from_input_buffers): new procedure used by
3931 scm_read_string_x_partial.
3932 (scm_drain_input): use scm_take_from_input_buffers.
3933
3934 2001-01-06 Marius Vollmer <mvo@zagadka.ping.de>
3935
3936 * validate.h (SCM_VALIDATE_NUMBER): New.
3937
3938 2001-01-03 Michael Livshin <mlivshin@bigfoot.com>
3939
3940 * guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
3941 SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
3942 SET_DESTROYED): new defines/macros.
3943 (GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
3944 (add_to_live_list): takes a `guardian_t *' now, not SCM.
3945 (guardian_print): print more info.
3946 (guardian_apply): check if the guardian is destroyed, and throw an
3947 error if so. take one more optional argument `throw_p'.
3948 (scm_guard): depending on the value of `throw_p', return a boolean
3949 result.
3950 (scm_get_one_zombie): remove redundant property test.
3951 (guardian_t): represent the various (currently 3, I hope nothing
3952 more gets added) boolean fields as bit flags.
3953 (scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
3954 (scm_destroy_guardian_x): new procedure.
3955
3956 * guardians.h: added prototypes for `scm_guardian_greedy_p' and
3957 `scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
3958
3959 2001-01-01 Gary Houston <ghouston@arglist.com>
3960
3961 * fports.c (fport_write): bugfix: handle short writes for
3962 unbuffered ports too. optimize the buffered case by minimizing
3963 the number of write/flush calls.
3964 (write_all): new helper procedure.
3965
3966 The ChangeLog continues in the file: "ChangeLog-2000"