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