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