(HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG, HAVE_LONG_LONGS):
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
5d8fc640
MV
12001-11-12 Marius Vollmer <mvo@zagadka.ping.de>
2
3 * numbers.c: Document macros to define when including
4 num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we
5 now rely on SIZEOF_ macros that have been figured out at
6 configure time.
7
8 * num2integral.i.c: Adapt to new interface.
9 (NUM2INTEGRAL): Test whether a fixnum can be represented in the
10 target type by casting it and checking whether it is still the
11 same. Do not try to handle bignums for integral types that are
12 smaller than fixnums. When handling bignums, collect the
13 magnituse first into a unsigned type, and correctly check for
14 overflow.
15 (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that
16 only -MIN_VALUE can still be negative of all negative numbers (in
17 twos-complement).
18
19 * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately.
20
21 * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and
22 HAVE_LONG_LONG depending on whether their size is non-zero.
23
d6b8cf11
TTN
242001-11-11 Thien-Thi Nguyen <ttn@glug.org>
25
26 * strop.c (scm_string_null_p): Docfix; nfc.
27 Thanks to Scott Lenser.
28
9401323e
NJ
292001-11-07 Neil Jerram <neil@ossau.uklinux.net>
30
31 * extensions.c (scm_load_extension): Canonicalize docstring
32 whitespace.
33
34 * unif.c (scm_uniform_array_write), ports.c
35 (scm_current_output_port, scm_force_output), dynwind.c
36 (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer),
37 filesys.c (scm_open, scm_lstat), struct.c
38 (scm_make_struct_layout), random.c (scm_random,
39 scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c
40 (scm_i_index): Remove superfluous whitespace from end of docstring
41 lines.
42
43 * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p),
44 strings.c (scm_make_string), variable.c (scm_make_variable,
45 scm_make_undefined_variable, scm_variable_p, scm_variable_set_x,
46 scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer),
47 posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c
48 (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous
49 newline at end of docstrings.
50
51 * modules.c (scm_set_current_module): Add missing newline to
52 docstring.
53
b4e15479
SJ
542001-11-07 Stefan Jahn <stefan@lkcc.org>
55
56 * win32-socket.[ch]: New files. Defines Winsock-API error codes
57 and makes them available through Guile. That is because the
58 Winsock-API does not store its errors in `errno' and thus cannot
59 return error messages via `strerror (errno)'.
60
61 * socket.c (scm_init_socket): Initialize `win32-socket' part
62 here under M$-Windows.
63
d6b8cf11 64 * numbers.h: Added missing declaration of
b4e15479
SJ
65 `scm_sys_check_number_conversions()'.
66
67 * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO
68 and use in `(strerror)' and `(system-error)'.
69
d6b8cf11 70 * Makefile.am (EXTRA_libguile_la_SOURCES): Added
b4e15479
SJ
71 `win32-socket.[ch]' to extra source and header files.
72
7ab89df1
MV
732001-11-06 Marius Vollmer <mvo@zagadka.ping.de>
74
75 * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend
76 a call to turn-on-debugging when --debug has been given instead of
77 turning it on directly. Also, handle new `--no-debug' option,
78 which might suppress the call to turn-on-debugging.
79
0233bfc1
SJ
802001-11-05 Stefan Jahn <stefan@lkcc.org>
81
82 * struct.c (s_scm_struct_vtable_p): Corrected docstring.
83
8f99e3f3
SJ
842001-11-04 Stefan Jahn <stefan@lkcc.org>
85
86 * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL)
d6b8cf11 87 here (was at guile_LDADD) which describes the dependency
8f99e3f3
SJ
88 correctly and allows a clean build on Win32.
89
d6b8cf11 90 * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros
8f99e3f3
SJ
91 into FOO.
92
93 * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL
94 import macros for external libraries (libcrypt, libqthreads,
95 libreadline and libregex).
96
97 * coop-defs.h: Include <winsock2.h> for `struct timeval'.
98
99 * posix.c (flock): Added support for flock() in M$-Windows.
100
101 * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead
102 of __SCM_IMPORT__.
103
104 * fports.c (getflags): Differentiate reading and writing pipes
105 descriptors.
106
107 * filesys.c (S_IS*): Redefine all of the S_IS*() macros for
108 M$-Windows.
109
110 * coop.c (coop_condition_variable_timed_wait_mutex): Use
111 conditionalized error code if `ETIMEDOUT' is not available.
112 (scm_thread_usleep): Remove bogus declaration of `struct timeval
113 timeout'.
114
115 * numbers.c (PTRDIFF_MIN): Moved this definition where it actually
116 belongs. That is because NO_PREPRO_MAGIC gets undefined after
117 each inclusion of `num2integral.i.c'.
118 (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined.
119
4e21fa60
MV
1202001-11-03 Marius Vollmer <mvo@zagadka.ping.de>
121
122 * eval.c (scm_m_begin): Allow `(begin)`, with no subforms.
123 (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED.
124
08112c95
MD
1252001-11-02 Mikael Djurfeldt <mdj@linnaeus>
126
7663c008
MD
127 * print.c (scm_iprin1): Mark print state as revealed when
128 dispatching to generic write or display.
129
08112c95
MD
130 * unif.c (scm_ra2contig): Fixed memory overwrite bug.
131
f712d833
MV
1322001-11-02 Marius Vollmer <mvo@zagadka.ping.de>
133
134 Support for native Win32. Thanks to Stefan Jahn!
d6b8cf11 135
f712d833
MV
136 * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c
137 and win32-dirent.h to extra source and header files. These
138 include the uname() and the POSIX dirent interface implementation
139 for M$-Windows. Put `-no-undefined' into LDFLAGS to support
140 linkers which do not allow unresolved symbols inside shared
141 libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)'
142 dependency.
143
d6b8cf11
TTN
144 * __scm.h: Defined SCM_API. This macro gets prepended to all
145 function and data definitions which should be exported or imported
f712d833
MV
146 in the resulting dynamic link library in the Win32 port.
147
148 * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
d6b8cf11 149 chars.h, continuations.h, coop-defs.h, coop-threads.h,
f712d833
MV
150 debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
151 environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
152 feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
153 gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
154 hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
d6b8cf11 155 load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
f712d833
MV
156 objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
157 procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
158 read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
159 smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
160 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
161 tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
162 vports.h, weaks.h:
163 Prefixed each each exported symbol with SCM_API.
164
d6b8cf11 165 * continuations.c: Added comment about the use of the extern
f712d833
MV
166 declarations of {get,set}context() functions used in the ia64 port.
167
168 * continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
169 is meant to be a `unsigned long *'.
170
171 * filesys.c: Include `direct.h' if possible. Use local
172 `win32-dirent.h' for the native M$-Windows port. Define S_IS*()
173 macros for M$-Windows. Implementation of `fstat_Win32()' which is
174 able to differentiate between sockets and other file descriptors.
175 Use this function as wrapper in `scm_fstat()'. Fixed typo in
176 `scm_dirname()'.
177
178 * fports.c: Include `io.h' is possible. Put `*fp' into referring
179 statement block in `scm_fport_buffer_add()'.
180 Some corrections in `getflags()'.
d6b8cf11 181
f712d833
MV
182 * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__.
183
184 * guile.c: Make sure to define __SCM_IMPORT__ for shared library
185 build on Win32. Disable preloaded symbols on Win2 platforms.
186
187 * ioext.c, ports.c: Include `io.h' is possible.
188
189 * mkstemp.c: Include `process.h' is possible.
190
191 * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__,
192 too.
193 Put `scm_return_entry()' into HAVE_GETSERVENT conditional.
194
195 * posix.c: Remove unnecessary dirent includes and defines. Include
196 local `win32-uname.h' for MinGW. Extern declaration of
197 `mkstemp()' for systems where it does not exists. Make
198 `getlogin()' available on M$-Windows.
199
200 * scmsigs.c: Made `usleep()' avalable on MinGW.
201
202 * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'.
203
204 * win32-dirent.c: Include "win32-dirent.h", not "dirent.h".
205
206 * win32-uname.c: Include "win32-uname.h", not "uname.h".
207
d245ce23
MD
2082001-10-28 Mikael Djurfeldt <mdj@linnaeus>
209
210 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write):
211 Don't apply scm_uniform_vector_length on arrays.
212
8ea46249
DH
2132001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de>
214
215 * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq,
216 scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body,
217 scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args,
218 SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer
219 scm_list_<n> over scm_cons[2]?.
220
221 (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1,
222 scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use
223 SCM_C[AD][AD]R instead of explicit form.
224
225 (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered
226 comparison parameters.
227
228 (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use
229 !SCM_NULLP instead of SCM_NIMP.
230
231 (scm_m_case): Don't copy the form. Renamed proc to clause and
232 minimized its scope. Renamed x to clauses. Removed side
233 effecting operation from macro call.
234
235 (scm_m_cond): Don't copy the form. Renamed arg1 to clause and
236 minimized its scope. Renamed x to clauses. Minimized the scope
237 of variable 'len'. Make sure the else clause is treated specially
238 even in case of '=>' occurences. Don't change the else to #t in
239 order to be able to distinguish this case in the evaluator. Leave
240 type checking of the recipient to the evaluator.
241
242 (scm_c_improper_memq): Made the comment somewhat clearer.
243
244 (scm_m_lambda): Renamed proc to formals. Removed unnecessary
245 test for SCM_IM_LET at the place of the formal parameters.
246 Simplified the formal parameter checking.
247
248 (scm_m_letstar): Added Comment. Renamed proc to bindings.
249 Renamed arg1 to binding and minimized its scope. Eliminated
250 unnecessary consing.
251
252 (scm_m_do): Renamed proc to bindings. Minimized the scope of
253 variable 'len'.
254
255 (build_binding_list): New static function.
256
257 (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean).
258 Further, split up the 'letrec' unmemoizing code to the
259 corresponding parts for 'do', 'let' and 'letrec', adding comments
260 to each form. Cleanup the handling of the do form (This removes
261 some *real* code :-).
262
263 (SCM_CEVAL): Removed side effecting operation from macro call.
264 Handle the 'else clause of the 'cond form specially - the symbol
265 'else is not replaced with #t any more.
266
8186c4f5
GH
2672001-10-14 Gary Houston <ghouston@arglist.com>
268
269 * version.c (scm_version): use sprintf instead of snprintf,
270 for portability. thanks to Bill Schottstaedt.
271
89759084
MD
2722001-10-14 Mikael Djurfeldt <mdj@linnaeus>
273
274 * read.c (scm_lreadr): When user-defined hash procedure returns
275 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
276 an exception. (This prevents parsing of uniform vectors from
277 interfering with parsing of numbers.)
278
9c7ce563
MV
2792001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
280
281 * numbers.c: Set NO_PREPRO_MAGIC when defining our version of
282 PTRDIFF_MIN. Thanks to Ken Raeburn.
283
2842001-10-07 Marius Vollmer <mvo@zagadka.ping.de>
285
286 * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c".
287
288 * eval.c (scm_m_atbind): First try to find the variable without
289 defining it locally; when it has not been found, define it
290 locally.
291
292 * modules.c (module_variable): Pass over variables that exist but
293 are unbound.
294
2952001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
296
297 * backtrace.c (display_backtrace_file_and_line): Only use
298 scm_basename when POSIX support is compiled in. Thanks to Chris
299 Cramer.
300
1fe5e088
DH
3012001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
302
303 * numbers.c (mem2uinteger): Return number read so far when coming
304 across a hexdigit after having read a # or if not reading a hex
305 value. This will enable the calling code to correctly handle
306 forms like 1e2. (The background is, that the exponent markers d,
307 e and f are also hexdigits.) Thanks to Mikael Djurfeldt for
308 providing this patch.
309
310 (mem2complex): Fix erroneous double-negation. Now, numbers like
311 1-i will be read correctly.
312
68665a97
MD
3132001-10-12 Mikael Djurfeldt <mdj@linnaeus>
314
315 * debug.c (scm_mem_to_proc): Fixed typo in previous change.
316
317 * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro.
318
d5cf5324
DH
3192001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
320
321 * print.c (scm_print_state_vtable, print_state_pool):
322 Initialize. These variables are now registered as gc roots.
323
324 (scm_current_pstate): Update documentation.
325
326 (scm_current_pstate, scm_make_print_state, scm_free_print_state,
327 scm_prin1, scm_init_print): print_state_pool is registered as a
328 gc root and thus does not need to be protected by a surrounding
329 pair any more.
330
331 (make_print_state): The car of print_state_pool no longer holds
332 the scm_print_state_vtable.
333
334 (scm_current_pstate, scm_make_print_state, print_circref,
335 scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over
336 SCM_N<foo>.
337
338 (scm_prin1): When building lists, prefer scm_list_<n> over
339 scm_cons[2]?.
340
341 (scm_iprlist): Removed a redundant SCM_IMP test.
342
343 (scm_simple_format): Use SCM_EQ_P to compare SCM values.
344
37c56aec
DH
3452001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de>
346
347 * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>.
348
349 (scm_memcons, scm_mem_to_proc): When building lists, prefer
350 scm_list_<n> over scm_cons[2]?.
351
352 (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP.
353
354 (scm_procedure_name): Use SCM_CADR instead of explicit form.
355
356 (debugobj_print): Coerce scm_intprint arg 1 to long, not int.
357 Thanks to Rob Browning for the patch (see log entry 2001-09-21) -
358 for some reason his patch didn't make it into the cvs.
359
79d34f68
DH
3602001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de>
361
362 * numbers.c (mem2decimal_from_point): Cleaned up the parsing a
363 little bit - should even be somewhat more accurate now.
364
5e137c65
RB
3652001-10-08 Rob Browning <rlb@defaultvalue.org>
366
367 * gc.c: support ia64 register backing store.
368 (SCM_MARK_BACKING_STORE): new macro.
369
370 * continuations.h: support ia64 register backing store.
371 (struct scm_t_contregs): add ia64 register backing store.
372
373 * continuations.c: support ia64 register backing store.
374 (continuation_mark): mark ia64 register backing store.
375 (continuation_free): free ia64 register backing store.
376 (scm_make_continuation): capture ia64 register backing store.
377 (copy_stack_and_call): copy ia64 register backing store.
378
ee083ac2
DH
3792001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
380
381 * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn
382 is known to be #f if no entry is found. Thus, use !SCM_FALSEP
383 instead of SCM_NIMP to test for that case.
384
385 * strings.h (SCM_SET_STRING_LENGTH): Cast the length to
386 scm_t_bits instead of long.
387
71dcdbf9
MV
3882001-10-06 Marius Vollmer <mvo@zagadka.ping.de>
389
390 * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX,
391 SCM_T_SIGNED_BITS_MIN): New.
392 * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM):
393 Use them to make these macros computable by the preprocessor.
394
395 * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test
396 whether the integral type fits in a fixnum, not the compiler.
397 This removes a spurious compiler warning. Also, honor the
398 NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is
399 needed for `long long's.
400
401 * numbers.c: Define NO_PREPRO_MAGOC when including
402 num2integral.c.i for `long long' and `signed long long'.
403
152812c0
MD
4042001-10-06 Mikael Djurfeldt <mdj@linnaeus>
405
406 These changes fixes a race condition in the Guile coop - pthread
407 compatibility code.
d6b8cf11 408
152812c0
MD
409 * coop.c (mother_awake_p): New variable.
410 (coop_create): Set mother_awake_p before creating or signalling
411 mother; wait until mother is going to sleep before returning.
412 (mother): Reset mother_awake_p before going to sleep.
413
11d49f54
DH
4142001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
415
416 * options.c (protected_objects, scm_init_options): The content of
417 protected_objects is now protected from garbage collection using
418 scm_gc_register_root instead of scm_permanent_object.
419
420 (get_option_setting): New static function that computes an option
421 setting as it was formerly done in the function scm_options.
422
423 (get_documented_option_setting): New static function that
424 returns option documentation as it was formerly done in the
425 function scm_options. Note that documentation C strings are no
426 longer precomputed into SCM objects. Instead, they are converted
427 into SCM strings every time get_documented_option_setting is
428 called.
429
430 (change_option_setting): New static functions that modifies the
431 option setting as it was formerly done in the function
432 scm_options. The function is now exception safe, i. e. won't
433 cause a memory leak when interrupted. Further, only non-immediate
434 option values are added to the protection list.
435
436 (scm_options): This function now has only the purpose to dispatch
437 to to get_option_setting, get_documented_option_setting or
438 change_option_setting, depending on the arguments given to
439 scm_options.
440
441 (scm_init_opts): Don't convert documentation C strings into SCM
442 strings. Further, don't protect any object values: They _must_
443 be immediate values, otherwise there is no guarantee that they
444 have not been collected before anyway.
445
446 * options.[ch] (scm_t_option): Made type unsigned, name into a
447 constant char* and val into a scm_t_bits type.
448
449 (scm_options, scm_init_opts): The number of options is guaranteed
450 to be larger or equal to zero. Thus, the type is changed to
451 unsigned.
452
3dbacabc
DH
4532001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
454
455 * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about
456 testing an unsigned value for being >= 0.
457
14282d0f
DH
4582001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
459
460 * numbers.h: Removed old comment about using SCM_CAR to access
461 non-pair cells.
462
463 (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure
464 the return value is signed. Thanks to Brian Crowder for the bug
465 report.
466
467 (SCM_SRS): Avoid unnecessary casting and don't unpack input
468 values. With this patch, SCM_SRS can be safely used for other
469 types than scm_t_signed_bits. However, it should still better be
470 an internal macro and thus be renamed to SCM_I_SRS.
471
472 (SCM_MAKINUM, SCM_INUM): Use proper casting.
473
2dbec7b5
GH
4742001-10-03 Gary Houston <ghouston@arglist.com>
475
476 * continuations.h, unif.h: in the descriptions of the bit patterns
477 of the heap cells, make bit 0 the least significant.
478
cf4ee841
TTN
4792001-09-25 Thien-Thi Nguyen <ttn@glug.org>
480
481 * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'.
482 Thanks to Golubev I. N.
483
4a151b3d
GH
4842001-09-25 Gary Houston <ghouston@arglist.com>
485
486 * ports.c (scm_drain_input): extended the docstring. thanks to
487 Alex Schroeder and Thien-Thi Nguyen.
488
581ded70
MD
4892001-09-23 Mikael Djurfeldt <mdj@linnaeus>
490
491 * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE,
492 SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New
493 macros. (The NUM names might soon change.)
494
495 * numbers.h: Added missing declarations.
496
5437598b
MD
4972001-09-22 Mikael Djurfeldt <mdj@linnaeus>
498
499 * Makefile.am: Distribute num2float.i.c.
500
501 * num2float.i.c: New file, multiply included by numbers.c, used
502 to "templatize" the float <-> num conversion routines.
503
504 * numbers.c: New functions: scm_num2float, scm_float2num,
505 scm_num2double, scm_double2num.
506
0b073f0f
RB
5072001-09-21 Rob Browning <rlb@defaultvalue.org>
508
509 * .cvsignore: really add version.h
510
511 * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long.
512 Otherwise it fails on the alpha. However, we might rather choose
513 this size conditionally.
514
515 * numbers.c (scm_gcd): change "k" to a long from an int.
516 Otherwise it fails on the alpha. However, we might rather choose
517 this size conditionally.
518
519 * error.c (scm_wta): coerce char* to intptr_t before int
520 assignment.
521
522 * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not
523 int.
524
525 * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t.
526
2830fd91
MD
5272001-09-20 Mikael Djurfeldt <mdj@linnaeus>
528
529 * numbers.c (scm_integer_expt): Accept inexact integer in second
530 argument. (Thanks to Bill Schottstaedt.)
531
c13f0a90
RB
5322001-09-20 Rob Browning <rlb@defaultvalue.org>
533
534 * .cvsignore: add version.h
535
536 * versiondat.h.in: removed (obsolete).
537
538 * version.h.in: renamed from version.h.
539 (SCM_GUILE_MAJOR_VERSION): new public macro.
540 (SCM_GUILE_MINOR_VERSION): new public macro.
541 (SCM_GUILE_MICRO_VERSION): new public macro.
542
543 * version.h: renamed to version.h.in.
544
545 * version.c
546 (scm_major_version): support integer *_VERSION macros.
547 (scm_minor_version): support integer *_VERSION macros.
548 (scm_micro_version): support integer *_VERSION macros.
549 (scm_version): support integer *_VERSION macros.
550
147c18a0
MD
5512001-09-20 Mikael Djurfeldt <mdj@linnaeus>
552
553 * error.c, error.h: Made error keys globally accessible.
554 Applications might want to test for these or use them in a direct
555 call to scm_error.
556
557 * num2integral.i.c (NUM2INTEGRAL): Report an error when these
558 routines are passed an inexact. This change in behavior is
559 motivated by concordance with R5RS: It is more common that a
560 primitive doesn't want to accept an inexact for an exact.
561
662c5539
DH
5622001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
563
564 The following patch partially undoes my patch from 2001-06-30,
565 where I added the function scm_gc_mark_cell_conservatively. The
566 function is buggy, since it breaks guile during conservative
567 marking if a pointer on the stack points directly into the list of
568 free cells on the heap: With conservative cell marking this will
569 cause the whole free list to be scanned and marked - boom!
570
571 * gc.c (allocated_mark, MARK, heap_segment,
572 scm_gc_mark_cell_conservatively, scm_init_storage), gc.h
cf4ee841 573 (scm_gc_mark_cell_conservatively): Remove function
662c5539
DH
574 scm_gc_mark_cell_conservatively and update the corresponding
575 comments and uses accordingly. Thanks to Christopher Cramer for
576 the patch. (Minor corrections by me.)
577
6c1b7628
GH
5782001-09-15 Gary Houston <ghouston@arglist.com>
579
580 * root.h (scm_root_state): removed the continuation_stack and
581 continuation_stack_ptr members, which have no apparent purpose.
582 (scm_continuation_stack, scm_continuation_stack_ptr): #defines
583 removed.
662c5539 584
6c1b7628
GH
585 * root.c (root_mark), init.c (restart_stack, start_stack), gc
586 (scm_igc): remove all references to contination_stack and
587 continuation_stack_ptr, avoiding allocation of a vector and
588 useless processing during gc.
589
455c0ac8
DH
5902001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
591
592 * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc.
593
594 (TCONC_IN): Make sure that the cell word 0 is initialized last.
595
596 (guardians_t, t_guardians): Renamed guardians_t to t_guardians.
597
598 (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA.
599
600 (guardian_apply, scm_get_one_zombie, scm_make_guardian,
601 mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>.
602
22ba637b
DH
6032001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
604
605 * guardians.c (mark_dependencies_in_tconc,
606 whine_about_self_centered_zombies, scm_init_guardians): Register
607 the static global variable `self_centered_zombies' via
608 scm_gc_register_root, to make some cdr-ing unnecessary.
609
c3c4d801
DH
6102001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de>
611
612 * backtrace.c (display_backtrace_file,
613 display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM
614 values, use SCM_FALSEP when comparing SCM values against #f.
615 Thanks to Rob Browning for the bug report.
616
b00418df
DH
6172001-09-12 Martin Baulig <martin@home-of-linux.org>
618
619 * strings.[ch] (scm_str2string): New function.
620
a0d34a0b
MV
6212001-09-06 Marius Vollmer <mvo@zagadka.ping.de>
622
623 * gc.c (scm_done_free): Always subtract size from scm_mallocated
624 when computing nm, even if it's negative.
625 (scm_must_malloc): Abort on overflow of scm_mtrigger.
626 (scm_must_realloc): Likewise.
627
b10586f0
ML
6282001-09-01 Michael Livshin <mlivshin@bigfoot.com>
629
630 * numbers.c (scm_sys_check_number_conversions): new function,
631 defined if Guile is compiled in debugging mode. currently checks
632 `scm_num2ulong', should check much much more.
633
634 * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to
635 unsigned, ensure that it's positive. thanks to Martin Baulig!
cf4ee841 636
8c494e99
DH
6372001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de>
638
639 * __scm.h: Added new section about compile time selectable
640 features.
641
642 (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE,
643 SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL,
644 SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL,
645 SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS):
646 Removed.
647
648 * deprecation.c (scm_include_deprecated_features): Simplified.
649
650 * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use
651