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