*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
df061ffc
MD
11999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2
3 * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
4 forms now contain the expressions to be dispatched upon instead of
5 depending on a surrounding lambda or let; Generic function
6 dispatch has been optimized; `apply' on a generic function now
7 works a little bit strangely. It uses a trick so that the type
8 dispatch code in SCM_CEVAL can be reused.
9
10 * objects.h, objects.c (scm_apply_generic_env): Added (used by
11 apply).
12 (scm_operator_p): Added.
13 (scm_sym_atdispatch): Added.
14 (scm_set_object_procedure_x): Modified to handle the new style
15 generic functions.
16 (scm_object_procedures): New debugging procedure.
17
524da6b9
MD
181999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
19
df061ffc
MD
20 * eval.c, eval.h (scm_sym_args): Added.
21
22 * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
23
eba96884
MD
24 * feature.c, feature.h (scm_c_run_hook): Added.
25
524da6b9
MD
26 * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
27 cdrxnoap and loopnoap instead of begin and loop.
28
265e6a4d
GH
291999-08-04 Gary Houston <ghouston@easynet.co.uk>
30
31 * ports.c (scm_putc, scm_puts),
32 * unif.c (scm_uniform_array_write): use scm_lfwrite.
33 * ports.c (scm_putc): change type of first argument from int to char.
34
82cc1b11
MD
351999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
36
37 * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
38 SCM_IM_HASH_DISPATCH.
39
40 * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
41 (scm_si_redfined, scm_si_hashsets): Moved.
42
43 * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
44 flag which combines type and status info so that the class
45 redefinition protocol has zero cost during normal execution.
46
31703ab8
GH
471999-08-03 Gary Houston <ghouston@easynet.co.uk>
48
49 * ports.h (scm_ptob_descriptor): include a write procedure again.
50 it's more efficient for unbuffered fports (e.g., sockets.)
51
52 * ports.c (scm_puts): use ptob->write.
53 * vports.c (scm_make_sfptob): set write proc in ptob.
54 * strports.c (scm_make_stptob): set write proc in ptob.
55 * ports.c (write_void_port): new procedure.
56 * vports.c (sf_write): new procedure.
57 * ports.c (scm_lfwrite): use ptob->write.
58 * strports.c (st_write): new procedure.
59 * fports.c (fport_write): new procedure.
60 (scm_make_fptob): set write in ptob to fport_write.
61 * ports.h: prototype for scm_set_port_write.
62 * ports.c (scm_make_port_type): initialise ptob write procedure.
63 (scm_set_port_write): new proc.
64
769f054d
JB
651999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
66
67 * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
68 until we've verified that it is actually a port. (Thanks to
69 Lorentey Karoly.)
70
5678aae0
MD
711999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
72
9ffdde1c
MD
73 * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
74 code, particularly an unnecessary test (len != size, where len ==
75 size). (Was this leftovers from debugging code, or have I missed
76 something profound?)
77
5678aae0
MD
78 * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
79 size. (Thanks to James Dean Palmer.)
80
81 * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
82 (Thanks to Lorentey Karoly.)
83
6e1fd264
MD
841999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
85
86 * eval.c (scm_m_expand_body): Use scm_cons_source.
87
88 * struct.c (scm_print_struct): Use vtable name.
89
90 * print.c (scm_init_print): Set name of print state type.
91
92 * stacks.c (scm_init_stacks): Set name of stack type.
93
b09ef679
MD
941999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
95
cb4832ae
MD
96 * eval.c (SCM_CEVAL): Removed old implementation of internal
97 define.
98
99 * gsubr.c, procprop.h (scm_i_inner_name): Removed.
100
101 * debug.c, debug.h (scm_reverse_lookup): Added.
102 (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
103 internal procedure definitions; Don't use scm_i_inner_name.
104
2a52b429
MD
105 * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
106 New isym operations.
107
b09ef679
MD
108 * eval.h: Added prototypes for multi language support functions.
109
110 * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
111 improper lists in the low-level representation, since that will
112 cause a begin to be prepended at macro expansion.
113
2a52b429
MD
114 * eval.c (scm_cons_source): Version of cons which copies source
115 properties from an existing cell.
6e1fd264 116 (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
2a52b429
MD
117
118 * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
119 procedure source before calling scm_unmemocopy instead of faking
120 an environment.
121
1221998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
123
124 Ported `internal defines' fix from SCM. Original ChangeLog entry:
125
126 1998-07-09 Radey Shouman <radey@colorage.com>
127
128 * eval.c (ceval_1): Modifications to allow rewriting of interal
129 DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
130 body of which it is the CAR is macro expanded by m_expand_body,
131 which rewrites internal DEFINE.
132
133 (m_expand_body): Added.
134
135 (m_macroexp1): Added argument to control error checking:
136 m_expand_body may speculatively expand forms in the wrong
137 environments. Made argument number checks conditional on
138 RECKLESS.
139
140 (m_body): Added, error checks bodies and inserts the ISYM tokens.
141
142 (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
143 call m_body.
144
145 (m_cond): (m_case): (m_quote): Modified to avoid destructively
146 changing their argument forms. Since m_expand_body
147 speculatively macro expands forms the process must be
148 reversible.
149
150 (m_ident_eqp): Fixed to use proper environment.
151
152 (renamed_ident): Added DEFER_INTS_EGC.
153
154 Added prototypes for static functions.
155
156 * eval.c
157
158 (undef_cell): New.
159
160 (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
161 is false, do not produce an error for unbound variables, return a
162 pointer to cell_undef instead.
163
164 (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
165
166 (scm_m_body): New.
167
168 (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
169 destructively changing their argument forms. Since m_expand_body
170 speculatively macro expands forms the process must be reversible.
171
172 (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
173 SCM_IM_LET introduced by named lets.
174
175 (scm_m_letstar): Use scm_m_body instead of bodycheck.
176
177 (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
178 scm_letrec. scm_letrec1 does not check for a null binding and
179 takes an additional argument to specify the ISYM of the body. Use
180 scm_m_body instead of bodycheck.
181
182 (scm_m_let): Use scm_m_body instead of bodycheck.
183
184 (scm_m_expand_body, scm_macroexp): New.
185
186 (unmemocopy): Account for ISYMs introduced by scm_m_body.
187
188 (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
189 check=1. Throw error for internal defined that have not been
190 rewritten by scm_m_expand_body.
191
192 * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
193 Removed prototype for SCM_APPLY.
194
195 * tags.h: Added extern declaration of scm_isymnames.
b09ef679 196
a6ba4ef8
MD
1971999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
198
199 * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
200
201 * lang.c: New file: Beginning of multi-language support.
202
203 * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
204
205 * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
206 (scm_dynamic_wind): Added argument checking for the after guard so
207 that we don't add garbage on the dynwind chain.
208 (scm_swap_bindings): Added.
209
210 * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
211 SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
212 (scm_isymnames): New isyms for multi-language support.
213
214 * eval.c (scm_nil, scm_t): New symbols.
215 (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
216 forms for multi-language support.
217
259529f2
MD
2181999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
219
220 * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
221 Added.
222 Renamed functions in the random function library interface
223 from scm_i_XXX --> scm_c_XXX.
224
1b9c3dae
GH
2251999-07-25 Gary Houston <ghouston@easynet.co.uk>
226
227 * ports.c (scm_putc): fix line-buffering.
228
544e9093
MD
2291999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
230
231 * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
232 scm_set_ptob_XXX --> scm_set_port_XXX.
233
f15913d0
MD
2341999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
235
236 * ports.c, ports.h (scm_make_port_type): New interface for
237 creation of port types (replaces scm_newptob). Just as for the
238 smobs, we need to separate the internal representation of smob
239 types from the interface, so that we easily can add new fields and
240 rearrange things without caring about backward compatibility.
241 This change was forced by the need in GOOPS to create classes
242 representing port types.
243 (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
244 scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
245 scm_set_ptob_seek, scm_set_ptob_truncate,
246 scm_set_ptob_input_waiting_p): New setters.
247 (scm_newptob): Rewritten to use scm_make_port_type. For backward
248 compatibility.
249 (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
250 (scm_prinport): Removed.
251 (scm_port_print): Added.
252 (scm_print_port_mode): Added.
253 (void_port_ptob, print_void_port, close_void_port, noop0):
254 Removed. Removed #include "genio.h" Added #include "objects.h",
255 #include "smobs.h"
256
257 * fports.c (prinfport): Moved code from ports.c.
258 (local_free): Added.
259 (scm_fptob): Removed. Instead use new interface.
260 (scm_make_fptob): Added. (Need to create basic ports in a
261 specific order in ports.c.)
262
263 * strports.c (scm_stptob, prinstpt, noop0): Removed
264 (scm_make_stptob): Added.
265
266 * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
267 (scm_make_sfport): Added.
268
269 * filesys.c (scm_dir_print): Don't use the port printing code.
270 Instead provide specific directory printer.
271
272 * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
273
274 * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
275 scm_ptob_descriptor.
276
277 * smob.c (scm_smob_print): Handle non-existing type name nicely.
278 Removed #include "genio.h"
279
280 * objects.c (scm_make_port_classes): New function ptr.
281
69bc9ff3
GH
2821999-07-24 Gary Houston <ghouston@easynet.co.uk>
283
284 * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
285
286 * ports.c (scm_truncate_file): renamed from scm_ftruncate.
287 allow the 1st argument to be a fdes or filename as well as a
288 port (as in the filesys.c version).
289
290 * filesys.c (scm_truncate_file): removed.
291
096d0b15
MD
2921999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
293
294 * readline.c, readline.h: Removed.
295
296 * objects.c, objects.h (scm_port_class): Added.
297 (scm_class_of): Look up port class in scm_port_class.
298 (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
299 SCM_INOUT_PCLASS_INDEX): Added.
300
f15913d0
MD
301
302 * Makefile.am: Removed genio.c, genio.x.
303
304 * genio.c: Removed.
305
aafe2718
MD
3061999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
307
308 * init.c: Make sure that scm_post_boot_init_modules is called only
309 once. (Important when using a dumped image.; Thanks to Bernard
310 Urban.)
311
3144e1a9
JB
3121999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
313
8e1e60f1
JB
314 * guardians.c (scm_guardian_zombify): Separate scanning for
315 zombies from marking the pairs of the free list.
316
a825bb0e
JB
317 * guardians.c (scm_guardian_zombify): Don't set marks manually ---
318 use the macros. (Thanks to Michael Livshin.)
319
4d4c53ac
JB
320 * eval.c (scm_m_lambda): Let bodycheck check the body of the
321 lambda. Let your sins be purified by the blood of the lambda.
322 (Thanks to Eric Hanchrow.)
323
d9ad6919
JB
324 * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
325 (Thanks to Valdis Kletnieks.)
326
3144e1a9 327