*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
ad3ff75b
MD
11998-11-10 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
2
3 * eval.c (scm_copy_tree): Copy source properties if existent.
4
5 * debug.c (scm_start_stack): Copy source when evaluating. (If we
6 don't, we may end up passing memoized source to a transformer.)
7
29672a5c
MD
81998-11-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
9
7a13c3ae
MD
10 * stack.c (get_applybody): Help function which lookups the first
11 body form of the apply closure.
12 (read_frames): Prevent the source of the first form of the apply
13 closure from being recorded. This would only be confusing.
e40a5fc8 14
29672a5c
MD
15 * debug.h (SCM_SET_MACROEXP, SCM_CLEAR_MACROEXP, SCM_MACROEXPP):
16 Replaces SCM_MACROFRAME, SCM_MACROFRAMEP.
17
18 * eval.c (SCM_CEVAL): Use SCM_SET/CLEAR_MACROEXP.
19
20 * stacks.c (read_frame): Bugfix: Removed lingering `else'
21 statement.
22 (read_frames): Use SCM_MACROEXPP.
23
56977059 241998-11-10 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
7c939801
MD
25
26 * stacks.c (read_frames): Skip gsubr frames in backtraces. (They
27 don't contain interesting information since all arguments are
28 present in the frame which applies the compiled closure anyway.);
29 Skip the transformer application frames.
56977059
MD
30
31 * print.c (scm_iprin1): Print gsubrs as primitives.
32
fc4c5795
MD
331998-11-09 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
34
35 * debug.h (SCM_MACROFRAME, SCM_MACROFRAMEP): New frame type.
36
37 * eval.c (SCM_CEVAL): Mark macro frames at `handle_a_macro' so
38 that we can identify these in a backtrace. (This change doesn't
39 introduce any significant speed penalty.)
40
41 * eval.c: Added note about `serial-map' using scm_map.
42
43 * read.c, read.h (scm_read_options, scm_read_opts): Removed
44 readline options. They should reside in their own options array.
45
46 * readline.c, readline.h (scm_readline_options,
47 scm_readline_opts): Moved readline options here.
48
68d15e3e
MD
491998-11-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
50
51 * readline.c (scm_read_history, scm_write_history): Bugfix: Use
52 SCM_ROCHARS instead of SCM_CHARS.
53
54 * ports.c (scm_unread_string): Bugfixes: Check for SCM_STRINGP,
55 not SCM_ROSTRINGP; use SCM_ROUCHARS instead of SCM_UCHARS.
56
44e0a162
MD
571998-11-06 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
58
59 * ports.h (SCM_CUC): #define as ~SCM_CRDY instead of 0x001fffffL.
60 This is quite important since the latter clears the
61 FPORT_READ_SAFE and FPORT_WRITE_SAFE flags causing flushes at
62 every single character read...
63
99317654
MD
641998-11-03 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
65
66 * print.c (scm_iprin1): Removed suspect looking (and indeed
67 malevolent) semicolon after test for user supplied closure print
68 procedure. (Thanks to Telford Tendys.)
69
70 * list.c (scm_sloppy_memq): Removed sloppy_mem_check.
71 (scm_memq, scm_memv, scm_member): Do argument checking *before*
72 starting to search the list. Removed call to sloppy_mem_check.
73
74 * list.c, list.h (scm_delq1_x, scm_delv1_x, scm_delete1_x): New
75 procedures: Same as scm_delq_x et al, but delete maximally one
76 element.
77
78 * options.c (scm_options, scm_init_options): GC-protect option
79 values of type SCM. (Thanks to Telford Tendys.)
80
d0b7bad7
MD
811998-11-01 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
82
83 * eval.c: Don't #define scm_lookupcar to scm_lookupcar1. Instead
84 make sure that there always is a "real" scm_lookupcar.
85
9cb84fbb
MD
861998-11-01 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
87
88 * read.c, read.h (history-length, history-file): New read options.
89 (scm_read_options): Stifle history to history length.
90
fc4c5795
MD
91 * readline.c (scm_read_history, scm_write_history): New
92 procedures.
9cb84fbb 93
4ecb8428
MD
941998-10-31 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
95
96 * eval.h (scm_macro_eval_x): Removed declaration.
97
98 * eval.c (scm_s_expression, scm_s_test, scm_s_body,
99 scm_s_bindings, scm_s_variable, scm_s_clauses, scm_s_formals):
100 Renamed and made global.
101
102 * eval.c, eval.h (SCM_EVALIM): Renamed from EVALIM.
103 (SCM_XEVAL, SCM_XEVALCAR): Renamed from XEVAL, XEVALCAR.
104
105 * evalext.c, evalext.h: New files. Contain non-R5RS things
106 having to do with evaluation.
107
fc4c5795
MD
108 * evalext.c (scm_serial_map): New procedure: Version of `map'
109 which guarantees that the procedure is applied to the lists in
110 serial order.
111 (scm_m_sequence_to_list): New syntax: Version of `begin' which
112 returns a list of the results of the body forms instead of the
113 result of the last body form.
4ecb8428
MD
114 (scm_definedp, scm_m_undefine): Moved from eval.c
115
116 * evalext.h (scm_m_sequence_to_list): Added declaration.
117
118 * macros.c, macros.h: New files.
fc4c5795
MD
119 (scm_procedure_to_syntax, scm_procedure_to_macro,
120 scm_procedure_to_memoizing_macro, scm_macro_p, scm_macro_type,
121 scm_macro_name, scm_macro_transformer): Moved from eval.c
4ecb8428
MD
122 (scm_make_synt): Moved from eval.c
123
fc4c5795
MD
124 * procs.c, procs.h (scm_procedure_documentation): Moved from
125 eval.c.
4ecb8428
MD
126
127 * init.c (scm_boot_guile_1): Added calls to scm_init_macros and
128 scm_init_evalext.
129
130 * Makefile.am: Added evalext.c, evalext.h, macros.c, macros.h.
131
35c96965
MD
132 * debug.c, print.c: Added #include "macros.h".
133
4d362308
MD
1341998-10-29 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
135
136 This change adds the ability to use `unread-char' multiple times
137 without interspersed reads and adds the new procedure
138 `unread-string'. The change is optimized for the common case of
139 unreading a single character. This is also the reason behind the
140 choice to store characters in the port itself: in most cases no
141 extra malloc is required.
142
143 The amount of code in some macros in ports.h has been increased to
144 the extent that they would fit better as C functions, but, since
145 this code belongs to the port representation, such functions
146 should be placed in ports.c which would cause calls back and forth
147 between ports.c and genio.c. That is not good for performance.
148 Also, keeping them as macros allows the compiler to do some
149 optimizations which are needed to make the current interface
150 (SCM_CRDYP, SCM_CGETUN, SCM_TRY_CLRDY) efficient.
151
152 One benchmark (Guile startup time) indicates an increase of
153 loading speed of 1%. Another (reading (using `read') boot-9.scm
154 10 times) shows no change in performance.
155
156 (Caveat: Since Gary is redesigning I/O anyway, no big efforts were
157 made to find a beautiful solution.)
158
159 * ports.h (SCM_CLRDY, SCM_CUNGET, SCM_CGETUN): Rewritten.
160 (SCM_TRY_CLRDY): New macro: Only clear the first unread
161 character. (SCM_CLRDY clears all.)
162 (SCM_N_READY_CHARS): New macro: Returns number of unread
163 characters in a port. Returns wrong answer if SCM_CRDYP is false.
164 (struct scm_port_table): New fields: `entry' contains port table
165 index, `cp' points to last unread char, `cbuf' is the buffer for
166 unread chars, `cbufend' points after end of the character buffer.
167
168 * ports.h, ports.c (scm_unread_string): New procedure.
169 (scm_grow_port_cbuf): New function.
170
171 * ports.c (scm_add_to_port_table, scm_remove_from_port_table):
172 Handle new fields.
173 (scm_generic_fgets), fports.c (local_fgets): Use a loop
174 to read unread characters. Use SCM_TRY_CLRDY instead of
175 SCM_CLRDY.
176
177 * ioext.c (scm_ftell): Use SCM_N_READY_CHARS to correct position.
178
179 * genio.c (scm_getc): Use SCM_TRY_CLRDY instead of SCM_CLRDY.
180
181 * genio.c, genio.h (scm_ungets): New function.
182
183 * genio.c (scm_puts): Removed mysterious TRANSCRIPT_SUPPORT code
184 sections.
185
22c88b3f
MD
1861998-10-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
187
188 * threads.h (scm_thread_sleep, scm_thread_usleep): Fixed
189 declarations. (Thanks to Russ McManus.)
190
3ffc7a36
MD
1911998-10-26 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
192
193 * numbers.c (num2long): As a software archeologist, I'm proud of
194 this finding! :) Preliminary dating suggests an almost 4 year old
195 remnant from the SCM ancestor. The sample has been removed from
196 the finding site and is now safely stored in the repository.
197
198 * numbers.h: Removed prototype for num2long.
199
200 * unif.c (scm_array_set_x): Use scm_num2long instead of num2long.
201
202 * gh_data.c (gh_scm2doubles): Make it possible to pass result
203 array as second arg.
204 (gh_chars2byvect, gh_shorts2svect, gh_floats2fvect, gh_scm2chars,
205 gh_scm2shorts, gh_scm2longs, gh_scm2floats): New functions.
206 * gh.h: Updated and added prototypes.
207
208 * gh_data.c (gh_ints2scm): Handle integers outside INUM limits.
209
cc720f64
JB
2101998-10-24 Jim Blandy <jimb@zwingli.cygnus.com>
211
212 * gc.h: Remove all uses of SCM_P. (Thanks to Richard Polton.)
213
214 * guile-snarf.in: Never generate an empty file. (Thanks to
215 Richard Polton.)
216
217 * gh.h (gh_enter, gh_new_procedure0_0, gh_new_procedure0_1,
218 gh_new_procedure0_2, gh_new_procedure1_0, gh_new_procedure1_1,
219 gh_new_procedure1_2, gh_new_procedure2_0, gh_new_procedure2_1,
220 gh_new_procedure2_2, gh_new_procedure3_0, gh_new_procedure4_0,
221 gh_new_procedure5_0): Specify argument types, to appease C++
222 compilers. (Thanks to Brad Bowman.)
223
224 Bug reports from Russ McManus:
225 * guile-snarf.in: If the CPP environment variable is set, use that
226 as the C preprocessor, instead of the preprocessor autoconf
227 found.
228 * snarf.h (SCM_PROC): Cast the function pointer passed to
229 scm_make_gsubr, to satisfy C++.
230
231 * gh_eval.c (gh_eval_str_with_catch, gh_eval_file_with_catch):
232 Use the handler passed, instead of ignoring it and using
233 gh_standard_handler. (Thanks to Etienne Bernard.)
234
5469b4a1
JB
2351998-10-20 Jim Blandy <jimb@zwingli.cygnus.com>
236
237 * ports.h: Put text after #endif in comment. (Thanks to Nicolas
238 Neuss.)
239
f4be1689
JB
2401998-10-19 Jim Blandy <jimb@zwingli.cygnus.com>
241
1f6fe22a
JB
242 * __scm.h, alist.c, async.c, async.h, backtrace.h, chars.c,
243 continuations.c, debug.c, debug.h, dynl-dl.c, dynl.c, dynl.h,
244 dynwind.c, dynwind.h, eq.c, error.c, error.h, eval.c, eval.h,
245 feature.c, filesys.c, filesys.h, fports.c, fports.h, gc.c, gc.h,
246 genio.c, genio.h, gh.h, gh_data.c, gsubr.c, gsubr.h, hash.c,
247 hashtab.c, init.c, init.h, ioext.c, ioext.h, kw.c, libguile.h,
248 list.c, list.h, load.c, load.h, mallocs.c, markers.c,
249 mit-pthreads.c, net_db.c, numbers.c, numbers.h, options.c,
250 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
251 procprop.h, procs.c, procs.h, ramap.c, ramap.h, regex-posix.c,
252 regex-posix.h, root.c, root.h, scmsigs.c, scmsigs.h, script.c,
253 script.h, simpos.c, simpos.h, smob.c, smob.h, snarf.h, socket.c,
254 srcprop.c, stackchk.c, stackchk.h, stacks.c, stime.c, stime.h,
255 strings.c, strings.h, strports.c, struct.c, struct.h, symbols.c,
256 symbols.h, tags.h, threads.c, throw.h, unif.c, variable.c,
257 vectors.c, vectors.h, version.h, vports.c, weaks.c: Update
258 copyright years.
259
f4be1689
JB
260 * script.c (scm_compile_shell_switches): Define
261 use-emacs-interface in the root module, so the repl code can see
262 it. See today's change to top-repl in ice-9/boot-9.scm.
263
264 * filesys.c (set_element, get_element): Make sure that `element'
265 is a cell before applying SCM_FPORTP to it. (Thanks to Jost
266 Boekemeier and Jorgen "forcer" Schaefer.)
267
2681998-10-18 Jim Blandy <jimb@zwingli.cygnus.com>
269
270 * chars.c (scm_charnames): In ASCII character name table, make
271 newlines print as #\newline by default, not #\nl.
272
273 * Makefile.am (libguile_la_SOURCES, BUILT_SOURCES): Put these in
274 alphabetical order. Oh thrills. But it helps me know how far
275 along in the compilation I am.
276 * Makefile.in: Regenerated.
277
05c33d09
MD
2781998-10-18 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
279
280 * unif.c (scm_raprin1): Changed print syntax for byte vectors from
281 #bytes(...) to #y(...), and syntax for short vectors from
282 #short(...) to #h(...). This may seem nutty, but, like the other
283 uniform vectors, byte vectors and short vectors want to have the
284 same print and read syntax (and, more basic, want to have read
285 syntax!). Changing the read syntax to use multiple characters
286 after the hash sign breaks with the conventions used in R5RS and
287 the conventions used for the other uniform vectors. It also
288 introduces complexity in the current reader, both on the C and
289 Scheme levels. (The Right solution is probably to change the
290 syntax and prototypes for uniform vectors entirely.)
291
1aab20ac
JB
2921998-10-17 Jim Blandy <jimb@savonarola.red-bean.com>
293
294 Don't use local_fgets on sockets; ftell doesn't work on sockets.
295 (Thanks to Jorgen "forcer" Schaefer.)
296 * ports.h (SCM_NOFTELL): New flag.
297 * fports.c (local_fgets): If it's set, use the generic fgets.
298 * socket.c (scm_socket): Set SCM_NOFTELL on the ports we produce.
299
97c524bd
MD
3001998-10-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
301
302 * script.c (scm_compile_shell_switches): Add handling of -q switch
303 (inhibit loading of user init file).
304 (scm_shell_usage): Add usage text for -q switch.
305 (scm_compile_shell_switches): Always load user init file first if
306 it is loaded at all.
307
70445040
JB
3081998-10-16 Jim Blandy <jimb@zwingli.cygnus.com>
309
310 * stime.c: The CPP hair to determine a value for CLKTCK is weird,
311 and is now broken under NetBSD. I can't fathom what it's trying
312 to do, so I've replaced it with something that I do understand,
313 which seems to work, and which isn't broken on NetBSD. "Progress?
314 You Decide." (Thanks to Perry Metzger.)
315
316 * regex-posix.c (scm_regexp_exec): Add a cast to remove a
317 signed/unsigned comparison.
318
6e6e2bbc
JB
3191998-10-15 Jim Blandy <jimb@zwingli.cygnus.com>
320
321 Warning fixes from Greg Harvey:
322 * unif.c (scm_array_set_x): initializer for pos
323 * throw.c (scm_ithrow): added initializer for jmpbuf (SCM_UNDEFINED)
324 * struct.c (scm_struct_ref, scm_struct_set_x): Added
325 initializers for field_type, since EGCS so desparately wants to
326 play dumb
327 * debug.h (scm_make_gloc, scm_gloc_p, scm_make_iloc, scm_memcons,
328 scm_mem_to_proc, scm_proc_to_mem, scm_debug_hang): Added prototypes
329 when GUILE_DEBUG is defined.
330 * dynwind.h (scm_wind_chain): Same.
331 * ports.h (scm_pt_size, scm_pt_member): Same.
332 * print.h (scm_current_pstate): Same.
333 * procs.h (scm_make_cclo): Same.
334
eebc12c6
JB
3351998-10-14 Jim Blandy <jimb@zwingli.cygnus.com>
336
a437d8a2
JB
337 Handle short and long long uniform arrays properly. (Thanks to
338 Clark McGrew.)
339 * ramap.c (scm_ra_matchp, scm_array_fill_int, scm_array_index_map_x,
340 raeql_1): Add cases for scm_tc7_svect (short vectors) and
341 scm_tc7_llvect (long long vectors).
342
343 Change the way libguile and boot-9.scm are timestamped, to try to
344 get rid of these spurious mismatch warnings. Now both
345 libguile/versiondat.h and ice-9/version.scm are generated directly
346 by the configuration process, rather than having version.scm
347 generated directly, and libguile/versiondat.h generated by the
348 Makefile, which is generated by configure. It seems that
349 sometimes the Makefile would change, but versiondat.h depends on
350 Makefile.in, not Makefile, so it wouldn't get rebuilt.
351 * Makefile.am (versiondat.h): Target removed; this is generated
352 directly by the configure script now.
353 (BUILT_SOURCES): Remove versiondat.h.
354 * versiondat.h.in: New file, transformed by the configure script
355 into versiondat.h.
356 * Makefile.in: Regenerated.
357
731a0a68
JB
358 * (__scm.h, alist.c, eval.c, feature.c, gsubr.c, numbers.c,
359 options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS ->
360 SCM_CAUTIOUS; this way, 1) there's only one version of each flag
361 to define (we used to have both RECKLESS and SCM_RECKLESS), and 2)
362 if we want to use them in a header file some day, we can. (Thanks
363 to Michael Livshin.)
364
ae6f9e24
JB
365 * stime.c (scm_get_internal_real_time): Do the arithmetic using
366 SCM numbers, so we won't have rollover problems; the range of a
367 signed long in milliseconds is about 25 days. (Thanks to Karl
368 Hegbloom.)
369
70445040 370 Don't redefine sleep and usleep; fix this problem now.
eebc12c6
JB
371 * coop.c (sleep, usleep): Remove declarations; we don't use or
372 redefine these any more.
373 (scm_thread_usleep, scm_thread_sleep): New functions which do the
374 job of usleep and sleep in a thread-friendly way. We can use
375 these in the rest of Guile. Define versions for systems both with
376 and without iselect.
377 * threads.h (scm_thread_usleep, scm_thread_sleep): New declarations.
378 * scmsigs.c (usleep): Clean up oddities declaring usleep; since
379 we're just using it, not redefining it, we can use a K&R style
380 declaration here.
381 (sleep): Declare this, too, if the system hasn't.
382 (scm_sleep, scm_usleep): Use scm_thread_sleep and
383 scm_uthread_sleep if they're available; otherwise, just call the
384 system functions.
385 * scmconfig.h.in: Regenerated.
386
387 * coop.c (scm_thread_sleep): Make `slept' an unsigned long.
388
389 * coop.c (coop_sleephelp): Remove ANSI #ifdef hair.
390
94e3e95e
JB
3911998-10-12 Jim Blandy <jimb@zwingli.cygnus.com>
392
cb9728ed
JB
393 * threads.c: Doc fix.
394
395 The argument type of usleep varies from system to system,
396 as does the return type. We really shouldn't be redefining usleep
397 at all, but I don't have time to clean that up before the 1.3.
398 release. It's on the schedule for afterwards. (Thanks to Julian
399 Satchell.)
400 * coop.c (usleep): Use USLEEP_ARG_TYPE in prototype and
401 definition.
402 * scmsigs.c (usleep): Use USLEEP_ARG_TYPE in prototype.
403 * scmconfig.h: Regenerated.
404
94e3e95e
JB
405 * simpos.c (scm_software_type): Procedure deleted. This isn't the
406 right way to handle system variation. Autoconf's approach is the
407 way and the light.
408 * simpos.h (scm_software_type): Declaration deleted.
409
410 * script.c (scm_find_executable): Don't test if unix is #defined
411 here; first, NetBSD doesn't #define it, and second, it's the wrong
b1d6e336 412 way to go about these things. (Thanks to Perry Metzger.)
94e3e95e
JB
413 (dld_find_executable): Delete this MSDOS support code. This isn't
414 the way we want to support this; it needs to be rethunk at a
415 larger scale.
416
417 * genio.c (scm_do_read_line): Don't just politely check that the
418 line was either non-empty or EOF. Abort if it's empty and not
419 EOF.
420
5f964025
JB
4211998-10-11 Jim Blandy <jimb@zwingli.cygnus.com>
422
81aef0ba
JB
423 * scmconfig.h.in: Regenerated.
424
335df0e8
JB
425 * libguile.h: Don't omit the dynamic linking functions. (Thanks
426 to Greg Badros.)
427
5f964025
JB
428 * genio.c (scm_do_read_line): Count lines correctly when the file
429 doesn't end in a newline.
430
17f8d40c
JB
4311998-10-10 Jim Blandy <jimb@zwingli.cygnus.com>
432
216d3a1e
JB
433 * genio.c (scm_do_read_line): Maintain the line count correctly.
434 (Thanks to Harvey J. Stein and Greg Harvey.)
435
17f8d40c
JB
436 * gc.c (scm_return_first): Remove #ifdef __STDC__ garbage; Guile
437 requires ANSI now.
438
439 * numbers.c (big2str): Protect t from garbage collection until
440 we're done. (Thanks to Gary Houston.)
441
31b9e767
JB
4421998-10-09 Jim Blandy <jimb@zwingli.cygnus.com>
443
c6ff295e
JB
444 * Makefile.am (libguile_la_LDFLAGS): Increment shared library
445 version number.
446 * Makefile.in: Regenerated.
447
31b9e767
JB
448 * fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
449 scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
450 SCM_P macro.
451
452 Do magic to mix reads and writes on stdio FILE-based ports.
0445f9f2 453 (Thanks to Christian Lynbech.)
31b9e767
JB
454 * fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
455 New macros.
456 (pre_read, pre_write): New functions.
457 (local_fgetc, local_fgets, local_ffwrite, local_fputc,
458 local_fputs): Call them.
459 (local_fflush): Mark the port as ready for reading and writing.
460 (scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
461 flags on new port objects. This might not be accurate --- who
462 knows what state the FILE * is in when we get it --- but it won't
463 do extraneous calls to fflush or fseek, so it's no worse than the
464 behavior before this change.
465 * ports.h: Add comment.
466
467 Centralize the creation of port objects based on stdio FILE * in
468 fports.c; don't just throw them together anywhere.
469 * fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
470 what the rest of Guile wants. Don't set the revealed count;
471 that's only appropriate for stdin, stdout, stderr.
472 (scm_standard_stream_to_port): This function does set the revealed
473 count.
474 * init.c (scm_init_standard_ports): Use scm_standard_stream_to_port,
475 not scm_stdio_to_port.
476 * filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
477 * fports.c (scm_open_file): Same.
478 * posix.c (scm_pipe): Same.
479 * socket.c (scm_sock_fd_to_port): Same.
480 * ioext.c (scm_fdopen): Same.
481 (scm_freopen): Moved from here to...
482 * fports.c (scm_freopen): ... here. This is really something that
483 munges the internals of an fport, so it should go here.
484 * fports.h (scm_stdio_to_port): Adjust prototype.
485 (scm_standard_stream_to_port, scm_freopen): New protoypes.
486 * ioext.h (scm_freopen): Prototype removed.
487
488 * filesys.c (set_element, get_element): This can work on both pipe
489 and file ports, so use SCM_FPORTP to typecheck, instead of testing
490 for scm_tc16_fport.
491
492 * scmconfig.h.in: Regenerated.
493
494 Change the definition of the functions in scm_ptobfuns so that
495 they get passed the port object, not the port's stream.
496 * ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
497 * gc.c (scm_gc_sweep): Pass the port itself to the free function.
498 * genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
499 Pass the port itself to the scm_ptobs function.
500 * ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
501 scm_generic_fgets): Same.
502 (putc_void_port, puts_void_port, write_void_port, flush_void_port,
503 getc_void_port, fgets_void_port, close_void_port): Just change the
504 argument names; these functions don't really do anything.
505 * fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
506 local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
507 port as an argument, and use SCM_STREAM to get the stdio FILE *.
508 Also, use prototyped definitions, and get rid of the extra
509 declarations.
510 (scm_fptob, scm_pipob): We don't need casts here any more.
511 * strports.c (prinstpt): Use prototype declarations.
512 (stputc, stwrite, stputs, stgetc): Take the port as an argument,
513 and use SCM_STREAM to get the string info. Also, use prototyped
514 definitions, and get rid of the extra declarations.
515 * vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
516 noop0): Same.
517
518 * ports.h (scm_ptobfuns): Replace uses of SCM_P with a straight
519 prototype; it's okay (preferred, even!) to use ANSI C in Guile.
520
521 * fports.c (local_fgetc, local_fgets): Renamed from scm_fgetc and
522 scm_fgets, for consistency.
523 (scm_fptop, scm_pipob): References updated.
524
6d921cd6
JB
5251998-10-08 Jim Blandy <jimb@zwingli.cygnus.com>
526
527 Include the source location in error messages for scripts.
528 * init.c (scm_boot_guile_1): Use scm_internal_lazy_catch, so the
529 stack is still there when we catch the error.
530 * throw.c (handler_message): If we are handling an error with a
531 message, then put together the proper arguments and call
532 scm_display_error, instead of scm_display_error_message. That
533 displays source location, if it can find it.
534
13af3048
JB
5351998-10-07 Jim Blandy <jimb@zwingli.cygnus.com>
536
a8e05009
JB
537 * gc.c (scm_unprotect_object): Change this so that calls to
538 scm_protect_object and scm_unprotect_object nest properly.
539 (scm_protect_object): Doc fixes.
540
3c0a54bd
JB
541 * strings.c (scm_string_set_x): Require the argument to be a
542 writable string, not a substring or a symbol.
543 * strings.h (SCM_RWSTRINGP, SCM_NRWSTRINGP): New predicates.
74f87516
JB
544 (Thanks to John Redford and Charbel Jacquin.)
545
13af3048
JB
546 * scmconfig.h.in: Regenerated; ../acconfig.h has changed.
547
6ea669d7
JB
5481998-10-07 Jim Blandy <jimb@totoro.red-bean.com>
549
550 * eval.c (safe_setjmp): Remove this misunderstanding.
551 (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Replace with references to
552 ordinary setjmp.
553
2d0937bc
JB
5541998-10-06 Jim Blandy <jimb@zwingli.cygnus.com>
555
556 * libguile.h: Mark these as C declarations, for compilation by C++
557 compilers.
558
559 * snarf.h (SCM_PROC, SCM_PROC1): Remove very odd code in #ifdef
560 __cplusplus clause. I seriously doubt this ever worked the way
561 the author seems to have intended.
562
5631998-10-05 Jim Blandy <jimb@zwingli.cygnus.com>
564
565 Utterly needless cleanups to hopelessly messy code.
566 * ports.c: Doc fixes.
567 (scm_fflush): Moved to ...
568 * genio.c (scm_fflush): ... here, amongst all the other port
569 method invocation functions.
570 * genio.h, ports.h: The prototype moves too.
571
53314947
JB
5721998-10-04 Jim Blandy <jimb@zwingli.cygnus.com>
573
8b49142f
JB
574 * backtrace.c (display_error_body): The current frame does not
575 always have a parent frame; consider a function called directly
576 from the MAIN_FUNC passed to scm_boot_guile. (Thanks to Maciej
577 Stachowiak.)
578
53314947
JB
579 * alloca.c (alloca): Undo yesterday's changes, and simply call
580 malloc directly for storage, and abort if we don't get what we
581 want. The situation is much simpler --- just call malloc. Emacs
582 has bizarre/evil requirements (signal handlers might malloc unless
583 you set this global flag, so you have to set the flag around all
584 calls to malloc) which we are certainly not going to conform to,
585 so we can do the simple and obvious thing.
586
587 * coop.c (coop_condition_variable_wait): Make this function
588 static. It's only useful internally --- you should never just
589 wait on a condition variable.
590 * coop-defs.h (coop_condition_variable_wait): Delete prototype.
591
026065b7
JB
5921998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
593
7265de70
JB
594 * unif.c (scm_array_set_x): Accept any kind of number as an
595 element for a uniform vector of doubles. This is more consistent
596 with Scheme's view of numbers. (Thanks to Miroslav Silovic.)
597
a9fe62cb
JB
598 * alloca.c: Use scm_must_malloc to obtain storage. Hopefully this
599 works; I can't conveniently test it myself. (Thanks to Dvid
600 Tillman for the bug report.)
601
026065b7
JB
602 * init.c: Doc fixes.
603
604 * init.c (invoke_main_func): Load the startup files (boot-9.scm)
605 from here, not from scm_compile_shell_switches (which is a pretty
606 dumb place to do it).
607 (scm_load_startup_files): New function.
608 (scm_ice_9_already_loaded): Variable moved to here from script.c.
609 * script.c (scm_compile_shell_switches): Don't load the startup
610 files here.
611 (scm_ice_9_already_loaded): Variable moved.
612 * init.c (scm_load_startup_files): Prototype for new function.
613 * gh_init.c (gh_enter): Doc fix.
614
1aab20ac 6151998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
541716d1
JB
616
617 Some anti-warning changes from Greg Harvey.
618 * gh_data.c (gh_scm2doubles): Initialize m, to avoid compiler
619 warnings when it doesn't understand our NORETURN declarations in
620 error.h.
621 * posix.c (scm_mknod): Similar.
622
f9d12ce8
JB
6231998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
624
625 * posix.c (scm_getpwuid): If we can't find an entry, return our
626 own message, instead of using scm_syserror --- the getpwMUMBLE
627 functions don't set `errno' to anything interesting.
628
1aab20ac 6291998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
0553d3a2
JB
630
631 Get rid of warnings from the cooperative threading system.
632 * threads.h (scm_single_thread_p, scm_yield,
633 scm_call_with_new_thread, scm_join_thread, scm_make_mutex,
634 scm_lock_mutex, scm_unlock_mutex, scm_make_condition_variable,
635 scm_wait_condition_variable, scm_signal_condition_variable): Add
636 prototypes for these Scheme-visible functions.
637 * coop-defs.h (coop_next_runnable_thread,
638 coop_wait_for_runnable_thread_now, coop_wait_for_runnable_thread):
639 Prototypes for these here, even though they're from iselect.c.
640 (coop_condition_variable_wait, coop_join): Add prototypes.
641 * coop-threads.c (scm_threads_free_thread, scm_threads_free_mutex,
642 scm_threads_free_condvar): Make these smob functions static.
643 * coop-threads.h (coop_init): Give this a real prototype.
644 * coop.c: #include <unistd.h>, if we have it, for `usleep' and `sleep'.
645 (coop_next_runnable_thread): No need to provide prototype; it's in
646 coop-defs.h.
647
648 * scmconfig.h.in: .detarenegeR
649
650 * iselect.c, threads.c: Doc fixes.
651
235bb3fe
JB
6521998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
653
654 * Makefile.in: Regenerated with a patched automake, to get
655 dependency generation right when using EGCS.
656
657 * inet_aton.c (inet_aton): Add prototype, to remove compiler
658 warning. (Thanks to Robert Pluim.)
659
660 * inet_aton.c (inet_aton): Reassure the compiler that the
661 arguments to the <ctype.h> macros are all unsigned characters, not
662 signed characters.
663
1aab20ac 6641998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
83d1c666
JB
665
666 Getting rid of more warnings...
667 * iselect.c: Test for MISSING_BZERO_DECL, not DECLARE_BZERO; see
668 today's change to ../configure.in.
669 * scmsigs.c: Test for MISSING_USLEEP_DECL, not DECLARE_USLEEP.
670 * scmconfig.h.in: Regenertaded.de.,.__
671 * stime.c (strptime): Declare this, #ifdef MISSING_STRPTIME_DECL.
672 (scm_localtime, scm_mktime): Use a const char * to manipulate the
673 time zone name.
674
675 * readline.c: Doc fix.
676 (rl_cleanup_after_signal, rl_free_line_state): Make these static.
677 * readline.h (scm_filename_completion_function): Add prototype.
678 (scm_init_readline): Make this into a prototype.
679
680 * readline.c (scm_filename_completion_function): Use SCM_PROC to
681 declare this, instead of calling scm_make_subr manually.
682
1aab20ac 6831998-10-02 Jim Blandy <jimb@savonarola.red-bean.com>
83d1c666
JB
684
685 * readline.h (scm_init_readline): Add prototype for this.
686 (scm_init_readline): Make this a real prototype.
687
94c0b3b8
JB
6881998-09-30 Jim Blandy <jimb@zwingli.cygnus.com>
689
690 Warning fixes from Maciej Stachowiak:
691 * backtrace.h (scm_display_application, scm_backtrace): Add
692 prototypes.
693 * debug.c (scm_m_start_stack): Make this function static.
694 * fluids.h (scm_fluid_p): Add prototype.
695 * procprop.c (scm_i_procedure_arity): Make this function static.
696 * regex-posix.c (scm_regexp_error_msg): Make this function static.
697 * regex-posix.h (scm_init_regex_posix): Use prototype, not K&R decl.
698 * root.h (scm_dynamic_root): Add external prototype.
699 * scmsigs.h (scm_usleep): Add external prototype.
700 * script.h (scm_init_script): Use prototype, not K&R decl.
701 * stacks.h (scm_stack_id): Add external prototype.
702 * symbols.h (scm_sysintern0_no_module_lookup): Add external prototype.
703
dc9f6d6a
MG
7041998-09-30 Mark Galassi <rosalia@cygnus.com>
705
706 * gh.h: took out the definitions of vset and vref, since they are
707 replaced by the proper vector routines that correspond to the R4RS
708 procedures.
709
61a9ba48
JB
7101998-09-29 Jim Blandy <jimb@totoro.red-bean.com>
711
94c0b3b8 712 * snarf.h (SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): New macros;
61a9ba48
JB
713 these are analogous to SCM_VCELL and SCM_GLOBAL_VCELL but take a
714 third argument, a C expression that should result in a SCM value,
715 which is used to initialize the variable. Reimplemented
716 SCM_CONST_LONG in terms of SCM_VCELL_INIT. (Thanks to Maciej
717 Stachowiak.)
718
719 * version.h (scm_libguile_config_stamp): Add prototype.
720 (From Maciej Stachowiak.)
721
9a3c1149
JB
7221998-09-26 Jim Blandy <jimb@zwingli.cygnus.com>
723
724 * eval.c (scm_force): Assert that x is SCM_NIMP to fix segv when
725 (force 9) is tried. (Thanks to Karl M. Hegbloom.)
726
52591c80
JB
7271998-09-06 Jim Blandy <jimb@zwingli.cygnus.com>
728
6925bc4e
JB
729 * print.c (scm_iprin1): Rather than having one i, and using it in
730 several places, declare a fresh i local to each block where it is
731 used, and give it a signedness appropriate to its use in each case.
732 (scm_iprlist): Same.
733
734 * print.c (scm_iprin1): Add cast to avoid unsigned/signed
735 comparison warnings.
736
737 * print.c (ENTER_NESTED_DATA): Make i an unsigned long, to avoid
738 signed/unsigned clashes.
739
740 * posix.h (scm_tmpnam): Added prototype.
741
52591c80
JB
742 * objects.h (scm_set_object_procedure_x, scm_make_class_object,
743 scm_make_subclass_object): Add external prototypes.
744
745 * numbers.c (scm_mkbig): Add cast, and note that signed/unsigned
746 comparison is okay here.
747
748 * numbers.c (scm_istr2int): Add cast; len is known to be positive.
749
750 * numbers.c (scm_bigcomp): Clarify logic, and avoid relying on the
751 (true, but confusing) fact that -1 == ((unsigned) 0 - 1).
752
753 * numbers.c (scm_adjbig): Make nsiz an scm_sizet, to avoid mixing
754 signed/unsigned.
755
756 * load.c (swap_port): Make this function static.
757
758 * load.c (scm_search_path): Make max_path_len and max_ext_len
759 unsigned, since they're compared against string sizes.
760
761 * load.c (init_build_info): Make i unsigned.
762
763 * ioext.h (scm_read_line): Add prototype.
764
765 * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
766 scm_hash_fn_remove_x): Make hash bucket index local variable k
767 unsigned. Use scm_ulong2num to pass it to SCM_ASSERT as
768 accurately as possible.
769
770 * gh_data.c (gh_set_substr): Add casts to avoid signed/unsigned
771 comparisons, and range checking to make sure those casts are
772 harmless.
2d2c87e1
JB
773
774 * stackchk.h (SCM_STACK_OVERFLOW_P): Change definition to avoid
775 signed/unsigned comparisons.
776
777 * smob.c (scm_numsmob): Make this an int, not an scm_sizet, to
778 avoid signed/unsigned comparisons.
779 * smob.h (scm_numsmob): Change extern declaration to match.
780
781 * ports.c (scm_numptob): Make this an int, not an scm_sizet, to
782 avoid signed/unsigned comparisons.
783 * ports.h (scm_numptob): Change extern declaration to match.
784 (scm_current_load_port, scm_set_port_line_x,
785 scm_set_port_column_x): New prototypes.
786
787 * gsubr.c (GSUBR_TEST): Don't #define this. Nobody's using the
788 test code, and it causes warnings.
789
790 * gh.h (gh_int2scmb, gh_uniform_vector_length,
791 gh_uniform_vector_ref): Added prototypes.
792
793 * Makefile.am (libguile_la_SOURCES): Include Scheme-level
794 debugging support unconditionally. That's backtrace.c, stack.c,
795 debug.c, and srcprop.c.
796 (EXTRA_libguile_la_SOURCES): Omit those from here.
797 * Makefile.in: Regenerated.
798
a9b70caf
MD
7991998-08-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
800
801 * options.c (scm_options): Bugfix: Allow empty list of options!
802
803 * debug.c, debug.h (scm_single_step): Removed.
804 (scm_with_traps): New procedure. This procedure could easily be
805 written in Scheme but needs to be highly optimized.
806
807 * eval.h, eval.c: New evaluator trap flag: SCM_TRAPS_P.
808
809 * eval.c (SCM_CEVAL, SCM_APPLY): Removed resetting of trap flags.
810 Check SCM_TRAPS_P before trapping.
811
6dd78771
JB
8121998-07-30 Jim Blandy <jimb@zwingli.cygnus.com>
813
814 Changes to avoid signed/unsigned comparison warnings.
815 * gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
816 (scm_gc_sweep): Make n and j local to the blocks they're used in,
817 so they can have appropriate types for each application. Make i
818 signed. Use initializers in some spots. I'll probably pay for
819 all this tweaking.
820 (scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
821 (scm_must_realloc): Make nm unsigned.
822 (init_heap_seg): Make new_seg_index and n_new_objects signed.
823 (scm_init_storage): Use prototype-style definition, and make the
824 argument unsigned.
825 * gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
826 scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
827
828 * filesys.c (scm_readlink): Make local vars rv and size ints, to
829 avoid signed/unsigned comparison warnings, and because the return
830 value of readlink may be -1. Don't bother casting the third
831 argument to readlink.
832
833 * filesys.c (scm_dirname, scm_basename): Move these to their own
834 page, at the end of the file.
835 * filesys.h (scm_dirname, scm_basename): Add prototypes for these.
836
837 * eval.h (scm_eval_options_interface): Add external prototype for this.
838 * eval.c (scm_eval_options_interface): Use prototype-style def'n.
839
840 * eval.c (scm_lookupcar1): Make this static.
841
842 * dynl.h (scm_registered_modules, scm_clear_registered_modules):
843 Make these prototype declarations, not K&R-style.
844
845 * chars.c (scm_tables_prehistory): Add cast, to remove signed/
846 unsigned comparison warning.
847
848 * appinit.c: File removed. It had a single function in it, empty,
849 whose reason for existence is explained in no documentation or
850 comment. I think it's there as a default for some Tcl-style
851 initialization, but Tcl abandoned that approach a while ago.
852 * Makefile.am (libguile_la_SOURCES): Remove appinit.c.
853 (BUILT_SOURCES): Remove appinit.x.
854 * Makefile.in: Regenerated.
855
0dcbc17a
JB
8561998-07-29 Jim Blandy <jimb@zwingli.cygnus.com>
857
858 * Makefile.in: Regenerated using the last public version of
859 automake, not the hacked Cygnus version.
860
1f5ae2fd
JB
8611998-07-28 Jim Blandy <jimb@zwingli.cygnus.com>
862
863 Remove Totoro kludge.
864 * Makefile.in, scmconfig.h.in: Regenerated.
865 * init.c, readline.c: Don't check if TOTORO is #defined.
866
e99cbcd6
JB
8671998-07-26 Jim Blandy <jimb@zwingli.cygnus.com>
868
869 * Makefile.am: Adjust for new thread configuration system.
870 (INCLUDES): Include the value of THREAD_CPPFLAGS.
871 (guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
872 THREAD_LIBS.
873 (THREAD_LIBS): Definition deleted; automake will generate such
874 things automatically.
875 * Makefile.in: Regenerated.
876
87148d9e
JB
8771998-07-23 Jim Blandy <jimb@zwingli.cygnus.com>
878
879 Simplify smob and port marking; set the mark bit in the generic
880 marking code, and make marker routines only responsible for
881 turning up outgoing pointers.
882 * gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
883 before calling the marking function. Don't call the marking
884 function if it's zero.
885 * markers.c (scm_mark0): Just return #f. This function isn't
886 necessary at all now, but it's harmless to call it. We'll leave
887 it in so other folks' code doesn't croak at link time.
888 (scm_markcdr): Don't call SCM_SETGC8MARK.
889 * async.c (mark_async): Don't call SCM_SETGC8MARK.
890 * dynl.c (mark_dynl_obj): Same.
891 * root.c (mark_root): Same.
892 * srcprop.c (marksrcprops): Same.
893 * unif.c (markra): Same.
894 * variable.c (scm_markvar): Same.
895 * ports.c (scm_markstream): Same.
896 (void_port_ptob): Specify zero for our marking function.
897 * debug.c (debugobjsmob): Same.
898 * dynwind.c (guardsmob): Same.
899 * filesys.c (dir_smob): Same.
900 * fluids.c (fluid_smob): Same.
901 * fports.c (scm_fptob, scm_pipob): Same.
902 * mallocs.c (mallocsmob): Same.
903 * regex-posix.c (regex_t_smob): Same.
904 * smob.c (freecell, flob, bigob): Same.
905 * threads.c (thread_smob, mutex_smob, condvar_smob): Same.
906 * throw.c (jbsmob, lazy_catch_funs): Same.
907
3910272e
MD
9081998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
909
910 * eval.c (scm_copy_tree): Reverted last change: `eval' uses
911 scm_copy_tree on code in order not to let memoized code to leak
912 out. Thus, scm_copy_tree needs to copy vectors as well since
913 quasiquote can introduce evaluated code also inside vector
914 constants.
915
240ed1e5
MD
9161998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
917
918 * eval.c (scm_copy_tree): Removed ability to copy vectors.
919
920 * gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
921 gh_ulongs2uvect): New procedures. (Complements gh_doubles2scm and
922 gh_doubles2dvect.)
923
924 * unif.c: Say that ivect and uvect are of type signed and unsigned
925 long instead of int in commentary so that it correctly describes
926 the implementation.
927
5ef81022
MD
9281998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
929
930 * stime.c: Removed declaration of strptime. (It should be
931 declared by the system headers. If it turns out that some systems
932 don't, we'll handle that then.) (Thanks to Greg Troxel.)
933
934 * stime.h: Renamed TIMEH --> STIMEH
935
936 * backtrace.c (scm_display_error, scm_display_backtrace): In order
937 to increase portability, don't use structure assignment.
938 (Thanks to Nicolas Neuss.)
939
940 * iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
941 portability.
942 (finalize_fd_sets): Added empty statement after last case label.
943 (Thanks to Nicolas Neuss.)
944
945 * gc.c (scm_igc): Changed //-comment into /*-comment. (Thanks to
946 Nicolas Neuss.)
947
212d45b8
MD
948Sat Jul 11 22:08:21 1998 Mikael Djurfeldt <mdj@totoro.red-bean.com>
949
950 * init.c, readline.c: OK, I won't have these readline.x bug
951 reports anymore. We've had them since April. The current reason
952 is a completely unintelligible failure of totoro.red-bean.com to
953 do the test for rl_getc_function in libreadline correctly. This
954 kludge overrides the test if we're on totoro so that the snapshot
955 generation process can work.
956
957 * readline.c: Define a strdup replacement if not existent on system.
958
43eeb5a6
MD
9591998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
960
961 * vectors.c, vectors.h (scm_make_vector): Removed third argument.
962 This change makes scm_make_vector R5RS compatible. We cannot keep
963 the third argument since people want to be able to deduce the form
964 of the C function call only by looking at R5RS. (At the same time
965 we have removed some unnecessary complexity!)
966
967 * eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
968 net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
969 stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
970 argument in call to scm_make_vector.
971
9d0b279f
MD
9721998-07-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
973
974 * numbers.h (SCM_NUM2DBL): New macro. Complements SCM_NUMBERP.
975 This macro is useful in applications.
976
dbb25e7f
MD
9771998-06-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
978
979 * load.c (scm_internal_parse_path): Renamed from scm_parse_path.
980 (scm_parse_path, scm_search_path): New Scheme level procedures.
981
982 * load.h (scm_internal_parse_path, scm_parse_path,
983 scm_search_path): Declared.
984
74d6650d
MD
9851998-06-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
986
987 * filesys.c (dirname, basename): New procedures.
988
989 * init.c (scm_boot_guile_1): Removed condition around
990 scm_init_options.
991
992 * dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
993 new data type (guards) for representation of C level guards and
994 data on the wind chain.
995 (scm_internal_dynamic_wind): New function.
996
997 * dynwind.h: Declare scm_internal_dynamic_wind.
998
999 * root.h (scm_root_state): Added scm_cur_loadp.
1000
1001 * root.c (mark_root): Added comment about cur_loadp.
1002
1003 * load.c: #include "dynwind.h";
1004 (scm_primitive_load): Use scm_inner_dynamic_wind to update
1005 scm_cur_loadp.
1006
1007 * init.c (scm_init_standard_ports): Initialize scm_def_loadp.
1008
1009 * ports.c (current-load-port): New procedure.
1010
391aebfc
MD
10111998-06-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1012
10ccfad7
MD
1013 * ioext.c (scm_isatty_p): Accept any kind of data as argument. If
1014 not a tty, return #f.
1015
391aebfc
MD
1016 * regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
1017 to Julian Satchell and Roland Kaufmann.)
1018
1019 * gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
1020 (gh_write): Added declaration. (Thanks to Eiichi Takamori.)
1021
6dabf6a9
MD
10221998-06-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
1023
1024 * debug.h, debug.c (scm_start_stack): New function. Implements
1025 the guts of old scm_m_start_stack.
1026
1027 * debug.c (scm_m_start_stack): Use scm_start_stack.
1028
1029 * init.c (scm_start_stack, scm_restart_stack): Renamed to
1030 start_stack and restart_stack. (These have static scope.)
1031
daca2816
MD
10321998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1033
1034 * readline.c (rl_cleanup_after_signals, rl_free_line_state): New
1035 readline functions to come in release 2.3. (Thanks to Chet
1036 Ramey.)
1037 (handle_errors): Use the above functions.
1038
be0ea988
MD
10391998-05-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1040
1041 * readline.c: Improvements for readline support: Handle errors
1042 better; Implement before-read-hook.
1043
10441998-05-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1045
1046 * init.c (scm_boot_guile_1), readline.c: Test for
1047 HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
1048 assure that we have version >= 2.1.)
1049
e158e4f4
MD
10501998-05-11 Mikael Djurfeldt <mdj@kenneth>
1051
83d1c666
JB
1052 * readline.c (scm_readline): Defer interrupts while we're calling
1053 readline.
1054
e158e4f4
MD
1055 * readline.c (scm_add_history): Bugfix: Do strdup before giving
1056 away the string to add_history.
56600c45
MD
1057 (completion_function): Do completion for readline. (Thanks to
1058 Andrew Archibald.)
e158e4f4
MD
1059 (scm_filename_completion_function): New procedure: Filename
1060 completer.
1061 (current_input_getc): New function. Use this one instead of
1062 standard getc from readline.
1063
1064 * throw.c, throw.h (scm_handle_by_throw): New function: This
1065 handler throws errors to next handler on the dynwind chain.
1066
10671998-05-09 Mikael Djurfeldt <mdj@kenneth>
1068
1069 * scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
1070 used.
1071
8bb51def
MD
10721998-05-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1073
1074 * procprop.c (scm_i_procedure_arity): New function. Returns arity
1075 of procedure.
1076 (scm_procedure_properties): Modified to return arity together with
1077 other properties.
1078 (scm_procedure_property): Added the read-only property `arity'.
1079 (scm_set_procedure_property_x): It is an error to set the `arity'
1080 property.
1081
1082 * gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
1083 prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
1084
1085 * procprop.h (scm_sym_arity): New symbol.
1086
1087 * objects.c (scm_set_object_procedure_x): New procedure: Use this
1088 to set the dispatch procedure of an operator or entity object.
1089
1090 * objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
1091 Made procedure slots read-only.
1092
1093 * eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
1094 scm_tcs_cons_gloc case in zero args switch; Fixed args
1095 construction for operators in scm_tcs_cons_gloc case in two args
1096 switch.
1097
680ed4a8
MD
10981998-05-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1099
104d4533
MD
1100 * fluids.c: Removed use of assert.h (in order to avoid
1101 __eprintf).
1102
1103 * Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
1104
1105 * dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
1106
680ed4a8
MD
1107 * eval.c (SCM_CEVAL): Do more thorough argument checking. This
1108 change makes the evaluator safer at the cost of evaluation speed.
1109 It handles the case when the user has added a non-immediate
1110 improper end of the application form, e.g., `(+ 0 . x)'.
1111 (Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
1112 minimize the extra cost as much as possible. The new code is
1113 enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
1114 problem with structs planted directly in the code (e.g. by a
1115 macro). This no longer causes segmentation fault. (Thanks to
1116 Eric Hanchrow.)
1117
1118 * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
1119 arg `proc' in order to be able to throw errors; New argument
1120 checking code.
1121
1122 * Removed extra #include "debug.h"
1123
0935d604
MD
11241998-04-25 Mikael Djurfeldt <mdj@kenneth>
1125
1126 * scmsigs.c: Declare usleep as returning void on some systems.
2c36126d
MD
1127 (scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
1128 Satchell.)
0935d604
MD
1129
1130 * coop.c (usleep): Return void on some systems.
1131
f1a5fa3c
MD
11321998-04-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1133
1134 * Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
1135
1136 * coop.c: Changed return type of usleep to int.
1137
1138 * scmsigs.c (scm_usleep): New procedure; Declare usleep if it
1139 isn't found in the OS.
1140
1141 * iselect.h: #define scm_internal_select select if GUILE_ISELECT
1142 isn't enabled. (Thought that I had made this change ages ago...)
1143
1144 * iselect.c: Declare bzero if not defined by OS.
1145
26c41b99
MD
11461998-04-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1147
c3e09ef9
MD
1148 * dynl.c (scm_must_free_argv): Fixed memory leak due to negated
1149 condition. (Thanks to John Tobey.)
1150
1151 * continuations.c (scm_make_cont), debug.c (scm_make_memoized,
1152 scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
1153 A section.
1154
1155 * __scm.h: Start the long-term project of moving to POSIX threads.
1156 Phase 1: Classification of all critical sections.
1157 (SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
1158 for A sections. (See comments in __scm.h for details.)
1159
26c41b99
MD
1160 * dynl.c: Only check that HAVE_DLOPEN is defined before loading
1161 dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
1162
28795b1f
MD
11631998-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1164
1165 * Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
1166 cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
1167 (libpath.h, versiondat.h): Replaced dependency on Makefile with
1168 dependencies on $(srcdir)/Makefile.in
1169 $(top_builddir)/config.status in order to avoid circularity.
1170
1171 * script.c (scm_compile_shell_switches): Bugfix: Don't discount i
1172 from argc if argc was 0 initially.
1173
1174 * Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
1175 in generation of libpath.h.
1176
f2e5c92c
MD
11771998-04-15 Mikael Djurfeldt <mdj@nada.kth.se>
1178
1179 * Makefile.am (libguile_la_LDFLAGS): Bumped version number of
1180 libguile from 2 to 3.
1181
a3365d47
MD
11821998-04-14 Mikael Djurfeldt <mdj@nada.kth.se>
1183
1184 * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
1185
fc1d67c4
MD
11861998-04-13 Mikael Djurfeldt <mdj@kenneth>
1187
1188 * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
1189 scm_set_port_column_x, scm_port_filename,
1190 scm_set_port_filename_x): Removed optional arguments. Added
1191 proper argument checking.
1192
1193 * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
1194 stack size in machine words.
1195
1196 * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
1197 rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings. (Thanks
1198