(scm_read_0str, scm_eval_0str): Call scm_c_read_string and
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
9a97e362
DH
12001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
2
3 * unif.c (scm_array_set_x): The variable args does not
4 necessarily have to be a list. Further, got rid of a redundant
5 SCM_NIMP test.
6
592996c9
DH
72001-06-30 Dirk Herrmann <D.Herrmann@tu-bs.de>
8
9 * list.c (SCM_I_CONS): Make sure the cell type is initialized
10 last.
11
12 * gc.c (s_scm_map_free_list, scm_igc, scm_gc_sweep,
13 init_heap_seg): Fixed signedness.
14
15 (init_heap_seg): Replaced strange for-loop with a while loop.
16
17 * weaks.h (WEAKSH, SCM_WEAKS_H): Rename <foo>H to SCM_<foo>_H.
18
19 (SCM_WVECTP): Prefer !SCM_<pred> over SCM_N<pred>.
20
21 The following patch adds conservative marking for the elements of
22 free or allocated cells.
23
24 * gc.c (allocated_mark, heap_segment): New static functions.
25
26 (which_seg): Deleted, since the functionality is now provided by
27 function heap_segment.
28
29 (map_free_list): Use heap_segment instead of which_seg.
30
31 (MARK): If cell debugging is disabled, mark free cells
32 conservatively.
33
34 (scm_mark_locations, scm_cellp): Extracted the search for the
35 heap segment of a SCM value into function heap_segment.
36
37 (scm_init_storage): Allocated cells must be marked
38 conservatively.
39
40 * gc.[ch] (scm_gc_mark_cell_conservatively): New function.
41
42 The following patch changes the representation of weak vectors to
43 double cells instead of using an extension of the vector's
44 allocated memory.
45
46 * gc.c (MARK): Use SCM_SET_WVECT_GC_CHAIN instead of assigning to
47 the result of SCM_WVECT_GC_CHAIN.
48
49 (scm_gc_sweep): Weak vectors don't have extra fields any more.
50
51 * weaks.c (allocate_weak_vector): New static function. It does
52 not patch any previously created vector object during the
53 construction of a weak vector, and thus doesn't need to switch
54 off interrupts during vector creation.
55
56 (scm_make_weak_vector, scm_make_weak_key_hash_table,
57 scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table):
58 Use allocate_weak_vector to provide the new weak vector object.
59
60 * weaks.h (SCM_WVECT_TYPE, SCM_SET_WVECT_TYPE,
61 SCM_SET_WVECT_GC_CHAIN): New macros. The weak vector subtype is
62 now stored in the double cell.
63
64 (SCM_IS_WHVEC, SCM_IS_WHVEC_V, SCM_IS_WHVEC_B, SCM_IS_WHVEC_ANY):
65 Use SCM_WVECT_TYPE.
66
67 (SCM_WVECT_GC_CHAIN): The weak objects are now chained together
68 using an entry of the double cell.
69
4dadf664
TTN
702001-06-30 Thien-Thi Nguyen <ttn@revel.glug.org>
71
72 * stamp-h.in: bye bye
73
02202352
MV
742001-06-30 Marius Vollmer <mvo@zagadka.ping.de>
75
76 * gh_eval.c (gh_eval_str): Use scm_c_eval_string instead of
77 scm_eval_0str.
78
79 * load.c, load.h (scm_c_primitive_load,
80 scm_c_primitive_load_path): New.
81
82 * strports.c, strports.h (scm_c_read_string): Renamed from
83 scm_read_0str. Also, added "const" qualifier to argument.
84 (scm_c_eval_string): Renamed from scm_eval_0str.
85 (scm_read_0str, scm_eval_0str): Deprecated.
86
df1ad0d1
MG
872001-06-28 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
88
89 * fluids.c (scm_c_with_fluid): Use scm_list_1() instead of
90 SCM_LIST1.
91
1afff620
KN
922001-06-28 Keisuke Nishida <kxn30@po.cwru.edu>
93
94 * list.h (scm_list_1, scm_list_2, scm_list_3, scm_list_4, scm_list_5,
95 scm_list_n): New functions.
96 (SCM_LIST0, SCM_LIST1, SCM_LIST2, SCM_LIST3, SCM_LIST4, SCM_LIST5,
97 SCM_LIST6, SCM_LIST7, SCM_LIST8, SCM_LIST9, scm_listify): Deprecated.
98 (lots of files): Use the new functions.
4dadf664 99
1afff620
KN
100 * goops.c (CALL_GF1, CALL_GF2, CALL_GF3, CALL_GF4): Use scm_call_N.
101
102 * strings.c: #include "libguile/deprecation.h".
103
b858464a
MG
1042001-06-27 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
105
106 * read.c (scm_lreadr): When reading a hash token, check for a
107 user-defined hash procedure first, so that overriding the builtin
108 hash characters is possible (this was needed for implementing
109 SRFI-4's read synax `f32(...)').
4dadf664 110
b858464a
MG
111 * num2integral.i.c: Use scm_t_signed_bits instead of scm_t_bits,
112 because the latter is unsigned now and breaks comparisons like
113 (n < (scm_t_signed_bits)MIN_VALUE).
4dadf664 114
d95c0b76
NJ
1152001-06-26 Neil Jerram <neil@ossau.uklinux.net>
116
117 * eval.h, eval.c (scm_call_4): New function.
118
119 * eval.c (SCM_APPLY, SCM_CEVAL, ENTER_APPLY): Call trap handlers
120 directly rather than dispatching to them via scm_ithrow and a lazy
121 catch.
4dadf664 122
d95c0b76
NJ
123 * eval.c (scm_evaluator_trap_table), eval.h (SCM_ENTER_FRAME_HDLR,
124 SCM_APPLY_FRAME_HDLR, SCM_EXIT_FRAME_HDLR): Add three new options
125 for trap handler procedures.
126
127 * debug.h (SCM_RESET_DEBUG_MODE): Add checks for trap handler
128 procedures not being #f.
129
30e3be5a
ML
1302001-06-27 Michael Livshin <mlivshin@bigfoot.com>
131
132 * Makefile.am (c-tokenize.c): add rule to generate it.
133 (EXTRA_DIST): add c-tokenize.lex, so it gets distributed.
134
135 filter-doc-snarfage.c: remove.
136
82893676
MG
1372001-06-26 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
138
139 * ports.c (scm_output_port_p): Use result of SCM_COERCE_OUTPORT.
140
141 The following set of changes makes compiling Guile under various
142 Windows compilers easier. Compilation under GNU systems should
143 not be affected at all.
144
145 Thanks to Stefan Jahn for all necessary information, patches and
146 testing.
4dadf664 147
82893676
MG
148 * posix.c: Conditialize getpwent, getgrent, kill, getppid, getuid,
149 getpgrp, ttyname, primitive-fork and some header inclusion for
150 Windows.
151
152 * random.c: Define M_PI, if not predefined and use __int64 for
153 LONG64 under Windows.
154
155 * scmsigs.c: Emulate some functions (alarm, sleep, kill) under
156 Windows and conditionalize some signal names.
157
4dadf664 158 * socket.c (scm_getsockopt): Added missing comma.
82893676
MG
159 Include socket library header under Windows.
160
161 * stime.c (CLKTCK): Add cast to int, to make it compile under
162 Windows.
163
164 * ports.c (truncate): New function, compiled only under Windows.
165
166 * net_db.c: Do not declare errno under Windows.
167
168 * iselect.h, inet_aton.c: Include socket library headers under
169 Windows.
170
171 * guile.c (inner_main): Under Windows, initialize socket library
172 and initialize gdb_interface data structures.
173
174 * gdb_interface.h: Under Windows, gdb_interface cannot be
175 initialized statically. Initialize at runtime instead.
176
177 * fports.c (write_all): ssize_t -> size_t.
178 (fport_print): Conditionalize call to ttyname().
179 (getflags): New function, compiled only under Windows.
180
181 * filesys.c: Conditionalize inclusion of <pwd.h>. Conditionalize
182 primitives chown, link, fcntl.
183 (scm_basename, scm_dirname): Under Windows, handle \ as well as /
184 as path seperator.
185
186 * backtrace.c: Include <io.h> under Windows.
187
188 * async.h (ASYNCH, SCM_ASYNC_H): Rename <foo>H to SCM_<foo>_H.
189
190 * _scm.h: Added preprocessor conditional for __MINGW32__ for errno
191 declaration.
192
fdc28395
KN
1932001-06-27 Keisuke Nishida <kxn30@po.cwru.edu>
194
195 * eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
196 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
197 * eval.h (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
198 scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): Declared.
199 * async.c (scm_run_asyncs), coop-threads.c (scheme_body_bootstrip,
200 scheme_handler_bootstrip), debug.c (with_traps_inner), dynwind.c
201 (scm_dynamic_wind, scm_dowinds), environments.c
202 (import_environment_conflict), eval.c (scm_macroexp, scm_force,
203 scm_primitive_eval_x, scm_primitive_eval), fluids.c (apply_thunk),
204 goops.c (GETVAR, purgatory, make_class_from_template,
205 scm_ensure_accessor), hashtab.c (scm_ihashx, scm_sloppy_assx,
206 scm_delx_x, fold_proc), hooks.c (scm_c_run_hook), load.c
207 (scm_primitive_load), modules.c (scm_resolve_module,
208 scm_c_define_module, scm_c_use_module, scm_c_export,
209 module_variable, scm_eval_closure_lookup, scm_sym2var,
210 scm_make_module, scm_ensure_user_module, scm_load_scheme_module),
211 ports.c (scm_port_for_each), print.c (scm_printer_apply),
212 properties.c (scm_primitive_property_ref), ramap.c (ramap,
213 ramap_cxr, rafe, scm_array_index_map_x, read.c (scm_lreadr),
214 scmsigs.c (sys_deliver_signals), sort.c (applyless), strports.c
215 (scm_object_to_string, scm_call_with_output_string,
216 scm_call_with_input_string), throw.c (scm_body_thunk,
217 scm_handle_by_proc, hbpca_body), unif.c (scm_make_shared_array,
218 scm_make_shared_array), vports.c (sf_flush, sf_write,
219 sf_fill_input, sf_close): Use one of the above functions.
220 * goops.c, hashtab.c, scmsigs.c, sort.c: #include "libguile/root.h".
221
36284627
DH
2222001-06-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
223
224 * filesys.c (scm_close), ports.c (scm_close_port,
225 scm_port_closed_p), strop.c (scm_string_null_p): Use SCM_BOOL
226 instead of SCM_NEGATE_BOOL.
227
228 * filesys.c (scm_stat): Clean up type dispatch.
229
230 * filesys.c (scm_stat), ports.c (scm_input_port_p,
231 scm_output_port_p): Get rid of redundant IM type check.
232
233 * filesys.c (scm_readdir, scm_getcwd, scm_readlink), gh_data.c
234 (gh_str2scm), load.c (scm_primitive_load, scm_internal_parse_path,
235 scm_search_path), net_db.c (scm_gethost, scm_getnet, scm_getproto,
236 scm_return_entry), numbers.c (scm_number_to_string), objects.c
237 (scm_make_subclass_object), ports.c (scm_port_mode), read.c
238 (scm_lreadr), simpos.c (scm_getenv), socket.c (scm_inet_ntoa,
239 scm_addr_vector), stime.c (scm_strftime), strings.c
240 (scm_makfromstrs, scm_makfrom0str, scm_substring), strings.h
241 (SCM_STRING_COERCE_0TERMINATION_X), strop.c (string_copy,
242 scm_string_split), strports.c (scm_strport_to_string), symbols.c
243 (scm_symbol_to_string), vports.c (sf_write): Use scm_mem2string
244 instead of scm_makfromstr.
245
246 * net_db.c (scm_sethost, scm_setnet, scm_setproto, scm_setserv),
247 ports.c (scm_close_all_ports_except), read.c (scm_lreadr,
248 scm_read_hash_extend), stime.c (scm_strftime), strings.c
249 (scm_string_append, scm_string), strings.h (SCM_STRINGP,
250 SCM_STRING_COERCE_0TERMINATION_X, SCM_RWSTRINGP), strop.c
251 (string_capitalize_x): Prefer explicit type check over SCM_N?IMP,
252 !SCM_<pred> over SCM_N<pred>.
253
254 * strings.[ch] (scm_makfromstr): Deprecated.
255
256 (scm_mem2string): New function, replaces scm_makfromstr.
257
258 * strings.c (scm_substring), strop.c (string_copy,
259 scm_string_split), strports.c (scm_strport_to_string), symbols.c
260 (scm_symbol_to_string): Fix gc problem.
261
262 * strings.h (STRINGSH, SCM_STRINGS_H): Rename <foo>H to
263 SCM_<foo>_H.
264
265 * validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): Eliminate
266 warning about comparing signed and unsigned values. This fix is
267 not optimal, since it won't work reliably if sizeof (c_start) >
268 sizeof (size_t) or sizeof (c_end) > sizeof (size_t). A better
269 solution is to define this macro as an inline function, thus
270 allowing to specifiy the types of c_start and c_end.
271
13dcb666
DH
2722001-06-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
273
274 * debug.h (SCM_DEBUGOBJ_FRAME): Deliver result as a
275 scm_t_debug_frame*.
276
277 * debug.h (DEBUGH, SCM_DEBUG_H), stacks.h (STACKSH, SCM_STACKSH):
278 Rename <foo>H to SCM_<foo>_H.
279
280 * stacks.c (NEXT_FRAME, narrow_stack): Prefer explicit type check
281 over SCM_N?IMP, !SCM_<pred> over SCM_N<pred>.
282
283 (narrow_stack): Make i unsigned. Don't use side-effecting
284 operations in conditions.
285
286 (narrow_stack, scm_make_stack, scm_stack_id,
287 scm_last_stack_frame): Get rid of redundant SCM_N?IMP checks.
288
289 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Clean up
290 type dispatch. No need to cast result of SCM_DEBUGOBJ_FRAME any
291 more.
292
293 (scm_stack_ref, scm_frame_previous, scm_frame_next): Fix
294 signedness.
295
296