Don't use local_fgets on sockets; ftell doesn't work on sockets.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
97c524bd
MD
11998-10-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
2
3 * script.c (scm_compile_shell_switches): Add handling of -q switch
4 (inhibit loading of user init file).
5 (scm_shell_usage): Add usage text for -q switch.
6 (scm_compile_shell_switches): Always load user init file first if
7 it is loaded at all.
8
70445040
JB
91998-10-16 Jim Blandy <jimb@zwingli.cygnus.com>
10
11 * stime.c: The CPP hair to determine a value for CLKTCK is weird,
12 and is now broken under NetBSD. I can't fathom what it's trying
13 to do, so I've replaced it with something that I do understand,
14 which seems to work, and which isn't broken on NetBSD. "Progress?
15 You Decide." (Thanks to Perry Metzger.)
16
17 * regex-posix.c (scm_regexp_exec): Add a cast to remove a
18 signed/unsigned comparison.
19
6e6e2bbc
JB
201998-10-15 Jim Blandy <jimb@zwingli.cygnus.com>
21
22 Warning fixes from Greg Harvey:
23 * unif.c (scm_array_set_x): initializer for pos
24 * throw.c (scm_ithrow): added initializer for jmpbuf (SCM_UNDEFINED)
25 * struct.c (scm_struct_ref, scm_struct_set_x): Added
26 initializers for field_type, since EGCS so desparately wants to
27 play dumb
28 * debug.h (scm_make_gloc, scm_gloc_p, scm_make_iloc, scm_memcons,
29 scm_mem_to_proc, scm_proc_to_mem, scm_debug_hang): Added prototypes
30 when GUILE_DEBUG is defined.
31 * dynwind.h (scm_wind_chain): Same.
32 * ports.h (scm_pt_size, scm_pt_member): Same.
33 * print.h (scm_current_pstate): Same.
34 * procs.h (scm_make_cclo): Same.
35
eebc12c6
JB
361998-10-14 Jim Blandy <jimb@zwingli.cygnus.com>
37
a437d8a2
JB
38 Handle short and long long uniform arrays properly. (Thanks to
39 Clark McGrew.)
40 * ramap.c (scm_ra_matchp, scm_array_fill_int, scm_array_index_map_x,
41 raeql_1): Add cases for scm_tc7_svect (short vectors) and
42 scm_tc7_llvect (long long vectors).
43
44 Change the way libguile and boot-9.scm are timestamped, to try to
45 get rid of these spurious mismatch warnings. Now both
46 libguile/versiondat.h and ice-9/version.scm are generated directly
47 by the configuration process, rather than having version.scm
48 generated directly, and libguile/versiondat.h generated by the
49 Makefile, which is generated by configure. It seems that
50 sometimes the Makefile would change, but versiondat.h depends on
51 Makefile.in, not Makefile, so it wouldn't get rebuilt.
52 * Makefile.am (versiondat.h): Target removed; this is generated
53 directly by the configure script now.
54 (BUILT_SOURCES): Remove versiondat.h.
55 * versiondat.h.in: New file, transformed by the configure script
56 into versiondat.h.
57 * Makefile.in: Regenerated.
58
731a0a68
JB
59 * (__scm.h, alist.c, eval.c, feature.c, gsubr.c, numbers.c,
60 options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS ->
61 SCM_CAUTIOUS; this way, 1) there's only one version of each flag
62 to define (we used to have both RECKLESS and SCM_RECKLESS), and 2)
63 if we want to use them in a header file some day, we can. (Thanks
64 to Michael Livshin.)
65
ae6f9e24
JB
66 * stime.c (scm_get_internal_real_time): Do the arithmetic using
67 SCM numbers, so we won't have rollover problems; the range of a
68 signed long in milliseconds is about 25 days. (Thanks to Karl
69 Hegbloom.)
70
70445040 71 Don't redefine sleep and usleep; fix this problem now.
eebc12c6
JB
72 * coop.c (sleep, usleep): Remove declarations; we don't use or
73 redefine these any more.
74 (scm_thread_usleep, scm_thread_sleep): New functions which do the
75 job of usleep and sleep in a thread-friendly way. We can use
76 these in the rest of Guile. Define versions for systems both with
77 and without iselect.
78 * threads.h (scm_thread_usleep, scm_thread_sleep): New declarations.
79 * scmsigs.c (usleep): Clean up oddities declaring usleep; since
80 we're just using it, not redefining it, we can use a K&R style
81 declaration here.
82 (sleep): Declare this, too, if the system hasn't.
83 (scm_sleep, scm_usleep): Use scm_thread_sleep and
84 scm_uthread_sleep if they're available; otherwise, just call the
85 system functions.
86 * scmconfig.h.in: Regenerated.
87
88 * coop.c (scm_thread_sleep): Make `slept' an unsigned long.
89
90 * coop.c (coop_sleephelp): Remove ANSI #ifdef hair.
91
94e3e95e
JB
921998-10-12 Jim Blandy <jimb@zwingli.cygnus.com>
93
cb9728ed
JB
94 * threads.c: Doc fix.
95
96 The argument type of usleep varies from system to system,
97 as does the return type. We really shouldn't be redefining usleep
98 at all, but I don't have time to clean that up before the 1.3.
99 release. It's on the schedule for afterwards. (Thanks to Julian
100 Satchell.)
101 * coop.c (usleep): Use USLEEP_ARG_TYPE in prototype and
102 definition.
103 * scmsigs.c (usleep): Use USLEEP_ARG_TYPE in prototype.
104 * scmconfig.h: Regenerated.
105
94e3e95e
JB
106 * simpos.c (scm_software_type): Procedure deleted. This isn't the
107 right way to handle system variation. Autoconf's approach is the
108 way and the light.
109 * simpos.h (scm_software_type): Declaration deleted.
110
111 * script.c (scm_find_executable): Don't test if unix is #defined
112 here; first, NetBSD doesn't #define it, and second, it's the wrong
b1d6e336 113 way to go about these things. (Thanks to Perry Metzger.)
94e3e95e
JB
114 (dld_find_executable): Delete this MSDOS support code. This isn't
115 the way we want to support this; it needs to be rethunk at a
116 larger scale.
117
118 * genio.c (scm_do_read_line): Don't just politely check that the
119 line was either non-empty or EOF. Abort if it's empty and not
120 EOF.
121
5f964025
JB
1221998-10-11 Jim Blandy <jimb@zwingli.cygnus.com>
123
81aef0ba
JB
124 * scmconfig.h.in: Regenerated.
125
335df0e8
JB
126 * libguile.h: Don't omit the dynamic linking functions. (Thanks
127 to Greg Badros.)
128
5f964025
JB
129 * genio.c (scm_do_read_line): Count lines correctly when the file
130 doesn't end in a newline.
131
17f8d40c
JB
1321998-10-10 Jim Blandy <jimb@zwingli.cygnus.com>
133
216d3a1e
JB
134 * genio.c (scm_do_read_line): Maintain the line count correctly.
135 (Thanks to Harvey J. Stein and Greg Harvey.)
136
17f8d40c
JB
137 * gc.c (scm_return_first): Remove #ifdef __STDC__ garbage; Guile
138 requires ANSI now.
139
140 * numbers.c (big2str): Protect t from garbage collection until
141 we're done. (Thanks to Gary Houston.)
142
31b9e767
JB
1431998-10-09 Jim Blandy <jimb@zwingli.cygnus.com>
144
c6ff295e
JB
145 * Makefile.am (libguile_la_LDFLAGS): Increment shared library
146 version number.
147 * Makefile.in: Regenerated.
148
31b9e767
JB
149 * fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
150 scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
151 SCM_P macro.
152
153 Do magic to mix reads and writes on stdio FILE-based ports.
0445f9f2 154 (Thanks to Christian Lynbech.)
31b9e767
JB
155 * fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
156 New macros.
157 (pre_read, pre_write): New functions.
158 (local_fgetc, local_fgets, local_ffwrite, local_fputc,
159 local_fputs): Call them.
160 (local_fflush): Mark the port as ready for reading and writing.
161 (scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
162 flags on new port objects. This might not be accurate --- who
163 knows what state the FILE * is in when we get it --- but it won't
164 do extraneous calls to fflush or fseek, so it's no worse than the
165 behavior before this change.
166 * ports.h: Add comment.
167
168 Centralize the creation of port objects based on stdio FILE * in
169 fports.c; don't just throw them together anywhere.
170 * fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
171 what the rest of Guile wants. Don't set the revealed count;
172 that's only appropriate for stdin, stdout, stderr.
173 (scm_standard_stream_to_port): This function does set the revealed
174 count.
175 * init.c (scm_init_standard_ports): Use scm_standard_stream_to_port,
176 not scm_stdio_to_port.
177 * filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
178 * fports.c (scm_open_file): Same.
179 * posix.c (scm_pipe): Same.
180 * socket.c (scm_sock_fd_to_port): Same.
181 * ioext.c (scm_fdopen): Same.
182 (scm_freopen): Moved from here to...
183 * fports.c (scm_freopen): ... here. This is really something that
184 munges the internals of an fport, so it should go here.
185 * fports.h (scm_stdio_to_port): Adjust prototype.
186 (scm_standard_stream_to_port, scm_freopen): New protoypes.
187 * ioext.h (scm_freopen): Prototype removed.
188
189 * filesys.c (set_element, get_element): This can work on both pipe
190 and file ports, so use SCM_FPORTP to typecheck, instead of testing
191 for scm_tc16_fport.
192
193 * scmconfig.h.in: Regenerated.
194
195 Change the definition of the functions in scm_ptobfuns so that
196 they get passed the port object, not the port's stream.
197 * ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
198 * gc.c (scm_gc_sweep): Pass the port itself to the free function.
199 * genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
200 Pass the port itself to the scm_ptobs function.
201 * ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
202 scm_generic_fgets): Same.
203 (putc_void_port, puts_void_port, write_void_port, flush_void_port,
204 getc_void_port, fgets_void_port, close_void_port): Just change the
205 argument names; these functions don't really do anything.
206 * fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
207 local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
208 port as an argument, and use SCM_STREAM to get the stdio FILE *.
209 Also, use prototyped definitions, and get rid of the extra
210 declarations.
211 (scm_fptob, scm_pipob): We don't need casts here any more.
212 * strports.c (prinstpt): Use prototype declarations.
213 (stputc, stwrite, stputs, stgetc): Take the port as an argument,
214 and use SCM_STREAM to get the string info. Also, use prototyped
215 definitions, and get rid of the extra declarations.
216 * vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
217 noop0): Same.
218
219 * ports.h (scm_ptobfuns): Replace uses of SCM_P with a straight
220 prototype; it's okay (preferred, even!) to use ANSI C in Guile.
221
222 * fports.c (local_fgetc, local_fgets): Renamed from scm_fgetc and
223 scm_fgets, for consistency.
224 (scm_fptop, scm_pipob): References updated.
225
6d921cd6
JB
2261998-10-08 Jim Blandy <jimb@zwingli.cygnus.com>
227
228 Include the source location in error messages for scripts.
229 * init.c (scm_boot_guile_1): Use scm_internal_lazy_catch, so the
230 stack is still there when we catch the error.
231 * throw.c (handler_message): If we are handling an error with a
232 message, then put together the proper arguments and call
233 scm_display_error, instead of scm_display_error_message. That
234 displays source location, if it can find it.
235
13af3048
JB
2361998-10-07 Jim Blandy <jimb@zwingli.cygnus.com>
237
a8e05009
JB
238 * gc.c (scm_unprotect_object): Change this so that calls to
239 scm_protect_object and scm_unprotect_object nest properly.
240 (scm_protect_object): Doc fixes.
241
3c0a54bd
JB
242 * strings.c (scm_string_set_x): Require the argument to be a
243 writable string, not a substring or a symbol.
244 * strings.h (SCM_RWSTRINGP, SCM_NRWSTRINGP): New predicates.
74f87516
JB
245 (Thanks to John Redford and Charbel Jacquin.)
246
13af3048
JB
247 * scmconfig.h.in: Regenerated; ../acconfig.h has changed.
248
6ea669d7
JB
2491998-10-07 Jim Blandy <jimb@totoro.red-bean.com>
250
251 * eval.c (safe_setjmp): Remove this misunderstanding.
252 (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Replace with references to
253 ordinary setjmp.
254
2d0937bc
JB
2551998-10-06 Jim Blandy <jimb@zwingli.cygnus.com>
256
257 * libguile.h: Mark these as C declarations, for compilation by C++
258 compilers.
259
260 * snarf.h (SCM_PROC, SCM_PROC1): Remove very odd code in #ifdef
261 __cplusplus clause. I seriously doubt this ever worked the way
262 the author seems to have intended.
263
2641998-10-05 Jim Blandy <jimb@zwingli.cygnus.com>
265
266 Utterly needless cleanups to hopelessly messy code.
267 * ports.c: Doc fixes.
268 (scm_fflush): Moved to ...
269 * genio.c (scm_fflush): ... here, amongst all the other port
270 method invocation functions.
271 * genio.h, ports.h: The prototype moves too.
272
53314947
JB
2731998-10-04 Jim Blandy <jimb@zwingli.cygnus.com>
274
8b49142f
JB
275 * backtrace.c (display_error_body): The current frame does not
276 always have a parent frame; consider a function called directly
277 from the MAIN_FUNC passed to scm_boot_guile. (Thanks to Maciej
278 Stachowiak.)
279
53314947
JB
280 * alloca.c (alloca): Undo yesterday's changes, and simply call
281 malloc directly for storage, and abort if we don't get what we
282 want. The situation is much simpler --- just call malloc. Emacs
283 has bizarre/evil requirements (signal handlers might malloc unless
284 you set this global flag, so you have to set the flag around all
285 calls to malloc) which we are certainly not going to conform to,
286 so we can do the simple and obvious thing.
287
288 * coop.c (coop_condition_variable_wait): Make this function
289 static. It's only useful internally --- you should never just
290 wait on a condition variable.
291 * coop-defs.h (coop_condition_variable_wait): Delete prototype.
292
026065b7
JB
2931998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
294
7265de70
JB
295 * unif.c (scm_array_set_x): Accept any kind of number as an
296 element for a uniform vector of doubles. This is more consistent
297 with Scheme's view of numbers. (Thanks to Miroslav Silovic.)
298
a9fe62cb
JB
299 * alloca.c: Use scm_must_malloc to obtain storage. Hopefully this
300 works; I can't conveniently test it myself. (Thanks to Dvid
301 Tillman for the bug report.)
302
026065b7
JB
303 * init.c: Doc fixes.
304
305 * init.c (invoke_main_func): Load the startup files (boot-9.scm)
306 from here, not from scm_compile_shell_switches (which is a pretty
307 dumb place to do it).
308 (scm_load_startup_files): New function.
309 (scm_ice_9_already_loaded): Variable moved to here from script.c.
310 * script.c (scm_compile_shell_switches): Don't load the startup
311 files here.
312 (scm_ice_9_already_loaded): Variable moved.
313 * init.c (scm_load_startup_files): Prototype for new function.
314 * gh_init.c (gh_enter): Doc fix.
315
541716d1
JB
3161998-10-03 <jimb@savonarola.red-bean.com>
317
318 Some anti-warning changes from Greg Harvey.
319 * gh_data.c (gh_scm2doubles): Initialize m, to avoid compiler
320 warnings when it doesn't understand our NORETURN declarations in
321 error.h.
322 * posix.c (scm_mknod): Similar.
323
f9d12ce8
JB
3241998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
325
326 * posix.c (scm_getpwuid): If we can't find an entry, return our
327 own message, instead of using scm_syserror --- the getpwMUMBLE
328 functions don't set `errno' to anything interesting.
329
0553d3a2
JB
3301998-10-03 <jimb@savonarola.red-bean.com>
331
332 Get rid of warnings from the cooperative threading system.
333 * threads.h (scm_single_thread_p, scm_yield,
334 scm_call_with_new_thread, scm_join_thread, scm_make_mutex,
335 scm_lock_mutex, scm_unlock_mutex, scm_make_condition_variable,
336 scm_wait_condition_variable, scm_signal_condition_variable): Add
337 prototypes for these Scheme-visible functions.
338 * coop-defs.h (coop_next_runnable_thread,
339 coop_wait_for_runnable_thread_now, coop_wait_for_runnable_thread):
340 Prototypes for these here, even though they're from iselect.c.
341 (coop_condition_variable_wait, coop_join): Add prototypes.
342 * coop-threads.c (scm_threads_free_thread, scm_threads_free_mutex,
343 scm_threads_free_condvar): Make these smob functions static.
344 * coop-threads.h (coop_init): Give this a real prototype.
345 * coop.c: #include <unistd.h>, if we have it, for `usleep' and `sleep'.
346 (coop_next_runnable_thread): No need to provide prototype; it's in
347 coop-defs.h.
348
349 * scmconfig.h.in: .detarenegeR
350
351 * iselect.c, threads.c: Doc fixes.
352
235bb3fe
JB
3531998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
354
355 * Makefile.in: Regenerated with a patched automake, to get
356 dependency generation right when using EGCS.
357
358 * inet_aton.c (inet_aton): Add prototype, to remove compiler
359 warning. (Thanks to Robert Pluim.)
360
361 * inet_aton.c (inet_aton): Reassure the compiler that the
362 arguments to the <ctype.h> macros are all unsigned characters, not
363 signed characters.
364
83d1c666
JB
3651998-10-03 <jimb@savonarola.red-bean.com>
366
367 Getting rid of more warnings...
368 * iselect.c: Test for MISSING_BZERO_DECL, not DECLARE_BZERO; see
369 today's change to ../configure.in.
370 * scmsigs.c: Test for MISSING_USLEEP_DECL, not DECLARE_USLEEP.
371 * scmconfig.h.in: Regenertaded.de.,.__
372 * stime.c (strptime): Declare this, #ifdef MISSING_STRPTIME_DECL.
373 (scm_localtime, scm_mktime): Use a const char * to manipulate the
374 time zone name.
375
376 * readline.c: Doc fix.
377 (rl_cleanup_after_signal, rl_free_line_state): Make these static.
378 * readline.h (scm_filename_completion_function): Add prototype.
379 (scm_init_readline): Make this into a prototype.
380
381 * readline.c (scm_filename_completion_function): Use SCM_PROC to
382 declare this, instead of calling scm_make_subr manually.
383
3841998-10-02 <jimb@savonarola.red-bean.com>
385
386 * readline.h (scm_init_readline): Add prototype for this.
387 (scm_init_readline): Make this a real prototype.
388
94c0b3b8
JB
3891998-09-30 Jim Blandy <jimb@zwingli.cygnus.com>
390
391 Warning fixes from Maciej Stachowiak:
392 * backtrace.h (scm_display_application, scm_backtrace): Add
393 prototypes.
394 * debug.c (scm_m_start_stack): Make this function static.
395 * fluids.h (scm_fluid_p): Add prototype.
396 * procprop.c (scm_i_procedure_arity): Make this function static.
397 * regex-posix.c (scm_regexp_error_msg): Make this function static.
398 * regex-posix.h (scm_init_regex_posix): Use prototype, not K&R decl.
399 * root.h (scm_dynamic_root): Add external prototype.
400 * scmsigs.h (scm_usleep): Add external prototype.
401 * script.h (scm_init_script): Use prototype, not K&R decl.
402 * stacks.h (scm_stack_id): Add external prototype.
403 * symbols.h (scm_sysintern0_no_module_lookup): Add external prototype.
404
dc9f6d6a
MG
4051998-09-30 Mark Galassi <rosalia@cygnus.com>
406
407 * gh.h: took out the definitions of vset and vref, since they are
408 replaced by the proper vector routines that correspond to the R4RS
409 procedures.
410
61a9ba48
JB
4111998-09-29 Jim Blandy <jimb@totoro.red-bean.com>
412
94c0b3b8 413 * snarf.h (SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): New macros;
61a9ba48
JB
414 these are analogous to SCM_VCELL and SCM_GLOBAL_VCELL but take a
415 third argument, a C expression that should result in a SCM value,
416 which is used to initialize the variable. Reimplemented
417 SCM_CONST_LONG in terms of SCM_VCELL_INIT. (Thanks to Maciej
418 Stachowiak.)
419
420 * version.h (scm_libguile_config_stamp): Add prototype.
421 (From Maciej Stachowiak.)
422
9a3c1149
JB
4231998-09-26 Jim Blandy <jimb@zwingli.cygnus.com>
424
425 * eval.c (scm_force): Assert that x is SCM_NIMP to fix segv when
426 (force 9) is tried. (Thanks to Karl M. Hegbloom.)
427
52591c80
JB
4281998-09-06 Jim Blandy <jimb@zwingli.cygnus.com>
429
6925bc4e
JB
430 * print.c (scm_iprin1): Rather than having one i, and using it in
431 several places, declare a fresh i local to each block where it is
432 used, and give it a signedness appropriate to its use in each case.
433 (scm_iprlist): Same.
434
435 * print.c (scm_iprin1): Add cast to avoid unsigned/signed
436 comparison warnings.
437
438 * print.c (ENTER_NESTED_DATA): Make i an unsigned long, to avoid
439 signed/unsigned clashes.
440
441 * posix.h (scm_tmpnam): Added prototype.
442
52591c80
JB
443 * objects.h (scm_set_object_procedure_x, scm_make_class_object,
444 scm_make_subclass_object): Add external prototypes.
445
446 * numbers.c (scm_mkbig): Add cast, and note that signed/unsigned
447 comparison is okay here.
448
449 * numbers.c (scm_istr2int): Add cast; len is known to be positive.
450
451 * numbers.c (scm_bigcomp): Clarify logic, and avoid relying on the
452 (true, but confusing) fact that -1 == ((unsigned) 0 - 1).
453
454 * numbers.c (scm_adjbig): Make nsiz an scm_sizet, to avoid mixing
455 signed/unsigned.
456
457 * load.c (swap_port): Make this function static.
458
459 * load.c (scm_search_path): Make max_path_len and max_ext_len
460 unsigned, since they're compared against string sizes.
461
462 * load.c (init_build_info): Make i unsigned.
463
464 * ioext.h (scm_read_line): Add prototype.
465
466 * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
467 scm_hash_fn_remove_x): Make hash bucket index local variable k
468 unsigned. Use scm_ulong2num to pass it to SCM_ASSERT as
469 accurately as possible.
470
471 * gh_data.c (gh_set_substr): Add casts to avoid signed/unsigned
472 comparisons, and range checking to make sure those casts are
473 harmless.
2d2c87e1
JB
474
475 * stackchk.h (SCM_STACK_OVERFLOW_P): Change definition to avoid
476 signed/unsigned comparisons.
477
478 * smob.c (scm_numsmob): Make this an int, not an scm_sizet, to
479 avoid signed/unsigned comparisons.
480 * smob.h (scm_numsmob): Change extern declaration to match.
481
482 * ports.c (scm_numptob): Make this an int, not an scm_sizet, to
483 avoid signed/unsigned comparisons.
484 * ports.h (scm_numptob): Change extern declaration to match.
485 (scm_current_load_port, scm_set_port_line_x,
486 scm_set_port_column_x): New prototypes.
487
488 * gsubr.c (GSUBR_TEST): Don't #define this. Nobody's using the
489 test code, and it causes warnings.
490
491 * gh.h (gh_int2scmb, gh_uniform_vector_length,
492 gh_uniform_vector_ref): Added prototypes.
493
494 * Makefile.am (libguile_la_SOURCES): Include Scheme-level
495 debugging support unconditionally. That's backtrace.c, stack.c,
496 debug.c, and srcprop.c.
497 (EXTRA_libguile_la_SOURCES): Omit those from here.
498 * Makefile.in: Regenerated.
499
a9b70caf
MD
5001998-08-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
501
502 * options.c (scm_options): Bugfix: Allow empty list of options!
503
504 * debug.c, debug.h (scm_single_step): Removed.
505 (scm_with_traps): New procedure. This procedure could easily be
506 written in Scheme but needs to be highly optimized.
507
508 * eval.h, eval.c: New evaluator trap flag: SCM_TRAPS_P.
509
510 * eval.c (SCM_CEVAL, SCM_APPLY): Removed resetting of trap flags.
511 Check SCM_TRAPS_P before trapping.
512
6dd78771
JB
5131998-07-30 Jim Blandy <jimb@zwingli.cygnus.com>
514
515 Changes to avoid signed/unsigned comparison warnings.
516 * gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
517 (scm_gc_sweep): Make n and j local to the blocks they're used in,
518 so they can have appropriate types for each application. Make i
519 signed. Use initializers in some spots. I'll probably pay for
520 all this tweaking.
521 (scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
522 (scm_must_realloc): Make nm unsigned.
523 (init_heap_seg): Make new_seg_index and n_new_objects signed.
524 (scm_init_storage): Use prototype-style definition, and make the
525 argument unsigned.
526 * gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
527 scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
528
529 * filesys.c (scm_readlink): Make local vars rv and size ints, to
530 avoid signed/unsigned comparison warnings, and because the return
531 value of readlink may be -1. Don't bother casting the third
532 argument to readlink.
533
534 * filesys.c (scm_dirname, scm_basename): Move these to their own
535 page, at the end of the file.
536 * filesys.h (scm_dirname, scm_basename): Add prototypes for these.
537
538 * eval.h (scm_eval_options_interface): Add external prototype for this.
539 * eval.c (scm_eval_options_interface): Use prototype-style def'n.
540
541 * eval.c (scm_lookupcar1): Make this static.
542
543 * dynl.h (scm_registered_modules, scm_clear_registered_modules):
544 Make these prototype declarations, not K&R-style.
545
546 * chars.c (scm_tables_prehistory): Add cast, to remove signed/
547 unsigned comparison warning.
548
549 * appinit.c: File removed. It had a single function in it, empty,
550 whose reason for existence is explained in no documentation or
551 comment. I think it's there as a default for some Tcl-style
552 initialization, but Tcl abandoned that approach a while ago.
553 * Makefile.am (libguile_la_SOURCES): Remove appinit.c.
554 (BUILT_SOURCES): Remove appinit.x.
555 * Makefile.in: Regenerated.
556
0dcbc17a
JB
5571998-07-29 Jim Blandy <jimb@zwingli.cygnus.com>
558
559 * Makefile.in: Regenerated using the last public version of
560 automake, not the hacked Cygnus version.
561
1f5ae2fd
JB
5621998-07-28 Jim Blandy <jimb@zwingli.cygnus.com>
563
564 Remove Totoro kludge.
565 * Makefile.in, scmconfig.h.in: Regenerated.
566 * init.c, readline.c: Don't check if TOTORO is #defined.
567
e99cbcd6
JB
5681998-07-26 Jim Blandy <jimb@zwingli.cygnus.com>
569
570 * Makefile.am: Adjust for new thread configuration system.
571 (INCLUDES): Include the value of THREAD_CPPFLAGS.
572 (guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
573 THREAD_LIBS.
574 (THREAD_LIBS): Definition deleted; automake will generate such
575 things automatically.
576 * Makefile.in: Regenerated.
577
87148d9e
JB
5781998-07-23 Jim Blandy <jimb@zwingli.cygnus.com>
579
580 Simplify smob and port marking; set the mark bit in the generic
581 marking code, and make marker routines only responsible for
582 turning up outgoing pointers.
583 * gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
584 before calling the marking function. Don't call the marking
585 function if it's zero.
586 * markers.c (scm_mark0): Just return #f. This function isn't
587 necessary at all now, but it's harmless to call it. We'll leave
588 it in so other folks' code doesn't croak at link time.
589 (scm_markcdr): Don't call SCM_SETGC8MARK.
590 * async.c (mark_async): Don't call SCM_SETGC8MARK.
591 * dynl.c (mark_dynl_obj): Same.
592 * root.c (mark_root): Same.
593 * srcprop.c (marksrcprops): Same.
594 * unif.c (markra): Same.
595 * variable.c (scm_markvar): Same.
596 * ports.c (scm_markstream): Same.
597 (void_port_ptob): Specify zero for our marking function.
598 * debug.c (debugobjsmob): Same.
599 * dynwind.c (guardsmob): Same.
600 * filesys.c (dir_smob): Same.
601 * fluids.c (fluid_smob): Same.
602 * fports.c (scm_fptob, scm_pipob): Same.
603 * mallocs.c (mallocsmob): Same.
604 * regex-posix.c (regex_t_smob): Same.
605 * smob.c (freecell, flob, bigob): Same.
606 * threads.c (thread_smob, mutex_smob, condvar_smob): Same.
607 * throw.c (jbsmob, lazy_catch_funs): Same.
608
3910272e
MD
6091998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
610
611 * eval.c (scm_copy_tree): Reverted last change: `eval' uses
612 scm_copy_tree on code in order not to let memoized code to leak
613 out. Thus, scm_copy_tree needs to copy vectors as well since
614 quasiquote can introduce evaluated code also inside vector
615 constants.
616
240ed1e5
MD
6171998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
618
619 * eval.c (scm_copy_tree): Removed ability to copy vectors.
620
621 * gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
622 gh_ulongs2uvect): New procedures. (Complements gh_doubles2scm and
623 gh_doubles2dvect.)
624
625 * unif.c: Say that ivect and uvect are of type signed and unsigned
626 long instead of int in commentary so that it correctly describes
627 the implementation.
628
5ef81022
MD
6291998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
630
631 * stime.c: Removed declaration of strptime. (It should be
632 declared by the system headers. If it turns out that some systems
633 don't, we'll handle that then.) (Thanks to Greg Troxel.)
634
635 * stime.h: Renamed TIMEH --> STIMEH
636
637 * backtrace.c (scm_display_error, scm_display_backtrace): In order
638 to increase portability, don't use structure assignment.
639 (Thanks to Nicolas Neuss.)
640
641 * iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
642 portability.
643 (finalize_fd_sets): Added empty statement after last case label.
644 (Thanks to Nicolas Neuss.)
645
646 * gc.c (scm_igc): Changed //-comment into /*-comment. (Thanks to
647 Nicolas Neuss.)
648
212d45b8
MD
649Sat Jul 11 22:08:21 1998 Mikael Djurfeldt <mdj@totoro.red-bean.com>
650
651 * init.c, readline.c: OK, I won't have these readline.x bug
652 reports anymore. We've had them since April. The current reason
653 is a completely unintelligible failure of totoro.red-bean.com to
654 do the test for rl_getc_function in libreadline correctly. This
655 kludge overrides the test if we're on totoro so that the snapshot
656 generation process can work.
657
658 * readline.c: Define a strdup replacement if not existent on system.
659
43eeb5a6
MD
6601998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
661
662 * vectors.c, vectors.h (scm_make_vector): Removed third argument.
663 This change makes scm_make_vector R5RS compatible. We cannot keep
664 the third argument since people want to be able to deduce the form
665 of the C function call only by looking at R5RS. (At the same time
666 we have removed some unnecessary complexity!)
667
668 * eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
669 net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
670 stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
671 argument in call to scm_make_vector.
672
9d0b279f
MD
6731998-07-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
674
675 * numbers.h (SCM_NUM2DBL): New macro. Complements SCM_NUMBERP.
676 This macro is useful in applications.
677
dbb25e7f
MD
6781998-06-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
679
680 * load.c (scm_internal_parse_path): Renamed from scm_parse_path.
681 (scm_parse_path, scm_search_path): New Scheme level procedures.
682
683 * load.h (scm_internal_parse_path, scm_parse_path,
684 scm_search_path): Declared.
685
74d6650d
MD
6861998-06-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
687
688 * filesys.c (dirname, basename): New procedures.
689
690 * init.c (scm_boot_guile_1): Removed condition around
691 scm_init_options.
692
693 * dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
694 new data type (guards) for representation of C level guards and
695 data on the wind chain.
696 (scm_internal_dynamic_wind): New function.
697
698 * dynwind.h: Declare scm_internal_dynamic_wind.
699
700 * root.h (scm_root_state): Added scm_cur_loadp.
701
702 * root.c (mark_root): Added comment about cur_loadp.
703
704 * load.c: #include "dynwind.h";
705 (scm_primitive_load): Use scm_inner_dynamic_wind to update
706 scm_cur_loadp.
707
708 * init.c (scm_init_standard_ports): Initialize scm_def_loadp.
709
710 * ports.c (current-load-port): New procedure.
711
391aebfc
MD
7121998-06-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
713
10ccfad7
MD
714 * ioext.c (scm_isatty_p): Accept any kind of data as argument. If
715 not a tty, return #f.
716
391aebfc
MD
717 * regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
718 to Julian Satchell and Roland Kaufmann.)
719
720 * gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
721 (gh_write): Added declaration. (Thanks to Eiichi Takamori.)
722
6dabf6a9
MD
7231998-06-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
724
725 * debug.h, debug.c (scm_start_stack): New function. Implements
726 the guts of old scm_m_start_stack.
727
728 * debug.c (scm_m_start_stack): Use scm_start_stack.
729
730 * init.c (scm_start_stack, scm_restart_stack): Renamed to
731 start_stack and restart_stack. (These have static scope.)
732
daca2816
MD
7331998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
734
735 * readline.c (rl_cleanup_after_signals, rl_free_line_state): New
736 readline functions to come in release 2.3. (Thanks to Chet
737 Ramey.)
738 (handle_errors): Use the above functions.
739
be0ea988
MD
7401998-05-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
741
742 * readline.c: Improvements for readline support: Handle errors
743 better; Implement before-read-hook.
744
7451998-05-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
746
747 * init.c (scm_boot_guile_1), readline.c: Test for
748 HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
749 assure that we have version >= 2.1.)
750
e158e4f4
MD
7511998-05-11 Mikael Djurfeldt <mdj@kenneth>
752
83d1c666
JB
753 * readline.c (scm_readline): Defer interrupts while we're calling
754 readline.
755
e158e4f4
MD
756 * readline.c (scm_add_history): Bugfix: Do strdup before giving
757 away the string to add_history.
56600c45
MD
758 (completion_function): Do completion for readline. (Thanks to
759 Andrew Archibald.)
e158e4f4
MD
760 (scm_filename_completion_function): New procedure: Filename
761 completer.
762 (current_input_getc): New function. Use this one instead of
763 standard getc from readline.
764
765 * throw.c, throw.h (scm_handle_by_throw): New function: This
766 handler throws errors to next handler on the dynwind chain.
767
7681998-05-09 Mikael Djurfeldt <mdj@kenneth>
769
770 * scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
771 used.
772
8bb51def
MD
7731998-05-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
774
775 * procprop.c (scm_i_procedure_arity): New function. Returns arity
776 of procedure.
777 (scm_procedure_properties): Modified to return arity together with
778 other properties.
779 (scm_procedure_property): Added the read-only property `arity'.
780 (scm_set_procedure_property_x): It is an error to set the `arity'
781 property.
782
783 * gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
784 prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
785
786 * procprop.h (scm_sym_arity): New symbol.
787
788 * objects.c (scm_set_object_procedure_x): New procedure: Use this
789 to set the dispatch procedure of an operator or entity object.
790
791 * objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
792 Made procedure slots read-only.
793
794 * eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
795 scm_tcs_cons_gloc case in zero args switch; Fixed args
796 construction for operators in scm_tcs_cons_gloc case in two args
797 switch.
798
680ed4a8
MD
7991998-05-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
800
104d4533
MD
801 * fluids.c: Removed use of assert.h (in order to avoid
802 __eprintf).
803
804 * Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
805
806 * dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
807
680ed4a8
MD
808 * eval.c (SCM_CEVAL): Do more thorough argument checking. This
809 change makes the evaluator safer at the cost of evaluation speed.
810 It handles the case when the user has added a non-immediate
811 improper end of the application form, e.g., `(+ 0 . x)'.
812 (Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
813 minimize the extra cost as much as possible. The new code is
814 enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
815 problem with structs planted directly in the code (e.g. by a
816 macro). This no longer causes segmentation fault. (Thanks to
817 Eric Hanchrow.)
818
819 * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
820 arg `proc' in order to be able to throw errors; New argument
821 checking code.
822
823 * Removed extra #include "debug.h"
824
0935d604
MD
8251998-04-25 Mikael Djurfeldt <mdj@kenneth>
826
827 * scmsigs.c: Declare usleep as returning void on some systems.
2c36126d
MD
828 (scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
829 Satchell.)
0935d604
MD
830
831 * coop.c (usleep): Return void on some systems.
832
f1a5fa3c
MD
8331998-04-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
834
835 * Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
836
837 * coop.c: Changed return type of usleep to int.
838
839 * scmsigs.c (scm_usleep): New procedure; Declare usleep if it
840 isn't found in the OS.
841
842 * iselect.h: #define scm_internal_select select if GUILE_ISELECT
843 isn't enabled. (Thought that I had made this change ages ago...)
844
845 * iselect.c: Declare bzero if not defined by OS.
846
26c41b99
MD
8471998-04-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
848
c3e09ef9
MD
849 * dynl.c (scm_must_free_argv): Fixed memory leak due to negated
850 condition. (Thanks to John Tobey.)
851
852 * continuations.c (scm_make_cont), debug.c (scm_make_memoized,
853 scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
854 A section.
855
856 * __scm.h: Start the long-term project of moving to POSIX threads.
857 Phase 1: Classification of all critical sections.
858 (SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
859 for A sections. (See comments in __scm.h for details.)
860
26c41b99
MD
861 * dynl.c: Only check that HAVE_DLOPEN is defined before loading
862 dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
863
28795b1f
MD
8641998-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
865
866 * Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
867 cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
868 (libpath.h, versiondat.h): Replaced dependency on Makefile with
869 dependencies on $(srcdir)/Makefile.in
870 $(top_builddir)/config.status in order to avoid circularity.
871
872 * script.c (scm_compile_shell_switches): Bugfix: Don't discount i
873 from argc if argc was 0 initially.
874
875 * Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
876 in generation of libpath.h.
877
f2e5c92c
MD
8781998-04-15 Mikael Djurfeldt <mdj@nada.kth.se>
879
880 * Makefile.am (libguile_la_LDFLAGS): Bumped version number of
881 libguile from 2 to 3.
882
a3365d47
MD
8831998-04-14 Mikael Djurfeldt <mdj@nada.kth.se>
884
885 * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
886
fc1d67c4
MD
8871998-04-13 Mikael Djurfeldt <mdj@kenneth>
888
889 * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
890 scm_set_port_column_x, scm_port_filename,
891 scm_set_port_filename_x): Removed optional arguments. Added
892 proper argument checking.
893
894 * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
895 stack size in machine words.
896
897 * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
898 rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings. (Thanks
899