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