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