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