* init.c (scm_boot_guile_1): Use same initial segment size for
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
16d35552
MD
12000-03-14 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2
31ed4cff
MD
3 [Almost all of these changes should be documented in the NEWS
4 file.]
5
cf2c7413
MD
6 * gc.h (scm_freelist_t): New type.
7
8 * pairs.h (SCM_NEWCELL, SCM_NEWCELL2): Use new style freelists.
9
10 * gc.c (SCM_INIT_HEAP_SIZE): Changed from 32768 --> 40000 so that
11 all of Guile basics fits into one segment and there suitable room
12 for work.
13 (SCM_EXPHEAP): Now takes an argument. Grow by a factor of 1.5
14 instead of 2.
15 (scm_freelist, scm_freelist2): Now of type scm_freelist_t.
16 Freelists now contains information about object span, cells
17 collected and amount of cells in heap segments belonging to the
18 list.
19 (scm_heap_size, scm_gc_cells_collected): Removed.
20
21 * init.c (scm_boot_guile_1): Make 2-word segment 8K (512 cells).
22
16d35552
MD
23 * Makefile.am (libguile_la_LDFLAGS): Bumped library version
24 number.
25
cf2c7413 26 * __scm.h eq.c, eval.c, gc.c, gc.h, gh_data, hash.c, numbers.c,
16d35552
MD
27 numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive
28 rewrite of handling of real and complex numbers.
29 (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been
30 removed along with the support for floats. (Float vectors are
31 still supported.)
32
33 * tags.h (scm_tcs_bignums): Removed.
34 (scm_tc16_bigpos, scm_tc16_bigneg): Replaced by scm_tc16_big.
35 Use SCM_BIGSIGN(x) to test for sign!
36 (scm_tc16_big): The new bignum type.
37 (SCM_REAL_PART, SCM_IMAG_PART): Removed.
38
39 * numbers.h (SCM_BIGSIGN): Sign moved to bit 16.
40 (scm_makdbl): Deprecated.
41 (SCM_NEWREAL, SCM_NEWCOMPLEX): New macros.
42 (SCM_SINGP): Deprecated.
43 (SCM_FLO): Removed.
44 (SCM_INEXP, SCM_CPLXP): Deprecated.
45 (SCM_INEXACTP, SCM_COMPLEXP): New macros.
46 (SCM_COMPLEX_REAL, SCM_COMPLEX_IMAG): Renamed from
47 SCM_REAL, SCM_IMAG (and now only valid for complex numbers).
48 (SCM_REAL, SCM_IMAG): New, *deprecated*, selectors which work both
49 for doubles and complex numbers.
50 (SCM_REAL_VALUE): New selector for doubles.
51 (scm_double_t, scm_complex_t): New types.
52 (scm_dbl): Removed.
53
54 * numbers.c (scm_floprint, scm_floequal): Removed.
55 (scm_print_real, scm_print_complex, scm_real_equalp,
56 scm_complex_equalp): New functions.
57
58 * unif.c (scm_makflo): Removed.
59
60 * smob.h (SCM_SMOB_PREDICATE): New macro.
61 (SCM_NEWSMOB2, SCM_RETURN_NEWSMOB2, SCM_NEWSMOB3,
62 SCM_RETURN_NEWSMOB3): New macros.
63
641999-11-21 Michael Livshin <mlivshin@bigfoot.com>
65
66 The following changes implement primitive support for double cells
67 (i.e. four-word cells) and change the representation of some
68 things to multi-cells instead of cons+malloc. (Applied and
69 modified by mdj.)
70
71 * pairs.h (SCM_NEWCELL2): double-cell variants of SCM_NEWCELL.
72 (SCM_CELL_WORD, SCM_CELL_WORDLOC, SCM_SET_CELL_WORD): primitive
73 multi-cell access macros (used by the ones below).
74 (SCM_CELL_WORD[0-3], SCM_SET_CELL_WORD[0-3]): multi-cell access
75 macros.
76
77 * gc.c (scm_freelist2): multi-cell freelists.
78 (inner_map_free_list): map_free_list, parameterized on ncells.
79 "nn cells in segment mm" was misleading for ncells > 1; changed to
80 "objects". still print cells too, though.
81 (scm_map_free_list): rewritten using inner_map_free_list.
82 (scm_check_freelist): get freelist as parameter, since now we have
83 more than one.
84 (scm_debug_newcell2): multi-cell variants of
85 scm_debug_newcell.
86 (scm_gc_for_newcell): take ncells and freelist pointer as
87 parameters.
88 (scm_gc_mark): add case for tc7_pws (procedures with setters are
89 now double cells).
90 (scm_gc_sweep): don't free the float data, since it's not malloced
91 anymore.
92 (init_heap_seg): didn't understand what n_new_objects stood for,
93 so changed to n_new_cells.
94 (make_initial_segment): new function, makes an initial segment
95 according to given ncells.
96 (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.
97
98 * numbers.c (scm_makdbl): no malloc'ing needed, so the
99 {DEFER,ALLOW}_INTS thing removed.
100
101 * numbers.h (struct scm_dbl): changed to represent a double cell,
102 with the number in the second half.
16d35552
MD
103
104 * dynwind.c: changed the wind-guards representation to double
105 cell.
106
107 * procs.c, procs.h: changed the procedure-with-setter representation
108 to double cell.
109
110 * async.c, async.h: made async representation a double cell.
111
16d35552
MD
112 * dynl.c: made dynamic_obj representation a double cell.
113
b70ecbd0
GH
1142000-03-13 Gary Houston <ghouston@arglist.com>
115
116 * ports.c (flush_void_port): renamed to flush_port_default.
117 (end_input_void_port): renamed to end_input_default.
118
119 * init.c (scm_standard_stream_to_port): create a void port instead
120 of opening /dev/null if the standard file descriptors are bad.
121 advantages: no portability problems, doesn't waste a file descriptor,
122 simplifies the code (thanks to Marius for the idea).
123
124 * vports.c (s_scm_make_soft_port): call scm_port_non_buffer.
125
126 * void ports: make reading from a void port give EOF instead of
127 segv:
128 * ports.c (s_scm_sys_make_void_port): modified docstring.
129 (fill_input_void_port): new proc.
130 (scm_init_ports): set up fill_input_void_port.
131 * ports.c (scm_port_non_buffer): new proc.
132 (scm_void_port): call scm_port_non_buffer.
133
134 * fports.c (scm_setvbuf): docstring: remove the fcntl documentation
135 which was incorrectly appended.
136
fdc7ea2d
MD
1372000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
138
139 * guile-doc-snarf.in: Don't use absolute path for `sed'. (Note
140 that we can't use autoconf for this. Autoconf itself relies on
26fba922 141 the existence of `sed' somewhere on your path.) (Thanks to Dirk
fdc7ea2d
MD
142 Herrman.)
143
68933ba3
MD
1442000-03-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
145
b44a555a
MD
146 * Makefile.am (libguile_la_SOURCES): Moved iselect.c here from
147 EXTRA_libguile_la_SOURCES.
148
149 * iselect.h: Always declare scm_internal_select.
150
151 * iselect.c (scm_internal_select): Added SCM_ASYNC_TICK at the
152 end. Also let scm_internal_select be a real function also when
153 not using threads.
154
68933ba3
MD
155 * __scm.h (SCM_TICK): Oops! Forgot to put SCM_ASYNC_TICK here...
156
c7f6ea11
MD
1572000-03-13 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
158
159 * __scm.h (SCM_ALLOW_INTS, SCM_REALLOW_INTS): Removed call to
160 SCM_ASYNC_TICK. (This is a preparation for POSIX threads support,
161 and kind of an experiment: Will this cause problems?)
162
62dbc244
GB
163Sun Mar 12 13:26:30 2000 Greg J. Badros <gjb@cs.washington.edu>
164
165 * Makefile.am: Added *.doc to DISTCLEANFILES.
166
4f2f645d
GH
1672000-03-12 Gary Houston <ghouston@arglist.com>
168
169 * fports.c (scm_fdes_to_port): call fcntl F_GETFL to test that
170 the fdes is valid before doing anything else. check that
171 the file descriptor supports the modes required.
172 (scm_fport_buffer_add): don't throw an error if fstat doesn't
173 work: just use the default buffer size.
174
175 * throw.c: change an outdated comment about scm_internal_catch
176 BODY: it doesn't take a jumpbuf arg.
177
178 * init.c (scm_standard_stream_to_port): install a handler in case
179 scm_fdes_to_port throws an error. don't check here whether the
180 file descriptor is valid, since scm_fdes_to_port will do that.
181 set the revealed count depending on whether the port got the
182 standard file descriptor.
183 (stream_body_data): new type.
184 (stream_body, stream_handler): new procs.
185
7f782a0a
MD
1862000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
187
67673f75
MD
188 * stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):
189 Renamed from SCMWORD.
190
191 * tags.h (SCM_NCELLP): Removed (SCMWORD).
192
f1267706 193 * arbiters.c (SCM_ARB_LOCKED): Use SCM_UNPACK_CAR.
67673f75 194
74a426ae
MD
195 * async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,
196 feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h,
197 hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c,
198 objects.h, options.c, pairs.h, ports.c, ports.h, print.c,
199 procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c,
200 stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h,
201 throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c,
f1267706 202 weaks.h (SCM_PACK, SCM_UNPACK, SCM_UNPACK_CAR): Renamed from
74a426ae
MD
203 SCM_ASSCM, SCM_ASWORD, SCM_CARW).
204
7f782a0a
MD
205 * numbers.h (SCM_SRS, SCM_INUM): Corrected SCM_ASSCM/ASWORD fixes.
206
207 * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,
208 tags.h: Fixed copyright notices.
209
210 * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
0cd87628 211
7f782a0a
MD
2122000-03-12 Marius Vollmer <mvo@zagadka.ping.de>
213
0cd87628
MV
214 * init.c (scm_standard_stream_to_port): Check whether the file
215 descriptor is valid and substitute "/dev/null" when not.
7f782a0a 216
f3b5e185
MD
2172000-03-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
218
219 * coop-defs.h (struct timespec): Conditionally defined.
220
221 * coop.c (coop_condition_variable_timed_wait_mutex): Use ETIMEDOUT
222 instead of ETIME.
38eca29b
MD
223
224 * readline.c (match_paren): Bugfix: First arg to select is not
225 number of descriptors but the number of the highest descriptor +
226 1.
227
228 This is a preliminary attempt at a cleanup of the threads support
229 code. It moves things to better places, makes arguments more
230 consistent with the POSIX API (which is used in GNOME's glib), and
231 adds new functionality.
232
233 * readline.c (scm_init_readline): Added new arg to scm_init_mutex.
234
235 * coop-defs.h (scm_mutex_trylock): New macro: alias for
236 coop_mutex_trylock.
237 (scm_cond_init): Changed definition to
238 coop_new_condition_variable_init.
38eca29b
MD
239
240 * coop.c: #include <errno.h>
241 (coop_timeout_qinsert): Moved here from iselect.c
242 (coop_new_mutex_init, coop_new_condition_variable_init): New
243 functions. The strange names are temporary. Use scm_mutex_init
244 and scm_cond_init instead.
245 (coop_mutex_trylock): New function. Uses errno.h:EBUSY. errno.h
246 is ANSI C, but should we check for individual error codes in
247 configure.in?
248 (coop_condition_variable_timed_wait_mutex): New function.
249 (coop_key_create, coop_setspecific, coop_getspecific,
7f782a0a 250 coop_key_delete): New functions.
38eca29b
MD
251
252 * iselect.c (coop_timout_qinsert): Moved to coop.c
253
32e1616c
MD
2542000-03-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
255
256 * pairs.h (SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR,
257 SCM_SETOR_CDR): Corrected SCM_ASSCM/WORD fixes.
258
259 * tags.h (SCM_VOIDP_TEST): Renamed from VOIDP_TEST.
260 Layout cleanups.
261
262 * objects.h (SCM_CLASS_FLAGS, SCM_OBJ_CLASS_FLAGS,
263 SCM_SET_CLASS_INSTANCE_SIZE), struct.h (SCM_STRUCT_VTABLE_DATA),
264 proc.h (SCM_CLOSCAR): SCM_ASSCM/WORD fixes.
265
266 * eval.c (scm_lookupcar1): Inserted SCM_ASWORD in expressions
267 dealing with ilocs.
268
d5c39069
GB
2692000-03-11 Dale P. Smith <dpsm@en.com>, applied by Greg J. Badros, <gjb@cs.washington.edu>
270
271 * numbers.c (scm_copy_big_dec, scm_copy_smaller, scm_big_ior,
272 scm_big_xor, scm_big_and, scm_big_test): Added new lowlevel bignum
273 logical functions from SCM.
274
275 (logand, logior, logxor, logtest, logbit?): Extended scheme
276 logical functions to use bignums from SCM.
277
278 (lognot): Removed call to `SCM_VALIDATE_INUM' that prevented
279 lognot from using bignums.
280
3e892913
GB
281Thu Mar 9 11:33:25 2000 Greg J. Badros <gjb@cs.washington.edu>
282
283 * vectors.h (SCM_VELTS_AS_STACKITEMS): Added this macro to help in
284 eliminating some warnings.
285
286 * unif.c, strports.c, print.c, options.c: Fix some warnings on
287 mis-use of SCM/long
288
289 * gc.c, gc.h: Added scm_return_first_int(), and added comment re:
290 what the scm_return_first* functions do.
291
7ac030d6
GB
2922000-03-09 Han-Wen Nienhuys <hanwen@cs.uu.nl>, applied by Greg J. Badros, <gjb@cs.washington.edu>
293
294 * libguile/*.[ch]: make a distinction between SCM as a generic
295 name for a Scheme object (now a void*), and SCM as 32 bit word for
296 storing tags and immediates (now a long int). Introduced
297 SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
298 code in the process: arbiter.c (use macros), unif.c (scm_array_p),
299
f635d2d4
GB
300Wed Mar 8 10:15:59 2000 Greg J. Badros <gjb@cs.washington.edu>
301
302 * numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in
303 various logXXX primitives. Thanks Eric Moore!
304
9eaa7fb6
GB
305Tue Mar 7 08:05:22 2000 Greg J. Badros <gjb@cs.washington.edu>
306
307 * run-test, remaining-docs-needed: Added these scripts. The
308 second one is only temporary until the docstring additions are
309 complete. run-test may best live on, but is here mostly for
310 convenience and awareness for now.
311
312 * hash.c: Docs, minor cleanup patch from Dirk Herrman.
313
49673698
GB
314Thu Mar 2 16:06:58 2000 Greg J. Badros <gjb@cs.washington.edu>
315
316 * error.h, error.c: Added `scm_wrong_type_arg_msg' to support
317 displaying the expected type. Use SCM_LISTn in a couple places
318 instead of scm_cons-ing by hand.
319
320 * __scm.h: Added SCM_ASSERT_TYPE macro.
321
322 * validate.h, scm_validate.h: Added the former, as a renamed
323 version of the latter with SCM_ASSERT_TYPE used in
324 SCM_MAKE_VALIDATE (instead of just SCM_ASSERT)
325
326 * Makefile.am: Rename scm_validate.h to validate.h.
327
328 * *.c, *.h: Include validate.h, not scm_validate.h (old name's
329 prefix was superfluous).
330
417bdef8
GB
331Thu Mar 2 15:33:12 2000 Greg J. Badros <gjb@cs.washington.edu>
332
333 * hashtab.c: Improved documentation for lots of functions. Added
334 handwritten docs for `hash-fold'.
335
336Thu Mar 2 15:13:25 2000 Greg J. Badros <gjb@cs.washington.edu>
337
338 * list.c: Added hand-written docs for `del{q,v,ete}1!'.
339
26a760c6
GB
340Thu Mar 2 12:38:30 2000 Greg J. Badros <gjb@cs.washington.edu>
341
342 * list.c: Moved append docs to append! Thanks Dirk Hermann. Also,
343 added append docs from R4RS.
344
345 * strings.c: Docstring typo fix, + eliminate unneeded IMP tests.
346 Thanks Dirk Hermann!
347
348 * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and
349 deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann!
350
351 * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout.
352 Drop use of SCM_P for function prototypes... assume an ANSI C
353 compiler. Thanks Dirk Hermann!
354
898942f8
GB
355Sat Feb 19 12:20:12 2000 Greg J. Badros <gjb@cs.washington.edu>
356
357 * ports.c: Made `set-port-column!' and `set-port-line!' each
358 return SCM_UNSPECIFIED instead of a (not-scheme-object) integer
359 that caused a seg fault. Also fixed `set-port-column!'s
360 docstring. Thanks Han-Wen Nienhuys for finding the bug!
361
84a3df2c
GB
362Sun Feb 13 19:11:42 2000 Greg J. Badros <gjb@cs.washington.edu>
363
364 * arbiters.c, eq.c, gc.c, guardians.c, list.c, ports.c, print.c,
365 regex-posix.c, scmsigs.c, stime.c, strings.c, variable.c, stime.c,
366 strings.c, variable.c: Added lots of documentation, cleaned up
367 some existing documentation. Occasionally changed formal params
368 to match docs. Also folded an #ifdef into the inners of a
369 primitive instead of having two copies of the primitive
370 (`get-internal-real-time', from stime.c)
371
372Sun Feb 13 18:12:19 2000 Greg J. Badros <gjb@cs.washington.edu>
373
374 * ports.c: Added docs for primitives missing them. Written by
375 hand.
376
3f557de6
GB
377Sun Feb 13 09:40:36 2000 Greg J. Badros <gjb@cs.washington.edu>
378
379 * guile-doc-snarf.in: Use ${AWK} -f guile-func-name-check, not
380 just execing guile-func-name-check. Thanks Michael Livshin!
381
ddcccdb3
GB
382Thu Feb 10 11:43:23 2000 Greg J. Badros <gjb@cs.washington.edu>
383
384 * guile-snarf.awk.in: Tweak to work with Sun/HP awk, removed some
385 dead code. Patch from Michael Livshin.
386
387 * guile-doc-snarf.in: Tweak to work with Sun/HP sh. Patch from
388 Michael Livshin.
389
720e8692
GH
3902000-02-09 Gary Houston <ghouston@arglist.com>
391
392 * init.c (scm_init_standard_ports): when stdout is a tty, make the
393 current-output-port unbuffered by default. this is less confusing
394 for interactive use. it was line-buffered because of a
395 performance problem with unbuffered ports, but I think it will be
396 OK now.
397
43ff3170
GH
3982000-02-08 Gary Houston <ghouston@arglist.com>
399
400 * __scm.h: don't define long_long or ulong_long if HAVE_LONG_LONGS
401 is not defined.
402
403 * stime.c (scm_localtime, scm_mktime): if neither HAVE_TM_ZONE nor
404 HAVE_TZNAME are defined, use an empty string instead of giving two
405 spurious compile-time errors.
406
4ba47302
GB
407Tue Feb 8 13:57:46 2000 Greg J. Badros <gjb@cs.washington.edu>
408
409 * ports.c: Doc patches from Richard Kim. Pasted from MIT Scheme.
410 Thanks Richard!
411
09a617f7
GB
412Mon Feb 7 09:07:31 2000 Greg J. Badros <gjb@cs.washington.edu>
413
414 * macros.c: Doc patches from Richard Kim. Pasted from scm.texi.
415
9dbcf010
GB
416Sun Feb 6 20:26:21 2000 Greg J. Badros <gjb@cs.washington.edu>
417
418 * pairs.c: Doc patches from Richard Kim. Pasted from MIT Scheme
419 (which is GNU GPL'd).
420
bd9e24b3
GH
4212000-01-31 Gary Houston <ghouston@arglist.com>
422
423 * strings.h: don't use SCM_P. don't include <string.h>.
424 * error.c, gh_data.c, ports.c, script.c, strop.c: include <string.h>.
425
426 * strings.c (scm_string_ref): make the 2nd argument compulsory.
427 previously it defaulted to zero for no good reason that I can see.
428 use a local variable for SCM_INUM (k). replace
429 SCM_VALIDATE_INUM_DEF with SCM_VALIDATE_INUM_COPY.
430
431 (scm_makfromstr): cosmetic changes.
432
433 (scm_string): Accept only chars in the list, not strings, for
434 conformance to R5RS (particularly for list->string, which is
435 supposed to be the inverse of string->list.) remove
436 SCM_DEFER_INTS/SCM_ALLOW_INTS, which is unnecessary since
437 scm_makstr handles the cell allocation. when reporting wrong-type
438 arg, don't report the position as 1.
439
440 * posix.c (scm_init_posix): intern PIPE_BUF if it's defined.
441
28d77376
GH
4422000-01-29 Gary Houston <ghouston@arglist.com>
443
ae1b098b
GH
444 * posix.c (scm_pipe): rewrote the docstring.
445
28d77376
GH
446 * filesys.c (scm_select, retrieve_select_type, get_element,
447 fill_select_type, set_element): modified so that Scheme
448 "select" tests port buffers for the ability to provide input
449 or accept output. Previously only the underlying file descriptors
450 were checked. Rewrote the docstring.
451
7f1497ce
GB
452Thu Jan 27 10:14:25 2000 Greg J. Badros <gjb@cs.washington.edu>
453
454 * vectors.c, symbols.c, strorder.c: Documentation cut and pasted
455 from Gregg Reynolds. Thanks Gregg!
456
2288ff9b
GB
457Thu Jan 27 09:59:38 2000 Greg J. Badros <gjb@cs.washington.edu>
458
459 * strop.c (scm_i_index): Obfuscated commented-out SCM_DEFINE by
460 adding "x" prefix to the line so that guile-func-name-check
461 doesn't complain unnecessarily.
462
349af6dd
GB
463Wed Jan 26 17:33:52 2000 Greg J. Badros <gjb@cs.washington.edu>
464
465 * throw.c: Factor out an #ifdef/#else/#endif choice more finely
466 for maintainability.
467
468 * strop.c: Documentation added by Gregg A. Reynolds. Pasted in
469 from qdocs, RnRs.
470
a28eb127
GB
471Wed Jan 26 10:02:11 2000 Greg J. Badros <gjb@cs.washington.edu>
472
473 * tag.c: Added doc for `tag', but mark as deprecated since Mikael
474 suggests removing tag.c altogether (and using a new `class-of'
475 instead).
476
477 * strings.c: Added documentation from Gregg A. Reynolds. Edited
478 a bit by me to use FOO instead of @var{foo} and to have the
479 summary come before preconditions on input. Also dropped trailing
480 (rnrs) note.
481
482 * gsubr.c: Do not use SCM_DEFINE for `gsubr-apply'. Register the
483 function with scm_make_subr_opt w/ last arg of 0 so it is not
484 visible at the Scheme level. Mikael says that this is the right
485 thing because the first arg to the proc is the guts of a compiled
486 closure and shouldn't be exposed to the Scheme level.
487
ac2259fc
GB
488Tue Jan 25 17:15:47 2000 Greg J. Badros <gjb@cs.washington.edu>
489
490 * sort.c: typo in comment fixed.
491
492 * keywords.c: Added documentation.
493
494 * guardians.c: Added documentation (could be better).
495
496 * gc.c: Added docs for gc-set-debug-check-freelist.
497
498 * eq.c: Added docs for eq?, eqv? equal? abridged from R4RS.
499
500 * boolean.c: Added docs for `not', `boolean?' (by hand).
501
d928e0b4
GB
502Tue Jan 25 13:28:56 2000 Greg J. Badros <gjb@cs.washington.edu>
503
504 * random.c: Added documentation, from SLIB page:
505 http://angela.ctrl-c.liu.se/~calle/scheme/slib_toc.html
506
507Mon Jan 24 17:50:20 2000 Greg J. Badros <gjb@cs.washington.edu>
508
509 * variable.c, version.c: Added documentation, written by hand
510 since I could not find anything already written that was
511 relevant.
512
d831b039
GH
5132000-01-23 Gary Houston <ghouston@arglist.com>
514
515 * filesys.c (scm_chown): omit port/fdes support if HAVE_FCHOWN is
516 not defined (thanks to Richard Y. Kim).
517
88ec97ad
GB
518Thu Jan 20 13:00:38 2000 Greg J. Badros <gjb@cs.washington.edu>
519
520 * Makefile.in: Removed, this is auto-generated.
521
078e9092
GB
522Thu Jan 20 11:33:47 2000 Dirk Hermann <dirk@ida.ing.tu-bs.de> --applied 01/20/00 gjb
523
524 * list.c: Put some variable initialization code at the point of
525 declaration; Added a comment for list*; Formatting changes.
526
527 * load.c: use SCM_NNULLP to make sure the end of a list is not
528 reached yet.
529
e7a96050
MD
5302000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
531
a177af34
MD
532 * backtrace.c (scm_display_error_message): Bugfix: Don't use
533 result of scm_list_p as C boolean.
534 (scm_display_error_message, scm_set_print_params_x): Use new
535 validation macros. (Thanks to Dirk Herrmann.)
536
d06bcb02
MD
537 * net_db.c (scm_resolv_error): Cast result from hstrerror.
538
539 * strports.c (st_end_input): Inserted parenthesis to get operator
540 grouping correct.
541
542 * list.h (scm_init_list): Removed SCM_P around prototypes.
543
544 * fports.c, list.c, numbers.c, ports.c, stime.c, symbols.c,
545 filesys.c, posix.c: Converted docstrings to ANSI C format and
e7a96050
MD
546 escaped " occurring inside string literals.
547
682eefe9
MD
548Tue Jan 18 13:21:08 2000 Mikael Djurfeldt <mdj@r11n07-s.pdc.kth.se>
549
550 * posix.c (scm_mknod): Escape " occuring inside docstring.
551
56cfe22b
MD
5522000-01-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
553
554 * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,
555 evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c,
556 keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c,
557 objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c,
558 ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c,
559 stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c,
560 symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c,
561 weaks.c: Converted docstrings to ANSI C format.
562
563 * filesys.c (scm_chmod), simpos.c (scm_system), version
564 (scm_version), vports (scm_make_soft_port): Escape " occuring
565 inside docstring.
566
fcb1720f
GB
567Mon Jan 17 11:41:22 2000 Greg J. Badros <gjb@cs.washington.edu>
568
569 * scm_validate.h: Added SCM_VALIDATE_ULONG_COPY,
570 SCM_VALIDATE_LONG_COPY
571
572 * numbers.c: Use SCM_VALIDATE_ULONG_COPY, instead of
573 SCM_VALIDATE_INUM_COPY to let bigger numbers be used. Rename a
574 couple of formal arguments (and fix their uses) to make arguments
575 match the documentation.
576
b9af3d0e
MS
5772000-01-14 <mstachow@alum.mit.edu>
578
579 * Makefile.am: Augment path when running guile-doc-snarf so
580 guile-func-name-check is found.
581
153511a7
GB
582Fri Jan 14 09:34:55 2000 Greg J. Badros <gjb@cs.washington.edu>
583
584 * scm_validate.h (SCM_NUM2LONG_DEF): Fix this macro to just use
585 def, not SCM_MAKINUM(def); thanks Janis Bzerins!
586
59d5245f
GB
587Wed Jan 12 00:06:53 2000 Greg J. Badros <gjb@cs.washington.edu>
588
589 * net_db.c (s_scm_inet_makeaddr): Use SCM_NUM2ULONG since that's
590 the way guile-1.3.4 worked, but #if 0 out the version using
591 SCM_VALIDATE_INUM_COPY for stricter testing.
592
95aec69f
GB
593Tue Jan 11 18:24:18 2000 Greg J. Badros <gjb@cs.washington.edu>
594
595 * guile-doc-snarf.in: Use new $fullfilename for running
596 guile-func-name-check, and put "$fullfilename" and "$filename" in
597 quotes at uses to make sure re-splitting on whitespace does not
598 occur (so filenames w/ embedded whitespace would work okay, though
599 I sure hope we never have to deal with that! :-) ). Thanks to
600 Mikael for pointing out the source_dir != build_dir was broken.
601
b7ac2837
GB
602Tue Jan 11 17:42:40 2000 Greg J. Badros <gjb@cs.washington.edu>
603
604 * scm_validate.h: Added SCM_NUM2LONG_DEF macro. Make
605 SCM_OUT_OF_RANGE use SCM_MAKINUM, not scm_long2num. Added
606 SCM_COERCE_ROSTRING macro. Added SCM_VALIDATE_NONEMPTYLIST
607 macro. Fix SCM_VALIDATE_STRINGORSUBSTR macro to not use SLOPPY
608 variants.
609
610 * ports.c (scm_port_closed_p): Validate that the arg is a PORT,
611 then return whether it's an open port (was validating that it was
612 an open port -- this was a bug I introduced back in December, but
613 my careful reading of diffs caught it).
614
615 * numbers.c: Recombine the two conditional-compilation paths for
616 all the log* primitives -- they were split based on #ifndef
617 scm_long2num; factored out a SCM_LOGOP_RETURN macro, and fixed
618 some bugs and inconsistencies in the two sets of implementations.
619 (scm_lognot) Fixed *atrocious* re-use of a SCM as an integer!
620
621 * ioext.c: Use SCM_ASSERT_RANGE in a couple places, and
622 SCM_VALIDATE_INUM_COPY once where it should've been used.
623
624 * fluids.c (scm_internal_with_fluids): Use
625 SCM_VALIDATE_LIST_COPYLEN.
626
627 * filesys.c: Use SCM_NUM2LONG instead of SCM_VALIDATE_INUM_COPY;
628 this is questionable as it relaxes type safety, but other changes
629 were useful and all SCM_NUM2LONG's should probably be
630 revisited. Use SCM_OUT_OF_RANGE, SCM_WRONG_TYPE_ARG.
631
632 * evalext.c: line-break change on 1 line.
633
634 * eval.c (nconc2last): Takes a non-empty list as its first
635 argument, not just a list.
636
637 * dynl.c: Use new SCM_COERCE_ROSTRING macro.
638
639Tue Jan 11 15:44:23 2000 Greg J. Badros <gjb@cs.washington.edu>
640
641 * dynl.c, feature.c, filesys.c, fports.c, list.c, load.c,
642 net_db.c, sort.c, stacks.c, unif.c: Use SCM_WTA, SCM_MISC_ERROR
643 where possible.
644
645 * symbols.c (scm_sysintern0): Fixed the function name in a
646 scm_misc_error invocation.
647
648 * print.c (scm_simple_format): Do not need SCM_COERCE_SUBSTR, and
649 use scm_return_first to ward off latent GC bug that Mikael caught.
650
651 * async.c: Use SCM_VALIDATE_ASYNC_COPY one place where it wasn't
652 used before but should've been.
653
d61f6b02
MD
6542000-01-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
655
656 * snarf.h (SCM_PROC1): Replaced SCM (*) (...) with
657 SCM_FUNC_CAST_ARBITRARY_ARGS.
658
88423ab1
GB
659Tue Jan 11 13:44:07 2000 Greg J. Badros <gjb@cs.washington.edu>
660
661 * guile-func-name-check.in: Added this script to statically check
662 #define FUNC_NAME, #undef FUNC_NAME in the source.
663
664 * sort.c, posix.c: Fix #undef FUNC_NAME lines to not have trailing
665 redundant comment, semicolon; caught by new guile-func-name-check
666 script.
667
668 * debug.c: Fix mistaken #define FUNC_NAME for scm_make_iloc.
669 Caught by new guile-func-name-check-script.
670
671 * Makefile.am: Added guile-func-name-check to bin_SCRIPTS
672
673 * ramap.c: Fix #if 0'd out code to be syntactically acceptable to
674 guile-func-name-check.
675
676 * guile-doc-snarf.in: Run guile-func-name-check on the file before
677 doing the snarf.
678
7f15e635
GB
679Tue Jan 11 11:31:10 2000 Greg J. Badros <gjb@cs.washington.edu>
680
681 * fports.c, ports.c, ports.h, strports.c, vports.c: Make write
682 port function take const void*, not void*.
683
bf121b59
GB
684Tue Jan 11 11:18:07 2000 Greg J. Badros <gjb@cs.washington.edu>
685
686 * scm_validate.h, chars.c, ports.c, print.c, read.c, strings.c,
687 strop.c: Use SCM_VALIDATE_ICHR, SCM_VALIDATE_ICHR_COPY instead of
688 SCM_VALIDATE_CHAR, SCM_VALIDATE_CHAR_COPY. Change made for
689 consistency with the other macros dealing with immediate
690 characters. (Similar to INT -> INUM change a week or so ago).
691
7965d98f
GB
692Tue Jan 11 10:41:46 2000 Greg J. Badros <gjb@cs.washington.edu>
693
694 * dynl.c, error.c, eval.c, feature.c, filesys.c, fports.c, list.c, load.c,
695 net_db.c, read.c, socket.c: Update error messages to use ~A for
696 %s, ~S for %S to work with new `simple-format' format and be
697 standardized better.
698
699 * print.h, print.c (scm_simple_format): Added `simple-format'
700 primitive. It's the old scm_display_error, with ARGS now a rest
701 parameter, and the destination first instead of last (and a couple
702 new capabilities inspired by `format' -- #t as destination means
703 current-output-port, #f means return the formatted text as a
704 string.
705
706 * gh.h, gh_data.c, ports.h, ports.c: Added some missing const specifications.
707
708 * backtrace.c (scm_display_error_message): Rewrote to use
709 scm_simple_format() procedure.
710
711 * __scm.h: Added commented-out #define of GUILE_DEBUG_FREELIST
712
f73d2411
MV
7132000-01-09 Marius Vollmer <mvo@zagadka.ping.de>
714
715 Finally applied the libltdl patch from Thomas Tanner, with slight
716 modifications.
717
718 * DYNAMIC-LINKING: Removed because it is obsolete.
719 * dynl.c: Use ANSI prototypes.
720 (sysdep_dynl_link): Use lt_dlopenext instead of lt_dlopen.
721 * scmconfig.h.in: Do not change, as it is automatically generated.
722
723 1999-07-25 Thomas Tanner <tanner@ffii.org>
724
725 * dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c: deleted
726 (obsolete)
727 * Makefile.am: likewise, add INCLTDL (libltdl headers) to
728 INCLUDES, set dlpreopened files in LDFLAGS, link libguile
729 against libltdl
730 * dynl.c: use libltdl if DYNAMIC_LINKING is enabled,
731 * guile.c: register preloaded modules
732 * scmconfig.h.in: remove obsolete symbols
733
38c1d3c4
GH
7342000-01-09 Gary Houston <ghouston@arglist.com>
735
736 * These changes should make it unnecessary to call tzset from
737 Scheme after modifying the TZ environment variable, even if the
738 system date facilities cache the value.
739 * stime.c (setzone, scm_localtime): added comments.
740 (tzset): don't define a noop tzset macro if HAVE_TZSET not defined.
741 (setzone): don't call tzset.
742 (restorezone): call tzset only if HAVE_TZSET is defined.
743 (scm_tzset): don't define if HAVE_TZSET not defined. Change the
744 doc string to indicate that this procedure isn't likely to do
745 anything useful.
746 (scm_localtime, scm_strftime, scm_mktime): call tzset if
747 LOCALTIME_CACHE is defined.
748
9359d657
MD
7492000-01-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
750
751 * posix.c (scm_sync): Return SCM_UNSPECIFIED.
752
f25f761d
GH
7532000-01-09 Gary Houston <ghouston@arglist.com>
754
755 * eval.c: define scm_unbound_variable_key ('unbound-variable).
756 scm_lookupcar1: throw an error with key 'unbound-variable instead
757 of 'misc-error when an unbound variable is encountered.
758
759 * filesys.c (scm_mkdir, scm_rmdir, scm_getcwd, scm_select,
760 scm_symlink, scm_readlink, scm_lstat),
761 posix.c (scm_setpgid, scm_setsid, scm_ctermid, scm_tcgetpgrp,
762 scm_tcsetpgrp, scm_uname, scm_setlocale, scm_mknod, scm_nice,
763 scm_sync),
764 simpos.c (scm_system),
765 stime.c (scm_times, scm_strptime):
766 move the HAVE_XXX feature tests out of the procedure bodies.
767 don't use SCM_SYSMISSING.
768 scm_validate.h (SCM_SYSMISSING): removed.
769 error.h, error.c (scm_sysmissing): comment that this is deprecated.
770 see ChangeLog entry for 1999-12-28.
771
a4dd2611
GB
772Sat Jan 8 19:52:04 2000 Greg J. Badros <gjb@cs.washington.edu>
773
774 * scm_validate.h (SCM_VALIDATE_BOOL_COPY): Fix typo.
775
776Sat Jan 8 17:06:46 2000 Greg J. Badros <gjb@cs.washington.edu>
777
778 * backtrace.c: Fix spelling typo in a comment.
779
780 * snarf.h: Use new SCM_DOCS macro to encapsulate the non SCM_INIT
781 text. Reformatted some of the expansions.
782
5ac36451
GB
783Fri Jan 7 15:50:46 2000 Greg J. Badros <gjb@cs.washington.edu>
784
785 * scm_validate.h (SCM_OUT_OF_RANGE): Use scm_out_of_range_pos to
786 report the position of the argument.
787
788 * error.h, error.c (scm_out_of_range_pos): Added this function to
789 take extra "pos" argument, the position number of the errant
790 argument.
791
792 * debug.c: Use SCM_OUT_OF_RANGE instead of scm_out_of_range.
793
794 * snarf.h: Use SCM_HERE and SCM_INIT as names, not SCM_NOTSNARF
795 and SCM_SNARFING. Also put the %%% in the SCM_INIT since Mikael
796 prefers that and I'm reasonably indifferent.
797
798Fri Jan 7 15:03:32 2000 Greg J. Badros <gjb@cs.washington.edu>
799
800 * snarf.h: Factor out differences between C++ and non-C++ into
801 SCM_FUNC_CAST_ARBITRARY_ARGS macro. Modify all the snarf macro
802 definitions to use SCM_NOTSNARF and SCM_SNARFING macros (like
803 Mikael's macros, below, but changed names and SCM_SNARFING no
804 longer expands to include %%% -- that must appear in the argument
805 so that the token appears at the call-site as a reminder).
806
088bb1d4
MD
8072000-01-07 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
808
809 * snarf.h (SCM_INSITU, SCM_INIT): New snarf macros for use in user
810 snarf macro definitions.
811
636480e6
MD
8122000-01-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
813
814 * chars.c (scm_integer_to_char): Use Greg's nice
815 SCM_VALIDATE_INUM_RANGE macro for argument checking for closer
816 adherence to R5RS.
817
7c5628e2
GB
818Thu Jan 6 11:48:49 2000 Greg J. Badros <gjb@cs.washington.edu>
819
820 * *.c, snarf.h: Replace GUILE_PROC1 with SCM_DEFINE1 throughout.
821
2cc0f8cb
GB
822Thu Jan 6 11:22:53 2000 Greg J. Badros <gjb@cs.washington.edu>
823
824 * Makefile.am (ETAGS_ARGS): Switch to SCM_DEFINE, SCM_DEFINE1
825 instead of GUILE_PROC.
826
827Thu Jan 6 11:21:49 2000 Greg J. Badros <gjb@cs.washington.edu>
828
829 * alist.c: Do not report mismatch errors on some uses of `tmp' (do
830 this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS
831 macro call.
832
9179dcdd
GB
833Thu Jan 6 09:54:33 2000 Dirk Herrmann <dirk@ida.ing.tu-bs.de> --gjb applied
834
835 * scm_validate.h: Remove some redundant NIMP tests.
836
837 * alist.c: minimize scope of the tmp variables, and initialize
838 them when declared. The strange SCM_NIMP tests are replaced by
839 SCM_CONSP tests that more closely reflect the intended semantics.
840 However, we don't get a performance penalty here, because the
841 SCM_CONSP test was performed by the ALISTCELL test anyway. * The
842 extremely ugly use of ASRTGO macros was removed: The calls to
843 ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a
844 label parameter that only exists when SCM_RECKLESS is not defined.
845 This works, because ASRTGO itself is defined in a way that it only
846 makes use of the label parameter if SCM_RECKLESS is not defined
847 (shudder!). Does guile make at all use of the possibility to
848 define SCM_RECKLESS? * Codesize is likely to be reduced, since
849 instead of two calls to SCM_ASSERT performed by the ALISTCELL test
850 we now only get one test.
851
852 * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use
853 SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on
854 some variables in `list?'. Fix `reverse' and `reverse!'
855 primitives to handle improper lists better.
856
15b33280
GB
857Wed Jan 5 11:24:53 2000 Greg J. Badros <gjb@cs.washington.edu>
858
859 * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*
860 macros and SCM_DEFINE macros to match GNU coding standards.
861
ca8cd130
GB
862Wed Jan 5 11:04:24 2000 Greg J. Badros <gjb@cs.washington.edu>
863
864 * *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.
865
fb764465
GB
866Wed Jan 5 10:59:06 2000 Greg J. Badros <gjb@cs.washington.edu>
867
868 * *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM for
869 better consistency with the names of other SCM_VALIDATE_ macros
870 and better conformance to guile naming policy.
871
872Wed Jan 5 10:50:39 2000 Greg J. Badros <gjb@cs.washington.edu>
873
874 * ports.c (s_scm_close_all_ports_except): Use SCM_ARG1 in a
875 SCM_VALIDATE instead of 1 to avoid a check on the argument (since
876 it's not the actual name of the formal).
1e484823
GB
877
878 * guile-snarf.awk.in: Do argument/number mismatch checking and
879 print warnings in an Emacs compile-mode parseable format.
880
881 * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/
882 SCM_OUTOFRANGE as 3rd argument.
883
884 * random.c: Fix argument/number mismatch (that I introduced :-( ).
885
886 * __scm.h: Do not #define SCM_ARG* when snarfing;
887 lets us distinguish between 1 and SCM_ARG1 when snarfing as only
888 the former (using the number) requires the argument to match the
889 formal in the current argument snarfing check.
890
891 * snarf.h: Give new definition of SCM_ASSERT when in
892 snarfing mode to output a lexically-identifiable sequence that the
893 guile-snarf.awk script uses to verify argument/position matching.
894
895 * ramap.c: Remove extraneous #undef FUNC_NAME.
896
53fc4636
GB
897Wed Jan 5 08:36:38 2000 Greg J. Badros <gjb@cs.washington.edu>
898
899 * guile-doc-snarf.awk.in: Removed -- guile-snarf.awk.in is the
900 current version of the same functionality; it writes the .x output
901 to stdout instead of directly into the file.
902
903Wed Jan 5 08:15:04 2000 Greg J. Badros <gjb@cs.washington.edu>
904
905 * unif.c, symbols.c, strings.c, stacks.c, random.c, print.c,
906 posix.c: Eliminated a bunch of SCM_NIMP(..)s that are now
907 redundant with the safer macros. Patch from Dirk Hermann applied
908 by hand. Thanks Dirk!
909
910 * scm_validate.h: Added SCM_VALIDATE_VECTOR_OR_DVECTOR for some
911 uses in random.c.
912
913 * ramap.c: whitespace change.
914
3b5345d9
GB
915Tue Jan 4 14:21:35 2000 Greg J. Badros <gjb@cs.washington.edu>
916
917 * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP
918 removals from Dirk Hermann.
919
920 * alist.c: Rename formals to match the parameter names in the
921 documentation, updates to documentation. Thanks Dirk Hermann!
922
169aec65
MD
9232000-01-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
924
db62436e
MD
925 * eval.c (SCM_CEVAL): Reverse order of
926 scm_stack_checking_enabled_p and SCM_STACK_OVERFLOW_P
927 (Thanks to Brad Knotwell.)
169aec65 928
da43d822
GB
929Mon Jan 3 08:30:02 2000 Greg Harvey <Greg.Harvey@thezone.net> (applied --01/03/00 gjb)
930
931 * gc.c (scm_debug_newcell): Added SCM_SETCAR of the newly
932 allocated cell.
933
934 * pairs.h: Added a comment about the need for the SCM_SETCAR in
935 SCM_NEWCELL macro.
936
937Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
938
939 * dynl-vms.c, debug.c, coop-threads.c, backtrace.c, eval.c: More
940 SCM_NIMP tests that were redundant are now eliminated. Patches
941 from Dirk Hermann applied by hand.
942
339999c7 943The ChangeLog continues in the file: "ChangeLog-1996-1999"