* tests/filesys.test: New file, exercising copy-file.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
03696aab
MV
12004-07-29 Marius Vollmer <marius.vollmer@uni-dortmund.de>
2
51fdb325
MV
3 * numbers.h (scm_to_schar, scm_to_uchar, scm_to_char,
4 scm_to_short, scm_to_ushort, scm_to_int, scm_to_uint, scm_to_long,
5 scm_to_ulong, scm_to_long_long, scm_to_ulong_long, scm_to_intmax,
6 scm_to_uintmax, scm_to_size_t, scm_to_ssize_t scm_from_schar,
7 scm_from_uchar, scm_from_char, scm_from_short, scm_from_ushort,
8 scm_from_int, scm_from_uint, scm_from_long, scm_from_ulong,
9 scm_from_long_long, scm_from_ulong_long, scm_from_intmax,
10 scm_from_uintmax, scm_from_size_t, scm_from_ssize_t): No longer
11 defined in terms of scm_to_signed_integer, etc, but in terms of
12 scm_to_int8, etc.
13
14 * gen-scmconfig.c (SCM_SIZEOF_INTMAX, SCM_SIZEOF_SIZE_T): New.
15
03696aab
MV
16 * gen-scmconfig.h.in: Removed SCM_I_GSC_*_LIMITS macros, they are
17 no longer used.
18
19 * __scm.h (SCM_I_UTYPE_MAX, SCM_I_TYPE_MAX, SCM_I_TYPE_MIN,
20 SCM_I_SIZE_MAX, SCM_I_SSIZE_MIN, SCM_I_SSIZE_MAX): New.
21
22 * __scm.h, gen-scmconfig.c (SCM_I_LLONG_MAX, SCM_I_LLONG_MIN,
23 SCM_I_ULLONG_MAX, SCM_T_INT8_MIN, SCM_T_INT8_MAX, SCM_T_UINT8_MAX,
24 SCM_T_INT16_MIN, SCM_T_INT16_MAX, SCM_T_UINT16_MAX,
25 SCM_T_INT32_MIN, SCM_T_INT32_MAX, SCM_T_UINT32_MAX,
26 SCM_T_INT64_MIN, SCM_T_INT64_MAX, SCM_T_UINT64_MAX,
27 SCM_T_INTMAX_MIN, SCM_T_INTMAX_MAX, SCM_T_UINTMAX_MAX): Moved
28 definition into __scm.h, using new SCM_I_TYPE_MIN, etc.
29
30 * conv-integer.i.c, conv-uinteger.i.c: New files, used to generate
31 the functions below.
32
33 * Makefile.am (noinst_HEADERS): Added conv-integer.i.c and
34 conv-uinteger.i.c.
35
36 * numbers.c, numbers.h (scm_to_int8, scm_to_uint8, scm_to_int16,
37 scm_to_uint16, scm_to_int32, scm_to_uint32, scm_to_int64,
38 scm_to_uint64, scm_from_int8, scm_from_uint8, scm_from_int16,
39 scm_from_uint16, scm_from_int32, scm_from_uint32, scm_from_int64,
40 scm_from_uint64): Turned from macros into proper functions.
41 (scm_to_signed_integer, scm_to_unsigned_integer,
42 scm_from_signed_integer, scm_from_unsigned_integer): Generate via
43 conv-integer.i.c and conv-uinteger.i.c, as well.
44
45 * number.h (scm_to_ssize_t, scm_to_size_t): Use the new
46 SCM_I_SSIZE_MIN, SCM_I_SSIZE_MAX, and SCM_I_SIZE_MAX macros for
47 the limits. Those are always defined.
48
1f15779e
KR
492004-07-29 Kevin Ryde <user42@zip.com.au>
50
51 * posix.c (scm_ttyname): Use scm_i_misc_mutex for thread safety.
52
48360eb3
KR
532004-07-28 Kevin Ryde <user42@zip.com.au>
54
55 * posix.c (scm_ctermid): Use an L_ctermid buf on the stack, for thread
56 safety.
57
c3f3c841
KR
58 * unif.c (scm_array_set_x): For svect, use scm_num2short for
59 consistency with other vector types and to get arg and func name into
60 error message.
61
c82f8ed6
MV
622004-07-27 Marius Vollmer <marius.vollmer@uni-dortmund.de>
63
64 * deprecated.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOLP, SCM_BOOL):
65 Reimplement using scm_is_false, scm_is_true, scm_is_bool, and
66 scm_from_bool, respectively.
67 (SCM_NINUMP): Added.
68
69 * tags.h, deprecated.h (SCM_EQ_P): Deprecated by moving it into
70 deprecated.h. Replaced all uses with scm_is_eq.
71
317b4c4a
KR
722004-07-24 Kevin Ryde <user42@zip.com.au>
73
74 * threads.c, threads.h (scm_i_misc_mutex): New SCM_GLOBAL_MUTEX.
75 * posix.c (scm_crypt): Use it to protect static data in crypt().
76
e11e83f3
MV
772004-07-23 Marius Vollmer <marius.vollmer@uni-dortmund.de>
78
79 * deprecated.h, deprecated.c, numbers.h (SCM_INUMP, SCM_NINUMP,
c82f8ed6 80 SCM_INUM): Deprecated by renaming them to SCM_I_INUMP,
e11e83f3
MV
81 SCM_I_NINUMP and SCM_I_INUM, respectively and adding deprecated
82 versions to deprecated.h and deprecated.c. Changed all uses to
83 either use the SCM_I_ variants or scm_is_*, scm_to_*, or
84 scm_from_*, as appropriate.
85
86 * dynwind.c (scm_i_dowinds): Removed unused code that would call
87 the unexisting scm_cross_dynwind_binding_scope for inums on the
88 windlist.
89
a55c2b68
MV
902004-07-10 Marius Vollmer <marius.vollmer@uni-dortmund.de>
91
92 * socket.c (ipv6_net_to_num, scm_from_ipv6): Renamed
e11e83f3 93 ipv6_net_to_num to scm_from_ipv6, for converting from an IPv6
a55c2b68
MV
94 byte-wise address to a SCM integer. Changed all uses.
95 (ipv6_num_to_net, scm_to_ipv6): Renamed ipv6_num_to_net to
96 scm_to_ipv6 and added type and range checking, for converting from
97 an IPv& byte-wise address to a SCM integer. Changed all uses.
98 (bignum_in_ipv6_range_p, VALIDATE_INET6): Removed, their function
99 is now done by scm_to_ipv6.
100
101 * numbers.c (scm_to_signed_integer, scm_to_unsigned_integer): dot
102 not accept inexact integers.
103
104 * validate.h, deprecated.h (SCM_VALIDATE_INUM,
105 SCM_VALIDATE_INUM_COPY, SCM_VALIDATE_BIGINT,
106 SCM_VALIDATE_INUM_MIN, SCM_VALIDATE_INUM_MIN_COPY,
107 SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF,
108 SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE,
109 SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the
110 fixnum/bignum distinction visible. Changed all uses to
111 scm_to_size_t or similar.
112
1132004-07-09 Marius Vollmer <marius.vollmer@uni-dortmund.de>
114
115 * cpp_cnvt.awk: Use scm_from_int instead of SCM_MAKINUM.
116
48a06bd5
KR
1172004-07-10 Kevin Ryde <user42@zip.com.au>
118
119 * hash.c (scm_hashq, scm_hashv, scm_hash): Restrict to size>=1 rather
120 than size>=0, since 0<=hash<size cannot be satisfied for size==0, and
121 such a size causes divide-by-zeros in scm_hasher.
122
052fbfd9
KR
123 * regex-posix.c (scm_make_regexp): Free rx on error, to avoid memory
124 leak.
125
43240c9c
MV
1262004-07-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
127
128 * numbers.c (scm_is_signed_integer, scm_is_unsigned_integer):
129 Rewritten using the same logic as scm_to_signed_integer and
130 scm_to_unsigned_integer, respectively, which is better(tm). Also,
131 use CHAR_BIT instead of hardcoding 8.
132 (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Removed and used
133 SCM_I_LLONG_MIN etc. instead.
134
135 * numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM to
136 SCM_I_MAKINUM and changed all uses.
137 * deprecated.h, deprecated.c (SCM_MAKINUM): Newly deprecated.
138
a3de8e7b
MV
139 * gen-scmconfig.c (SCM_I_LLONG_MIN, SCM_I_LLONG_MAX,
140 SCM_I_ULLONG_MAX): Instead of hard-coding the numbers, compute
43240c9c
MV
141 them by assuming twos-complement.
142
c9eb03bb
MV
1432004-07-07 Marius Vollmer <marius.vollmer@uni-dortmund.de>
144
145 * gen-scmconfig.h.in: Added all the new SCM_I_GSC_*_LIMITS that
146 configure now produces.
147 * gen-scmconfig.c: Use them to output SCM_T_INT8_MIN, etc
148 definitions, giving the limits of the integer types defined by
149 Guile. Also, output a hard coded SCM_I_LLONG_MIN, etc since
150 LLONG_MIN or LONG_LONG_MIN is hard to get at.
151
152 * numbers.h (scm_to_short, scm_to_ushort): It's SHRT_MIN, etc, not
153 SHORT_MIN.
154 (scm_to_size_t): Use SIZE_MAX instead of cooking our own.
155 (scm_to_long_long, scm_to_ulong_long, scm_to_int8, scm_to_uint8,
156 scm_to_int16, scm_to_uint16, scm_to_int32, scm_to_uint32,
157 scm_to_int64, scm_to_uint64, scm_to_intmax, scm_to_uintmax,
158 scm_from_long_long, scm_from_ulong_long, scm_from_int8,
159 scm_from_uint8, scm_from_int16, scm_from_uint16, scm_from_int32,
160 scm_from_uint32, scm_from_int64, scm_from_uint64, scm_from_intmax,
161 scm_from_uintmax): New.
162
7888309b
MV
1632004-07-06 Marius Vollmer <marius.vollmer@uni-dortmund.de>
164
165 * tags.h (scm_is_eq): New.
166
167 * deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,
168 SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into
169 "deprecated.h". Replaced all uses with scm_is_false, scm_is_true,
170 scm_from_bool, and scm_is_bool, respectively.
171
172 * boolean.h (scm_is_bool): Fix bug in prototype.
173 (scm_from_bool): The argument is "x" not "f", stupid.
174
175 * boolean.c (scm_is_bool): Fix typo.
176
177 * numbers.h, numbers.c (scm_is_integer, scm_is_signed_integer,
178 scm_is_unsigned_integer, scm_to_signed_integer,
179 scm_to_unsigned_integer, scm_to_schar, scm_to_uchar, scm_to_char,
180 scm_to_short, scm_to_ushort, scm_to_long, scm_to_ulong,
181 scm_to_size_t, scm_to_ssize_t, scm_from_schar, scm_from_uchar,
182 scm_from_char, scm_from_short, scm_from_ushort, scm_from_int,
183 scm_from_uint, scm_from_long, scm_from_ulong, scm_from_size_t,
184 scm_from_ssize_t, scm_is_real, scm_to_double, scm_from_double):
185 New.
186
800570a6
MV
1872004-07-05 Marius Vollmer <marius.vollmer@uni-dortmund.de>
188
189 * boolean.h, boolean.c (scm_is_true, scm_is_false, scm_from_bool,
190 scm_to_bool): New.
191
9fcf3cbb
DH
1922004-06-27 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
193
194 * backtrace.c (display_expression, display_frame): Call
195 scm_i_unmemoize_expr for unmemoizing a memoized object holding a
196 single memoized expression.
197
198 * debug.c (memoized_print): Don't try to unmemoize the memoized
199 object, since we can't know whether it holds a single expression
200 or a body.
201
202 (scm_mem_to_proc): Removed check for lambda expression, since it
203 was moot anyway. Whoever uses these functions for debugging
204 purposes should know what they do: Creating invalid memoized code
205 will cause crashes, independent of whether this check is present
206 or not.
207
208 (scm_proc_to_mem): Take the closure's code as it is and don't
209 append a SCM_IM_LAMBDA isym. To allow easier debugging, the
210 memoized code should not be modified.
211
212 * debug.[ch] (scm_unmemoize, scm_i_unmemoize_expr): Removed
213 scm_unmemoize from public use, but made scm_i_unmemoize_expr
214 available as a guile internal function instead. However,
215 scm_i_unmemoize_expr will only work on memoized objects that hold
216 a single memoized expression. It won't work with bodies.
217
218 * debug.c (scm_procedure_source), macros.c (macro_print), print.c
219 (scm_iprin1): Call scm_i_unmemocopy_body for unmemoizing a body,
220 i. e. a list of expressions.
221
222 * eval.c (unmemoize_exprs): Drop internal body markers from the
223 output during unmemoization.
224
225 * eval.[ch] (scm_unmemocopy, scm_i_unmemocopy_expr,
226 scm_i_unmemocopy_body): Removed scm_unmemocopy from public use,
227 but made scm_i_unmemocopy_expr and scm_i_unmemocopy_body available
228 as guile internal functions instead. scm_i_unmemoize_expr will
229 only work on a single memoized expression, while
230 scm_i_unmemocopy_body will only work on bodies.
231
90df793f
DH
2322004-06-21 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
233
234 * eval.c (unmemoize_exprs): Handle semi-memoized code.
235
236 (scm_cons_source, scm_primitive_eval): Prefer higher level
237 predicate SCM_FALSEP over SCM_IMP.
238
8048c00b
RB
2392004-06-15 Rob Browning <rlb@defaultvalue.org>
240
241 * script.c (scm_shell_usage): minor phrasing change.
242
243 * gc_os_dep.c: update ifdefery for macosx.
244 (scm_get_stack_base): separate result initialization from
245 declaration to slience warnings with macosx and hp-ux using gcc
246