summaryrefslogtreecommitdiff
path: root/libguile/ChangeLog
blob: 10ae6de523e7615dc78d47842f4e612a999d3666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2001-05-10  Marius Vollmer  <mvo@zagadka.ping.de>

	The concept of vcells has been removed from Guile.  With it,
	explicit obarrays and associated operations are gone.  Use
	hashtables instead of obarrays.
	
	Throughout: use scm_sym2var instead of scm_sym2vcell and treat
	result as variable instead of vcell.  Glocs no longer point to a
	vcell but to a variable.  Use scm_c_define instead of
	scm_sysintern and treat the result as a variable (which it is),
	not a vcell.
	
	* variable.c, variable.h (SCM_VARVCELL, SCM_UDVARIABLEP,
	SCM_DEFVARIABLEP): Deprecated.
	(SCM_VARIABLE_REF, SCM_VARIABLE_SET, SCM_VARIABLE_LOC): New.
	(variable_print): Do not print name of variable.
	(variable_equalp): Compare values, not vcells.
	(anonymous_variable_sym): Removed.
	(make_vcell_variable): Removed.
	(make_variable): New, as replacement.
	(scm_make_variable, scm_make_undefined_variable): Do not take name
	hint parameter.
	(scm_variable_ref): Check for SCM_UNDEFINED and throw "unbound"
	error in that case.
	(scm_builtin_variable): Deprecated.

	* symbols.c, symbols.h (scm_sym2vcell, scm_sym2ovcell_soft,
	scm_sym2ovcell, scm_intern_obarray_soft, scm_intern_obarray,
	scm_intern, scm_intern0, scm_sysintern0_no_module_lookup,
	scm_sysintern, scm_sysintern0, scm_symbol_value0,
	scm_string_to_obarray_symbol, scm_intern_symbol,
	scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned,
	scm_symbol_bound_p, scm_symbol_set_x, scm_gentmp, gentmp_counter):
	Deprecated.
	(copy_and_prune_obarray, scm_builtin_bindings): Removed.
	
	* snarf.h (SCM_VCELL, SCM_GLOBAL_VCELL, SCM_VCELL_INIT,
	SCM_GLOBAL_VCELL_INIT): Deprecated.
	(SCM_VARIABLE, SCM_GLOBAL_VARIABLE, SCM_VARIABLE_INIT,
	SCM_GLOBAL_VARIABLE_INIT): New, as replacement.  Changed all uses.
	
	* print.c (scm_iprin1): Use scm_module_reverse_lookup instead of
	SCM_GLOC_SYM.

	* evalext.c, filesys.c, fports.c, gdbint.c, gh_data.c, gsubr.c,
	hooks.c, load.c, numbers.c, objects.c, ports.c, posix.c, procs.c,
	ramap.c, random.c, read.c, regex-posix.c, scmsigs.c, script.c,
	socket.c, srcprop.c, stacks.c, stime.c, struct.c, tag.c, throw.c:
	Changed according to the `throughout' comments.

	* modules.h, modules.c (scm_module_system_booted_p): Changed type
	to `int'.
	(scm_module_type): Removed.
	(the_root_module): Renamed to the_root_module_var.  Now points to
	a variable instead of a vcell.  Updated all uses.
	(scm_the_root_module): Return SCM_BOOL_F when module systems
	hasn't been booted yet.
	(SCM_VALIDATE_STRUCT_TYPE): Removed.
	(scm_post_boot_init_modules): Made static.
	(scm_set_current_module): Call scm_post_boot_init_modules on first
	call.
	(make_modules_in, beautify_user_module_x, resolve_module,
	try_module_autoload, module_make_local_var_x): Tacked on "_var"
	suffix.  Now point to variables instead of vcells.  Updated all
	uses.
	(scm_module_lookup_closure): Deal with the module being SCM_BOOL_F
	and return SCM_BOOL_F in that case.
	(scm_module_transformer): Likewise.
	(sym_module, scm_lookup_closure_module, scm_env_module): New.
	(SCM_F_EVAL_CLOSURE_INTERFACE, SCM_EVAL_CLOSURE_INTERFACE_P): New.
	(scm_eval_closure_lookup): Do not allow new definitions when
	`interface' flag is set.
	(scm_standard_interface_eval_closure): New.
	(scm_pre_modules_obarray, scm_sym2var, scm_module_lookup,
	scm_lookup, scm_module_define, scm_define, scm_c_module_lookup,
	scm_c_lookup, scm_c_module_define, scm_c_define,
	scm_module_reverse_lookup, scm_get_pre_modules_obarray,
	scm_modules_prehistory): New.
	(scm_post_boot_init_modules): Use scm_c_define and scm_c_lookup
	instead of scm_intern0.
	
	* macros.c (scm_make_synt): Return SCM_UNSPECIFIED instead of the
	symbol.

	* keywords.c (s_scm_make_keyword_from_dash_symbol): Use a regular
	hashtable operations to maintain the keywords, not obarray ones.

	* init.c (scm_load_startup_files): Do not call
	scm_post_boot_init_modules.  This is done by
	scm_set_current_module now.
	(scm_init_guile_1): Call scm_modules_prehistory.  Call
	scm_init_variable early on.

	* goops.c (s_scm_sys_goops_loaded): Get
	var_compute_applicable_methods from scm_sym2var, not from a direct
	invocation of scm_goops_lookup_closure.

	* gh_funcs.c (gh_define): Return SCM_UNSPECIFIED instead of vcell.

	* gc.c: Added simple debugging hack to mark phase of GC: When
	activated, do not tail-call scm_gc_mark.  This gives nice
	backtraces.
	(scm_unhash_name): Removed.

	* feature.c (features): Renamed to features_var.  Now points to a
	variable instead of a vcell.  Updated all uses.

	* eval.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): Use
	`scm_current_module_lookup_closure' which will do the right thing
	when the module system hasn't been booted yet.
	(SCM_GLOC_SYM): Removed.
	(SCM_GLOC_VAR, SCM_GLOC_SET_VAL): New.
	(SCM_GLOC_VAL, SCM_GLOC_LOC): Reimplemented in terms of variables.
	
	* eval.c (scm_lookupcar, scm_lookupcar1): Deal with variables
	instead of with vcells.  Do not overwrite `var' with the result of
	the lookup, use the new `real_var' instead.  Remove `var2' in
	exchange (which was only used with threads).
	(sym_three_question_marks): New.
	(scm_unmemocar): Use `scm_module_reverse_lookup' instead of
	`SCM_GLOC_SYM'.
	(scm_lisp_nil, scm_lisp_t): Directly define as symbols.
	(scm_m_atfop): Expect the function definition to be a variable
	instead of a vcell.
	(scm_macroexp): Do not use `unmemocar', explicitely remember the
	symbol instead.
	(scm_unmemocopy): Removed thoughts about anti-macro interface.
	(scm_eval_args): Use more explicit code in the gloc branch of the
	atrocious struct ambiguity test.  The optimizer will sort this
	out.
	(scm_deval_args): Likewise.
	(SCM_CEVAL): Likewise.  Also, do not use unmemocar, explicitely
	remember the symbol instead.  Added some comments where
	scm_tc3_cons_gloc really exclusively refers to structs.
	(scm_init_eval): Use scm_define to initialize "nil" and "t" to
	scm_lisp_nil and scm_lisp_t, respectively.  Use scm_define instead
	of scm_sysintern in general.

	* dynwind.c (scm_swap_bindings): Use SCM_GLOC_SET_VAL instead of
	explicit magic.

	* debug.c (s_scm_make_gloc): Only allow proper variables, no
	pairs.  Put the variable directly in the gloc.
	(s_scm_gloc_p): Use `scm_tc3_cons_gloc' instead of the magic `1'.
	(scm_init_debug): Use scm_define instead scm_sysintern.

	* cpp_cnvt.awk: Emit "scm_define" instead of "scm_sysintern".

	* backtrace.h, backtrace.c (scm_the_last_stack_fluid): Renamed to
	scm_the_last_stack_fluid_var.  It now points to a variable instead
	of a vcell.  Updated all uses.
	(scm_has_shown_backtrace_hint_p_var): Now points to a variable
	instead of a vcell.  Updated all uses.

	* _scm.h: Include "variables.h" and "modules.h" since almost
	everybody needs them now.

2001-05-09  Marius Vollmer  <mvo@zagadka.ping.de>

	* eval.c (scm_i_eval): Copy expression before passing it to
	SCM_XEVAL.  The copy operation was removed unintendedly during my
	change on 2001-03-25.

2001-05-09  Michael Livshin  <mlivshin@bigfoot.com>

	from Matthias Köppe (thanks!):

	* ports.c (scm_c_read): pointer arithmetic on void pointers isn't
	portable.

	* deprecation.c (s_scm_include_deprecated_features): ANSI'fied the
	docstring.

2001-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* gc.c (scm_init_gc): Added FIXME comment.

	* hooks.c: Since hooks don't have a name any more, it is not
	necessary to include objprop.h.

	(hook_print, scm_add_hook_x): Replace SCM_NFALSEP by !SCM_FALSEP.

	(symbol_name, scm_make_hook_with_name): Removed.

	(scm_create_hook): Don't set the hook's name property.

	* hooks.h (HOOKSH, SCM_HOOKS_H): Renamed HOOKSH to SCM_HOOKS_H.

	(SCM_HOOK_NAME, scm_make_hook_with_name): Removed.

	* init.c (scm_init_guile_1): Hooks don't use objprops any more.

	* numbers.c (SCM_FLOBUFLEN, FLOBUFLEN, scm_number_to_string,
	scm_print_real, scm_print_complex): Renamed SCM_FLOBUFLEN to
	FLOBUFLEN and define it unconditionally.

2001-05-07  Marius Vollmer  <mvo@zagadka.ping.de>

	* gh_data.c (gh_lookup): Call gh_module_lookup with
	`scm_current_module ()', not `#f'.
	(gh_module_lookup): Expect a module instead of an obarray as first
	argument and do lookup in that module.

	* ramap.c (raeql_1): Do not call scm_uniform_vector_length on
	arrays.  The length of array is already determined differently and
	scm_uniform_vector_length does not work on arrays.

2001-05-06  Marius Vollmer  <mvo@zagadka.ping.de>

	* snarf.h (SCM_FUNC_CAST_ARBITRARY_ARGS): Use "SCM (*)()" for C++
	as well.  "SCM (*)(...)" does not work on RedHat 7.1.

	* __scm.h (SCM_WTA_DISPATCH_0): Removed ARG and POS parameters,
	they are not used.  Changed `wrong type' error into `wrong num
	args' error.  Changed all callers.

	* numbers.c (scm_difference): Call SCM_WTA_DISPATCH_0 when zero
	arguments are supplied.

2001-05-05  Thien-Thi Nguyen  <ttn@revel.glug.org>

	* regex-posix.c (scm_regexp_exec): Expand docstring to briefly
	describe `regexp/notbol' and `regexp/noteol' execution flags.

	* strop.c (scm_substring_move_x): Doc fix; nfc.

2001-05-05  Marius Vollmer  <mvo@zagadka.ping.de>

	* objects.c, objects.h (scm_valid_object_procedure_p): New.
	(scm_set_object_procedure_x): Use it to check argument.  Fix
	docstring.

	* evalext.c (scm_definedp): Fix docstring.

2001-05-05  Gary Houston  <ghouston@arglist.com>

	* socket.c: use HAVE_IPV6 instead of AF_INET6 to enable IPv6
	support.

2001-05-04  Neil Jerram  <neil@ossau.uklinux.net>

	* eval.c (scm_promise_p), list.c (scm_append_x, scm_reverse_x),
	symbols.c (scm_symbol_to_string), vports.c (scm_make_soft_port):
	Change R4RS references to R5RS.

	* guile-snarf.awk.in: Fixes so that (i) blank lines in the
	docstring source are correctly reproduced in the output (ii)
	we don't anymore get occasional trailing quotes.  Also reorganized
	and commented the code a little.

	* scmsigs.c (scm_raise), throw.c (scm_throw): Docstring format
	fixes.

2001-05-04  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* strop.c (scm_string_split): New procedure.

	* strop.h (scm_string_split): Added prototype.

2001-05-04  Gary Houston  <ghouston@arglist.com>

	* socket.c: define uint32_t if netdb.h doesn't.  thanks to
	Dale P. Smith.

2001-05-02  Marius Vollmer  <mvo@zagadka.ping.de>

	* rw.c: Include "modules.h" and "strports.h".

	* net_db.h (scm_gethost): Added prototype.

	* deprecation.h, deprecation.c: New.
	* Makefile.am (libguile_la_SOURCES): Added "deprecation.c".
	(DOT_X_FILES): Added "deprecation.x".
	(modinclude_HEADERS): Added "deprecation.h".

	* init.c: Include "deprecation.h".
	(scm_init_guile_1): Call scm_init_deprecation.

2001-05-01  Marius Vollmer  <mvo@zagadka.ping.de>

	* gh.h (gh_init_guile, gh_make_string, gh_string_length,
	gh_string_ref, gh_string_set_x, gh_substring, gh_string_append):
	New.

2001-04-29  Gary Houston  <ghouston@arglist.com>

	* rw.c: new file, implementing C part of module (ice-9 rw).
	(scm_read_string_x_partial): moved from ioext.c
	(scm_init_rw): new proc.
	* rw.h: new file.
	init.c: include rw.h and call scm_init_rw.
	Makefile.am: include rw.c and rw.h.

2001-04-28  Rob Browning  <rlb@cs.utexas.edu>

	* numbers.c: enabled local definition of SCM_FLOBUFLEN until we
	know what's supposed to happen to it.

	* list.h (scm_list_star): deprecation expired - removed.

	* numbers.h (scm_dblproc): deprecation expired - removed.
	(SCM_UNEGFIXABLE): deprecation expired - removed.
	(SCM_FLOBUFLEN): deprecation expired - removed.
	(SCM_INEXP): deprecation expired - removed.
	(SCM_CPLXP): deprecation expired - removed.
	(SCM_REAL): deprecation expired - removed.
	(SCM_IMAG): deprecation expired - removed.
	(SCM_REALPART): deprecation expired - removed.
	(scm_makdbl): deprecation expired - removed.
	(SCM_SINGP): deprecation expired - removed.
	(SCM_NUM2DBL): deprecation expired - removed.
	(SCM_NO_BIGDIG): deprecation expired - removed.

	* tags.h (SCM_DOUBLE_CELLP): deprecation expired - removed.
	(scm_tc_dblr): deprecation expired - removed.
	(scm_tc_dblc): deprecation expired - removed.
	(scm_tc16_flo): deprecation expired - removed.
	(scm_tc_flo): deprecation expired - removed.

	* tag.h (scm_tag): deprecation expired - removed.

	* tag.c: (scm_tag): deprecation expired - removed.

	* ioext.c: (scm_fseek): deprecation expired - removed.

	* ioext.h (scm_fseek): deprecation expired - removed.

	* gh_data.c (gh_int2scmb): deprecation expired - removed.

	* gh.h (gh_int2scmb): deprecation expired - removed.

2001-04-28  Neil Jerram  <neil@ossau.uklinux.net>

	* stacks.c (scm_make_stack): Fix typo in docstring.

2001-04-27  Rob Browning  <rlb@cs.utexas.edu>

	* error.c (scm_sysmissing): deprecation expired - removed.

	* error.h (scm_sysmissing): deprecation expired - removed.

	* gc.c
	(scm_init_gc): gc-thunk deprecation expired - removed.
	(scm_gc_vcell): deprecation expired - removed.
	(gc_async_thunk): scm_gc_vcell related code removed.

	* vectors.h (SCM_NVECTORP): deprecation expired - removed.

	* strings.h
	(SCM_NSTRINGP): deprecation expired - removed.
	(SCM_NRWSTRINGP): deprecation expired - removed.

	* continuations.h (SCM_SETJMPBUF): deprecation expired - removed.

	* chars.h
	(SCM_ICHRP): deprecation expired - removed.
	(SCM_ICHR): deprecation expired - removed.
	(SCM_MAKICHR): deprecation expired - removed.

	* ports.h
	(SCM_INPORTP): deprecation expired - removed.
	(SCM_OUTPORTP): deprecation expired - removed.

2001-04-25  Marius Vollmer  <mvo@zagadka.ping.de>

	* modules.c (scm_module_type): New.
	(scm_post_boot_init_modules): Initialize from Scheme value.
	(the_module, scm_current_module, scm_init_modules): the_module is
	now a C only fluid.
	(scm_current_module): Export to Scheme.
	(scm_set_current_module): Do not call out to Scheme, do all the
	work in C.  Export procedure to Scheme.  Only accept modules, `#f'
	is no longer valid as the current module.  Only set
	scm_top_level_lookup_closure_var and scm_system_transformer when
	they are not deprecated.
	(scm_module_transformer, scm_current_module_transformer): New.

	* modules.h (scm_module_index_transformer, SCM_MODULE_TRANSFORMER,
	scm_current_module_transformer, scm_module_transformer): New.

	* gh_data.c: Removed FIXME comment about gh_lookup returning
	SCM_UNDEFINED.  That's the right thing to do.

	* eval.h, eval.c (scm_system_transformer): Deprecated by moving it
	into the conditionally compiled sections.
	* eval.c (scm_primitive_eval_x, scm_primitive_eval): Use
	scm_current_module_transformer instead of scm_system_transformer.
	* init.c (start_stack): Move initialization of
	scm_system_transformer to the deprecated section.

2001-04-22  Neil Jerram  <neil@ossau.uklinux.net>

	* throw.c (scm_throw): Correct docstring.

2001-04-22  Gary Houston  <ghouston@arglist.com>

	* socket.c: attempted to improve the docstrings slightly.

	* net_db.c: remove bogus "close" declaration.
	(inet_aton declaration, scm_inet_aton, scm_inet_ntoa,
	scm_inet_netof, scm_lnaof, scm_inet_makeaddr, INADDR_ANY etc.):
	moved to socket.c.
	* net_db.h: declarations moved too.

	* socket.c (scm_htonl, scm_ntohl): use uint32_t instead of unsigned
	long.
	(ipv6_net_to_num, ipv6_num_to_net): new static procedures.
	(VALIDATE_INET6): new macro.
	(scm_inet_pton, scm_inet_ntop): new procedures, implementing
	inet-pton and inet-ntop.
	(scm_fill_sockaddr): use VALIDATE_INET6 and ipv6_num_to_net.
	(scm_addr_vector): use ipv6_net_to_num.

2001-04-21  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* eq.c (scm_equal_p), ramap.c (scm_init_ramap):  Don't compute the
	smob number explicitly.  Use SCM_TC2SMOBNUM instead.

	* gc.c (MARK, scm_gc_sweep):  Only check for illegal heap objects
	when compiled in debug mode.

	(scm_gc_sweep):  Only call smob's free function if it is defined.

	* print.c (scm_iprin1):  No need to check for validity of smob
	type or existence of print function.

	* smob.[ch] (scm_smobs):  Made into a fixed size global array.
	Resizing will not work well with preemptive threading.

	* smob.c (scm_smob_print):  Don't use SCM_CDR to access smob data.

	(scm_make_smob_type):  Extracted initialization of smob
	descriptors to scm_smob_prehistory.  Don't use scm_numsmob outside
	of the critical section.

	(scm_smob_prehistory):  Initialize all smob descriptors.  By
	default, don't assign a smob free function:  Most smob types don't
	need one.

	* smob.h (SMOBH, SCM_SMOB_H):  Renamed SMOBH to SCM_SMOB_H.

2001-04-21  Gary Houston  <ghouston@arglist.com>

	* socket.c (FLIP_NET_HOST_128): new macro.
	(scm_fill_sockaddr): use new macro.
	(scm_addr_vector): completed IPv6 address support.  added const
	to the address parameter.

2001-04-20  Gary Houston  <ghouston@arglist.com>

	* socket.c (scm_fill_sockaddr): call htons for sin6_port.
	Don't assign sin6_scope_id in structure unless HAVE_SIN6_SCOPE_ID
	is defined.
	(scm_addr_vector): use a switch instead of multiple if statements.
	Add support for IPv6 (incomplete) .
	MAX_ADDR_SIZE: increase to size of struct sockaddr_in6 if needed.

2001-04-20  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* struct.c (scm_free_structs):  Only pairs may be accessed with
	SCM_C[AD]R.

2001-04-19  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.

	* __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
	SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
	parentheses in order to get the correct associativity.

2001-04-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* unif.c (scm_array_to_list):  Added missing handling of arrays of
	bytes.  Thanks to Masao Uebayashi for the bug report.

2001-04-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* debug.c (scm_procedure_source):  Use SCM_CLOSURE_FORMALS more
	consistently.

2001-04-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* procs.h (SCM_CLOSURE_FORMALS):  New macro.

	* debug.c (scm_procedure_source), eval.c (scm_badformalsp,
	SCM_CEVAL, SCM_APPLY), goops.c (get_slot_value, set_slot_value),
	procprop.c (scm_i_procedure_arity), sort.c (closureless):  Use
	SCM_CLOSURE_FORMALS.

	* eval.c (scm_badformalsp, SCM_CEVAL), procprop.c
	(scm_i_procedure_arity):  Prefer stronger predicates like
	SCM_NULLP or SCM_FALSEP over SCM_IMP.

	* macros.c (macro_print):  Extracted macro printing code from
	print.c and simplified it.

	(scm_macro_type):  Use SCM_MACRO_TYPE;

	(scm_init_macros):  Use macro_print for printing macros.

	* print.c (scm_print_opts):  Improved option documentation.

	(scm_iprin1):  Extracted printing of macros to macros.c.
	Simplified printing of ordinary closures.

	* procs.c (scm_thunk_p):  Fixed handling of closures.  Thanks to
	Martin Grabmueller for the bug report.

2001-04-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	This patch eliminates some further applications of SCM_C[AD]R to
	non pair cells.

	* gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR):  Deprecated.  These have
	never been applied to real pairs.

	* srcprop.h (SCM_SOURCE_PROPERTY_FLAG_BREAK):  Added.

	(SRCPROPBRK):  Use SCM_SOURCE_PROPERTY_FLAG_BREAK.

	* unif.h (SCM_ARRAY_CONTIGUOUS, SCM_ARRAY_FLAG_CONTIGUOUS,
	SCM_ARRAY_CONTP):  Renamed SCM_ARRAY_CONTIGUOUS to
	SCM_ARRAY_FLAG_CONTIGUOUS and use it.

	(SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG):
	Added.

	* srcprop.h (SRCPROPH), unif.h (UNIFH):  Renamed to
	SCM_SOURCE_PROPERTIES_H and SCM_UNIFORM_VECTORS_H, respectively.

	* srcprop.h (SETSRCPROPBRK, CLEARSRCPROPBRK), unif.c
	(scm_dimensions_to_uniform_array, scm_ra_set_contp):  Don't use
	SCM_SET{AND,OR}_CAR.

2001-04-17  Gary Houston  <ghouston@arglist.com>

	* some initial support for IPv6:

	* socket.c (scm_fill_sockaddr): improve the argument validation.
	don't allocate memory until all args are checked.  instead of
	unconditional memset of soka, try setting sin_len to 0 if
	SIN_LEN is defined.  add support for AF_INET6.  define FUNC_NAME.
	(scm_socket, scm_connect): extend docstrings for IPv6.
	(scm_init_socket): intern AF_INET6 and PF_INET6.

2001-04-17  Niibe Yutaka  <gniibe@m17n.org>

	* srcprop.c (scm_make_srcprops): Added SCM_ALLOW_INTS which
	matches	SCM_DEFER_INTS at the beginning of the function.

	* mallocs.c (scm_malloc_obj): Remove un-matched SCM_ALLOW_INTS.

	* gc.c (scm_igc): Unconditionally call
	SCM_CRITICAL_SECTION_START/END.

	* fluids.c (next_fluid_num): Unconditionally call
	SCM_CRITICAL_SECTION_START/END.
	(s_scm_make_fluid): Remove un-matched SCM_DEFER_INTS.

	* coop-defs.h (SCM_THREAD_DEFER, SCM_THREAD_ALLOW,
	SCM_THREAD_REDEFER, SCM_THREAD_REALLOW_1, SCM_THREAD_REALLOW_2):
	Removed.

	* __scm.h (SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END):
	Defined as nothing for the case of !defined(USE_THREADS).
	(SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER):
	Removed.
	(<stdio.h>): Include when (SCM_DEBUG_INTERRUPTS == 1).
	(SCM_CHECK_NOT_DISABLED, SCM_CHECK_NOT_ENABLED): Print FILE and
	LINE.
	(SCM_DEFER_INTS, SCM_ALLOW_INTS_ONLY, SCM_ALLOW_INTS,
	SCM_REDEFER_INTS, SCM_REALLOW_INTS): Don't use
	SCM_THREAD_DEFER/SCM_THREAD_ALLOW.  Instead, use
	SCM_CRITICAL_SECTION_START/END.
	(SCM_REALLOW_INTS: Bug fix.  Don't call
	SCM_THREAD_SWITCHING_CODE.
	(SCM_TICK): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS.  Instead, use
	SCM_THREAD_SWITCHING_CODE directly.
	(SCM_ENTER_A_SECTION): Unconditionally use
	SCM_CRITICAL_SECTION_START/END. (was:
	SCM_DEFER_INTS/SCM_ALLOW_INTS when SCM_POSIX_THREADS defined).

2001-04-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* __scm.h (SCM_CAREFUL_INTS, SCM_DEBUG_INTERRUPTS):  Replaced the
	macro SCM_CAREFUL_INTS by the macro SCM_DEBUG_INTERRUPTS and
	allowed to explicitly set this macro via the CFLAGS variable
	during make.

	* fluids.c (next_fluid_num), gc.c (scm_igc), coop-defs.h
	(SCM_THREAD_CRITICAL_SECTION_START,
	SCM_THREAD_CRITICAL_SECTION_END):  Renamed
	SCM_THREAD_CRITICAL_SECTION_START/END to
	SCM_CRITICAL_SECTION_START/END.

2001-04-11  Keisuke Nishida  <kxn30@po.cwru.edu>

	* debug-malloc.c (grow, scm_debug_malloc_prehistory): Use memset
	instead of bzero.

	* coop.c, iselect.c (FD_ZERO_N): Unconditionally use memset.
	(MISSING_BZERO_DECL): Remove the declaration.

	Thanks to NIIBE Yutaka.

2001-04-10  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* init.c, goops.c, goops.h: Reverted change of 2001-03-29.  (The
	goops module should be registered in order to work for an
	application which uses libguile statically linked.)

2001-04-10  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* numbers.[ch] (scm_num2long, scm_num2long_long,
	scm_num2ulong_long, scm_num2ulong):  Argument position is an
	unsigned integer.

	* environments.c (eval_environment_folder,
	import_environment_folder), gh_data.c (gh_scm2longs,
	gh_scm2floats, gh_scm2doubles):  Distinguish between 0 and NULL
	for integers and pointers, respectively.

	* gh_data.c (gh_scm2ulong, gh_scm2long, gh_scm2int), socket.c
	(scm_fill_sockaddr), unif.c (scm_array_set_x), validate.h
	(SCM_NUM2ULONG, SCM_NUM2LONG, SCM_NUM2LONG_DEF,
	SCM_NUM2LONG_LONG):  Don't pass argument positions as pointers.

	* filesys.c (scm_open_fdes, scm_open), net_db (scm_inet_ntoa,
	scm_inet_netof, scm_lnaof, scm_gethost, scm_getproto), posix.c
	(scm_utime), ramap.c (scm_array_fill_int), scmsigs.c
	(scm_sigaction), socket.c (scm_htonl, scm_ntohl, scm_sendto),
	stime.c (scm_localtime, scm_gmtime), struct.c (scm_struct_set_x),
	validate.h (SCM_VALIDATE_LONG_COPY):  Whitespace fixes.

2001-04-09  Neil Jerram  <neil@ossau.uklinux.net>

	* strings.c (scm_read_only_string_p): Update docstring to reflect
	current (non-)usage of "read only" strings.
	(scm_make_shared_substring): Clarify docstring by changing
	"semantics" to "arguments".

2001-04-06  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* hooks.c (scm_make_hook, scm_make_hook_with_name),
	(scm_hook_p, scm_hook_empty_p, scm_run_hook): Docstring
	improvements.

2001-04-03  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	The following changes make the documentation more consistent.

	* rdelim.c (scm_write_line), posix.c (scm_utime), ports.c
	(scm_seek), net_db.c (scm_inet_aton, scm_inet_ntoa),
	(scm_inet_netof, scm_lnaof, scm_inet_makeaddr), ioext.c
	(scm_ftell): Changed @smalllisp ... @end smalllisp to @lisp
	... @end lisp.

	* vports.c (scm_make_soft_port), version.c (scm_version), unif.c
	(scm_array_dimensions, scm_make_shared_array),
	(scm_transpose_array, scm_enclose_array, scm_bit_count_star),
	throw.c (scm_catch), struct.c (scm_make_vtable_vtable), strop.c
	(scm_string_rindex, scm_string_index, scm_substring_fill_x),
	(scm_string_null_p), strings.c (scm_read_only_string_p), root.c
	(scm_call_with_dynamic_root), ramap.c (scm_array_index_map_x),
	posix.c (scm_mknod), numbers.c (scm_logtest, scm_logbit_p),
	macros.c (scm_makmmacro), list.c (scm_append), environments.c
	(scm_environment_fold), dynwind.c (s_scm_dynamic_wind): Changed
	@example ... @end example to @lisp ... @end lisp.

	* weaks.c (scm_weak_vector): Corrected docstring.

	* hashtab.c (scm_hashq_ref, scm_hashq_set_x, scm_hashq_remove_x),
	(scm_hashv_ref, scm_hashv_set_x, scm_hashv_remove_x),
	(scm_hash_ref, scm_hash_set_x, scm_hash_remove_x, scm_hashx_ref),
	(scm_hashx_set_x, scm_hashx_get_handle),
	(scm_hashx_create_handle_x), regex-posix.c (scm_make_regexp),
	(scm_regexp_exec, scm_regexp_p), numbers.c (scm_logtest),
	vectors.c (scm_vector_fill_x), strings.c
	(scm_make_shared_substring), symbols.c (scm_string_to_symbol),
	objprop.c (scm_set_object_properties_x):
	(scm_set_object_property_x), throw.c (scm_catch, scm_lazy_catch),
	strports.c (scm_call_with_input_string), ports.c
	(scm_truncate_file), ioext.c (scm_ftell), ports.c (scm_seek),
	list.c (scm_append_x), dynwind.c (scm_dynamic_wind), error.c
	(scm_error_scm), vports.c (scm_make_soft_port), weaks.c
	(scm_make_weak_vector,scm_weak_vector_p),
	(scm_make_weak_key_hash_table, scm_make_weak_value_hash_table),
	(scm_make_doubly_weak_hash_table, scm_weak_key_hash_table_p),
	(scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
	macros.c (scm_macro_type), dynl.c (scm_dynamic_link),
	(scm_dynamic_unlink, scm_dynamic_call, scm_dynamic_args_call):
	Made parameter names match documentation by renaming parameters
	and/or fixing docstrings.

	* numbers.c (scm_ash): Corrected Texinfo markup.

	* strop.c (scm_string_index, scm_string_rindex),
	(scm_substring_fill_x, scm_string_null_p): Removed `qdocs'.

	* vports.c (scm_make_soft_port), unif.c
	(scm_uniform_vector_length, scm_array_p, scm_array_rank),
	(scm_dimensions_to_uniform_array, scm_transpose_array),
	(scm_array_in_bounds_p, scm_uniform_vector_ref),
	(scm_bit_count, scm_bit_position, scm_bit_count_star),
	(scm_array_to_list, scm_list_to_uniform_array),
	(scm_array_prototype, symbols.c (scm_string_to_symbol), strports.c
	(scm_open_input_string, scm_open_output_string),
	(scm_get_output_string), strop.c (scm_string_copy),
	(scm_string_fill_x), strings.c (scm_string_p, scm_string), stime.c
	(scm_get_internal_real_time, scm_times),
	(scm_get_internal_run_time, scm_current_time, scm_gettimeofday),
	(scm_localtime, scm_gmtime), socket.c (scm_htons, scm_ntohs),
	(scm_htonl, scm_ntohl, scm_socket, scm_socketpair),
	(scm_getsockopt, scm_getsockname, scm_getpeername, scm_recvfrom),
	simpos.c (scm_system), random.c (scm_random_uniform),
	(scm_random_normal, scm_random_exp), ramap.c
	(scm_array_equal_p), posix.c (scm_pipe, scm_getgroups),
	(scm_status_exit_val, scm_status_term_sig, scm_status_stop_sig),
	(scm_getppid, scm_getuid, scm_getgid, scm_geteuid, scm_getegid),
	(scm_getpgrp, scm_ttyname, scm_ctermid, scm_tcgetpgrp, scm_uname),
	(scm_environ, scm_tmpnam, scm_mkstemp, scm_access, scm_getpid),
	(scm_setlocale), ports.c (scm_char_ready_p, scm_drain_input),
	(scm_pt_size, scm_pt_member, scm_port_revealed, scm_port_mode),
	(scm_close_port, scm_input_port_p, scm_output_port_p, scm_port_p),
	(scm_port_closed_p, scm_eof_object_p, scm_read_char),
	(scm_peek_char), pairs.c (scm_pair_p, scm_cons), numbers.c
	(scm_logand, scm_logior, scm_logxor, scm_lognot),
	(scm_integer_expt, scm_bit_extract, scm_logcount),
	(scm_integer_length, scm_string_to_number, scm_inexact_to_exact),
	net_db.c (scm_inet_netof, scm_lnaof), modules.c
	(scm_interaction_environment), macros.c (scm_makacro),
	(scm_makmacro, scm_makmmacro), keywords.c (scm_keyword_p), ioext.c
	(scm_ftell, scm_dup_to_fdes, scm_fileno, scm_isatty_p),
	(scm_fdopen, scm_fdes_to_ports), gc.c (scm_gc_stats), fluids.c
	(scm_fluid_ref), filesys.c (scm_open_fdes),
	(scm_stat, scm_directory_stream_p, scm_getcwd, scm_readlink):
	Docstring correction: `Returns' -> `Return'

	* gc.c (scm_set_debug_cell_accesses_x):
	(s_scm_gc_set_debug_check_freelist_x):
	* fluids.c (scm_fluid_p): Added texinfo markup.

	* error.c (scm_strerror): Made docstring more precise.

	* vectors.c (scm_vector_p, scm_vector, scm_make_vector),
	(scm_vector_to_list, _scm_vector_fill_x), symbols.c
	(scm_symbol_p, scm_symbol_to_string), strorder.c
	(scm_string_equal_p, scm_string_ci_equal_p, scm_string_less_p),
	(scm_string_leq_p, scm_string_gr_p, scm_string_geq_p),
	(scm_string_ci_less_p, scm_string_ci_leq_p, scm_string_ci_gr_p):
	(scm_string_ci_geq_p), strop.c (scm_string_copy),
	(scm_string_fill_x): Removed `(r5rs)' from docstrings.

2001-04-01  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* gc.c (MARK):  Re-introduce a cheap sanity test for non debug
	mode, as suggested by Michael Livshin.

2001-03-31  Michael Livshin  <mlivshin@bigfoot.com>

	* backtrace.c (display_backtrace_body): since the `print_state'
	variable is not used (instead its data field is used directly as
	`pstate'), protect it from the hungry compiler optimizations.
	thanks to Bill Schottstaedt for the report.

2001-03-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* gc.[ch] (scm_tc16_allocated):  New type tag for allocated cells.
	It is only defined and used if guile is compiled with
	SCM_DEBUG_CELL_ACCESSES set to true.  It's purpose is, to never
	let cells with a free_cell type tag be visible outside of the
	garbage collector when in debug mode.

	* gc.c (scm_debug_cell_accesses_p):  Set to true as default.

	(scm_assert_cell_valid):  Use a local static variable to avoid
	recursion.

	(MARK):  Only check for rogue cell pointers in debug mode.  Use
	scm_cellp for this purpose and place all checks for rogue pointers
	into that function.  Further, since due to conservative scanning
	we may encounter free cells during marking, don't use the standard
	cell type accessor macro to determine the cell type.

	(scm_cellp):  Check if the cell pointer actually points into a
	card header.

	(scm_init_gc):  Initalize scm_tc16_allocated.

	* gc.h (GCH):  Renamed to SCM_GC_H.

	(SCM_VALIDATE_CELL):  Enclose the expression in brackets.  This
	might be unnecessary, but I feel better this way :-)

	(SCM_GC_CELL_TYPE):  New macro.

	(SCM_SETAND_CDR, SCM_SETOR_CDR):  Deprecated.  These are not used
	in guile, and it is unlikely that they will be applied to real
	pairs anyway.

	(SCM_SET_FREE_CELL_TYPE):  Removed.  It was not used.

	(SCM_GC_SET_ALLOCATED):  New macro.  Only non-empty if guile is
	compiled with SCM_DEBUG_CELL_ACCESSES set to true.

	(SCM_NEWCELL, SCM_NEWCELL2):  Use of SCM_GC_SET_ALLOCATED will
	make sure that in debug mode no free cell will ever be visible
	outside of the garbage collector.

2001-03-30  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* async.c (scm_asyncs_pending):  Don't use != to compare SCM
	values.

	* async.c (scm_system_async), variable.c (scm_make_variable,
	scm_make_undefined_variable):  Use scm_cons to create a pair.

	* debug.c (scm_reverse_lookup):  Perform proper type checking.
	Remove suspicious use of SCM_SLOPPY_CONSP.

	* eq.c (scm_equal_p), tags.h (SCM_ECONSP):  Use SCM_CONSP instead
	of SCM_SLOPPY_CONSP.  A sane compiler should be able to perform
	the corresponding optimization.

	* eval.c (iqq):  Use proper type check.

	(scm_m_expand_body):  Remove redundant type checks.

	(promise_print):  Don't access promise cells as pairs.

	* eval.c (EVALCAR, iqq, scm_m_expand_body, scm_eval_args,
	scm_deval_args SCM_CEVAL), guardians.c (scm_guard), hashtab.c
	(scm_internal_hash_fold), print.c (scm_iprlist):  Use !SCM_CELLP
	for SCM_NCELLP, !SCM_CONSP for SCM_NCONSP, !SCM_IMP for SCM_NIMP,
	!SCM_FALSEP for SCM_NFALSEP, !SCM_NULLP for SCM_NNULLP

	* eval.c (scm_m_define, scm_macroexp, SCM_CEVAL), print.c
	(scm_iprin1):  Use new macro predicate and accessors.

	* eval.h (scm_tc16_macro):  Removed declaration.  It is declared
	in macros.h.

	* eval.h (EVALH), macros.h (MACROSH), ports.h (PORTSH), procs.h
	(PROCSH), tags.h (TAGSH), variable.h (VARIABLEH):  Renamed to
	SCM_EVAL_H, SCM_MACROS_H, SCM_PORTS_H, SCM_PROCS_H, SCM_TAGS_H and
	SCM_VARIABLE_H.  Even the macros that are used to inhibit
	including a header file twice should be in the SCM_ namespace.

	* fluids.c (scm_swap_fluids, scm_swap_fluids_reverse),
	properties.c (scm_primitive_property_ref,
	scm_primitive_property_del_x):  Prefer stronger predicates like
	SCM_NULLP or SCM_FALSEP over SCM_IMP.

	* gc.c (MARK):  Use proper macros to access procedure-with-setter
	cell elements and closure cell elements.

	(gc_sweep_freelist_finish, scm_gc_sweep, init_heap_seg):  Don't
	access free cells as pairs.

	(scm_unprotect_object):  scm_hashq_get_handle returns #f if
	no hashtab entry is found.

	* gc.c (scm_gc_sweep), ports.c (scm_close_port):  Use new macro
	SCM_CLR_PORT_OPEN_FLAG.

	* guardians.c (TCONC_IN), print.c (scm_free_print_state):  Don't
	use SCM_SET_C[AD]R for uninitialized cells.

	* hashtab.c (scm_hash_fn_get_handle):  Use SCM_VALIDATE_VECTOR.
	If the hashtable has no slots, return #f instead of '().  This
	unifies the return value with most assoc-functions.

	(scm_hash_fn_ref):  Use proper type check.

	(scm_hashq_get_handle, scm_hashv_get_handle, scm_hash_get_handle):
	Removed references to non-existing functions from documentation.

	* keywords.c (scm_keyword_dash_symbol):  Use proper macros to
	access keyword cell elements.

	* macros.h (SCM_MACROP, SCM_MACRO_TYPE, SCM_MACRO_CODE):  New
	macros.

	* ports.h (SCM_CLR_PORT_OPEN_FLAG):  New macro.

	* print.c (scm_iprlist):  Added comment.  Improved loop
	conditions.

	* procs.h (SCM_ENV, SCM_SETENV):  Don't access closure cells as
	pairs.

	* smob.c (scm_markcdr):  Don't access smob cells as pairs.

	* tags.h (SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP):  Deprecated.

	* throw.c (ACTIVATEJB, DEACTIVATEJB):  Don't access jump buffer
	cells as pairs.

	* variable.c (variable_print, variable_equalp, scm_variable_ref,
	scm_variable_set_x):  Use proper macros to access variable cell
	elements.

	(scm_variable_bound_p):  Don't use SCM_NEGATE_BOOL.

	* variable.h (SCM_VARVCELL):  Don't access variable cells as
	pairs.

	* vectors.c (scm_vector), weaks.c (scm_weak_vector):  Simplified,
	added FIXME comment, removed register specifier.

2001-03-29  Keisuke Nishida  <kxn30@po.cwru.edu>

	* goops.c, goops.h (scm_init_oop_goops_goopscore_module): Deprecated.
	* init.c (scm_init_guile_1): Don't init goopscore module.

2001-03-27  Marius Vollmer  <mvo@zagadka.ping.de>

	* eval.c (SCM_APPLY): Check that arg1 is bound for scm_tc7_cxr.

2001-03-27  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* strop.c (scm_string_to_list): Fixed docstring markup.
	(scm_string_upcase_x, scm_string_upcase, scm_string_downcase_x),
	(scm_string_downcase, scm_string_capitalize_x),
	(scm_string_capitalize): Rewrote and corrected docstrings.
	(scm_string_ci_to_symbol): Made docstring more explicit.

2001-03-27  Marius Vollmer  <mvo@zagadka.ping.de>

	* values.h (scm_values_vtable, SCM_VALUESP): Moved here so that
	eval.c can use it.
	(scm_call_with_values): Removed.
	* values.c (values_vtable, scm_values_vtable): Added "scm_" prefix
	so that it can be exported.
	(scm_call_with_values): Removed.

	* tags.h (SCM_IM_CALL_WITH_VALUES): New isym.
	* eval.c: Include "libguile/values.h"
	(scm_m_at_call_with_values, scm_sym_at_call_with_values):
	New.
	(unmemocopy, scm_ceval, scm_deval): Handle new isym.
	* eval.h (scm_sym_at_call_with_values, scm_m_at_call_with_values):
	New delcarations to support above change.

	* eval.c (scm_primitive_eval_x, scm_primitive_eval): Fix syntax
	errors with last change.

2001-03-25  Marius Vollmer  <mvo@zagadka.ping.de>

	* eval.c (scm_primitive_eval_x, scm_primitive_eval, scm_i_eval_x,
	scm_i_eval): Moved the application of the system transformer from
	scm_i_eval to scm_primitive_eval.

2001-03-23  Neil Jerram  <neil@ossau.uklinux.net>

	* guile-snarf.awk.in: Substitute "\\" with "\" in .doc output.

	* strop.c (scm_string_index): Fix docstring line break
	regression.

	* list.c (scm_cons_star): Fix docstring typo.

2001-03-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* gc.c (scm_init_storage), gdbint.c (scm_init_gdbint), numbers.c
	(big2str), ports.c (scm_drain_input), read.c (scm_read,
	scm_grow_tok_buf), strings.c (scm_string, scm_makfromstr,
	scm_make_string, scm_string_append), strports.c (st_resize_port,
	scm_object_to_string), unif.c (scm_make_uve):  Replace calls to
	scm_makstr with calls to scm_allocate_string.

	* strings.[ch] (scm_allocate_string):  New function.

	* strings.[ch] (scm_makstr):  Deprecated.

2001-03-18  Gary Houston  <ghouston@arglist.com>

	* posix.c (scm_tmpnam): check that return value from tmpnam is not
	NULL.  rewrote the docstring.
	(scm_mkstemp): new procedure implementing "mkstemp!".
	* posix.h: declare scm_mkstemp.

	* net_db.c: declare h_errno if configure didn't define HAVE_H_ERRNO.
	normally it would be found in netdb.h.

2001-03-17  Gary Houston  <ghouston@arglist.com>

	* sort.c (scm_sort): move sortvec variable to avoid a compiler
	warning	when HAVE_ARRAYS is not defined.  move len too.

	* Makefile.am (DOT_X_FILES): remove net_db.x, posix.x, socket.x.
	(EXTRA_DOT_X_FILES): let configure set the value.
	(DOT_DOC_FILES): remove net_db.doc, posix.doc, socket.doc.

	* gc.c (scm_must_malloc): changed the comment explaining when
	scm_must variants of malloc/free etc., should be used, based on
	explanation from Dirk Herrmann.
	* fports.c (scm_fport_buffer_add): use FUNC_NAME instead of a local
	string with procedure name.  use scm_must_malloc instead of malloc.
	(scm_setvbuf, scm_fdes_to_port, fport_close): use scm_must variants
	of malloc/free.
	* ports.c (scm_add_to_port_table, scm_remove_from_port_table,
	scm_ungetc): use scm_must variants of malloc/realloc/free.
	(scm_add_to_port_table, scm_ungetc): define FUNC_NAME.

2001-03-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* __scm.h (SCM_ASSERT, SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
	SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n):  Don't call scm_wta, call
	scm_wrong_type_arg instead.

	(SCM_WNA):  Deprecated.

	* error.[ch] (scm_wta):  Deprecated.

	* numbers.c (s_i_log):  Minor comment fix.

	* read.c (scm_lreadr), unif.c (scm_aind, scm_shap2ra,
	scm_make_shared_array, scm_transpose_array, scm_enclose_array,
	scm_array_in_bounds_p): Don't use SCM_ASSERT to check for
	wrong-num-args or misc errors.

	* unif.c (scm_make_shared_array, scm_transpose_array,
	scm_enclose_array, scm_array_in_bounds_p, scm_array_set_x):
	Validate the rest argument (note: this is only done when guile is
	built with SCM_DEBUG_REST_ARGUMENT=1)

	(scm_array_in_bounds_p, scm_uniform_vector_ref, scm_array_set_x):
	Replace calls to scm_wrong_num_args by SCM_WRONG_NUM_ARGS.

	* validate.h (SCM_FUNC_NAME, SCM_VALIDATE_NUMBER_COPY,
	SCM_VALIDATE_NUMBER_DEF_COPY):  Deprecated.

2001-03-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* validate.h (SCM_WRONG_NUM_ARGS):  Call scm_error_num_args_subr
	instead of scm_wrong_num_args.

	* coop-threads.c:  Don't include libguile/strings.h.  (Was only
	needed for former implementation of SCM_WRONG_NUM_ARGS.)

	* debug.c (scm_m_start_stack):  Don't use SCM_ASSERT to check for
	wrong-num-args errors.

2001-03-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* error.[ch] (scm_error_num_args_subr):  New function.

2001-03-16  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* list.c (scm_list, scm_cons_star, scm_null_p, scm_list_p),
	(scm_length, scm_append, scm_reverse, scm_list_ref),
	(scm_memq, scm_memv, scm_member, scm_delv_x, scm_delete_x),
	(scm_delq, scm_delv, scm_delete, scm_delq1_x, scm_delv1_x),
	(scm_delete1_x), gc.c (scm_map_free_list),
	(scm_free_list_length), hash.c (scm_hashq, scm_hashv),
	(scm_hash), hashtab.c (scm_hashq_ref, scm_hashq_set_x),
	(scm_hashq_remove_x, scm_hashv_ref, scm_hashv_set_x),
	(scm_hashv_remove_x, scm_hash_ref, scm_hash_set_x),
	(scm_hash_remove_x), ports.c (scm_pt_size, scm_pt_member), print.c
	(scm_current_pstate), scmsigs.c (scm_usleep), goops.c
	(scm_get_keyword, scm_sys_compute_slots): Added texinfo markup.

	* weaks.c (scm_weak_vector_p, scm_weak_key_hash_table_p),
	(scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
	rdelim.c (scm_read_delimited_x), strop.c (scm_string_index),
	symbols.c (scm_symbol_interned_p), numbers.c
	(scm_string_to_number), ports.c (scm_port_p): Corrected texinfo
	markup.

2001-03-16  Keisuke Nishida  <kxn30@po.cwru.edu>

	* snarf.h (SCM_CONST_LONG): Deprecated.
	* tag.c (CONST_INUM): New macro.  Use it to define scm_utag_*.

2001-03-15  Marius Vollmer  <marius.vollmer@uni-dortmund.de>

	* numbers.c (scm_num2ulong): Check that a bignum is positive
	before looking at the magnitude.  Correctly check for overflow
	during conversion.
	(scm_num2long_long): Likewise.
	(scm_num2ulong_long): New.
	(ULONG_LONG_MAX): Define if not already defined.
	* numbers.h: (scm_num2ulong_long): New prototype.

2001-03-15  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* validate.h (SCM_VALIDATE_OPOUTSTRPORT): New macro.

	* strports.h (SCM_STRPORTP, SCM_OPSTRPORTP, SCM_OPINSTRPORTP),
	(SCM_OPOUTSTRPORTP): New predicate macros.
	(scm_open_input_string, scm_open_output_string),
	(scm_get_output_string): New prototypes.

	* strports.c (scm_open_input_string, scm_open_output_string),
	(scm_get_output_string): New procedures (SRFI-6 compliant).
	Made scm_tc16_strport non-static.

2001-03-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* macros.h (SCM_ASSYNT):  Removed unused object argument from
	signature.

	* eval.c (scm_m_body, scm_m_quote, scm_m_begin, scm_m_if,
	scm_m_set_x, scm_m_and, scm_m_or, scm_m_case, scm_m_cond,
	scm_m_letstar, scm_m_do, scm_m_quasiquote, scm_m_delay,
	scm_m_define, scm_m_letrec1, scm_m_letrec, scm_m_let, scm_m_apply,
	scm_m_cont, scm_m_nil_cond, scm_m_nil_ify, scm_m_t_ify,
	scm_m_0_cond, scm_m_0_ify, scm_m_1_ify, scm_m_atfop, scm_m_atbind,
	scm_m_expand_body), evalext.c (scm_m_generalized_set_x,
	scm_m_undefine), goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
	scm_m_atdispatch):  Removed unused object argument from call to
	SCM_ASSYNT.

2001-03-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* gh.h/gh_data.c (gh_ints2scm):  Changed the signature to use a
	const int* to reflect that the input array of integers remains
	unchanged.  Thanks to Brett Viren for the hint.

2001-03-14  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* gh_data.c (gh_scm2chars, gh_scm2shorts, gh_scm2longs),
	(gh_scm2floats, gh_scm2doubles): Check for malloc() returning NULL
	in various places.
	(gh_scm2newstr, gh_symbol2newstr): Change call to
	scm_must_malloc() to malloc(), because user-free()able memory is
	allocated.

	* gc.c: Added declaration of `scm_debug_check_freelist'.

2001-03-13  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* ports.c (scm_port_mode): Changed `mode' array size to 4.

2001-03-12  Keisuke Nishida  <kxn30@po.cwru.edu>

	* strports.c (scm_object_to_string): New procedure.
	(scm_strprint_obj): Deprecated.
	* strports.h: Reflect the changes.

2001-03-12  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* goops.h (SCM_VALIDATE_PUREGENERIC):  New macro.

	* goops.c (scm_m_atslot_ref, scm_m_atslot_set_x,
	scm_m_atdispatch):  Provide definitions for FUNC_NAME.  Don't use
	SCM_ASSYNT to check for correct argument types.  Either use some
	SCM_VALIDATE_* macro or an explicit test.

	(scm_make_foreign_object):  Don't use SCM_ASSERT to check for
	misc-errors.

	* macros.h (SCM_ASSYNT):  On assertion failure, issue a misc-error
	instead of calling scm_wta.

2001-03-12  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* load.c (scm_primitive_load, scm_primitive_load_path),
	(scm_sys_search_load_path): Corrected docstrings (file ->
	filename).

	* eval.c (scm_force): Added texinfo markup to docstring.
	(scm_promise_p): Renamed parameter to `obj' to match docstring.

	* debug-malloc.c: Reinserted #include <stdio.h>.

2001-03-11  Keisuke Nishida  <kxn30@po.cwru.edu>

	* list.c (s_scm_reverse_x): Use SCM_VALIDATE_LIST.

	* environments.c, error.c, eval.c, filesys.c, hashtab.c, load.c,
	net_db.c, procprop.c, read.c, scmsigs.c, socket.c, struct.c:
	Use SCM_LISTn instead of scm_listify.

2001-03-10  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* _scm.h: Removed #include <errno.h>.

	* error.c, net_db.c, putenv.c, stime.c: Removed declaration of
	errno variable (can be a macro on some systems, for example when
	using linux libc with threads).

	* error.c, filesys.c, gc.c, ioext.c, iselect.c, net_db.c, ports.c,
	posix.c, print.c, putenv.c, scmsigs.c, script.c, simpos.c, smob.c,
	socket.c, srcprop.c, stime.c, strop.c, unif.c, vports.c: Added
	#include <errno.h> in these 20 out of 100 files.

2001-03-10  Gary Houston  <ghouston@arglist.com>

	* socket.c: add a definition of SUN_LEN (from glibc) for when it's
	not already defined.

2001-03-09  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* coop.c: Inserted #include <stdio.h>.

	* iselect.c: Reinserted #include <stdio.h>.

2001-03-10  Marius Vollmer  <mvo@zagadka.ping.de>

	* posix.c: Replaced `#define' of __USE_XOPEN right before
	including unistd.h with a define of _GNU_SOURCE at the very top of
	the file.

2001-03-09  Keisuke Nishida  <kxn30@po.cwru.edu>

	* alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
	continuations.c, debug-malloc.c, debug.c, dynwind.c, eq.c, eval.c,
	feature.c, filesys.h, gc_os_dep.c, gh_data.c, gh_eval.c,
	gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, hash.c,
	hashtab.c, iselect.c, keywords.c, list.c, load.c, mallocs.c,
	net_db.c, numbers.c, objprop.c, objprop.h, options.c, pairs.c,
	print.c, procprop.c, procs.c, properties.c, ramap.c,
	regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, srcprop.c,
	stackchk.c, stacks.c, strings.c, strop.c, strorder.c, struct.c,
	symbols.c, tag.c, threads.c, variable.c, vectors.c, weaks.c:
	Remove #include <stdio.h>
	* gc.c, gdbint.c, root.c, sort.c, unif.c: Add #include <string.h>.

	* procs.c (scm_make_subr_opt): Init symcell to avoid warning.

2001-03-09  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* posix.c (scm_gethostname): Set initial name length to 256 for
	Solaris.

2001-03-09  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* posix.h (scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
	(scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
	(scm_sethostname, scm_gethostname): New prototypes.

	* posix.c: Added inclusion of <crypt.h>, <sys/resource.h> and
	<sys/file.h>, if present.
	(scm_init_posix): [PRIO_PROCESS, PRIO_PGRP, PRIO_USER, LOCK_SH,
	LOCK_EX, LOCK_UN, LOCK_NB]: New variables.
	(scm_crypt, scm_chroot, scm_getlogin, scm_cuserid),
	(scm_getpriority, scm_setpriority, scm_getpass, scm_flock),
	(scm_sethostname, scm_gethostname): New procedures.

2001-03-08  Neil Jerram  <neil@ossau.uklinux.net>

	* ports.c (scm_port_column): Docstring fixes: (i) port-line arg is
	not optional (ii) "recommend" spelling correction.

2001-03-08  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* ramap.c (racp): Removed optimization which caused array copying
	to fail if the two arrays shared storage.  Re-inserted the IVDEP
	macros removed in the change of 2000-03-09.  (Don't really have a
	complete grasp of what they are for, but they seem to be necessary
	on Crays.  This needs testing!)  Thanks to Miroslav Silovic.

	* hash.c (scm_string_hash): Don't downcase characters.

2001-03-07  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* symbols.c (scm_symbols_prehistory): Changed symbol hash table
	size from 277 --> 1009.

	* symbols.c, symbols.h (scm_sys_symbols): New function GUILE_DEBUG
	function.

	* coop-threads.c: Fixed change of 2001-03-06.

	* validate.h: Code formatting.

2001-03-07  Keisuke Nishida  <kxn30@po.cwru.edu>

	* Makefile.am (*.x): Add dependency on snarf.h and guile-doc-snarf.in.
	(*.doc): Add dependency on guile-snarf.awk.in.

	* guile-snarf.awk.in: Neglect spaces at the end of
	SCM_SNARF_DOCSTRING_END.  Skip lines "# NN ..." in the
	middle of docstrings.  (To avoid the problem with gcc-2.96.)

2001-03-06  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* coop-threads.c (scm_call_with_new_thread), load.c
	(scm_primitive_load, scm_sys_search_load_path), random.c
	(scm_c_default_rstate), struct.c (scm_make_struct_layout,
	scm_struct_ref, scm_struct_set_x):  Don't use SCM_ASSERT to
	(potentially) issue a scm-misc-error or wrong-num-args error
	message.

	* load.c (scm_search_path):  Use SCM_ASSERT_TYPE to give details
	about the expected type with the wrong-type-arg error message.

	* smob.c (scm_make_smob):  Abort on misuse of smob - it indicates
	a C level bug that can't be fixed from scheme anyway.

2001-03-05  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* eval.c (scm_m_letstar): Removed check for duplicate bindings.
	Duplicate bindings are OK in a let* since a let* is semantically
	equivalent to a nested set of let:s.

2001-03-05  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* print.c (scm_print_options): Fixed texinfo in docstring.

	* net_db.c (scm_getserv, scm_getproto, scm_getnet): Return #f if
	the underlying functions getservent, getprotoent or getnetent
	return NULL instead of signalling an error.

2001-03-04  Gary Houston  <ghouston@arglist.com>

	* socket.c (scm_fill_sockaddr): don't allow buffer overflows when
	taking an unexpectedly large filename for an AF_UNIX socket from
	bind/connect/sendto (thanks to Martin Grabmueller).

	* socket.c (scm_sock_fd_to_port, SCM_SOCK_FD_TO_PORT): removed the
	former and adjusted the latter.
	(scm_socket, scm_socketpair): cosmetic changes.
	(scm_getsockopt, scm_setsockopt): declare optlen as int, not
	size_t as socklen_t substitute.  don't restrict args/return values
	to INUM: allow full range of int or size_t.
	(scm_fill_sockaddr): check arguments before allocating memory, to
	avoid leakage.  use malloc, not scm_must_malloc.
	(scm_connect, scm_bind, scm_sendto): use int, not size_t as socklen_t
	substitute.  free the sockaddr structure before throwing an error.
	(scm_init_add_buffer): procedure removed, together with its static
	buffer scm_addr_buffer, which wouldn't be thread safe.  instead,
	define a macro MAX_ADDR_SIZE and declare the buffer where needed.
	(scm_accept, scm_getpeername, scm_getsockname, scm_recvfrom,
	scm_sendto): use a local buffer instead of scm_addr_buffer.
	adjust for new SCM_SOCK_FD_TO_PORT.  use int for address size,
	not size_t.
	(scm_recvfrom): set addr->sa_family to AF_UNSPEC before the recvfrom
	call to detect whether recvfrom could be bothered to set the address.
	(scm_init_socket): don't call scm_init_addr_buffer.

2001-03-04  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* debug.c (scm_procedure_source, scm_procedure_environment),
	print.c (scm_get_print_state), ramap.c (scm_array_fill_int,
	scm_array_index_map_x), sort.c (scm_sort_x, scm_sort,
	scm_stable_sort_x, scm_stable_sort), stacks.c (scm_make_stack,
	scm_last_stack_frame), symbols.c (scm_sym2vcell, scm_sym2ovcell),
	unif.c (scm_list_to_uniform_array, scm_uniform_vector_length,
	scm_transpose_array, scm_enclose_array, scm_array_in_bounds_p,
	scm_uniform_vector_ref, scm_array_set_x, scm_uniform_array_read_x,
	scm_uniform_array_write, scm_bit_set_star_x, scm_bit_count_star,
	scm_array_to_list, scm_array_prototype), validate.h
	(SCM_VALIDATE_NUMBER_COPY):  Don't call function scm_wta, call
	scm_misc_error or scm_wrong_type_arg instead.

	* validate.h (SCM_WTA, RETURN_SCM_WTA):  Deprecated.

2001-03-04  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* goops.c, goops.h (scm_sys_pre_expand_closure_x): Removed.
	(scm_sys_tag_body): Added.

2001-03-04  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* continuations.c (continuation_apply), eval.c (scm_m_lambda,
	scm_m_letstar, scm_m_letrec1, scm_m_let, SCM_APPLY), eval.h
	(SCM_EVALIM2), evalext.c (scm_m_generalized_set_x), gc.c
	(get_bvec, MARK), goops.c (scm_primitive_generic_generic),
	options.c (scm_options), ports.c (scm_remove_from_port_table),
	ramap.c (scm_ramapc), read.c (skip_scsh_block_comment, scm_lreadr,
	scm_lreadparen, scm_lreadrecparen), script.c (script_get_octal,
	script_get_backslash, script_read_arg), unif.c (scm_cvref):  Don't
	call function scm_wta, call scm_misc_error or scm_wrong_type_arg
	instead.

2001-03-04  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* goops.c (scm_sys_pre_expand_closure_x): New procedure.

2001-03-04  Marius Vollmer  <mvo@zagadka.ping.de>

	* eval.c (scm_s_duplicate_bindings): New error message.
	(scm_m_letrec1, scm_m_letstar): Check for duplicate bindings.

2001-03-03  Marius Vollmer  <mvo@zagadka.ping.de>

	* eval.h (SCM_EVALIM2): New macro.  Use it when a
	immediate, literal constant should be evaluated.
	* eval.c (scm_s_duplicate_formals): New error message string.
	(scm_c_improper_memq): New function.
	(scm_m_lambda): Check for duplicate arguments.
	(scm_ceval, scm_deval): When executing a body: only cons a new
	toplevel environment frame when it is different from the
	existing one; use EVALCAR instead of SIDEVAL so that we can properly
	check for empty combinations; use SCM_EVALIM2 for the same reason
	in the non-toplevel loop.
	(nontoplevel_cdrxnoap, nontoplevel_cdrxbegin, nontoplevel_begin):
	New labels with the meaning of their non-"nontoplevel" partners,
	but they are used when it is known that the body is not evaluated at
	top-level.
	(scm_apply, scm_dapply): use SCM_EVALIM2 to get proper error
	reporting for empty combinations.

2001-03-02  Keisuke Nishida  <kxn30@po.cwru.edu>

	* Remove dump facilities.
	* dump.c, dump.h: Removed.
	* Makefile.am: Remove dump.c, dump.h, dump.x, dump.doc.
	* init.c: Remove #include "libguile/dump.h".
	(scm_init_guile_1): Remove scm_init_dump.
	* smob.h (scm_smob_descriptor): Remove slots: dump, undump.
	(scm_set_smob_dump, scm_set_smob_undump): Remove declaration.
	* smob.c (scm_make_smob_type): Remove initialization: dump, undump.
	(scm_set_smob_dump, scm_set_smob_undump): Removed.

	* keywords.c: Remove #include "libguile/dump.h".
	(keyword_dump, keyword_undump): Removed.
	(scm_init_keywords): Remove scm_set_smob_dump and scm_set_smob_undump.

2001-03-02  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* vectors.c (s_scm_vector_p, list->vector, scm_vector)
	(scm_vector_ref, scm_vector_set_x, scm_vector_to_list)
	(scm_vector_fill_x), strorder.c (scm_string_equal_p)
	(scm_string_ci_equal_p, scm_string_less_p, scm_string_leq_p)
	(scm_string_gr_p, scm_string_geq_p, scm_string_ci_less_p)
	(scm_string_ci_geq_p), symbols.c (scm_symbol_p)
	(scm_symbol_to_string, scm_string_to_symbol): Changed use of @t{}
	to @code{} as the texinfo manual recommends, converted the
	examples to use a @lisp{}-environment.

	* strports.c (scm_eval_string): Cleaned up the docstring.

	* struct.c (scm_struct_p, scm_struct_vtable_p): Added texinfo
	markup.

	* numbers.c (scm_exact_p, scm_odd_p, scm_even_p)
	(scm_number_to_string, scm_string_to_number, scm_number_p)
	(scm_real_p, scm_integer_p, scm_inexact_p, scm_make_rectangular)
	(scm_make_polar, scm_inexact_to_exact): Added texinfo markup.
	(scm_ash): Added texinfo markup and removed obsolete @refill.
	(scm_gr_p): Corrected comment.
	(scm_gr_p, scm_leq_p, scm_geq_p): Added texinfo markup to (future
	docstring) comments.
	(scm_positive_p, scm_less_p, scm_num_eq_p, scm_real_p)
	(scm_number_p, scm_negative_p, scm_max, scm_min, scm_sum)
	(scm_difference, scm_product, scm_divide, scm_asinh, scm_acosh)
	(scm_atanh, scm_truncate, scm_round, scm_exact_to_inexact)
	(floor, ceiling, $sqrt, $abs, $exp, $log, $sin, $cos, $tan, $asin)
	($acos, $atan, $sinh, $cosh, $tanh, scm_real_part, scm_imag_part)
	(scm_magnitude, scm_angle, scm_abs, scm_quotient, scm_remainder)
	(scm_modulo, scm_gcd, scm_lcm): Added (future docstring) comments.

2001-02-28  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* __scm.h (SCM_ASSERT_TYPE):  Add missing macro parameter.
	(Obviously nobody compiles with SCM_RECKLESS defined...)

	* validate.h (SCM_ASSERT_RANGE):  Use the argument number.

2001-02-23  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* ports.c, ports.h (scm_c_read, scm_c_write): New functions.

	* ports.h (SCM_READ_BUFFER_EMPTY_P): New macro.

2001-02-24  Neil Jerram  <neil@ossau.uklinux.net>

	* numbers.c (scm_two_doubles, scm_sys_expt, scm_sys_atan2,
	scm_make_polar): Rename arguments `z1' and `z2' to `x' and `y',
	since use of `z' suggests that the arguments may be complex.

	* goops.c (scm_make), numbers.c (scm_sys_expt): Fix docstring
	typos.

2001-02-23  Neil Jerram  <neil@ossau.uklinux.net>

	* dump.c (scm_binary_write, scm_binary_read), eval.c
	(scm_primitive_eval), guardians.c (scm_guardian_destroyed_p,
	scm_guardian_greedy_p, scm_make_guardian), fports.c
	(scm_file_port_p): Minor docstring fixes.

2001-02-22  Marius Vollmer  <mvo@zagadka.ping.de>

	* load.c (load): Use scm_primitive_eval_x instead of scm_i_eval_x.

	* goops.c (scm_add_method, DEFVAR): Use scm_eval instead of
	scm_i_eval.
	(make_class_from_template): Do not bother to set the current
	module around the call to DEFVAR, scm_eval takes care of that.
	(scm_init_goops): Make scm_module_goops and
	scm_goops_lookup_closure permanent objects.

	* eval.c (scm_ceval, scm_deval): When evaluating expressions on
	top level, create a fresh top-level environment for each
	expression instead of mutating the exisint frame.  This is
	important when that frame is closed over.

	* numbers.c (s_scm_logior) [SCM_DIGSTOOBIG]: Also use
	SCM_DIGSPERLONG instead of DIGSPERLONG.

2001-02-21  Marius Vollmer  <mvo@zagadka.ping.de>

	* eval.c (scm_ceval, scm_deval): Check for wrong number of args
	before applying arrow procedure in `cond' and before applying
	receiver procedure in call-with-current-continuation.
	(scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
	macro.  The argument is expanded more than one time.

	* numbers.c (scm_logior) [SCM_DIGSTOOBIG]: Correctly use
	SCM_BIGDIG instead of BIGDIG.  Thanks to Steven G. Johnson!

2001-02-20  Marius Vollmer  <mvo@zagadka.ping.de>

	* guile-doc-snarf.in, guile-func-name-check.in: Added copyright
	notice and license.

2001-02-17  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* variable.c (scm_make_variable, scm_make_undefined_variable)
	(scm_variable_ref, scm_variable_set_x, scm_builtin_variable)
	(scm_variable_bound_p), values.c (scm_values)
	(scm_call_with_values), unif.c (scm_bit_count)
	(scm_bit_set_star_x), symbols.c (scm_gentemp)
	(scm_gensym), strings.c (scm_string_p, scm_make_string)
	(scm_read_only_string_p, scm_string_length, scm_string_ref)
	(scm_string_set_x, scm_substring, scm_string_append), stime.c
	(scm_strptime, scm_mktime), random.c (scm_seed_to_random_state)
	(scm_copy_random_state, scm_random), print.c (scm_newline)
	(scm_write_char, scm_simple_format), debug-malloc.c
	(scm_malloc_stats), environments.c (scm_environment_p)
	(scm_environment_bound_p, scm_environment_ref)
	(scm_environment_fold, scm_environment_define)
	(scm_environment_undefine, scm_environment_set_x)
	(scm_environment_cell, scm_environment_observe)
	(scm_environment_observe_weak, scm_environment_unobserve)
	(scm_make_eval_environment, scm_eval_environment_p)
	(scm_eval_environment_set_local_x, scm_eval_environment_local)
	(scm_eval_environment_imported)
	(scm_eval_environment_set_imported_x, scm_make_import_environment)
	(scm_import_environment_p, scm_import_environment_imports)
	(scm_import_environment_set_imports_x, scm_make_export_environment)
	(scm_export_environment_p, scm_export_environment_private)
	(scm_export_environment_set_private_x)
	(scm_export_environment_signature)
	(scm_export_environment_set_signature_x, scm_leaf_environment_p):
	Added texinfo markup.

	* ports.c (scm_drain_input): Lowercased argument to @var.
	(scm_current_input_port, scm_current_output_port): Filled in
	missing explanation.
	(scm_current_load_port, scm_set_current_output_port)
	(scm_set_current_error_port, scm_port_line, scm_set_port_line_x):
	Added texinfo markup.

	* arbiters.c (scm_make_arbiter, scm_try_arbiter)
	(scm_release_arbiter): Added texinfo markup to docstrings.
	Changed `Returns' to `Return'.
	(arbiter_print): Changed SCM_CDR to SCM_SMOB_DATA.

2001-02-16  Neil Jerram  <neil@ossau.uklinux.net>

	* guile-snarf.awk.in: Quote any `@'s that occur in Scheme names,
	by doubling them to `@@'.

2001-02-16  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* numbers.c (scm_lognot), random.c (scm_random,
	scm_random_normal, scm_random_solid_sphere_x,
	scm_random_hollow_sphere_x, scm_random_normal_vector_x,
	scm_random_exp), dynwind.c
	(scm_dynamic_wind): Removed unnecessary "" from docstrings.

	* goops.c (scm_sys_initialize_object, scm_instance_p,
	scm_class_name, scm_class_precedence_list, scm_class_slots,
	scm_class_environment, scm_generic_function_name,
	scm_generic_function_methods, scm_method_generic_function,
	scm_method_specializers, scm_method_procedure, scm_make_unbound,
	scm_unbound_p, scm_assert_bound, scm_at_assert_bound_ref,
	scm_sys_fast_slot_ref, scm_sys_fast_slot_set_x, scm_slot_ref,
	scm_slot_set_x, _scm_slot_bound_p, scm_slots_exists_p,
	scm_sys_allocate_instance, scm_make, scm_pure_generic_p,
	scm_class_direct_supers, scm_class_direct_slots,
	scm_class_direct_subclasses, scm_class_direct_methods,
	scm_accessor_method_slot_definition, scm_sys_goops_loaded),
	debug.c (scm_with_traps, scm_memoized_p, scm_make_gloc,
	scm_gloc_p, scm_make_iloc, scm_iloc_p, scm_memcons,
	scm_mem_to_proc, scm_proc_to_mem, scm_unmemoize,
	scm_memoized_environment, scm_procedure_name,
	scm_procedure_source, scm_procedure_environment, scm_debug_hang),
	objects.c
	(scm_class_of, scm_entity_p, scm_operator_p,
	scm_set_object_procedure_x, scm_object_procedure,
	scm_make_class_object), hooks.c (scm_make_hook_with_name,
	scm_make_hook, scm_hook_p, scm_hook_empty_p, scm_add_hook_x,
	scm_remove_hook_x, scm_reset_hook_x, scm_run_hook,
	scm_hook_to_list), lang.c
	(scm_nil_cons, scm_nil_car, scm_nil_cdr, scm_null, scm_nil_eq),
	numbers.c (scm_sys_expt, scm_sys_atan2), print.c
	(scm_print_options, scm_port_with_print_state,
	scm_get_print_state), procs.c (scm_make_cclo, scm_procedure_p,
	scm_closure_p, scm_thunk_p, scm_procedure_with_setter_p,
	scm_make_procedure_with_setter, scm_procedure), throw.c
	(scm_lazy_catch), modules.c (scm_standard_eval_closure), load.c
	(scm_parse_path, scm_search_path), stacks.c (scm_make_stack,
	scm_stack_ref, scm_stack_length, scm_frame_p,
	scm_last_stack_frame, scm_frame_number, scm_frame_source,
	scm_frame_procedure, scm_frame_arguments, scm_frame_previous,
	scm_frame_next, scm_frame_real_p, scm_frame_procedure_p,
	scm_frame_evaluating_args_p, scm_frame_overflow_p), filesys.c
	(scm_dirname, scm_basename), dynwind.c
	(scm_wind_chain), read.c (scm_read_options, scm_read,
	scm_read_hash_extend), gc.c
	(scm_unhash_name), eval.c (scm_eval_options_interface,
	scm_evaluator_traps, s_scm_nconc2last), backtrace.c
	(scm_display_error, scm_set_print_params_x,
	scm_display_application, scm_display_backtrace, scm_backtrace),
	async.c (scm_async, scm_system_async, scm_async_mark,
	scm_system_async_mark, scm_run_asyncs, scm_noop,
	scm_set_tick_rate, scm_set_switch_rate, scm_unmask_signals,
	scm_mask_signals): Added docstrings.

2001-02-15  Keisuke Nishida  <kxn30@po.cwru.edu>

	* dump.c (scm_undump): Use SCM_CARLOC/SCM_CDRLOC to obtain the
	address of car/cdr.  (Thanks to Dirk Herrmann)
	Use scm_sizet to obtain the length of strings.
	(Thanks to Matthias Koeppe)

2001-02-15  Marius Vollmer  <mvo@zagadka.ping.de>

	* symbols.c (scm_mem2symbol): Put a empty statement after the
	next_symbol label.  This is mandated by ANSI, appearantly.

2001-02-13  Marius Vollmer  <marius.vollmer@uni-dortmund.de>

	* gc_os_dep.c: Do not include <linux/version.h>.  It makes no
	sense to compile for a specific kernel version.  Do not include
	<asm/signal.h> while defining __KERNEL__.  This hack should no
	longer be needed and caused problems.

2001-02-13  Marius Vollmer  <mvo@zagadka.ping.de>

	* eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
	SCM_CEVAL when evaluating subforms of `begin' forms.  SCM_CEVAL
	can not deal with immediates.

2001-02-12  Keisuke Nishida  <kxn30@po.cwru.edu>

	* list.c (scm_list_copy): Validate the first argument.

2001-02-11  Marius Vollmer  <mvo@zagadka.ping.de>

	Fix evaluator so that top-level expressions are correctly
	evaluated with respect to the module system.

	* modules.h. modules.c (scm_current_module_lookup_closure): New
	function.

	* eval.h (scm_primitive_eval, scm_primitive_eval_x): New
	prototypes.
	(scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
	names to better reflect their meaning.

	* eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
	evaluated at top-level and synronize lookup closure before
	executing every subform.
	(scm_primitve_eval_x, scm_primitive_eval): New functions.
	(scm_eval_x, scm_eval): Reimplement in terms of
	scm_primitive_eval_x and scm_primitive_eval, respectively.

2001-02-09  Marius Vollmer  <mvo@zagadka.ping.de>

	* macros.c (scm_macro_name, scm_macro_transformer): Use
	SCM_SMOB_DATA instead of SCM_CDR.  Provided by Martin Grabmueller.
	Thanks!

2001-02-10  Keisuke Nishida  <kxn30@po.cwru.edu>

	* dump.c (scm_store_bytes): Store data size before data.
	(scm_restore_bytes): Restore data size.  Takes a pointer to size.
	* dump.h (scm_restore_bytes): Updated.

2001-02-09  Keisuke Nishida  <kxn30@po.cwru.edu>

	* dump.c: Use double cells for update schedule.

2001-02-08  Keisuke Nishida  <kxn30@po.cwru.edu>

	* ports.c (scm_unread_char): Take an optional argument.

2001-02-08  Marius Vollmer  <marius.vollmer@uni-dortmund.de>

	* modules.h (scm_selected_module, scm_current_module): Renamed
	scm_selected_module to scm_current_module to synchronize Scheme
	and C names.
	(scm_select_module, scm_set_current_module): Likewise.  Changed
	all uses.

	* ports.c (scm_port_for_each): Make a snapshot of the port table
	before iterating over it.  The table might change while the user
	code is running.  With the snapshot, the user can depend on the
	fact that each port that existed at the start of the iteration is
	encountered exactly once.  (ice-9 popen) depends on this.

2001-02-08  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* strings.h (SCM_STRING_MAX_LENGTH):  New macro.

	* strings.c (scm_makstr, scm_take_str, scm_make_string):  Added
	range checking for the size parameter.  Thanks to Martin
	Grabmueller for the hint.

	(scm_makstr):  Reordered string initialization to make interrupt
	deferring unnecessary.

	* vectors.c (scm_make_vector):  Fixed range checking.

2001-02-08  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* vectors.h (SCM_VECTOR_MAX_LENGTH):  New macro.

	* vectors.c (scm_make_vector, scm_c_make_vector):  Improved the
	checking of the size parameter for type correctness and valid
	range.  Thanks to Rob Browning for reporting the problem.  Instead
	of deferring interrupts, scm_remember_upto_here_1 is used.

2001-02-05  Keisuke Nishida  <kxn30@po.cwru.edu>

	* dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
	(scm_dump_cell_update): Removed.
	(scm_dump_update): Renamed from scm_dump_object_update.
	(scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
	a pointer instead of returning a value.
	* keywords.c (keyword_undump): Updated.

2001-02-05  Keisuke Nishida  <kxn30@po.cwru.edu>

	* dump.c, dump.h: Modified a lot.
	(SCM_DUMP_COOKIE): Version 0.1
	(scm_dump_mark): Removed.
	(scm_restore_cell_object, scm_store_cell_object): New functions.

	* smob.h (scm_smob_descriptor): Removed slots: dump_mark,
	dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
	New slots: dump, undump.
	* smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
	Updated.

	* keywords.c (keyword_dump): Renamed from keyword_dealloc.
	(keyword_undump): Renamed from keyword_alloc.
	(scm_init_keywords): Set keyword_dump and keyword_undump.

2001-02-03  Michael Livshin  <mlivshin@bigfoot.com>

	* gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
	the deprecated SCM_DOUBLE_CELLP.

	* tags.h (SCM_DOUBLE_CELLP): deprecated.

2001-02-02  Keisuke Nishida  <kxn30@po.cwru.edu>

	* dump.c, dump.h: New files.
	* Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
	* init.c: #include "libguile/dump.h".
	(scm_init_guile_1): Call scm_init_dump.
	* smob.h (scm_smob_descriptor): New slots: dump_mark,
	dump_dealloc, dump_store, undump_alloc, undump_restore,
	undump_init.
	* smob.c (scm_make_smob_type): Init the new slots.
	(scm_set_smob_dump, scm_set_smob_undump): New functions.
	* smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.

	* keywords.c: #include "libguile/dump.h".
	(keyword_dealloc, keyword_alloc): New functions.
	(scm_init_keywords): Set smob_dump and smob_undump.

2001-02-01  Keisuke Nishida  <kxn30@po.cwru.edu>

	* vectors.c (scm_c_make_vector): New function.
	* vectors.h (scm_c_make_vector): Declared.
	* eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
	(scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
	gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
	(scm_make_method_cache, scm_i_vector2list,
	scm_compute_applicable_methods, scm_sys_method_more_specific_p),
	init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
	scm_getproto, scm_return_entry), posix.c (scm_getgroups,
	scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
	grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
	(scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
	stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
	(scm_vector, scm_make_vector): Use scm_c_make_vector.

	* hashtab.c (scm_c_make_hash_table): New function.
	* hashtab.h (scm_c_make_hash_table): Declared.
	* environments.c (scm_make_leaf_environment,
	scm_make_eval_environment), gc.c (scm_init_storage),
	keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
	Use scm_c_make_hash_table.

2001-01-31  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.

2001-01-29  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
	end of docstring.

	* struct.c (scm_struct_set_x, scm_struct_vtable_tag,
	scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
	(scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
	scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
	srcprop.c (scm_source_properties, scm_set_source_properties_x,
	scm_source_property, scm_set_source_property_x), sort.c
	(scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
	scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
	scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
	docstrings.

2001-01-29  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* eval.c (SCM_APPLY): Check that primitives which take 1 arg
	really get that arg.

2001-01-26  Keisuke Nishida  <kxn30@po.cwru.edu>

	* goops.c (s_scm_get_keyword): Bug fix.

2001-01-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	The following patch was sent by Martin Grabmueller.  It makes sure
	that in case of parameter errors the correct function name is
	shown, and that parameter types are only checked once.

	* strop.c (string_copy, string_upcase_x, string_downcase_x,
	string_capitalize_x):  New functions.  Each one performs the core
	functionality of the corresponding scm_* function.

	(scm_string_copy, scm_string_upcase_x, scm_string_upcase,
	scm_string_downcase_x, scm_string_downcase,
	scm_string_capitalize_x, scm_string_capitalize):  Reduced to
	parameter checking wrappers of the above functions.

2001-01-26  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* continuations.c, dynl.c, keywords.c, load.c:  Include
	strings.h.  Thanks to Bill Schottstaedt for the bug report.

2001-01-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* backtrace.c (display_header):  Make sure that line and column
	information is shown independent of whether the port the code was
	read from had an associated filename.  Thanks to Martin
	Grabmueller for providing this patch.

2001-01-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* fports.[ch] (scm_file_port_p):  New primitive.

2001-01-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
	These are now defined in fports.c, strports.c and vports.c.

	* fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
	vports.c (scm_tc16_sfport): Made variables (were macros defined in
	tags.h).

	fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
	(scm_make_sfptob):  Made static.  These return a type code now.

	fports.c (scm_init_fports), strports.c (scm_init_strports),
	vports.c (scm_init_vports):  Create the corresponding port types.

	* fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
	SCM_OPOUTFPORTP):  Redefined in terms of scm_tc16_fport.

	* init.c (scm_init_guile_1):  Make sure strports are initialized
	before gdbint.

	* ports.[ch] (scm_make_port_type):  Changed the return type to
	scm_bits_t.

	* ports.c (scm_ports_prehistory):  Don't create any port types
	here.

	* posix.c (scm_ttyname):  Use SCM_FPORTP instead of comparing
	against scm_tc16_fport directly.

2001-01-25  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* srcprop.c (scm_set_source_property_x):  Fix to handle
	(set-source-property! <obj> 'copy <datum>) correctly.

2001-01-24  Gary Houston  <ghouston@arglist.com>

	* filesys.c (scm_link): docstring fix.
	* fports.h (scm_setfileno): obsolete declaration removed.
	* posix.c: bogus popen declaration removed.

	* rdelim.c: new file, split from ioext.c.
	* rdelim.h: new file, split from ioext.h
	* Makefile.am: add rdelim.c and related files.
	* init.c: call scm_init_rdelim.  include rdelim.h.

2001-01-24  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	This patch was sent by Martin Grabmueller and makes sure that
	parameter errors are reported correctly by the lexicographic
	ordering predicates.

	* strorder.c (string_less_p, string_ci_less_p):  New functions.

	(scm_string_less_p, scm_string_ci_less_p):  Extracted the core
	functionality into string_less_p, string_ci_less_p respectively.
	The remaining code is just a wrapper to do the parameter
	checking.

	(scm_string_leq_p, scm_string_gr_p, scm_string_geq_p):  Check the
	parameters and call string_less_p instead of scm_string_less_p.

	(scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
	Check the parameters and call string_less_ci_p instead of
	scm_string_ci_less_p.

2001-01-24  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	This patch modifies scm_display_error to perform parameter
	checking.  Thanks to Neil Jerram for the bug report.

	* backtrace.[ch] (scm_i_display_error):  New function.

	* backtrace.c (scm_display_error):  Added parameter check and
	extracted the core functionality into function
	scm_i_display_error.

	* throw.c (handler_message):  Call scm_i_display_error to display
	the error message.

2001-01-23  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>

	* eval.c (SCM_APPLY): Added # args check for application of
	procedures with arity 3.  (Thanks to Anders Holst.)

2001-01-24  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P):  Added.

	(SCM_OPDIRP):  Deprecated.

	* filesys.c (scm_opendir):  Use SCM_DIR_FLAG_OPEN instead of
	SCM_OPN.

	(scm_readdir, scm_rewinddir):  Don't use SCM_VALIDATE_OPDIR.
	Instead, give an explicit error message in case the directory is
	closed.

	(scm_closedir, scm_dir_print):  Rewritten to use SCM_DIR_OPEN_P
	instead of SCM_OPENP and SCM_CLOSEDP.

	* validate.h (SCM_VALIDATE_OPDIR):  Deprecated.

2001-01-22  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* eval.c (inner_eval, scm_eval):  Move all real functionality into
	inner_eval.  Avoid to copy the expression twice by inlining some
	code from scm_i_eval.

2001-01-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* eval.c (scm_m_case):  The 'else' clause of a 'case' statement
	now has to be the last clause, as required by R5RS.  Thanks to
	Martin Grabmueller for the patch.

2001-01-18  Gary Houston  <ghouston@arglist.com>

	* ioext.c: further simplify scm_read_string_x_partial by defining
	a macro	SCM_EBLOCK.

2001-01-18  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* gh_data.c (gh_ints2scm):  Simplified using SCM_FIXABLE.

2001-01-18  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* __scm.h:  Added comment about architecture and compiler
	properties that are required by guile.

	(SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
	SCM_MOST_NEGATIVE_FIXNUM):  Moved to numbers.h.

	(SCM_CHAR_BIT, SCM_LONG_BIT):  Moved here from numbers.h.

	* numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT):  Moved to __scm.h.

	(SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
	SCM_MOST_NEGATIVE_FIXNUM):  Moved here from __scm.h.

2001-01-17  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* __scm.h (SCM_FIXNUM_BIT):  Added.  The name is chosen in analogy
	to the names in limits.h.

	* numbers.c (abs_most_negative_fixnum):  Added.

	(scm_quotient, scm_remainder):  Fixed the fixnum-min / (abs
	fixnum-min) special case.

	(scm_big_and):  Fix for negative first parameter.

	(scm_bit_extract):  Fix for fixnum paramters.
	Thanks to Rob Browning for the bug report.

	(scm_init_numbers):  Initialize abs_most_negative_fixnum.

2001-01-16  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* symbols.c (scm_symbol_bound_p):  Fixed comment.
	Thanks to Chris Cramer.

2001-01-15  Dirk Herrmann  <D.Herrmann@tu-bs.de>

	* smob.[ch] (scm_make_smob_type):  Return type is scm_bits_t now.
	Thanks to Bill Schottstaedt.

2001-01-11  Michael Livshin  <mlivshin@bigfoot.com>

	from Matthias Köppe:

	* objects.h (SCM_SET_ENTITY_SETTER): new macro.  SCM_ENTITY_SETTER
	casts its result, so doesn't yield an lvalue per ANSI C.

	* goops.c (s_scm_sys_set_object_setter_x): use
	SCM_SET_ENTITY_SETTER.
	(clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.

	* gc.h (SCM_GC_SET_CARD_BVEC): new macro.  SCM_GC_CARD_BVEC casts
	its result, so doesn't yield an lvalue per ANSI C.
	(SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
	(SCM_GC_CLR_CARD_FLAGS): redefined in terms of
	SCM_GC_SET_CARD_FLAGS.
	(SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.

	* gc.c (INIT_CARD): use the explicit setter macro to set the bvec.

2001-01-08  Gary Houston  <ghouston@arglist.com>

	* validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
	* ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
	socket.c (scm_recvfrom): use the new macro, plus minor docstring
	changes.
	* ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
	for fdes.  if current input port is used, check that it's a file
	port.

2001-01-06  Gary Houston  <ghouston@arglist.com>

	* ioext.c (scm_read_string_x_partial): new procedure, implements
	read-string!/partial.
	* ports.c (scm_take_from_input_buffers): new procedure used by
	scm_read_string_x_partial.
	(scm_drain_input): use scm_take_from_input_buffers.

2001-01-06  Marius Vollmer  <mvo@zagadka.ping.de>

	* validate.h (SCM_VALIDATE_NUMBER): New.

2001-01-03  Michael Livshin  <mlivshin@bigfoot.com>

	* guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
 	SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
 	SET_DESTROYED): new defines/macros.
	(GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
	(add_to_live_list): takes a `guardian_t *' now, not SCM.
	(guardian_print): print more info.
	(guardian_apply): check if the guardian is destroyed, and throw an
 	error if so.  take one more optional argument `throw_p'.
	(scm_guard): depending on the value of `throw_p', return a boolean
 	result.
	(scm_get_one_zombie): remove redundant property test.
	(guardian_t): represent the various (currently 3, I hope nothing
 	more gets added) boolean fields as bit flags.
	(scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
	(scm_destroy_guardian_x): new procedure.

	* guardians.h: added prototypes for `scm_guardian_greedy_p' and
	`scm_guardian_destroyed_p'.  changed prototype for `scm_guard'.

2001-01-01  Gary Houston  <ghouston@arglist.com>

	* fports.c (fport_write): bugfix: handle short writes for
	unbuffered ports too.  optimize the buffered case by minimizing
	the number of write/flush calls.
	(write_all): new helper procedure.

The ChangeLog continues in the file: "ChangeLog-2000"