* configure.in: check for hstrerror.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
5c11cc9d
GH
11999-11-18 Gary Houston <ghouston@freewire.co.uk>
2
3 * socket.c (scm_htons, scm_ntohs, scm_htonl, scm_ntohl): new
4 functions for network data conversion.
5
6 * numbers.c (scm_num2long, scm_num2longlong):
7 throw out-of-range instead of wrong-type-arg if appropriate.
8 (scm_iint2str): handle -2^31 correctly.
9 (scm_num2long): handle -2^31 bignum correctly.
10 (scm_num2long_long): rewrite the bigdig case: basically copied
11 from scm_num2long.
12 numbers.h: (SCM_BITSPERLONGLONG): deleted.
13
14 * unif.c (rapr1): use sprintf instead of intprint for unsigned
15 longs: intprint can't cope with large values.
16
17 * numbers.c (scm_num2ulong): check more consistently that the
18 input is not negative. if it is, throw out-of-range instead of
19 wrong-type-arg.
20
21 * ramap.c (scm_array_fill_int): don't limit fill to INUM for
22 uvect, ivect or llvect.
23 Check that fill doesn't overflow short uniform array.
24
25 * __scm.h: add another long to the definition of long_long and
26 ulong_long.
27
28 * unif.c (scm_raprin1): use 'l' instead of "long_long" in the
29 print representation of llvect. read can't handle more than
30 one character.
31 (scm_dimensions_to_uniform_array): make "fill" an optional argument
32 instead of a rest argument.
33
34 * tags.h (scm_tc7_llvect): wasn't defined anywhere, so use the free
35 tag 29 for now.
36
37 * __scm.h: don't mention LONGLONGS.
38
39 * unif.c, numbers.c, eq.c, gc.c, print.c, eval.c, ramap.c:
40 replace LONGLONGS with HAVE_LONG_LONGS as set by configure.
41
421999-11-17 Gary Houston <ghouston@freewire.co.uk>
43
44 * net_db.c (scm_inet_aton): throw errors using the misc-error key
45 instead of system-error. inet_aton doesn't set errno.
46 system-error isn't right in gethost either, since it's throwing
47 the value of h_errno instead of errno. so:
48 (scm_host_not_found_key, scm_try_again_key,
49 scm_no_recovery_key, scm_no_data_key): new error keys.
50 (scm_resolv_error): new procedure, use the new keys.
51 (scm_gethost): call scm_resolv_error not scm_syserror_msg.
52
531999-11-16 Gary Houston <ghouston@freewire.co.uk>
54
55 * error.c: (various): use scm_cons instead of scm_listify
56 to build short lists.
57
93a6b6f5
GH
581999-11-03 Gary Houston <ghouston@freewire.co.uk>
59
60 * socket.c (scm_fill_sockaddr): zero the address structure before
61 use, in case it has a sin_len field and the OS doesn't like random
62 values (thanks to Bertrand Petit).
63
4921140c
MG
641999-10-26 Mark Galassi <rosalia@lanl.gov>
65
66 * gh.h, gh_data.c (gh_symbol2scm): changed gh_symbol2scm() to take
67 a const char * argument, upon suggestion from Lynn Winebarger.
68
cd19d608
GH
691999-10-26 Gary Houston <ghouston@freewire.co.uk>
70
71 * strports.c (st_end_input): avoid dubious pointer arithmetic.
72
7dcb364d
GH
731999-10-24 Gary Houston <ghouston@freewire.co.uk>
74
75 * Move the responsibility for resetting port buffers from the
76 caller of the ptob seek procedure to the implementation. This
77 gives more control in general to the ptob seek: in particular the
78 change of 1999-10-20 can be made to work without breaking seek on
79 string ports. There's a comment in NEWS about upgrading port
80 types.
81
82 * ports.c (scm_seek): don't reset the port buffers here.
83
84 * fports.c (fport_seek): reset the buffers, except for the
85 0 SEEK_CUR case.
86
87 * strports.c (st_end_input): (bug fix): decrement pt->read_pos by
88 offset. check that it's not less than read_buf.
89 (st_seek): reset the buffers first, unless it's the 0 SEEK_CUR
90 case and currently reading.
91
e9c66ab0
GH
921999-10-20 Gary Houston <ghouston@freewire.co.uk>
93
94 * ports.c (scm_seek): Add a special case for SEEK_CUR, offset 0,
95 so that unread chars are not needlessly discarded. (thanks to
96 Roland Orre).
97
0de97b83
GH
981999-10-18 Gary Houston <ghouston@freewire.co.uk>
99
100 * fports.c (scm_fdes_to_port): always set rw_random if the fdes is
101 random access. rw_active needs to be maintained even for single
102 directional ports, otherwise scm_seek and probably other things are
103 broken. (thanks to Roland Orre).
104
105 * strports.c (scm_mkstrport): set rw_random to 1 unconditionally.
106
107 * ports.c (scm_add_to_port_table): initialise rw_random to 0.
108
109 * ports.h (scm_port): change the comments on rw_random and rw_active.
110
e173f7f1
MD
1111999-10-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
112
113 * ioext.c: Added #include "feature.h".
114
115 These changes turns `delay' into a memoizing macro. This is
116 because it may be expanded before evaluation if it occurs at the
117 beginning of a body. (Thanks to Lauri Alanko.)
118
119 * eval.c, eval.h (scm_sym_delay): New global symbol.
120
121 * tags.h (SCM_IM_DELAY): New immediate symbol.
122
123 * print.c (scm_isymnames): Printed representation.
124
125 * eval.c (unmemocopy, SCM_CEVAL): Handle SCM_IM_DELAY.
126 (scm_m_delay): Turned into a memoizing macro.
127
128 * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version.
129
1ab45872
JB
1301999-10-11 Jim Blandy <jimb@savonarola.red-bean.com>
131
132 * gh_data.c (gh_ints2scm, gh_doubles2scm): Make sure elements are
133 protected from GC while building the vector. (Thanks to Bernard
134 Urban and Greg Harvey.)
135
0573ddae
MD
1361999-10-08 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
137
138 * throw.c (handler_message): Display backtrace if backtraces
139 enabled.
140
80f27102
JB
1411999-10-05 Jim Blandy <jimb@savonarola.red-bean.com>
142
0c1221ab
JB
143 * Makefile.in, scmconfig.h.in: Deleted from CVS repository. Run
144 the autogen.sh script to create generated files like these.
145
80f27102
JB
146 * numbers.c (scm_string_to_number): Signal an error if radix is
147 less than two. (Thanks to Jorgen Schaefer.)
148
149 * print.c (scm_write, scm_display, scm_newline, scm_write_char):
150 Don't assume that the current output port is valid. Somebody
151 might close it. (Thanks to Bernard Urban.)
152
dc4d930b
JB
1531999-10-02 Jim Blandy <jimb@zwingli.cygnus.com>
154
155 * scmconfig.h.in: Regenerated.
156
157 * Makefile.am (EXTRA_libguile_la_SOURCES): fix typo.
158
0b307a34
GB
159Mon Sep 27 17:15:14 1999 Greg J. Badros <gjb@cs.washington.edu>
160
161 * __scm.h: Fix a bunch of macros that were missing do-while(0)
162 sandwiches.
163
164 * debug.c, eval.c: Fix buggy uses of SCM_ALLOW_INTS (missing
165 semicolon) exposed by the above change.
166
15526538
GB
1671999-09-27 Greg J. Badros <gjb@cs.washington.edu>
168
169 * stacks.c: Avoid compiler warning re: unitialized var.
170
171 * scmconfig.h.in: Added DEBUG_FREELIST
172
173 * pairs.h: Fix macro that was not do-while(0) sandwiched.
174
175 * gc.h, gc.c: Added scm_gc_set_debug_check_freelist_x,
176 scm_map_free_list
177
52cfc69b
GH
1781999-09-23 Gary Houston <ghouston@freewire.co.uk>
179
180 * ioext.c (scm_init_ioext): enable "i/o-extensions" feature here
181 instead of in scm_init_filesys.
182
183 * init.c (scm_boot_guile_1): don't call scm_init_posix or
184 scm_init_filesys unless HAVE_POSIX is defined.
185 don't call scm_init_netdb or scm_init_socket unless
186 HAVE_NETWORKING is defined.
187
188 * Makefile.am (EXTRA_libguile_la_SOURCES): filesys.c, posix.c,
189 net_db.c, socket.c: moved here from libguile_la_SOURCES.
190
bab4e1cc
JB
1911999-09-25 Jim Blandy <jimb@savonarola.red-bean.com>
192
e59373d6
JB
193 * root.c (scm_make_root): Initialize all the fields of the new
194 root. GC could happen any time, you know. (Thanks to Greg
195 Harvey.)
196
8854e654
JB
197 * numbers.c (scm_number_to_string): Signal an error if radix is
198 less than two. (Thanks to Jorgen Schaefer.)
199
bab4e1cc
JB
200 * Makefile.am (EXTRA_libguile_la_SOURCES): Add memmove.c here,
201 so automake will actually generate rules for it.
202 * Makefile.in: Regenerated.
203
0dcad30f
JB
2041999-09-21 Jim Blandy <jimb@savonarola.red-bean.com>
205
206 * backtrace.c: #include "_scm.h" before testing whether
207 HAVE_UNISTD_H is #defined.
208
24e720c8
JB
2091999-09-20 Jim Blandy <jimb@savonarola.red-bean.com>
210
211 * read.c (scm_read): Don't assume that scm_cur_inp is always open.
212 * ports.c (scm_read_char): Same.
213 * ioext.c (scm_read_line): Same.
214 (Thanks to Bernard Urban.)
215
73ef98d6
MD
2161999-09-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
217
920ffdaa
MD
218 * vectors.c (scm_vector_move_right_x): Bugfix: Remove side effect
219 in SCM_ASSERT macro.
220 numbers.c: Removed #ifndef SCM_RECKLESS at places where type
221 checking may invoke a generic. (Thanks to Michael Livshin.)
222
73ef98d6 223 * __scm.h (SCM_WTA_DISPATCH_0, SCM_GASSERT0): New macros.
afe93bdb
MD
224
225 * numbers.c (scm_max, scm_min, scm_sum, scm_difference,
226 scm_product, scm_divide): Bugfix: Don't pass SCM_UNDEFINED to the
227 generic function if the asubr is called with only one arg.
228
7ee92fce
GH
2291999-09-20 Gary Houston <ghouston@freewire.co.uk>
230
231 * scmsigs.c (scm_sigaction): add SA_RESTART to flags only if
232 HAVE_RESTARTABLE_SYSCALLS.
233 (scm_init_scmsigs): use siginterrupt if it's available. not
234 everyone who has restartable syscalls has SA_RESTART it seems.
235
236 (scm_sigaction): use scm_num2long/scm_long2num when converting
237 SIG_DFL/SIG_IGN, in case it doesn't fit in an INUM. use
238 scm_integer_p to test the type.
239
e684c60f
GH
2401999-09-18 Gary Houston <ghouston@freewire.co.uk>
241
08b8c694
GH
242 * _scm.h, scmsigs.c: replace HAVE_RESTARTS with
243 HAVE_RESTARTABLE_SYSCALLS.
244
e684c60f
GH
245 * strports.c (scm_strport_to_string): create the string from
246 pt->read_buf instead of an expression that evaluates to the
247 same thing.
248
249 * gdbint.c (gdb_print): don't just use SCM_CHARS to get a C string
250 from the port: the port's buffer may not be NUL terminated.
251
8cc9503d
MD
2521999-09-16 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
253
254 * Makefile.am (.c.x): Added missing semicolon after `false'.
255
5eb548fc
MD
2561999-09-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
257
4b3324a3
MD
258 * print.c (scm_iprin1): Turn `write' and `display' into
259 primitive generics and use their associated generic functions in
260 scm_iprin1 for GOOPS objects.
261
5eb548fc
MD
262 * backtrace.c: #include <unistd.h> if present.
263
77e3c5be
JB
2641999-09-14 Jim Blandy <jimb@savonarola.red-bean.com>
265
266 * Makefile.am (.c.x): Don't create a subshell just to delete the
267 .x file and return false.
268 * Makefile.in: Regenerated.
269
ece41168
MD
2701999-09-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
271
272 * feature.c (scm_create_hook): New function. Replaces
273 scm_make_named_hook which is now deprecated.
274 (scm_make_hook_with_name): New primitive.
275 (print_hook): Hooks now print in a fancy way.
276
69fafe46
MD
2771999-09-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
278
2868a51c
MD
279 * __scm.h, backtrace.c, backtrace.h, debug.c, debug.h, dynl-dld.c,
280 dynwind.c, dynwind.h, eval.h, evalext.c, evalext.h, feature.c,
281 feature.h, hashtab.c, hashtab.h, objects.c, objects.h, print.c,
282 procs.c, procs.h, smob.c, smob.h, srcprop.c, strorder.c, struct.c,
30772a34 283 struct.h: Updated copyright notices.
2868a51c 284
69fafe46
MD
285 * srcprop.c (scm_source_property): Bugfix: Use SCM_NECONSP instead
286 of SCM_NCONSP. (Thanks to Greg Badros.)
287
288 * gsubr.c (scm_make_gsubr): Use scm_make_subr_opt for creation of
289 the self subr.
290
291 * eval.c, debug.h (SCM_BACKTRACE_WIDTH): New debug option: width.
292
293 * backtrace.c: Keep backtraces within specified width by
294 adaptively adjusting fancy printing parameters and cut output if
295 necessary.
296 (scm_display_application): Check args.
297
e1f20ec6
JB
2981999-09-11 Jim Blandy <jimb@savonarola.red-bean.com>
299
340a8770
JB
300 Change the name of the objects returned by OPENDIR from
301 "directory" to "directory stream". A predicate named "directory?"
302 would be confusing.
303 * filesys.c (scm_directory_stream_p): Renamed from scm_directory_p.
304 At the Scheme level, "directory?" -> "directory-stream?".
305 (scm_dir_print): Use the phrase "directory stream" in printed form.
306 * filesys.h (scm_directory_stream_p): Prototype renamed
307 accordingly.
308
91859184
JB
309 * Makefile.am (CLEANFILES): Remove versiondat.h; that should only
310 be removed by `make distclean', since it's generated by configure.
311 * Makefile.in: Regenerated.
312 (Thanks to Robert Bihlmeyer.)
313
b142c81d
JB
314 * strop.c (scm_substring_move_x): Signal an error if start1
315 doesn't come before end1. (Thanks to Karoly Lorentey).
316
317 * numbers.c (scm_istr2flo): Don't call SCM_INEXP without first
318 calling SCM_NIMP. (Thanks to Karoly Lorentey).
319
e1f20ec6
JB
320 * version.c (scm_libguile_config_stamp): Deleted. See
321 corresponding change to ../ice-9/boot-9.scm.
91859184 322 * versiondat.h.in: Remove definition for GUILE_STAMP.
e1f20ec6
JB
323 * version.h: Delete prototype.
324 * Makefile.in: Regenerated.
325
77242ff9
GH
3261999-09-11 Gary Houston <ghouston@easynet.co.uk>
327
328 * filesys.c (scm_directory_p): new procedure "directory?" Returns
329 a boolean indicating whether its argument is a directory
330 port as returned by opendir (thanks to Dirk Herrmann for the
331 suggestion.)
332
08cc62c7
MD
3331999-09-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
334
335 * backtrace.c (display_frame_expr): Don't print a newline.
336 (display_frame): Print the newline here instead.
f14d3ff8
MD
337 (display_backtrace_body): Don't print "Backtrace:".
338 (scm_backtrace): Print "Backtrace:" here instead.
08cc62c7 339
bc848f7f
MD
3401999-09-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
341
d37e6569
MD
342 * procs.c (scm_setter): Signal WTA if handed an entity or operator
343 lacking a setter.
344
bc848f7f
MD
345 * feature.c, feature.h: (scm_hook_p, scm_hook_empty_p): New
346 primitives. (Thanks to Greg Badros);
347 (scm_hook_to_list): New primitive; Hooks are now smobs.
348
55a7fc62
GH
3491999-09-08 Gary Houston <ghouston@easynet.co.uk>
350
351 * stime.c (bdtime2c): rewrite the ASSERTs. Accept a value
352 of #f for the 10th vector element to avoid an exception
353 seen by Bernard Urban.
354 (scm_mktime): unneeded ASSERT removed.
355
4f93d84c
MD
3561999-09-07 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
357
358 * eval.c (scm_map, scm_for_each): Converted to dispatch on generic
359 if args don't match.
360
361 * __scm.h (SCM_WTA_DISPATCH_n, SCM_GASSERTn): New macros.
362
7e6e146e
MD
3631999-09-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
364
6065fed8
MD
365 * numbers.c: Converted comparison operations to dispatch on
366 generic if args don't match.
367
7e6e146e
MD
368 * Makefile.am (ETAGS_ARGS): Added support for GPROC and GPROC1.
369
548c5135
JB
3701999-09-06 James Blandy <jimb@mule.m17n.org>
371
372 * guile-snarf.c: Deleted. Snarfing should respect CPP
373 conditionals, so it needs to actually run CPP. Bleah.
374
2a94fc36
JB
3751999-09-05 James Blandy <jimb@mule.m17n.org>
376
f9dbe074
JB
377 Handle errors properly in guile-snarf. (Thanks to Han-Wen Nienhuys.)
378 * guile-snarf.in: Be sure to exit with an error if CPP does.
379 * Makefile.am (.c.x): Delete the .x file and exit with an error
380 status if guile-snarf exits with an error status.
381 * Makefile.in: Regenerated.
382
9d743bfb
JB
383 * snarf.h (SCM_GLOBAL_KEYWORD): Call scm_c_make_keyword, not
384 scm_makekey, which doesn't exist any more. Guess nobody's using
385 this.
386
2a94fc36
JB
387 * guile-snarf.c: New implementation of guile-snarf, meant to be
388 more robust than the shell script. I think it's complete, but I
389 haven't tested it at all, and I haven't changed the build process
390 to actually use it. We should compare its output against that of
391 the existing shell script, for all source files.
392
9918cf63
JB
393 * guile-snarf.c (parse_args): Abort if we haven't handled some
394 character type.
395
afbbb69c
JB
3961999-09-03 James Blandy <jimb@mule.m17n.org>
397
398 * load.c (scm_search_path): If the filename has any extension at
399 all, ignore the entire list of extensions. Also, don't check whether
400 the file is accessible. If the file exists, accessible or not, we
401 should return it. Inaccessible files should cause an error later.
402 (Thanks to Keisuke Nishida for the suggestions.)
403
655f19ab
MD
4041999-09-02 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
405
406 * gc.c (cleanup, scm_init_storage): Use on_exit if present and
407 atexit not available. (sunos4.1.4 needs it.)
408
b074884f 4091999-09-01 James Blandy <jimb@mule.m17n.org>
94b4c096 410
b074884f
JB
411 I take it all back --- bcopy does handle overlapping source and
412 destination areas correctly. At least on every system I could
413 find. But it is better to use AC_REPLACE_FUNCS than to introduce
414 new CPP conditionals.
415 * memmove.c: New file, implementing memmove in terms of bcopy.
416 * scmconfig.h.in: Regenerated.
a4ea22c3
JB
417
418 Allocators should use the `void *' type for generic pointers.
419 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Change
420 argument and return types.
421 * gc.h: Corresponding changes to prototypes.
422 (Thanks to Forcer.)
423
b074884f
JB
4241999-08-31 James Blandy <jimb@mule.m17n.org>
425
426 * numbers.c (scm_init_numbers): Claim to support the `complex'
427 feature, as expected by (ice-9 format). (Thanks to Ceri Storey.)
428
dd67f90b
JB
429 * Makefile.am (check-local): Set GUILE_LOAD_PATH so the tests can
430 find (ice-9 boot-9) when Guile was compiled in a separate
431 directory from the source. (Thanks to Rodney Brown.)
432 * Makefile.in: Regenerated.
433
94b4c096
JB
434 * procs.c (scm_make_subr_opt): Fix typo. Remember to multiply
435 table lengths by the size of a single element when growing the
dd67f90b 436 table. (Thanks to Bill Schottstaedt.)
94b4c096 437
fa941d9e
MD
4381999-08-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
439
440 * eval.c (SCM_CEVAL): Duplicated the method dispatch code at the
441 SCM_IM_DISPATCH form instead of calling scm_mcache_lookup_cmethod
442 since that cuts down the time for type dispatch by 50%.
443
ebc4e6cc
JB
4441999-08-30 James Blandy <jimb@mule.m17n.org>
445
446 * gh_data.c (gh_set_substr): Revert change of 1999-08-29; bcopy is
447 not a correct substitute for memmove, because it doesn't handle
448 overlapping source and destination areas on many platforms.
449 Overlaps are the primary reason to use memmove in the first place.
450 * ports.c (scm_ungetc): Same.
451 * strop.c (scm_substring_move_x): Same.
452
a7098335
MD
4531999-08-30 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
454
455 * gc.c (scm_init_storage): Skip registration of cleanup on systems
456 which lack atexit. (Is it important that cleanup is made
457 properly? Maybe we should replace all `exit' with `scm_exit' and
458 call cleanup there?)
459
460 * struct.c, struct.h (scm_struct_free_0, scm_struct_free_light,
461 scm_struct_free_standard, scm_struct_free_entity): Declared to
462 return scm_sizet instead of size_t.
463
464 * gdbint.c, strports.c: #include <unistd.h>. (SEEK_SET is defined
465 there on sunos4.1.4.)
466
9a26d6f9
MD
4671999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
468
469 * numbers.c (scm_lcm): Bugfix: BIGDIG --> SCM_BIGDIG;
470 Account for the case when second argument is unbound.
471
472 * strorder.c (scm_string_less_p, scm_string_ci_less_p): Bugfix.
473 (Thanks to Karoly Lorentey.)
474
475 * gh_data.c, ports.c, strop.c: Alternatively use bcopy if memmove
b074884f 476 isn't present. (Thanks to Suzuki Toshiya.)
9a26d6f9
MD
477
478 * ports.c: Use ANSI C prototypes in definitions. (Thanks to
479 Bernard Urban.)
480
747117b0
MD
481 * filesys.c (scm_stat2scm): Conditionally use S_ISLNK. (Thanks to
482 Bernard Urban.)
9a26d6f9
MD
483
484 * dynl-dl.c (RTLD_GLOBAL): Define if non-existent. (Thanks to
485 Bernard Urban and Ian Grant.)
486
487 * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version
488 again. (1.3.4 will be binary incompatible with 1.3.2 because of a
489 change in the representation of entities and operators.)
490
6e2e75db
GH
4911999-08-29 Gary Houston <ghouston@easynet.co.uk>
492
493 * ports.c (scm_ungetc): bugfix: if putback_buf is NULL
5c4fe34f 494 don't allocate zero bytes (thanks to Bill Schottstaedt).
6e2e75db 495
c5b738b5
MD
4961999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
497
a48a7629
MD
498 * procs.c (scm_setter): Converted to use generic dispatch.
499
500 * eval.c, eval.h: Bugfix: scm_sym_apply was not initialized
501 correctly.
502
503 * load.c (scm_search_path): Don't try extensions which already are
504 present at the end of the filename.
505 (scm_init_load): Check .scm first. (Thanks to Keisuke Nishida.)
506
507 * stacks.c (scm_sym_apply): Removed. (Thanks to Ken Raeburn.)
508
c5b738b5
MD
509 Cleanup and simplification of generic method dispatch.
510 Also, the quadruple representation of entity and operator
511 procedures has been replaced with single.
512
513 * tags.h (SCM_IM_HASH_DISPATCH): Removed.
514
515 * print.c (scm_isymnames): Removed #@hash-dispatch.
516
517 * objects.c, objects.h (scm_mcache_lookup_cmethod): Moved here
518 from eval.c; Support 0 arity methods.
519 (scm_set_object_procedure_x): Removed scm_sym_atdispatch;
520 (scm_apply_generic_env): Removed.
521 Replaced slots proc0-3 with procedure.
522
523 * objects.h (SCM_OPERATOR_PROC_0, SCM_OPERATOR_PROC_1,
524 SCM_OPERATOR_PROC_2, SCM_OPERATOR_PROC_3): Replaced by
525 SCM_OPERATOR_PROCEDURE.
526 (SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_1, SCM_ENTITY_PROC_2,
527 SCM_ENTITY_PROC_3): Replaced by SCM_ENTITY_PROCEDURE.
528
529 * struct.c, struct.h: Replace 4 procedure slots with one.
530 (scm_struct_i_procedure): Replaces scm_struct_i_procedure.
531
532 * gc.c (scm_gc_mark): Mark 1 procedure slot in entities instead of
533 4.
534
535 * eval.c (scm_sym_args): Removed.
536 (SCM_CEVAL): Simplified entity application.
537 Moved dispatch code to objects.c.
538
539 * procprop.c (scm_i_procedure_arity): Bugfix: Handle generics.
540
375c11a3
MD
5411999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
542
543 * sort.c (closureless): Use scm_eval_body.
544
545 * eval.c (SCM_APPLY): Fixed serious evaluator bug: If a closure
546 with a symbol as last form was first called normally and then via
547 `map' or some other mechanism using primitive apply, an ILOC was
548 returned.
549
9de33deb
MD
5501999-08-26 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
551
552 This change extends the representation of primitive procedures
553 with more data fields, e.g. a place for documentation and true
554 procedure properties.
555
556 * procs.c, procs.h (scm_subr_entry): New type: Stores data
557 associated with subrs.
558 (SCM_SUBRNUM, SCM_SUBR_ENTRY, SCM_SUBR_GENERIC, SCM_SUBR_PROPS,
559 SCM_SUBR_DOC): New macros.
560 (scm_subr_table): New variable.
561 (scm_mark_subr_table): New function.
562
563 * init.c (scm_boot_guile_1): Call scm_init_subr_table.
564
565 * gc.c (scm_gc_mark): Don't mark subr names here.
566 (scm_igc): Call scm_mark_subr_table.
567
568
569 This change implements a scheme for letting a generic work as a
570 shadow for a primitive procedure. If the primitive procedure
571 can't dispatch on its arguments, control is left over to the
572 generic. Normal wrong type arg errors will be generated until the
573 user has hung the first method on the primitive.
574
575 * snarf.h (SCM_GPROC, SCM_GPROC1): New macros.
576
577 * procs.c, procs.h (scm_subr_p): New function (used internally).
578
579 * gsubr.c, gsubr.h (scm_make_gsubr_with_generic): New function.
580
581 * objects.c, objects.h (scm_primitive_generic): New class.
582
583 * objects.h (SCM_CMETHOD_CODE, SCM_CMETHOD_ENV): New macros.
584
585 * print.c (scm_iprin1): Print primitive-generics.
586
587 * __scm.h (SCM_WTA_DISPATCH_1, SCM_GASSERT1,
588 SCM_WTA_DISPATCH_2, SCM_GASSERT2): New macros.
589
590 * eval.c (SCM_CEVAL, SCM_APPLY): Replace scm_wta -->
591 SCM_WTA_DISPATCH_1 for scm_cxr's (unary floating point
592 primitives). NOTE: This means that it is now *required* to use
593 SCM_GPROC1 when creating float scm_cxr's (float scm_cxr's is an
594 obscured representation that will be removed in the future anyway,
595 so backward compatibility is no problem here).
596
597 * numbers.c: Converted most numeric primitives (all but bit
598 comparison operations and bit operations) to dispatch on generic
599 if args don't match.
600
601
602 Better support for applying generic functions.
603
604 * eval.c, eval.h (scm_eval_body): New function.
605
606 * objects.c (scm_call_generic_0, scm_call_generic_1,
607 scm_call_generic_2, scm_call_generic_3, scm_apply_generic): New
608 functions.
609
610
611 Optimization of the generic function dispatch mechanism.
612
613 * eval.c (SCM_CEVAL): Apply the cmethod directly after having
614 called scm_memoize_method instead of doing a second lookup.
615
616 * objects.h (scm_memoize_method): Now returns the memoized cmethod.
617
618
619 Bugfix
620
621 * procs.c (scm_make_subr_opt): Use scm_sysintern0 instead of
622 scm_sysintern so that the binding connected with the subr name
623 isn't cleared when we give set = 0.
624
625
07910014
MD
6261999-08-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
627
9de33deb
MD
628 More transparent handling of ports with print states.
629
07910014
MD
630 * print.h (SCM_PORT_WITH_PS_P, SCM_PORT_WITH_PS_PORT,
631 SCM_PORT_WITH_PS_PS): Represent ports with print states as a smob
632 instead of a pair of a port and a print state. We'll need to cons
633 once extra in scm_printer_apply but the type system will be
634 cleaner, it will mix better with GOOPS, and, it will be even more
635 transparent to the user.
636
637 * print.c (scm_get_print_state): New procedure: Given an output
638 port, return the print state associated to it in the current print
639 chain, if one exists;
640 (scm_port_with_print_state): New procedure: Associate a
641 print-state with a port.
642 (scm_valid_oport_value_p): Use SCM_PORT_WITH_PS_P;
643 (scm_printer_apply): Wrap port and pstate as a smob;
644 (print_state_printer): Removed.
645
646 * objects.c (scm_class_of): Treat scm_tc16_port_with_ps as ports.
647
648 * eval.c (scm_init_eval): Use scm_make_smob_type instead of
649 scm_newsmob.
650
651 * ports.c (scm_output_port_p): Bugfix: Coerce output port before
652 testing (otherwise the port-print-state trick won't be transparent
653 to the user; one example where this caused problems was in the
654 (ice-9 format) module).
655
e2e470cf
MD
6561999-08-23 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
657
658 * eval.c (SCM_CEVAL): Let the SCM_IM_SLOT_SET_X form return
659 SCM_UNSPECIFIED instead of the set value.
660
a343458d
JB
6611999-08-20 James Blandy <jimb@mule.m17n.org>
662
f8c9d497
JB
663 * load.c (scm_init_load_path): Remove support for SCHEME_LOAD_PATH.
664
a343458d
JB
665 * ports.h (enum scm_port_rw_active): New enum, containing
666 SCM_PORT_READ, SCM_PORT_WRITE, and SCM_PORT_NEITHER (instead of
667 zero). The debugger knows about enums, but doesn't know about
668 #defines.
669 (typedef scm_port): Declare rw_active member to be an enum
670 scm_port_rw_active.
671 * fports.c (fport_flush, fport_end_input): Use SCM_PORT_NEITHER
672 instead of zero.
673 * ports.c (scm_add_to_port_table): Same.
674 * strports.c (st_flush, st_end_input): Same.
675
676 * ioext.c (scm_do_read_line, scm_read_line): Use scm_must_malloc,
677 scm_must_realloc, and scm_done_malloc as appropriate.
678
dc4ddb33
MD
6791999-08-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
680
681 * sort.c (quicksort): Added condition to protect the algorithm
682 from crashing the interpreter if the less predicate is buggy.
683
d3639214
GH
6841999-08-19 Gary Houston <ghouston@easynet.co.uk>
685
686 * fports.c (fport_write): fix line-buffering mode again.
687 (scm_open_file): recognise 'l' for line-buffering.
688 (scm_setvbuf): recognise _IOLBF for line-buffering.
689
3817c7ce
MD
6901999-08-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
691
266bf340
MD
692 * Makefile.am (libguile_la_LDFLAGS): Increased the version number
693 of libguile to 5.0.
694
3817c7ce
MD
695 * eval.c (SCM_APPLY), sort.c (closureless): Expand body when
696 evaluating closures.
697
162d88ca
GH
6981999-08-18 Gary Houston <ghouston@easynet.co.uk>
699
700 * fports.c (fport_write): use memcpy instead of strncpy, in case
701 the data contains NUL.
702
cce0d8d0
MD
7031999-08-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
704
59c49e10
MD
705 * gh.h (gh_vector_to_list): Bugfix. (Thanks to Frank Cieslok.)
706
cce0d8d0
MD
707 * backtrace.c, debug.c, eval.c, eval.h, gsubr.c, procprop.h,
708 read.c, srcprop.c, srcprop.h (scm_i_filename, scm_i_line,
709 scm_i_column, scm_i_copy, scm_i_name, scm_i_lambda, scm_i_source,
710 scm_i_more, scm_i_procname, scm_i_dot, scm_i_arrow, scm_i_else,
711 scm_i_unquote, scm_i_uq_splicing, scm_i_apply, scm_i_enter_frame,
712 scm_i_apply_frame, scm_i_exit_frame, scm_i_trace, scm_i_quote,
713 scm_i_begin, scm_i_if, scm_i_and, scm_i_or, scm_i_case,
714 scm_i_cond, scm_i_letstar, scm_i_do, scm_i_quasiquote,
715 scm_i_define, scm_i_letrec, scm_i_let, scm_i_atapply,
716 scm_i_atcall_cc, scm_i_breakpoint): Renamed: Consequently use
717 scm_sym_ as prefix for symbols.
718
719 * debug.c (scm_i_proc, scm_i_args, scm_i_eval_args): Removed.
720
721 * eval.c, eval.h (scm_sym_begin, scm_sym_if, scm_sym_and,
722 scm_sym_case, scm_sym_cond, scm_sym_letstar, scm_sym_do,
723 scm_sym_define, scm_sym_letrec, scm_sym_atapply,
724 scm_sym_atcall_cc): Made global.
725
8b7840b9
MD
7261999-08-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
727
728 * eval.c (scm_sym_args): Made global.
729
730 * objects.c (scm_set_object_procedure_x): Disallow setting of
731 procedures for pure generic functions.
732
c94577b4
GH
7331999-08-12 Gary Houston <ghouston@easynet.co.uk>
734
735 * ports.c (scm_seek): one more: was scm_lseek. Also changed the
736 Scheme name from lseek to seek, but lseek was added recently so
737 it shouldn't be a big problem.
738 * ports.c, gdbint.c, ioext.c: changed callers.
739
affc96b5
GH
7401999-08-11 Gary Houston <ghouston@easynet.co.uk>
741
742 * fports.c (fport_input_waiting): if select is used, return 1
743 instead of whatever FD_ISSET expands to. maybe it will be useful
744 to interpret the value from the input_waiting ptob procedure as a
745 lower bound on the number of bytes available.
746
747 * Mikael asked for a few names to be changed...
748
749 * ports.c (scm_make_port_type): take the write procedure as the
750 second argument instead of the flush procedure.
751 * ports.h (scm_ptob_descriptor): rename the ptob procedures:
752 fflush -> flush, read_flush -> end_input, fclose -> close,
753 fill_buffer -> fill_input, ftruncate -> truncate,
754 input_waiting_p -> input_waiting.
755
756 * ports.c (end_input_void_port): was read_flush_void_port.
757 (scm_set_port_end_input): was scm_set_port_flush_input.
758 (scm_set_port_flush): was scm_set_port_write.
759 (scm_set_port_input_waiting): was scm_set_port_input_waiting_p
760 (scm_end_input): was scm_read_flush.
761 (scm_fill_input): was scm_fill_buffer.
762 (scm_flush): was scm_fflush.
763 * fports.c (fport_input_waiting): renamed from fport_input_waiting_p.
764 (fport_end_input): was local_read_flush.
765 (fport_flush): was local_fflush.
766 (fport_close): was local_fclose.
767 (fport_truncate): was local_ftruncate.
768 (fport_seek): was local_seek.
769 (fport_free): was local_free.
770 (fport_fill_input): was fport_fill_buffer.
771 * strports.c (st_end_input): was st_read_flush.
772 (st_truncate): was st_ftruncate.
773 * vports.c: (sf_flush): was sfflush.
774 (sf_close): was sfclose.
775 (sf_fill_input): was sf_fill_buffer.
776
777 * ports.c, fports.c, strports, vports.c, ioext.c, unif.c, filesys.c:
778 change callers.
779
df061ffc
MD
7801999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
781
782 * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
783 forms now contain the expressions to be dispatched upon instead of
784 depending on a surrounding lambda or let; Generic function
785 dispatch has been optimized; `apply' on a generic function now
786 works a little bit strangely. It uses a trick so that the type
787 dispatch code in SCM_CEVAL can be reused.
788
789 * objects.h, objects.c (scm_apply_generic_env): Added (used by
790 apply).
791 (scm_operator_p): Added.
792 (scm_sym_atdispatch): Added.
793 (scm_set_object_procedure_x): Modified to handle the new style
794 generic functions.
795 (scm_object_procedures): New debugging procedure.
796
524da6b9
MD
7971999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
798
df061ffc
MD
799 * eval.c, eval.h (scm_sym_args): Added.
800
801 * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
802
eba96884
MD
803 * feature.c, feature.h (scm_c_run_hook): Added.
804
524da6b9
MD
805 * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
806 cdrxnoap and loopnoap instead of begin and loop.
807
265e6a4d
GH
8081999-08-04 Gary Houston <ghouston@easynet.co.uk>
809
810 * ports.c (scm_putc, scm_puts),
811 * unif.c (scm_uniform_array_write): use scm_lfwrite.
812 * ports.c (scm_putc): change type of first argument from int to char.
813
82cc1b11
MD
8141999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
815
816 * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
817 SCM_IM_HASH_DISPATCH.
818
819 * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
820 (scm_si_redfined, scm_si_hashsets): Moved.
821
822 * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
823 flag which combines type and status info so that the class
824 redefinition protocol has zero cost during normal execution.
825
31703ab8
GH
8261999-08-03 Gary Houston <ghouston@easynet.co.uk>
827
828 * ports.h (scm_ptob_descriptor): include a write procedure again.
829 it's more efficient for unbuffered fports (e.g., sockets.)
830
831 * ports.c (scm_puts): use ptob->write.
832 * vports.c (scm_make_sfptob): set write proc in ptob.
833 * strports.c (scm_make_stptob): set write proc in ptob.
834 * ports.c (write_void_port): new procedure.
835 * vports.c (sf_write): new procedure.
836 * ports.c (scm_lfwrite): use ptob->write.
837 * strports.c (st_write): new procedure.
838 * fports.c (fport_write): new procedure.
839 (scm_make_fptob): set write in ptob to fport_write.
840 * ports.h: prototype for scm_set_port_write.
841 * ports.c (scm_make_port_type): initialise ptob write procedure.
842 (scm_set_port_write): new proc.
843
769f054d
JB
8441999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
845
846 * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
847 until we've verified that it is actually a port. (Thanks to
848 Lorentey Karoly.)
849
5678aae0
MD
8501999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
851
9ffdde1c
MD
852 * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
853 code, particularly an unnecessary test (len != size, where len ==
854 size). (Was this leftovers from debugging code, or have I missed
855 something profound?)
856
5678aae0
MD
857 * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
858 size. (Thanks to James Dean Palmer.)
859
860 * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
861 (Thanks to Lorentey Karoly.)
862
6e1fd264
MD
8631999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
864
865 * eval.c (scm_m_expand_body): Use scm_cons_source.
866
867 * struct.c (scm_print_struct): Use vtable name.
868
869 * print.c (scm_init_print): Set name of print state type.
870
871 * stacks.c (scm_init_stacks): Set name of stack type.
872
b09ef679
MD
8731999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
874
cb4832ae
MD
875 * eval.c (SCM_CEVAL): Removed old implementation of internal
876 define.
877
878 * gsubr.c, procprop.h (scm_i_inner_name): Removed.
879
880 * debug.c, debug.h (scm_reverse_lookup): Added.
881 (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
882 internal procedure definitions; Don't use scm_i_inner_name.
883
2a52b429
MD
884 * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
885 New isym operations.
886
b09ef679
MD
887 * eval.h: Added prototypes for multi language support functions.
888
889 * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
890 improper lists in the low-level representation, since that will
891 cause a begin to be prepended at macro expansion.
892
2a52b429
MD
893 * eval.c (scm_cons_source): Version of cons which copies source
894 properties from an existing cell.
6e1fd264 895 (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
2a52b429
MD
896
897 * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
898 procedure source before calling scm_unmemocopy instead of faking
899 an environment.
900
9011998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
902
903 Ported `internal defines' fix from SCM. Original ChangeLog entry:
904
905 1998-07-09 Radey Shouman <radey@colorage.com>
906
907 * eval.c (ceval_1): Modifications to allow rewriting of interal
908 DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
909 body of which it is the CAR is macro expanded by m_expand_body,
910 which rewrites internal DEFINE.
911
912 (m_expand_body): Added.
913
914 (m_macroexp1): Added argument to control error checking:
915 m_expand_body may speculatively expand forms in the wrong
916 environments. Made argument number checks conditional on
917 RECKLESS.
918
919 (m_body): Added, error checks bodies and inserts the ISYM tokens.
920
921 (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
922 call m_body.
923
924 (m_cond): (m_case): (m_quote): Modified to avoid destructively
925 changing their argument forms. Since m_expand_body
926 speculatively macro expands forms the process must be
927 reversible.
928
929 (m_ident_eqp): Fixed to use proper environment.
930
931 (renamed_ident): Added DEFER_INTS_EGC.
932
933 Added prototypes for static functions.
934
935 * eval.c
936
937 (undef_cell): New.
938
939 (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
940 is false, do not produce an error for unbound variables, return a
941 pointer to cell_undef instead.
942
943 (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
944
945 (scm_m_body): New.
946
947 (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
948 destructively changing their argument forms. Since m_expand_body
949 speculatively macro expands forms the process must be reversible.
950
951 (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
952 SCM_IM_LET introduced by named lets.
953
954 (scm_m_letstar): Use scm_m_body instead of bodycheck.
955
956 (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
957 scm_letrec. scm_letrec1 does not check for a null binding and
958 takes an additional argument to specify the ISYM of the body. Use
959 scm_m_body instead of bodycheck.
960
961 (scm_m_let): Use scm_m_body instead of bodycheck.
962
963 (scm_m_expand_body, scm_macroexp): New.
964
965 (unmemocopy): Account for ISYMs introduced by scm_m_body.
966
967 (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
968 check=1. Throw error for internal defined that have not been
969 rewritten by scm_m_expand_body.
970
971 * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
972 Removed prototype for SCM_APPLY.
973
974 * tags.h: Added extern declaration of scm_isymnames.
b09ef679 975
a6ba4ef8
MD
9761999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
977
978 * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
979
980 * lang.c: New file: Beginning of multi-language support.
981
982 * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
983
984 * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
985 (scm_dynamic_wind): Added argument checking for the after guard so
986 that we don't add garbage on the dynwind chain.
987 (scm_swap_bindings): Added.
988
989 * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
990 SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
991 (scm_isymnames): New isyms for multi-language support.
992
993 * eval.c (scm_nil, scm_t): New symbols.
994 (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
995 forms for multi-language support.
996
259529f2
MD
9971999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
998
999 * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
1000 Added.
1001 Renamed functions in the random function library interface
1002 from scm_i_XXX --> scm_c_XXX.
1003
1b9c3dae
GH
10041999-07-25 Gary Houston <ghouston@easynet.co.uk>
1005
1006 * ports.c (scm_putc): fix line-buffering.
1007
544e9093
MD
10081999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1009
1010 * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
1011 scm_set_ptob_XXX --> scm_set_port_XXX.
1012
f15913d0
MD
10131999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1014
1015 * ports.c, ports.h (scm_make_port_type): New interface for
1016 creation of port types (replaces scm_newptob). Just as for the
1017 smobs, we need to separate the internal representation of smob
1018 types from the interface, so that we easily can add new fields and
1019 rearrange things without caring about backward compatibility.
1020 This change was forced by the need in GOOPS to create classes
1021 representing port types.
1022 (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
1023 scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
1024 scm_set_ptob_seek, scm_set_ptob_truncate,
1025 scm_set_ptob_input_waiting_p): New setters.
1026 (scm_newptob): Rewritten to use scm_make_port_type. For backward
1027 compatibility.
1028 (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
1029 (scm_prinport): Removed.
1030 (scm_port_print): Added.
1031 (scm_print_port_mode): Added.
1032 (void_port_ptob, print_void_port, close_void_port, noop0):
1033 Removed. Removed #include "genio.h" Added #include "objects.h",
1034 #include "smobs.h"
1035
1036 * fports.c (prinfport): Moved code from ports.c.
1037 (local_free): Added.
1038 (scm_fptob): Removed. Instead use new interface.
1039 (scm_make_fptob): Added. (Need to create basic ports in a
1040 specific order in ports.c.)
1041
1042 * strports.c (scm_stptob, prinstpt, noop0): Removed
1043 (scm_make_stptob): Added.
1044
1045 * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
1046 (scm_make_sfport): Added.
1047
1048 * filesys.c (scm_dir_print): Don't use the port printing code.
1049 Instead provide specific directory printer.
1050
1051 * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
1052
1053 * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
1054 scm_ptob_descriptor.
1055
1056 * smob.c (scm_smob_print): Handle non-existing type name nicely.
1057 Removed #include "genio.h"
1058
1059 * objects.c (scm_make_port_classes): New function ptr.
1060
69bc9ff3
GH
10611999-07-24 Gary Houston <ghouston@easynet.co.uk>
1062
1063 * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
1064
1065 * ports.c (scm_truncate_file): renamed from scm_ftruncate.
1066 allow the 1st argument to be a fdes or filename as well as a
1067 port (as in the filesys.c version).
1068
1069 * filesys.c (scm_truncate_file): removed.
1070
096d0b15
MD
10711999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
1072
1073 * readline.c, readline.h: Removed.
1074
1075 * objects.c, objects.h (scm_port_class): Added.
1076 (scm_class_of): Look up port class in scm_port_class.
1077 (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
1078 SCM_INOUT_PCLASS_INDEX): Added.
1079
f15913d0
MD
1080
1081 * Makefile.am: Removed genio.c, genio.x.
1082
1083 * genio.c: Removed.
1084
aafe2718
MD
10851999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
1086
1087 * init.c: Make sure that scm_post_boot_init_modules is called only
1088 once. (Important when using a dumped image.; Thanks to Bernard
1089 Urban.)
1090
3144e1a9
JB
10911999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
1092
8e1e60f1
JB
1093 * guardians.c (scm_guardian_zombify): Separate scanning for
1094 zombies from marking the pairs of the free list.
1095
a825bb0e
JB
1096 * guardians.c (scm_guardian_zombify): Don't set marks manually ---
1097 use the macros. (Thanks to Michael Livshin.)
1098
4d4c53ac
JB
1099 * eval.c (scm_m_lambda): Let bodycheck check the body of the
1100 lambda. Let your sins be purified by the blood of the lambda.
1101 (Thanks to Eric Hanchrow.)
1102
d9ad6919
JB
1103 * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
1104 (Thanks to Valdis Kletnieks.)
1105
3144e1a9 1106