*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
cce0d8d0
MD
11999-08-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2
3 * backtrace.c, debug.c, eval.c, eval.h, gsubr.c, procprop.h,
4 read.c, srcprop.c, srcprop.h (scm_i_filename, scm_i_line,
5 scm_i_column, scm_i_copy, scm_i_name, scm_i_lambda, scm_i_source,
6 scm_i_more, scm_i_procname, scm_i_dot, scm_i_arrow, scm_i_else,
7 scm_i_unquote, scm_i_uq_splicing, scm_i_apply, scm_i_enter_frame,
8 scm_i_apply_frame, scm_i_exit_frame, scm_i_trace, scm_i_quote,
9 scm_i_begin, scm_i_if, scm_i_and, scm_i_or, scm_i_case,
10 scm_i_cond, scm_i_letstar, scm_i_do, scm_i_quasiquote,
11 scm_i_define, scm_i_letrec, scm_i_let, scm_i_atapply,
12 scm_i_atcall_cc, scm_i_breakpoint): Renamed: Consequently use
13 scm_sym_ as prefix for symbols.
14
15 * debug.c (scm_i_proc, scm_i_args, scm_i_eval_args): Removed.
16
17 * eval.c, eval.h (scm_sym_begin, scm_sym_if, scm_sym_and,
18 scm_sym_case, scm_sym_cond, scm_sym_letstar, scm_sym_do,
19 scm_sym_define, scm_sym_letrec, scm_sym_atapply,
20 scm_sym_atcall_cc): Made global.
21
8b7840b9
MD
221999-08-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
23
24 * eval.c (scm_sym_args): Made global.
25
26 * objects.c (scm_set_object_procedure_x): Disallow setting of
27 procedures for pure generic functions.
28
c94577b4
GH
291999-08-12 Gary Houston <ghouston@easynet.co.uk>
30
31 * ports.c (scm_seek): one more: was scm_lseek. Also changed the
32 Scheme name from lseek to seek, but lseek was added recently so
33 it shouldn't be a big problem.
34 * ports.c, gdbint.c, ioext.c: changed callers.
35
affc96b5
GH
361999-08-11 Gary Houston <ghouston@easynet.co.uk>
37
38 * fports.c (fport_input_waiting): if select is used, return 1
39 instead of whatever FD_ISSET expands to. maybe it will be useful
40 to interpret the value from the input_waiting ptob procedure as a
41 lower bound on the number of bytes available.
42
43 * Mikael asked for a few names to be changed...
44
45 * ports.c (scm_make_port_type): take the write procedure as the
46 second argument instead of the flush procedure.
47 * ports.h (scm_ptob_descriptor): rename the ptob procedures:
48 fflush -> flush, read_flush -> end_input, fclose -> close,
49 fill_buffer -> fill_input, ftruncate -> truncate,
50 input_waiting_p -> input_waiting.
51
52 * ports.c (end_input_void_port): was read_flush_void_port.
53 (scm_set_port_end_input): was scm_set_port_flush_input.
54 (scm_set_port_flush): was scm_set_port_write.
55 (scm_set_port_input_waiting): was scm_set_port_input_waiting_p
56 (scm_end_input): was scm_read_flush.
57 (scm_fill_input): was scm_fill_buffer.
58 (scm_flush): was scm_fflush.
59 * fports.c (fport_input_waiting): renamed from fport_input_waiting_p.
60 (fport_end_input): was local_read_flush.
61 (fport_flush): was local_fflush.
62 (fport_close): was local_fclose.
63 (fport_truncate): was local_ftruncate.
64 (fport_seek): was local_seek.
65 (fport_free): was local_free.
66 (fport_fill_input): was fport_fill_buffer.
67 * strports.c (st_end_input): was st_read_flush.
68 (st_truncate): was st_ftruncate.
69 * vports.c: (sf_flush): was sfflush.
70 (sf_close): was sfclose.
71 (sf_fill_input): was sf_fill_buffer.
72
73 * ports.c, fports.c, strports, vports.c, ioext.c, unif.c, filesys.c:
74 change callers.
75
8b7840b9 76>>>>>>> 1.602
df061ffc
MD
771999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
78
79 * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
80 forms now contain the expressions to be dispatched upon instead of
81 depending on a surrounding lambda or let; Generic function
82 dispatch has been optimized; `apply' on a generic function now
83 works a little bit strangely. It uses a trick so that the type
84 dispatch code in SCM_CEVAL can be reused.
85
86 * objects.h, objects.c (scm_apply_generic_env): Added (used by
87 apply).
88 (scm_operator_p): Added.
89 (scm_sym_atdispatch): Added.
90 (scm_set_object_procedure_x): Modified to handle the new style
91 generic functions.
92 (scm_object_procedures): New debugging procedure.
93
524da6b9
MD
941999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
95
df061ffc
MD
96 * eval.c, eval.h (scm_sym_args): Added.
97
98 * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
99
eba96884
MD
100 * feature.c, feature.h (scm_c_run_hook): Added.
101
524da6b9
MD
102 * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
103 cdrxnoap and loopnoap instead of begin and loop.
104
265e6a4d
GH
1051999-08-04 Gary Houston <ghouston@easynet.co.uk>
106
107 * ports.c (scm_putc, scm_puts),
108 * unif.c (scm_uniform_array_write): use scm_lfwrite.
109 * ports.c (scm_putc): change type of first argument from int to char.
110
82cc1b11
MD
1111999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
112
113 * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
114 SCM_IM_HASH_DISPATCH.
115
116 * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
117 (scm_si_redfined, scm_si_hashsets): Moved.
118
119 * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
120 flag which combines type and status info so that the class
121 redefinition protocol has zero cost during normal execution.
122
31703ab8
GH
1231999-08-03 Gary Houston <ghouston@easynet.co.uk>
124
125 * ports.h (scm_ptob_descriptor): include a write procedure again.
126 it's more efficient for unbuffered fports (e.g., sockets.)
127
128 * ports.c (scm_puts): use ptob->write.
129 * vports.c (scm_make_sfptob): set write proc in ptob.
130 * strports.c (scm_make_stptob): set write proc in ptob.
131 * ports.c (write_void_port): new procedure.
132 * vports.c (sf_write): new procedure.
133 * ports.c (scm_lfwrite): use ptob->write.
134 * strports.c (st_write): new procedure.
135 * fports.c (fport_write): new procedure.
136 (scm_make_fptob): set write in ptob to fport_write.
137 * ports.h: prototype for scm_set_port_write.
138 * ports.c (scm_make_port_type): initialise ptob write procedure.
139 (scm_set_port_write): new proc.
140
769f054d
JB
1411999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
142
143 * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
144 until we've verified that it is actually a port. (Thanks to
145 Lorentey Karoly.)
146
5678aae0
MD
1471999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
148
9ffdde1c
MD
149 * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
150 code, particularly an unnecessary test (len != size, where len ==
151 size). (Was this leftovers from debugging code, or have I missed
152 something profound?)
153
5678aae0
MD
154 * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
155 size. (Thanks to James Dean Palmer.)
156
157 * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
158 (Thanks to Lorentey Karoly.)
159
6e1fd264
MD
1601999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
161
162 * eval.c (scm_m_expand_body): Use scm_cons_source.
163
164 * struct.c (scm_print_struct): Use vtable name.
165
166 * print.c (scm_init_print): Set name of print state type.
167
168 * stacks.c (scm_init_stacks): Set name of stack type.
169
b09ef679
MD
1701999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
171
cb4832ae
MD
172 * eval.c (SCM_CEVAL): Removed old implementation of internal
173 define.
174
175 * gsubr.c, procprop.h (scm_i_inner_name): Removed.
176
177 * debug.c, debug.h (scm_reverse_lookup): Added.
178 (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
179 internal procedure definitions; Don't use scm_i_inner_name.
180
2a52b429
MD
181 * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
182 New isym operations.
183
b09ef679
MD
184 * eval.h: Added prototypes for multi language support functions.
185
186 * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
187 improper lists in the low-level representation, since that will
188 cause a begin to be prepended at macro expansion.
189
2a52b429
MD
190 * eval.c (scm_cons_source): Version of cons which copies source
191 properties from an existing cell.
6e1fd264 192 (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
2a52b429
MD
193
194 * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
195 procedure source before calling scm_unmemocopy instead of faking
196 an environment.
197
1981998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
199
200 Ported `internal defines' fix from SCM. Original ChangeLog entry:
201
202 1998-07-09 Radey Shouman <radey@colorage.com>
203
204 * eval.c (ceval_1): Modifications to allow rewriting of interal
205 DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
206 body of which it is the CAR is macro expanded by m_expand_body,
207 which rewrites internal DEFINE.
208
209 (m_expand_body): Added.
210
211 (m_macroexp1): Added argument to control error checking:
212 m_expand_body may speculatively expand forms in the wrong
213 environments. Made argument number checks conditional on
214 RECKLESS.
215
216 (m_body): Added, error checks bodies and inserts the ISYM tokens.
217
218 (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
219 call m_body.
220
221 (m_cond): (m_case): (m_quote): Modified to avoid destructively
222 changing their argument forms. Since m_expand_body
223 speculatively macro expands forms the process must be
224 reversible.
225
226 (m_ident_eqp): Fixed to use proper environment.
227
228 (renamed_ident): Added DEFER_INTS_EGC.
229
230 Added prototypes for static functions.
231
232 * eval.c
233
234 (undef_cell): New.
235
236 (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
237 is false, do not produce an error for unbound variables, return a
238 pointer to cell_undef instead.
239
240 (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
241
242 (scm_m_body): New.
243
244 (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
245 destructively changing their argument forms. Since m_expand_body
246 speculatively macro expands forms the process must be reversible.
247
248 (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
249 SCM_IM_LET introduced by named lets.
250
251 (scm_m_letstar): Use scm_m_body instead of bodycheck.
252
253 (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
254 scm_letrec. scm_letrec1 does not check for a null binding and
255 takes an additional argument to specify the ISYM of the body. Use
256 scm_m_body instead of bodycheck.
257
258 (scm_m_let): Use scm_m_body instead of bodycheck.
259
260 (scm_m_expand_body, scm_macroexp): New.
261
262 (unmemocopy): Account for ISYMs introduced by scm_m_body.
263
264 (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
265 check=1. Throw error for internal defined that have not been
266 rewritten by scm_m_expand_body.
267
268 * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
269 Removed prototype for SCM_APPLY.
270
271 * tags.h: Added extern declaration of scm_isymnames.
b09ef679 272
a6ba4ef8
MD
2731999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
274
275 * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
276
277 * lang.c: New file: Beginning of multi-language support.
278
279 * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
280
281 * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
282 (scm_dynamic_wind): Added argument checking for the after guard so
283 that we don't add garbage on the dynwind chain.
284 (scm_swap_bindings): Added.
285
286 * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
287 SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
288 (scm_isymnames): New isyms for multi-language support.
289
290 * eval.c (scm_nil, scm_t): New symbols.
291 (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
292 forms for multi-language support.
293
259529f2
MD
2941999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
295
296 * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
297 Added.
298 Renamed functions in the random function library interface
299 from scm_i_XXX --> scm_c_XXX.
300
1b9c3dae
GH
3011999-07-25 Gary Houston <ghouston@easynet.co.uk>
302
303 * ports.c (scm_putc): fix line-buffering.
304
544e9093
MD
3051999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
306
307 * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
308 scm_set_ptob_XXX --> scm_set_port_XXX.
309
f15913d0
MD
3101999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
311
312 * ports.c, ports.h (scm_make_port_type): New interface for
313 creation of port types (replaces scm_newptob). Just as for the
314 smobs, we need to separate the internal representation of smob
315 types from the interface, so that we easily can add new fields and
316 rearrange things without caring about backward compatibility.
317 This change was forced by the need in GOOPS to create classes
318 representing port types.
319 (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
320 scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
321 scm_set_ptob_seek, scm_set_ptob_truncate,
322 scm_set_ptob_input_waiting_p): New setters.
323 (scm_newptob): Rewritten to use scm_make_port_type. For backward
324 compatibility.
325 (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
326 (scm_prinport): Removed.
327 (scm_port_print): Added.
328 (scm_print_port_mode): Added.
329 (void_port_ptob, print_void_port, close_void_port, noop0):
330 Removed. Removed #include "genio.h" Added #include "objects.h",
331 #include "smobs.h"
332
333 * fports.c (prinfport): Moved code from ports.c.
334 (local_free): Added.
335 (scm_fptob): Removed. Instead use new interface.
336 (scm_make_fptob): Added. (Need to create basic ports in a
337 specific order in ports.c.)
338
339 * strports.c (scm_stptob, prinstpt, noop0): Removed
340 (scm_make_stptob): Added.
341
342 * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
343 (scm_make_sfport): Added.
344
345 * filesys.c (scm_dir_print): Don't use the port printing code.
346 Instead provide specific directory printer.
347
348 * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
349
350 * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
351 scm_ptob_descriptor.
352
353 * smob.c (scm_smob_print): Handle non-existing type name nicely.
354 Removed #include "genio.h"
355
356 * objects.c (scm_make_port_classes): New function ptr.
357
69bc9ff3
GH
3581999-07-24 Gary Houston <ghouston@easynet.co.uk>
359
360 * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
361
362 * ports.c (scm_truncate_file): renamed from scm_ftruncate.
363 allow the 1st argument to be a fdes or filename as well as a
364 port (as in the filesys.c version).
365
366 * filesys.c (scm_truncate_file): removed.
367
096d0b15
MD
3681999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
369
370 * readline.c, readline.h: Removed.
371
372 * objects.c, objects.h (scm_port_class): Added.
373 (scm_class_of): Look up port class in scm_port_class.
374 (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
375 SCM_INOUT_PCLASS_INDEX): Added.
376
f15913d0
MD
377
378 * Makefile.am: Removed genio.c, genio.x.
379
380 * genio.c: Removed.
381
aafe2718
MD
3821999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
383
384 * init.c: Make sure that scm_post_boot_init_modules is called only
385 once. (Important when using a dumped image.; Thanks to Bernard
386 Urban.)
387
3144e1a9
JB
3881999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
389
8e1e60f1
JB
390 * guardians.c (scm_guardian_zombify): Separate scanning for
391 zombies from marking the pairs of the free list.
392
a825bb0e
JB
393 * guardians.c (scm_guardian_zombify): Don't set marks manually ---
394 use the macros. (Thanks to Michael Livshin.)
395
4d4c53ac
JB
396 * eval.c (scm_m_lambda): Let bodycheck check the body of the
397 lambda. Let your sins be purified by the blood of the lambda.
398 (Thanks to Eric Hanchrow.)
399
d9ad6919
JB
400 * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
401 (Thanks to Valdis Kletnieks.)
402
3144e1a9 403