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