maintainer changed: was lord, now jimb; first import
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
0f2d19dd
JB
1Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
2
3 * struct.c (scm_init_struct): new file.
4
5Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
6
7 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
8 (scm_list_head): added list-head for rapidly chopping argument
9 lists off of longer lists (and similar).
10
11Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
12
13 * objprop.c (scm_object_property): assq the cdr of the whash
14 handle for obj, not the handle itself.
15
16Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
17
18 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
19 weak hash tables last of all marking to avoid an obscure gc bug.
20 WARNING: circular lists stored in a weak hash table will hose us.
21
22Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
23
24 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
25 new functions similar to scm_substring_move_left_x and
26 scm_substring_move_right_x.
27
28Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
29
30 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
31 scm_gc_heap_lock!
32
33Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
34
35 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
36
37Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
38
39 * strports.c (scm_strprint_obj): convenience function. C for
40 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
41
42 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
43 removed to a separate library
44
45 * init.c (scm_boot_guile): copied from guile-tcl.c.
46 Initialization specific to tcl interpreters removed.
47
48Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
49
50 * ports.c (scm_ports_prehistory): size malloced here doesn't
51 matter so long as it is non-0 (got rid of "* 4").
52
53Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
54
55 * gscm.h: gscm_mkarray eliminated (presumably was not being used
56 since its definition was bogus).
57
58Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
59
60 * mallocs.[ch]: back again (for rx at least).
61
62Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
63
64 * ports.c: removed functions relating to the mapping between ports
65 and descriptors. (That stuff is unix-specific and should be collected
66 in a separate library).
67
68 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
69 (Tom Mckay@avanticorp.com)
70
71Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
72
73 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
74 handled correctly (SCM_FREEP was applied to them) -- test for
75 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
76 being overwritten with #f. (brown@grettir.bibliotech.com)
77
78Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
79
80 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
81 for a specific symbol or for all symbols.
82
83Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
84
85 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
86 keys and weak values confused).
87
88Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
89
90 * list.c (scm_last_pair): map '()=>'()
91
92Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
93
94 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
95 Generalized assoc and hash-table functions.
96 Factored pairs.c into multiple files.
97
98Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
99
100 * gscm.c (gscm_run_scm): got rid of objprop.
101
102Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
103
104 * genio.c (scm_getc):
105 NOTE: fgetc may not be interruptable.
106
107 * procprop.c (scm_stand_in_scm_proc):
108 NOTE: don't use a alist here.
109 (scm_set_procedure_properties_x): fix type checking throughout this file.
110
111 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
112
113 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
114 after freeing part of the port table.
115
116Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
117
118 * strports.c (scm_mkstrport):
119 * vports.c (scm_make_soft_port): allocate a port table entry
120 (possibly triggering gc) before setting the tag of the corresponding
121 ports handle.
122
123 * pairs.c (scm_delq_x): never throw an error.
124
125 * vectors.c (scm_make_vector): made the default vector fill argument
126 into '() (much more useful than the previous value, "#unspecified")
127
128Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
129
130 * ports.c (scm_add_to_port_table): Added fields
131 to port table entries: file_name, line_num, col.
132 Update these in open_file, gen_getc and gen_ungetc.
133 Added procedures to access those fields.
134
135Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
136
137 * procs.c (scm_make_subr_opt): new entry point for making
138 anonymous subrs.
139
140Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
141
142 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
143
144Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
145
146 * numbers.c (scm_exact_p): This function no longer
147 implements "integer?".
148
149Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
150
151 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
152 (scm_gc_stats): return an assoc of useful data. Replaces "room"
153 and the stats reporting formerlly built into repl.
154
155 * repl.[ch]: removed.
156 GC statistics keeping moved to gc.c.
157 Other statistics keeping can be done from Scheme.
158 REPLS are now written in Scheme.
159
160Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
161
162 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
163 conservatively marked objects).
164
165 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
166
167 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
168
169 * feature.c (scm_compiled_library_path): moved here from repl.c.
170 This file is for stuff relating specifically to Scheme libraries
171 like slib.
172
173 * eval.c (scm_m_define): don't give warning about redefinition, don't
174 check verbosity.
175
176 NOTE: this should throw a resumable exception with parameters --
177 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
178
179 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
180
181 * error.c: scm_warn eliminated.
182
183 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
184
185 * repl.c, marksweep.c, gc.c (various):
186 lose exit_report, growth_mon.
187
188 * gscm.c: got rid of verbosity functions.
189
190Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
191
192 * throw.c (scm_ithrow): guard against the bad-throw hook changing
193 between the call to procedurep and use.
194
195 * error.c (scm_everr):
196 * gc.c (fixconfig):
197 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
198 but less so.
199
200 * strports.c: don't reveal the port's string to the caller
201 because it changes size.
202
203 (stputc stwrite): check/change the strings length with interrupts
204 blocked.
205
206 * objprop.c (scm_set_object_property_x &c): use the generic
207 hashing functions and be threadsafe.
208
209 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
210 (per suggestion jaffer@gnu.ai.mit.edu).
211
212 * mbstrings.c (scm_multi_byte_string): guard against argument list
213 changing length.
214
215 * strings.c (scm_make_string): loop cleanup
216
217 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
218 a scheme function.
219
220 * weaks.c (scm_weak_vector): guard against argument list
221 changing length.
222
223 * variable.c (scm_builtin_variable): check for/make a built-in
224 variable automicly.
225
226 * vectors.c (scm_vector): while filling the new array,
227 guard against a list of fill elements that grows after
228 the vector is allocated.
229
230 * hashtab.c -- new file: general hash table
231 functions. hash, hashq, hashv, hashx.
232
233 * tags.h: made wvect an option bit of vector.
234
235Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
236
237 * symbols.c: made the basic symbol table operations atomic.
238
239 * root.c &c.: collected stack-specific global state.
240 linum/colnum etc *should* be port-specific state.
241
242 * struct.c (scm_init_struct): init the first struct type during
243 initialization to fix a race condition.
244
245 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
246 object, not in a global.
247 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
248
249 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
250 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
251
252 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
253 and C symbols to begin with SCM_ or scm_.
254
255Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
256
257 * gsubr.c (scm_gsubr_apply): statically allocate the
258 array of arguments (bothner@cygnus.com).
259
260Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
261
262 * scmsigs.c: Simplified to use async rountines.
263
264 * async.c: New support for interrupt handlers.
265
266Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
267
268 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
269 set the multi_byte flag correctly in symbols. This is wrong.
270 intern_obbary_soft and msymbolize should take an extra parameter.
271 Also, weird multibyte symbols don't print correctly.
272 The weird symbol syntax is also a bit bogus (emacs doesn't quite
273 cope).
274
275Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
276
277 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
278 use the system symhash. == #t means create an uninterned symbol.
279
280Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
281
282 * strings.c (scm_make_shared_substring): build'em.
283 It might better to keep a table of these and use one
284 less cons-pair per shared-substring.
285
286Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
287
288 * strings.c (scm_string_shared_substring): create shared
289 substrings. (Doesn't handle mb strings yet).
290
291 * mbstrings.c (scm_print_mb_string): handle RO strings.
292
293 * print.c (scm_iprin1): print substrings as their non-substring
294 counterparts (dubious).
295
296 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
297 strings.
298
299 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
300
301 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
302
303 * eq.c (scm_equal_p): handle RO and MB strings.
304
305 * symbols.c (scm_string_to_symbol):
306 (scm_string_to_obarray_symbol):
307 * strop.c (scm_i_index):
308 (scm_i_rindex):
309 (scm_string_null_p):
310 (scm_string_to_list):
311 * strings.c (scm_string_length):
312 (scm_string_ref):
313 (scm_substring):
314 (scm_string_append):
315 * simpos.c (scm_system):
316 (scm_getenv):
317 * fports.c (scm_open_file):
318 * strorder.c (scm_string_equal_p):
319 (scm_string_ci_equal_p):
320 (scm_string_less_p):
321 (scm_string_ci_less_p):
322 * pairs.c (scm_obj_length):
323 * mbstrings.c (scm_multi_byte_string_length):
324
325 Use RO string macros for RO strings.
326
327Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
328
329 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
330
331 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
332 index/rindex. Do handle embedded \000 characters.
333
334Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
335
336 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
337 Eliminate a (presumed) warning on some systems.
338
339 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
340 (Mikael Djurfeldt <mdj@nada.kth.se>)
341
342Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
343
344 * eval.c (scm_map): added argument type checking.
345 (kawai@sail.t.u-tokyo.ac.jp)
346
347 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
348 for C++. (Seth Alves <alves@gryphon.com>)
349
350 (gscm_cstr): uses an uninitialized local variable causing
351 segv. (kawai@sail.t.u-tokyo.ac.jp)
352
353
354 * lvectors.c (scm_get_lvector_hook):
355 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
356 It seems to me like if it is broken again in guile-iv...Here is a patch.
357 "! || (LENGTH (keyvec) == 0))"
358 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
359
360
361 * gscm.c (gscm_sys_default_verbosity):
362 incorrectly declared for non-__STDC__
363 (Tom_Mckay@avanticorp.com)
364
365 * ports.c (scm_setfileno): Tweak the macro a bit
366 to make it easier to port to systems that use
367 more than a single structure field to hold a descriptor.
368
369 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
370 Give a warning, not an error, for unrecognized modes.
371
372 * eval.c (SCM_CEVAL):
373 static char scm_s_for_each[];
374 static char scm_s_map[];
375 not needed.
376
377 * strings.c (scm_string_p):
378 static char s_string[];
379 (see next entry)
380
381 * struct.c (scm_sys_struct_set_x):
382 static char s_sys_make_struct[];
383 static char s_sys_struct_ref[];
384 static char s_sys_struct_set_x[];
385 Rearrange code to eliminate those forward decls for the sake of
386 broken compilers.
387
388 * variable.c (make_vcell_variable): static char s_make_variable[];
389 isn't needed.
390
391 * fports.c (scm_port_mode):
392 chars modes[3] = "";
393 to
394 chars modes[3];
395 modes[0] = '\0';
396 (Tom_Mckay@avanticorp.com)
397
398
399 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
400 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
401 (Tom_Mckay@avanticorp.com)
402
403 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
404 scm_num_eq_p() was scm_equal_p().
405 (Tom_Mckay@avanticorp.com)
406
407 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
408 (Tom_Mckay@avanticorp.com)
409
410Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
411
412 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
413 (Tom_Mckay@avanticorp.com)
414
415 * strop.c (scm_substring_fill_x):
416 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
417 (Tom_Mckay@avanticorp.com)
418
419 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
420 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
421
422 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
423 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
424
425 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
426 can turn into an obscure gc bug.
427
428 * chars.c (scm_char_p): fixed PROC call.
429
430 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
431 scm_vector_set.
432
433Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
434
435 * elisp.c (new file): dynamic scoping and other bits for
436 elisp. Don't use this yet unless you specificly want to
437 hack on elisp emulation.
438
439 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
440 scope created by scm_with_dynamic_bindings_operation_x, swap
441 the bindings of that scope with the corresponding globals.
442
443 * continuations.c (scm_make_cont): when a continuation is captured,
444 relocate the continuation stack chunks registered on the wind chain
445 to the heap.
446
447Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
448
449 * eval.c (SCM_CEVAL): if the function position evaluates
450 to a macro, process it accordingly. (Previously, macros were
451 handled only if the function position was a symbol naming a
452 variable bound to a macro).
453
454Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
455
456 * eval.c (scm_m_set): allow multi-variable set! like
457 (set! x 1 y 2 z 3).
458
459Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
460
461 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the STREAM
462 of ports into the port table and replaced it with a port-table
463 index.
464
465 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
466
467 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
468
469 * mbstrings.c (new file): functions on multi-byte strings.
470
471 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
472 for multi-byte strings. Moved the string tag.
473
474 * chars.h chars.c repl.c (many functions): made scm_upcase and scm_downcase
475 functions that are safe for extended character sets.
476
477 Changed the range of integer->char.
478
479 Changed the tyep of SCM_ICHR.
480
481
482
483Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
484
485 * guile.c: Changed init file name from "SCM_INIT_PATH" to
486 "GUILE_INIT_PATH"
487
488Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
489
490 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
491 know that it's safe to pass an object to gscm_get_type?)
492 (gscm_get_type): Fix tyop in error message.
493
494 * variable.c (scm_variable_ref): fixed assertion test.
495 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
496
497 * gscm.h: fixed several prototypes, notably gscm_vref.
498 Add gscm_is_eq and temporarily commented out gscm_eq (see
499 the note in gscm.h near gscm_eq if this change effects your
500 code).
501 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
502
503 * pairs.c (scm_obj_length): see next entry.
504
505 * gscm.h (gscm_obj_length): A way to get an integer
506 length for lists, strings, symbols (treated as strings),
507 and vectors. Returns -1 on error.
508
509 * eq.c (scm_equal_p): fixed smob case.
510 (William Gribble <grib@arlut.utexas.edu>)
511
512 * Makefile.in (X_CFLAGS): defined.
513 (William Gribble <grib@arlut.utexas.edu>)
514
515 * gscm.h (gscm_2_double): provided now
516 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
517
518Tue Jun 13 01:04:09 1995 gnu
519 * Vrooom!
520
521