* options.c (scm_options): Bugfix: Allow empty list of options!
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
6dd78771
JB
11998-07-30 Jim Blandy <jimb@zwingli.cygnus.com>
2
3 Changes to avoid signed/unsigned comparison warnings.
4 * gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
5 (scm_gc_sweep): Make n and j local to the blocks they're used in,
6 so they can have appropriate types for each application. Make i
7 signed. Use initializers in some spots. I'll probably pay for
8 all this tweaking.
9 (scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
10 (scm_must_realloc): Make nm unsigned.
11 (init_heap_seg): Make new_seg_index and n_new_objects signed.
12 (scm_init_storage): Use prototype-style definition, and make the
13 argument unsigned.
14 * gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
15 scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
16
17 * filesys.c (scm_readlink): Make local vars rv and size ints, to
18 avoid signed/unsigned comparison warnings, and because the return
19 value of readlink may be -1. Don't bother casting the third
20 argument to readlink.
21
22 * filesys.c (scm_dirname, scm_basename): Move these to their own
23 page, at the end of the file.
24 * filesys.h (scm_dirname, scm_basename): Add prototypes for these.
25
26 * eval.h (scm_eval_options_interface): Add external prototype for this.
27 * eval.c (scm_eval_options_interface): Use prototype-style def'n.
28
29 * eval.c (scm_lookupcar1): Make this static.
30
31 * dynl.h (scm_registered_modules, scm_clear_registered_modules):
32 Make these prototype declarations, not K&R-style.
33
34 * chars.c (scm_tables_prehistory): Add cast, to remove signed/
35 unsigned comparison warning.
36
37 * appinit.c: File removed. It had a single function in it, empty,
38 whose reason for existence is explained in no documentation or
39 comment. I think it's there as a default for some Tcl-style
40 initialization, but Tcl abandoned that approach a while ago.
41 * Makefile.am (libguile_la_SOURCES): Remove appinit.c.
42 (BUILT_SOURCES): Remove appinit.x.
43 * Makefile.in: Regenerated.
44
0dcbc17a
JB
451998-07-29 Jim Blandy <jimb@zwingli.cygnus.com>
46
47 * Makefile.in: Regenerated using the last public version of
48 automake, not the hacked Cygnus version.
49
1f5ae2fd
JB
501998-07-28 Jim Blandy <jimb@zwingli.cygnus.com>
51
52 Remove Totoro kludge.
53 * Makefile.in, scmconfig.h.in: Regenerated.
54 * init.c, readline.c: Don't check if TOTORO is #defined.
55
e99cbcd6
JB
561998-07-26 Jim Blandy <jimb@zwingli.cygnus.com>
57
58 * Makefile.am: Adjust for new thread configuration system.
59 (INCLUDES): Include the value of THREAD_CPPFLAGS.
60 (guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
61 THREAD_LIBS.
62 (THREAD_LIBS): Definition deleted; automake will generate such
63 things automatically.
64 * Makefile.in: Regenerated.
65
87148d9e
JB
661998-07-23 Jim Blandy <jimb@zwingli.cygnus.com>
67
68 Simplify smob and port marking; set the mark bit in the generic
69 marking code, and make marker routines only responsible for
70 turning up outgoing pointers.
71 * gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
72 before calling the marking function. Don't call the marking
73 function if it's zero.
74 * markers.c (scm_mark0): Just return #f. This function isn't
75 necessary at all now, but it's harmless to call it. We'll leave
76 it in so other folks' code doesn't croak at link time.
77 (scm_markcdr): Don't call SCM_SETGC8MARK.
78 * async.c (mark_async): Don't call SCM_SETGC8MARK.
79 * dynl.c (mark_dynl_obj): Same.
80 * root.c (mark_root): Same.
81 * srcprop.c (marksrcprops): Same.
82 * unif.c (markra): Same.
83 * variable.c (scm_markvar): Same.
84 * ports.c (scm_markstream): Same.
85 (void_port_ptob): Specify zero for our marking function.
86 * debug.c (debugobjsmob): Same.
87 * dynwind.c (guardsmob): Same.
88 * filesys.c (dir_smob): Same.
89 * fluids.c (fluid_smob): Same.
90 * fports.c (scm_fptob, scm_pipob): Same.
91 * mallocs.c (mallocsmob): Same.
92 * regex-posix.c (regex_t_smob): Same.
93 * smob.c (freecell, flob, bigob): Same.
94 * threads.c (thread_smob, mutex_smob, condvar_smob): Same.
95 * throw.c (jbsmob, lazy_catch_funs): Same.
96
3910272e
MD
971998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
98
99 * eval.c (scm_copy_tree): Reverted last change: `eval' uses
100 scm_copy_tree on code in order not to let memoized code to leak
101 out. Thus, scm_copy_tree needs to copy vectors as well since
102 quasiquote can introduce evaluated code also inside vector
103 constants.
104
240ed1e5
MD
1051998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
106
107 * eval.c (scm_copy_tree): Removed ability to copy vectors.
108
109 * gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
110 gh_ulongs2uvect): New procedures. (Complements gh_doubles2scm and
111 gh_doubles2dvect.)
112
113 * unif.c: Say that ivect and uvect are of type signed and unsigned
114 long instead of int in commentary so that it correctly describes
115 the implementation.
116
5ef81022
MD
1171998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
118
119 * stime.c: Removed declaration of strptime. (It should be
120 declared by the system headers. If it turns out that some systems
121 don't, we'll handle that then.) (Thanks to Greg Troxel.)
122
123 * stime.h: Renamed TIMEH --> STIMEH
124
125 * backtrace.c (scm_display_error, scm_display_backtrace): In order
126 to increase portability, don't use structure assignment.
127 (Thanks to Nicolas Neuss.)
128
129 * iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
130 portability.
131 (finalize_fd_sets): Added empty statement after last case label.
132 (Thanks to Nicolas Neuss.)
133
134 * gc.c (scm_igc): Changed //-comment into /*-comment. (Thanks to
135 Nicolas Neuss.)
136
212d45b8
MD
137Sat Jul 11 22:08:21 1998 Mikael Djurfeldt <mdj@totoro.red-bean.com>
138
139 * init.c, readline.c: OK, I won't have these readline.x bug
140 reports anymore. We've had them since April. The current reason
141 is a completely unintelligible failure of totoro.red-bean.com to
142 do the test for rl_getc_function in libreadline correctly. This
143 kludge overrides the test if we're on totoro so that the snapshot
144 generation process can work.
145
146 * readline.c: Define a strdup replacement if not existent on system.
147
43eeb5a6
MD
1481998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
149
150 * vectors.c, vectors.h (scm_make_vector): Removed third argument.
151 This change makes scm_make_vector R5RS compatible. We cannot keep
152 the third argument since people want to be able to deduce the form
153 of the C function call only by looking at R5RS. (At the same time
154 we have removed some unnecessary complexity!)
155
156 * eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
157 net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
158 stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
159 argument in call to scm_make_vector.
160
9d0b279f
MD
1611998-07-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
162
163 * numbers.h (SCM_NUM2DBL): New macro. Complements SCM_NUMBERP.
164 This macro is useful in applications.
165
dbb25e7f
MD
1661998-06-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
167
168 * load.c (scm_internal_parse_path): Renamed from scm_parse_path.
169 (scm_parse_path, scm_search_path): New Scheme level procedures.
170
171 * load.h (scm_internal_parse_path, scm_parse_path,
172 scm_search_path): Declared.
173
74d6650d
MD
1741998-06-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
175
176 * filesys.c (dirname, basename): New procedures.
177
178 * init.c (scm_boot_guile_1): Removed condition around
179 scm_init_options.
180
181 * dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
182 new data type (guards) for representation of C level guards and
183 data on the wind chain.
184 (scm_internal_dynamic_wind): New function.
185
186 * dynwind.h: Declare scm_internal_dynamic_wind.
187
188 * root.h (scm_root_state): Added scm_cur_loadp.
189
190 * root.c (mark_root): Added comment about cur_loadp.
191
192 * load.c: #include "dynwind.h";
193 (scm_primitive_load): Use scm_inner_dynamic_wind to update
194 scm_cur_loadp.
195
196 * init.c (scm_init_standard_ports): Initialize scm_def_loadp.
197
198 * ports.c (current-load-port): New procedure.
199
391aebfc
MD
2001998-06-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
201
10ccfad7
MD
202 * ioext.c (scm_isatty_p): Accept any kind of data as argument. If
203 not a tty, return #f.
204
391aebfc
MD
205 * regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
206 to Julian Satchell and Roland Kaufmann.)
207
208 * gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
209 (gh_write): Added declaration. (Thanks to Eiichi Takamori.)
210
6dabf6a9
MD
2111998-06-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
212
213 * debug.h, debug.c (scm_start_stack): New function. Implements
214 the guts of old scm_m_start_stack.
215
216 * debug.c (scm_m_start_stack): Use scm_start_stack.
217
218 * init.c (scm_start_stack, scm_restart_stack): Renamed to
219 start_stack and restart_stack. (These have static scope.)
220
daca2816
MD
2211998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
222
223 * readline.c (rl_cleanup_after_signals, rl_free_line_state): New
224 readline functions to come in release 2.3. (Thanks to Chet
225 Ramey.)
226 (handle_errors): Use the above functions.
227
be0ea988
MD
2281998-05-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
229
230 * readline.c: Improvements for readline support: Handle errors
231 better; Implement before-read-hook.
232
2331998-05-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
234
235 * init.c (scm_boot_guile_1), readline.c: Test for
236 HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
237 assure that we have version >= 2.1.)
238
e158e4f4
MD
2391998-05-11 Mikael Djurfeldt <mdj@kenneth>
240
241 * readline.c (scm_add_history): Bugfix: Do strdup before giving
242 away the string to add_history.
56600c45
MD
243 (completion_function): Do completion for readline. (Thanks to
244 Andrew Archibald.)
e158e4f4
MD
245 (scm_filename_completion_function): New procedure: Filename
246 completer.
247 (current_input_getc): New function. Use this one instead of
248 standard getc from readline.
249
250 * throw.c, throw.h (scm_handle_by_throw): New function: This
251 handler throws errors to next handler on the dynwind chain.
252
2531998-05-09 Mikael Djurfeldt <mdj@kenneth>
254
255 * scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
256 used.
257
8bb51def
MD
2581998-05-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
259
260 * procprop.c (scm_i_procedure_arity): New function. Returns arity
261 of procedure.
262 (scm_procedure_properties): Modified to return arity together with
263 other properties.
264 (scm_procedure_property): Added the read-only property `arity'.
265 (scm_set_procedure_property_x): It is an error to set the `arity'
266 property.
267
268 * gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
269 prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
270
271 * procprop.h (scm_sym_arity): New symbol.
272
273 * objects.c (scm_set_object_procedure_x): New procedure: Use this
274 to set the dispatch procedure of an operator or entity object.
275
276 * objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
277 Made procedure slots read-only.
278
279 * eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
280 scm_tcs_cons_gloc case in zero args switch; Fixed args
281 construction for operators in scm_tcs_cons_gloc case in two args
282 switch.
283
680ed4a8
MD
2841998-05-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
285
104d4533
MD
286 * fluids.c: Removed use of assert.h (in order to avoid
287 __eprintf).
288
289 * Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
290
291 * dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
292
680ed4a8
MD
293 * eval.c (SCM_CEVAL): Do more thorough argument checking. This
294 change makes the evaluator safer at the cost of evaluation speed.
295 It handles the case when the user has added a non-immediate
296 improper end of the application form, e.g., `(+ 0 . x)'.
297 (Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
298 minimize the extra cost as much as possible. The new code is
299 enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
300 problem with structs planted directly in the code (e.g. by a
301 macro). This no longer causes segmentation fault. (Thanks to
302 Eric Hanchrow.)
303
304 * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
305 arg `proc' in order to be able to throw errors; New argument
306 checking code.
307
308 * Removed extra #include "debug.h"
309
0935d604
MD
3101998-04-25 Mikael Djurfeldt <mdj@kenneth>
311
312 * scmsigs.c: Declare usleep as returning void on some systems.
2c36126d
MD
313 (scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
314 Satchell.)
0935d604
MD
315
316 * coop.c (usleep): Return void on some systems.
317
f1a5fa3c
MD
3181998-04-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
319
320 * Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
321
322 * coop.c: Changed return type of usleep to int.
323
324 * scmsigs.c (scm_usleep): New procedure; Declare usleep if it
325 isn't found in the OS.
326
327 * iselect.h: #define scm_internal_select select if GUILE_ISELECT
328 isn't enabled. (Thought that I had made this change ages ago...)
329
330 * iselect.c: Declare bzero if not defined by OS.
331
26c41b99
MD
3321998-04-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
333
c3e09ef9
MD
334 * dynl.c (scm_must_free_argv): Fixed memory leak due to negated
335 condition. (Thanks to John Tobey.)
336
337 * continuations.c (scm_make_cont), debug.c (scm_make_memoized,
338 scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
339 A section.
340
341 * __scm.h: Start the long-term project of moving to POSIX threads.
342 Phase 1: Classification of all critical sections.
343 (SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
344 for A sections. (See comments in __scm.h for details.)
345
26c41b99
MD
346 * dynl.c: Only check that HAVE_DLOPEN is defined before loading
347 dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
348
28795b1f
MD
3491998-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
350
351 * Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
352 cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
353 (libpath.h, versiondat.h): Replaced dependency on Makefile with
354 dependencies on $(srcdir)/Makefile.in
355 $(top_builddir)/config.status in order to avoid circularity.
356
357 * script.c (scm_compile_shell_switches): Bugfix: Don't discount i
358 from argc if argc was 0 initially.
359
360 * Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
361 in generation of libpath.h.
362
f2e5c92c
MD
3631998-04-15 Mikael Djurfeldt <mdj@nada.kth.se>
364
365 * Makefile.am (libguile_la_LDFLAGS): Bumped version number of
366 libguile from 2 to 3.
367
a3365d47
MD
3681998-04-14 Mikael Djurfeldt <mdj@nada.kth.se>
369
370 * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
371
fc1d67c4
MD
3721998-04-13 Mikael Djurfeldt <mdj@kenneth>
373
374 * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
375 scm_set_port_column_x, scm_port_filename,
376 scm_set_port_filename_x): Removed optional arguments. Added
377 proper argument checking.
378
379 * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
380 stack size in machine words.
381
382 * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
383 rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings. (Thanks
384