* Updates for string- and vector-move-right/left! docstrings.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
694a9bb3
NJ
12001-11-18 Neil Jerram <neil@ossau.uklinux.net>
2
3 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
4 Rewrite docstrings without reference to substring-move-left/right,
5 since the latter no longer exist.
6
302c12b4
DH
72001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
8
9 * eval.c: Removed bogus comment about acros.
10
11 (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP.
12 Minimize scope of local variable. Eliminate dependency on
13 macro DEBUG_EXTENSIONS.
14
15 (s_splicing): New error message string.
16
17 (scm_m_body): Issue 'bad body' message rather than 'missing
18 expression' message.
19
20 (scm_m_quote): Eliminate unnecessary copying.
21
22 (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the
23 checking of the body to scm_m_body.
24
25 (scm_m_do): Move comment to function header. Rename arg1 to
26 binding. Made the code a bit easier to read.
27
28 (evalcar): Removed.
29
30 (iqq): Added a comment. Changed the depth parameter to
31 unsigned. Use size_t for vector lengths. Make sure vector object
32 is gc protected as long as its contents are read. Add some syntax
33 checks. Get rid of unnecessary SCM_IMP test. Clean up the
34 control structure a bit.
35
36 (scm_m_delay): Added comment about the implementation of
37 scm_m_delay.
38
39 (scm_m_define): Add comment about guile's currying define
40 syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro
41 DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code.
42
43 (scm_m_letrec1): Removed. Part of the functionality is taken
44 over by the new function 'transform_bindings'.
45
46 (transform_bindings): New function. Takes over some of the
47 functionality of removed function 'scm_m_letrec1', namely to split
48 a list of bindings into a reversed list of variables and a list of
49 initializers.
50
51 (scm_m_letrec): Call 'transform_bindings'.
52
53 (scm_m_let): Minimized scope of local variables. Renamed 'proc'
54 to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP
55 test. Use 'transform_bindings'. Fixed scoping error with named
56 let (Thanks to Aubrey Jaffer for reporting the bug and to Neil
57 Jerram for suggesting the fix). Cleaned up the control structure
58 a bit.
59
60 (scm_m_expand_body): Use 'transform_bindings'. Eliminated
61 unnecessary consing. Eliminated unnecessary
62 SCM_DEFER/ALLOW_INTS.
63
64 (SCM_CEVAL): Un-obfuscated some loops.
65
cecb4a5e
NJ
662001-11-16 Neil Jerram <neil@ossau.uklinux.net>
67
8f85c0c6
NJ
68 * gc.h (scm_unhash_name): Old declaration removed.
69
70 * eval.c (s_scm_eval): Change @var{primitive-eval} to
71 @code{primitive-eval}.
72
73 * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c,
74 version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c:
75 Change @deffnx lines in docstrings to say {Scheme Procedure}
76 rather than primitive or procedure.
77
78 * posix.c (scm_execl), filesys.c (scm_close), unif.c
79 (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x,
80 scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x,
81 scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector,
82 scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c
83 (scm_string_split, scm_string_ci_to_symbol), strings.c
84 (scm_string_p), sort.c (scm_merge), print.c (scm_newline),
85 macros.c (scm_macro_type), alist.c (scm_acons, scm_assq):
86 Docstring fixes and improvements reflecting edits that have been
87 made in the reference manual source.
88
89 * objprop.c (scm_object_properties, scm_set_object_properties_x,
90 scm_object_property, scm_set_object_property_x): Remove invalid
91 @deffnx lines for corresponding procedure property primitives.
92
cecb4a5e
NJ
93 These changes add a @deffnx C function declaration and function
94 index entries for each Guile primitive to the copy of the doc
95 snarf output that is used for reference manual synchronization.
96 Online help is unchanged.
97
98 * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name.
99 (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function
100 name to SCM_SNARF_DOCS.
101
102 * guile-snarf-docs-texi.in: Pass the shell script's arguments into
103 snarf-check-and-output-texi.
104
105 * Makefile.am (guile-procedures.texi): New rule.
106 (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES):
107 Changed so that the last stage of doc snarfing is now performed
108 twice, once to produce guile-procedures.txt for online help, and
109 once to produce guile.texi for reference manual synchronization.
110
ddea3325
DH
1112001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
112
113 * eval.c (RETURN): Wrap in do{}while(0) in order to make it
114 safely usable as a single statement followed by a ';', for example
115 in an if statement.
116
117 (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'.
118
72dd0a03
NJ
1192001-11-13 Neil Jerram <neil@ossau.uklinux.net>
120
121 * random.c (scm_random_solid_sphere_x,
122 scm_random_hollow_sphere_x): Correct "shere" typos.
123
124 * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring.
125
126 * version.c (scm_version): Update docstring to include
127 `micro-version'.
128
6558eda6
MV
1292001-11-13 Marius Vollmer <mvo@zagadka.ping.de>
130
409b8588
MV
131 * modules.c (scm_c_export): Call va_end after collecting the
132 symbols.
133
adb8c0f2
MV
134 * strop.h, strop.c (scm_substring_move_left_x,
135 scm_substring_move_right_x): Removed.
136
6558eda6
MV
137 * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG,
138 HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what
139 configure does.
140
5d8fc640
MV
1412001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
142
143 * numbers.c: Document macros to define when including
144 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
145 now rely on SIZEOF_ macros that have been figured out at
146 configure time.
147
148 * num2integral.i.c: Adapt to new interface.
149 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
150 target type by casting it and checking whether it is still the
151 same. Do not try to handle bignums for integral types that are
152 smaller than fixnums. When handling bignums, collect the
153 magnituse first into a unsigned type, and correctly check for
154 overflow.
155 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
156 only -MIN_VALUE can still be negative of all negative numbers (in
157 twos-complement).
158
159 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
160
161 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
162 HAVE_LONG_LONG depending on whether their size is non-zero.
163
d6b8cf11
TTN
1642001-11-11 Thien-Thi Nguyen <ttn@glug.org>
165
166 * strop.c (scm_string_null_p): Docfix; nfc.
167 Thanks to Scott Lenser.
168
9401323e
NJ
1692001-11-07 Neil Jerram <neil@ossau.uklinux.net>
170
171 * extensions.c (scm_load_extension): Canonicalize docstring
172 whitespace.
173
174 * unif.c (scm_uniform_array_write), ports.c
175 (scm_current_output_port, scm_force_output), dynwind.c
176 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
177 filesys.c (scm_open, scm_lstat), struct.c
178 (scm_make_struct_layout), random.c (scm_random,
179 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
180 (scm_i_index): Remove superfluous whitespace from end of docstring
181 lines.
182
183 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
184 strings.c (scm_make_string), variable.c (scm_make_variable,
185 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
186 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
187 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
188 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
189 newline at end of docstrings.
190
191 * modules.c (scm_set_current_module): Add missing newline to
192 docstring.
193
b4e15479
SJ
1942001-11-07 Stefan Jahn <stefan@lkcc.org>
195
196 * win32-socket.[ch]: New files. Defines Winsock-API error codes
197 and makes them available through Guile. That is because the
198 Winsock-API does not store its errors in `errno' and thus cannot
199 return error messages via `strerror (errno)'.
200
201 * socket.c (scm_init_socket): Initialize `win32-socket' part
202 here under M$-Windows.
203
d6b8cf11 204 * numbers.h: Added missing declaration of
b4e15479
SJ
205 `scm_sys_check_number_conversions()'.
206
207 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
208 and use in `(strerror)' and `(system-error)'.
209
d6b8cf11 210 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
b4e15479
SJ
211 `win32-socket.[ch]' to extra source and header files.
212
7ab89df1
MV
2132001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
214
215 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
216 a call to turn-on-debugging when --debug has been given instead of
217 turning it on directly. Also, handle new `--no-debug' option,
218 which might suppress the call to turn-on-debugging.
219
0233bfc1
SJ
2202001-11-05 Stefan Jahn <stefan@lkcc.org>
221
222 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
223
8f99e3f3
SJ
2242001-11-04 Stefan Jahn <stefan@lkcc.org>
225
226 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
d6b8cf11 227 here (was at guile_LDADD) which describes the dependency
8f99e3f3
SJ
228 correctly and allows a clean build on Win32.
229
d6b8cf11 230 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
8f99e3f3
SJ
231 into FOO.
232
233 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
234 import macros for external libraries (libcrypt, libqthreads,
235 libreadline and libregex).
236
237 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
238
239 * posix.c (flock): Added support for flock() in M$-Windows.
240
241 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
242 of __SCM_IMPORT__.
243
244 * fports.c (getflags): Differentiate reading and writing pipes
245 descriptors.
246
247 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
248 M$-Windows.
249
250 * coop.c (coop_condition_variable_timed_wait_mutex): Use
251 conditionalized error code if `ETIMEDOUT' is not available.
252 (scm_thread_usleep): Remove bogus declaration of `struct timeval
253 timeout'.
254
255 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
256 belongs. That is because NO_PREPRO_MAGIC gets undefined after
257 each inclusion of `num2integral.i.c'.
258 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
259
4e21fa60
MV
2602001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
261
262 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
263 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
264
08112c95
MD
2652001-11-02 Mikael Djurfeldt <mdj@linnaeus>
266
7663c008
MD
267 * print.c (scm_iprin1): Mark print state as revealed when
268 dispatching to generic write or display.
269
08112c95
MD
270 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
271
f712d833
MV
2722001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
273
274 Support for native Win32. Thanks to Stefan Jahn!
d6b8cf11 275
f712d833
MV
276 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
277 and win32-dirent.h to extra source and header files. These
278 include the uname() and the POSIX dirent interface implementation
279 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
280 linkers which do not allow unresolved symbols inside shared
281 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
282 dependency.
283
d6b8cf11
TTN
284 * __scm.h: Defined SCM_API. This macro gets prepended to all
285 function and data definitions which should be exported or imported
f712d833
MV
286 in the resulting dynamic link library in the Win32 port.
287
288 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
d6b8cf11 289 chars.h, continuations.h, coop-defs.h, coop-threads.h,
f712d833
MV
290 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
291 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
292 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
293 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
294 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
d6b8cf11 295 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
f712d833
MV
296 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
297 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
298 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
299 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
300 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
301 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
302 vports.h, weaks.h:
303 Prefixed each each exported symbol with SCM_API.
304
d6b8cf11 305 * continuations.c: Added comment about the use of the extern
f712d833
MV
306 declarations of {get,set}context() functions used in the ia64 port.
307
308 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
309 is meant to be a `unsigned long *'.
310
311 * filesys.c: Include `direct.h' if possible. Use local
312 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
313 macros for M$-Windows. Implementation of `fstat_Win32()' which is
314 able to differentiate between sockets and other file descriptors.
315 Use this function as wrapper in `scm_fstat()'. Fixed typo in
316 `scm_dirname()'.
317
318 * fports.c: Include `io.h' is possible. Put `*fp' into referring
319 statement block in `scm_fport_buffer_add()'.
320 Some corrections in `getflags()'.
d6b8cf11 321
f712d833
MV
322 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
323
324 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
325 build on Win32. Disable preloaded symbols on Win2 platforms.
326
327 * ioext.c, ports.c: Include `io.h' is possible.
328
329 * mkstemp.c: Include `process.h' is possible.
330
331 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
332 too.
333 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
334
335 * posix.c: Remove unnecessary dirent includes and defines. Include
336 local `win32-uname.h' for MinGW. Extern declaration of
337 `mkstemp()' for systems where it does not exists. Make
338 `getlogin()' available on M$-Windows.
339
340 * scmsigs.c: Made `usleep()' avalable on MinGW.
341
342 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
343
344 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
345
346 * win32-uname.c: Include "win32-uname.h", not "uname.h".
347
d245ce23
MD
3482001-10-28 Mikael Djurfeldt <mdj@linnaeus>
349
350 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
351 Don't apply scm_uniform_vector_length on arrays.
352
8ea46249
DH
3532001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
354
355 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
356 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
357 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
358 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
359 scm_list_<n> over scm_cons[2]?.
360
361 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
362 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
363 SCM_C[AD][AD]R instead of explicit form.
364
365 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
366 comparison parameters.
367
368 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
369 !SCM_NULLP instead of SCM_NIMP.
370
371 (scm_m_case): Don't copy the form. Renamed proc to clause and
372 minimized its scope. Renamed x to clauses. Removed side
373 effecting operation from macro call.
374
375 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
376 minimized its scope. Renamed x to clauses. Minimized the scope
377 of variable 'len'. Make sure the else clause is treated specially
378 even in case of '=>' occurences. Don't change the else to #t in
379 order to be able to distinguish this case in the evaluator. Leave
380 type checking of the recipient to the evaluator.
381
382 (scm_c_improper_memq): Made the comment somewhat clearer.
383
384 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
385 test for SCM_IM_LET at the place of the formal parameters.
386 Simplified the formal parameter checking.
387
388 (scm_m_letstar): Added Comment. Renamed proc to bindings.
389 Renamed arg1 to binding and minimized its scope. Eliminated
390 unnecessary consing.
391
392 (scm_m_do): Renamed proc to bindings. Minimized the scope of
393 variable 'len'.
394
395 (build_binding_list): New static function.
396
397 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
398 Further, split up the 'letrec' unmemoizing code to the
399 corresponding parts for 'do', 'let' and 'letrec', adding comments
400 to each form. Cleanup the handling of the do form (This removes
401 some *real* code :-).
402
403 (SCM_CEVAL): Removed side effecting operation from macro call.
404 Handle the 'else clause of the 'cond form specially - the symbol
405 'else is not replaced with #t any more.
406
8186c4f5
GH
4072001-10-14 Gary Houston <ghouston@arglist.com>
408
409 * version.c (scm_version): use sprintf instead of snprintf,
410 for portability. thanks to Bill Schottstaedt.
411
89759084
MD
4122001-10-14 Mikael Djurfeldt <mdj@linnaeus>
413
414 * read.c (scm_lreadr): When user-defined hash procedure returns
415 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
416 an exception. (This prevents parsing of uniform vectors from
417 interfering with parsing of numbers.)
418
9c7ce563
MV
4192001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
420
421 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
422 PTRDIFF_MIN. Thanks to Ken Raeburn.
423
4242001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
425
426 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
427
428 * eval.c (scm_m_atbind): First try to find the variable without
429 defining it locally; when it has not been found, define it
430 locally.
431
432 * modules.c (module_variable): Pass over variables that exist but
433 are unbound.
434
4352001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
436
437 * backtrace.c (display_backtrace_file_and_line): Only use
438 scm_basename when POSIX support is compiled in. Thanks to Chris
439 Cramer.
440
1fe5e088
DH
4412001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
442
443 * numbers.c (mem2uinteger): Return number read so far when coming
444 across a hexdigit after having read a # or if not reading a hex
445 value. This will enable the calling code to correctly handle
446 forms like 1e2. (The background is, that the exponent markers d,
447 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
448 providing this patch.
449
450 (mem2complex): Fix erroneous double-negation. Now, numbers like
451 1-i will be read correctly.
452
68665a97
MD
4532001-10-12 Mikael Djurfeldt <mdj@linnaeus>
454
455 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
456
457 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
458
d5cf5324
DH
4592001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
460
461 * print.c (scm_print_state_vtable, print_state_pool):
462 Initialize. These variables are now registered as gc roots.
463
464 (scm_current_pstate): Update documentation.
465
466 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
467 scm_prin1, scm_init_print): print_state_pool is registered as a
468 gc root and thus does not need to be protected by a surrounding
469 pair any more.
470
471 (make_print_state): The car of print_state_pool no longer holds
472 the scm_print_state_vtable.
473
474 (scm_current_pstate, scm_make_print_state, print_circref,
475 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
476 SCM_N<foo>.
477
478 (scm_prin1): When building lists, prefer scm_list_<n> over
479 scm_cons[2]?.
480
481 (scm_iprlist): Removed a redundant SCM_IMP test.
482
483 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
484
37c56aec
DH
4852001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
486
487 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
488
489 (scm_memcons, scm_mem_to_proc): When building lists, prefer
490 scm_list_<n> over scm_cons[2]?.
491
492 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
493
494 (scm_procedure_name): Use SCM_CADR instead of explicit form.
495
496 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
497 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
498 for some reason his patch didn't make it into the cvs.
499
79d34f68
DH
5002001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
501
502 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
503 little bit - should even be somewhat more accurate now.
504
5e137c65
RB
5052001-10-08 Rob Browning <rlb@defaultvalue.org>
506
507 * gc.c: support ia64 register backing store.
508 (SCM_MARK_BACKING_STORE): new macro.
509
510 * continuations.h: support ia64 register backing store.
511 (struct scm_t_contregs): add ia64 register backing store.
512
513 * continuations.c: support ia64 register backing store.
514 (continuation_mark): mark ia64 register backing store.
515 (continuation_free): free ia64 register backing store.
516 (scm_make_continuation): capture ia64 register backing store.
517 (copy_stack_and_call): copy ia64 register backing store.
518
ee083ac2
DH
5192001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
520
521 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
522 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
523 instead of SCM_NIMP to test for that case.
524
525 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
526 scm_t_bits instead of long.
527
71dcdbf9
MV
5282001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
529
530 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
531 SCM_T_SIGNED_BITS_MIN): New.
532 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
533 Use them to make these macros computable by the preprocessor.
534
535 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
536 whether the integral type fits in a fixnum, not the compiler.
537 This removes a spurious compiler warning. Also, honor the
538 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
539 needed for `long long's.
540
541 * numbers.c: Define NO_PREPRO_MAGOC when including
542 num2integral.c.i for `long long' and `signed long long'.
543
152812c0
MD
5442001-10-06 Mikael Djurfeldt <mdj@linnaeus>
545
546 These changes fixes a race condition in the Guile coop - pthread
547 compatibility code.
d6b8cf11 548
152812c0
MD
549 * coop.c (mother_awake_p): New variable.
550 (coop_create): Set mother_awake_p before creating or signalling
551 mother; wait until mother is going to sleep before returning.
552 (mother): Reset mother_awake_p before going to sleep.
553
11d49f54
DH
5542001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
555
556 * options.c (protected_objects, scm_init_options): The content of
557 protected_objects is now protected from garbage collection using
558 scm_gc_register_root instead of scm_permanent_object.
559
560 (get_option_setting): New static function that computes an option
561 setting as it was formerly done in the function scm_options.
562
563 (get_documented_option_setting): New static function that
564 returns option documentation as it was formerly done in the
565 function scm_options. Note that documentation C strings are no
566 longer precomputed into SCM objects. Instead, they are converted
567 into SCM strings every time get_documented_option_setting is
568 called.
569
570 (change_option_setting): New static functions that modifies the
571 option setting as it was formerly done in the function
572 scm_options. The function is now exception safe, i. e. won't
573 cause a memory leak when interrupted. Further, only non-immediate
574 option values are added to the protection list.
575
576 (scm_options): This function now has only the purpose to dispatch
577 to to get_option_setting, get_documented_option_setting or
578 change_option_setting, depending on the arguments given to
579 scm_options.
580
581 (scm_init_opts): Don't convert documentation C strings into SCM
582 strings. Further, don't protect any object values: They _must_
583 be immediate values, otherwise there is no guarantee that they
584 have not been collected before anyway.
585
586 * options.[ch] (scm_t_option): Made type unsigned, name into a
587 constant char* and val into a scm_t_bits type.
588
589 (scm_options, scm_init_opts): The number of options is guaranteed
590 to be larger or equal to zero. Thus, the type is changed to
591 unsigned.
592
3dbacabc
DH
5932001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
594
595 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
596 testing an unsigned value for being >= 0.
597
14282d0f
DH
5982001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
599
600 * numbers.h: Removed old comment about using SCM_CAR to access
601 non-pair cells.
602
603 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
604 the return value is signed. Thanks to Brian Crowder for the bug
605 report.
606
607 (SCM_SRS): Avoid unnecessary casting and don't unpack input
608 values. With this patch, SCM_SRS can be safely used for other
609 types than scm_t_signed_bits. However, it should still better be
610 an internal macro and thus be renamed to SCM_I_SRS.
611
612 (SCM_MAKINUM, SCM_INUM): Use proper casting.
613
2dbec7b5
GH
6142001-10-03 Gary Houston <ghouston@arglist.com>
615
616 * continuations.h, unif.h: in the descriptions of the bit patterns
617 of the heap cells, make bit 0 the least significant.
618
cf4ee841
TTN
6192001-09-25 Thien-Thi Nguyen <ttn@glug.org>
620
621 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
622 Thanks to Golubev I. N.
623
4a151b3d
GH
6242001-09-25 Gary Houston <ghouston@arglist.com>
625
626 * ports.c (scm_drain_input): extended the docstring. thanks to
627 Alex Schroeder and Thien-Thi Nguyen.
628
581ded70
MD
6292001-09-23 Mikael Djurfeldt <mdj@linnaeus>
630
631 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
632 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
633 macros. (The NUM names might soon change.)
634
635 * numbers.h: Added missing declarations.
636
5437598b
MD
6372001-09-22 Mikael Djurfeldt <mdj@linnaeus>
638
639 * Makefile.am: Distribute num2float.i.c.
640
641 * num2float.i.c: New file, multiply included by numbers.c, used
642 to "templatize" the float <-> num conversion routines.
643
644 * numbers.c: New functions: scm_num2float, scm_float2num,
645 scm_num2double, scm_double2num.
646
0b073f0f
RB
6472001-09-21 Rob Browning <rlb@defaultvalue.org>
648
649 * .cvsignore: really add version.h
650
651 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
652 Otherwise it fails on the alpha. However, we might rather choose
653 this size conditionally.
654
655 * numbers.c (scm_gcd): change "k" to a long from an int.
656 Otherwise it fails on the alpha. However, we might rather choose
657 this size conditionally.
658
659 * error.c (scm_wta): coerce char* to intptr_t before int
660 assignment.
661
662 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
663 int.
664
665 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
666
2830fd91
MD
6672001-09-20 Mikael Djurfeldt <mdj@linnaeus>
668
669 * numbers.c (scm_integer_expt): Accept inexact integer in second
670 argument. (Thanks to Bill Schottstaedt.)
671
c13f0a90
RB
6722001-09-20 Rob Browning <rlb@defaultvalue.org>
673
674 * .cvsignore: add version.h
675
676 * versiondat.h.in: removed (obsolete).
677
678 * version.h.in: renamed from version.h.
679 (SCM_GUILE_MAJOR_VERSION): new public macro.
680 (SCM_GUILE_MINOR_VERSION): new public macro.
681 (SCM_GUILE_MICRO_VERSION): new public macro.
682
683 * version.h: renamed to version.h.in.
684
685 * version.c
686 (scm_major_version): support integer *_VERSION macros.
687 (scm_minor_version): support integer *_VERSION macros.
688 (scm_micro_version): support integer *_VERSION macros.
689 (scm_version): support integer *_VERSION macros.
690
147c18a0
MD
6912001-09-20 Mikael Djurfeldt <mdj@linnaeus>
692
693 * error.c, error.h: Made error keys globally accessible.
694 Applications might want to test for these or use them in a direct
695 call to scm_error.
696
697 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
698 routines are passed an inexact. This change in behavior is
699 motivated by concordance with R5RS: It is more common that a
700 primitive doesn't want to accept an inexact for an exact.
701
662c5539
DH
7022001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
703
704 The following patch partially undoes my patch from 2001-06-30,
705 where I added the function scm_gc_mark_cell_conservatively. The
706 function is buggy, since it breaks guile during conservative
707 marking if a pointer on the stack points directly into the list of
708 free cells on the heap: With conservative cell marking this will
709 cause the whole free list to be scanned and marked - boom!
710
711 * gc.c (allocated_mark, MARK, heap_segment,
712 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
cf4ee841 713 (scm_gc_mark_cell_conservatively): Remove function
662c5539
DH
714 scm_gc_mark_cell_conservatively and update the corresponding
715 comments and uses accordingly. Thanks to Christopher Cramer for
716 the patch. (Minor corrections by me.)
717
6c1b7628
GH
7182001-09-15 Gary Houston <ghouston@arglist.com>
719
720 * root.h (scm_root_state): removed the continuation_stack and
721 continuation_stack_ptr members, which have no apparent purpose.
722 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
723 removed.
662c5539 724
6c1b7628
GH
725 * root.c (root_mark), init.c (restart_stack, start_stack), gc
726 (scm_igc): remove all references to contination_stack and
727 continuation_stack_ptr, avoiding allocation of a vector and
728 useless processing during gc.
729
455c0ac8
DH
7302001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
731
732 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
733
734 (TCONC_IN): Make sure that the cell word 0 is initialized last.
735
736 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
737
738 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
739
740 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
741 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
742
22ba637b
DH
7432001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
744
745 * guardians.c (mark_dependencies_in_tconc,
746 whine_about_self_centered_zombies, scm_init_guardians): Register
747 the static global variable `self_centered_zombies' via
748 scm_gc_register_root, to make some cdr-ing unnecessary.
749
c3c4d801
DH
7502001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
751
752 * backtrace.c (display_backtrace_file,
753 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
754 values, use SCM_FALSEP when comparing SCM values against #f.
755 Thanks to Rob Browning for the bug report.
756
b00418df
DH
7572001-09-12 Martin Baulig <martin@home-of-linux.org>
758
759 * strings.[ch] (scm_str2string): New function.
760
a0d34a0b
MV
7612001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
762
763 * gc.c (scm_done_free): Always subtract size from scm_mallocated
764 when computing nm, even if it's negative.
765 (scm_must_malloc): Abort on overflow of scm_mtrigger.
766 (scm_must_realloc): Likewise.
767
b10586f0
ML
7682001-09-01 Michael Livshin <mlivshin@bigfoot.com>
769
770 * numbers.c (scm_sys_check_number_conversions): new function,
771 defined if Guile is compiled in debugging mode. currently checks
772 `scm_num2ulong', should check much much more.
773
774 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
775 unsigned, ensure that it's positive. thanks to Martin Baulig!
cf4ee841 776
8c494e99
DH
7772001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
778
779 * __scm.h: Added new section about compile time selectable
780 features.
781
782 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
783 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
784 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
785 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
786 Removed.
787
788 * deprecation.c (scm_include_deprecated_features): Simplified.
789
790 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
791