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