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