Commit | Line | Data |
---|---|---|
6063dc1d SJ |
1 | 2001-11-21 Stefan Jahn <stefan@lkcc.org> |
2 | ||
3 | * win32-socket.c (getservent, setservent, endservent, | |
4 | getprotoent, setprotoent, endprotoent): New functions. | |
5 | Appropriate replacements for M$-Windows. | |
6 | ||
7 | * numbers.c (SIZE_MAX, PTRDIFF_MAX, PTRDIFF_MIN): Reintroduced | |
8 | these definitions for GUILE_DEBUG. | |
9 | ||
10 | * net_db.c: Include "win32-socket.h" if compiling with a native | |
11 | M$-Windows compiler. Include some pieces of code (protoent and | |
12 | servent interface) protected by HAVE_* macros when using a | |
13 | native M$-Windows compiler. | |
14 | ||
351982f6 MV |
15 | 2001-11-20 Marius Vollmer <mvo@zagadka.ping.de> |
16 | ||
17 | * modules.c (scm_c_export): Do nothing when the first argument is | |
18 | already the terminating NULL. Thanks to Han-Wen Nienhuys! | |
19 | ||
849038b5 TTN |
20 | 2001-11-20 Thien-Thi Nguyen <ttn@glug.org> |
21 | ||
22 | * Makefile.am (libpath.h): In SCM_BUILD_INFO, | |
23 | also include `buildstamp'. | |
24 | ||
5c790b44 RB |
25 | 2001-11-18 Rob Browning <rlb@defaultvalue.org> |
26 | ||
27 | * version.c | |
28 | (s_scm_major_version): use SCM_MAJOR_VERSION. | |
29 | (s_scm_minor_version): use SCM_MINOR_VERSION. | |
30 | (s_scm_micro_version): use SCM_MICRO_VERSION. | |
31 | (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and | |
32 | SCM_MICRO_VERSION. | |
33 | ||
34 | * version.h.in | |
35 | (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION. | |
36 | (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION. | |
37 | (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION. | |
38 | ||
694a9bb3 NJ |
39 | 2001-11-18 Neil Jerram <neil@ossau.uklinux.net> |
40 | ||
41 | * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x): | |
42 | Rewrite docstrings without reference to substring-move-left/right, | |
43 | since the latter no longer exist. | |
44 | ||
302c12b4 DH |
45 | 2001-11-17 Dirk Herrmann <D.Herrmann@tu-bs.de> |
46 | ||
47 | * eval.c: Removed bogus comment about acros. | |
48 | ||
49 | (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP. | |
50 | Minimize scope of local variable. Eliminate dependency on | |
51 | macro DEBUG_EXTENSIONS. | |
52 | ||
53 | (s_splicing): New error message string. | |
54 | ||
55 | (scm_m_body): Issue 'bad body' message rather than 'missing | |
56 | expression' message. | |
57 | ||
58 | (scm_m_quote): Eliminate unnecessary copying. | |
59 | ||
60 | (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the | |
61 | checking of the body to scm_m_body. | |
62 | ||
63 | (scm_m_do): Move comment to function header. Rename arg1 to | |
64 | binding. Made the code a bit easier to read. | |
65 | ||
66 | (evalcar): Removed. | |
67 | ||
68 | (iqq): Added a comment. Changed the depth parameter to | |
69 | unsigned. Use size_t for vector lengths. Make sure vector object | |
70 | is gc protected as long as its contents are read. Add some syntax | |
71 | checks. Get rid of unnecessary SCM_IMP test. Clean up the | |
72 | control structure a bit. | |
73 | ||
74 | (scm_m_delay): Added comment about the implementation of | |
75 | scm_m_delay. | |
76 | ||
77 | (scm_m_define): Add comment about guile's currying define | |
78 | syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro | |
79 | DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code. | |
80 | ||
81 | (scm_m_letrec1): Removed. Part of the functionality is taken | |
82 | over by the new function 'transform_bindings'. | |
83 | ||
84 | (transform_bindings): New function. Takes over some of the | |
85 | functionality of removed function 'scm_m_letrec1', namely to split | |
86 | a list of bindings into a reversed list of variables and a list of | |
87 | initializers. | |
88 | ||
89 | (scm_m_letrec): Call 'transform_bindings'. | |
90 | ||
91 | (scm_m_let): Minimized scope of local variables. Renamed 'proc' | |
92 | to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP | |
93 | test. Use 'transform_bindings'. Fixed scoping error with named | |
94 | let (Thanks to Aubrey Jaffer for reporting the bug and to Neil | |
95 | Jerram for suggesting the fix). Cleaned up the control structure | |
96 | a bit. | |
97 | ||
98 | (scm_m_expand_body): Use 'transform_bindings'. Eliminated | |
99 | unnecessary consing. Eliminated unnecessary | |
100 | SCM_DEFER/ALLOW_INTS. | |
101 | ||
102 | (SCM_CEVAL): Un-obfuscated some loops. | |
103 | ||
cecb4a5e NJ |
104 | 2001-11-16 Neil Jerram <neil@ossau.uklinux.net> |
105 | ||
8f85c0c6 NJ |
106 | * gc.h (scm_unhash_name): Old declaration removed. |
107 | ||
108 | * eval.c (s_scm_eval): Change @var{primitive-eval} to | |
109 | @code{primitive-eval}. | |
110 | ||
111 | * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c, | |
112 | version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c: | |
113 | Change @deffnx lines in docstrings to say {Scheme Procedure} | |
114 | rather than primitive or procedure. | |
115 | ||
116 | * posix.c (scm_execl), filesys.c (scm_close), unif.c | |
117 | (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x, | |
118 | scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x, | |
119 | scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector, | |
120 | scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c | |
121 | (scm_string_split, scm_string_ci_to_symbol), strings.c | |
122 | (scm_string_p), sort.c (scm_merge), print.c (scm_newline), | |
123 | macros.c (scm_macro_type), alist.c (scm_acons, scm_assq): | |
124 | Docstring fixes and improvements reflecting edits that have been | |
125 | made in the reference manual source. | |
126 | ||
127 | * objprop.c (scm_object_properties, scm_set_object_properties_x, | |
128 | scm_object_property, scm_set_object_property_x): Remove invalid | |
129 | @deffnx lines for corresponding procedure property primitives. | |
130 | ||
cecb4a5e NJ |
131 | These changes add a @deffnx C function declaration and function |
132 | index entries for each Guile primitive to the copy of the doc | |
133 | snarf output that is used for reference manual synchronization. | |
134 | Online help is unchanged. | |
849038b5 | 135 | |
cecb4a5e NJ |
136 | * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name. |
137 | (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function | |
138 | name to SCM_SNARF_DOCS. | |
849038b5 | 139 | |
cecb4a5e NJ |
140 | * guile-snarf-docs-texi.in: Pass the shell script's arguments into |
141 | snarf-check-and-output-texi. | |
142 | ||
143 | * Makefile.am (guile-procedures.texi): New rule. | |
144 | (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES): | |
145 | Changed so that the last stage of doc snarfing is now performed | |
146 | twice, once to produce guile-procedures.txt for online help, and | |
147 | once to produce guile.texi for reference manual synchronization. | |
148 | ||
ddea3325 DH |
149 | 2001-11-15 Dirk Herrmann <D.Herrmann@tu-bs.de> |
150 | ||
151 | * eval.c (RETURN): Wrap in do{}while(0) in order to make it | |
152 | safely usable as a single statement followed by a ';', for example | |
153 | in an if statement. | |
154 | ||
155 | (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'. | |
156 | ||
72dd0a03 NJ |
157 | 2001-11-13 Neil Jerram <neil@ossau.uklinux.net> |
158 | ||
159 | * random.c (scm_random_solid_sphere_x, | |
160 | scm_random_hollow_sphere_x): Correct "shere" typos. | |
161 | ||
162 | * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring. | |
163 | ||
164 | * version.c (scm_version): Update docstring to include | |
165 | `micro-version'. | |
166 | ||
6558eda6 MV |
167 | 2001-11-13 Marius Vollmer <mvo@zagadka.ping.de> |
168 | ||
409b8588 MV |
169 | * modules.c (scm_c_export): Call va_end after collecting the |
170 | symbols. | |
171 | ||
adb8c0f2 MV |
172 | * strop.h, strop.c (scm_substring_move_left_x, |
173 | scm_substring_move_right_x): Removed. | |
174 | ||
6558eda6 MV |
175 | * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG, |
176 | HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what | |
177 | configure does. | |
178 | ||
5d8fc640 MV |
179 | 2001-11-12 Marius Vollmer <mvo@zagadka.ping.de> |
180 | ||
181 | * numbers.c: Document macros to define when including | |
182 | num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we | |
183 | now rely on SIZEOF_ macros that have been figured out at | |
184 | configure time. | |
185 | ||
186 | * num2integral.i.c: Adapt to new interface. | |
187 | (NUM2INTEGRAL): Test whether a fixnum can be represented in the | |
188 | target type by casting it and checking whether it is still the | |
189 | same. Do not try to handle bignums for integral types that are | |
190 | smaller than fixnums. When handling bignums, collect the | |
191 | magnituse first into a unsigned type, and correctly check for | |
192 | overflow. | |
193 | (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that | |
194 | only -MIN_VALUE can still be negative of all negative numbers (in | |
195 | twos-complement). | |
196 | ||
849038b5 | 197 | * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately. |
5d8fc640 MV |
198 | |
199 | * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and | |
200 | HAVE_LONG_LONG depending on whether their size is non-zero. | |
201 | ||
d6b8cf11 TTN |
202 | 2001-11-11 Thien-Thi Nguyen <ttn@glug.org> |
203 | ||
204 | * strop.c (scm_string_null_p): Docfix; nfc. | |
205 | Thanks to Scott Lenser. | |
206 | ||
9401323e NJ |
207 | 2001-11-07 Neil Jerram <neil@ossau.uklinux.net> |
208 | ||
209 | * extensions.c (scm_load_extension): Canonicalize docstring | |
210 | whitespace. | |
211 | ||
212 | * unif.c (scm_uniform_array_write), ports.c | |
213 | (scm_current_output_port, scm_force_output), dynwind.c | |
214 | (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer), | |
215 | filesys.c (scm_open, scm_lstat), struct.c | |
216 | (scm_make_struct_layout), random.c (scm_random, | |
217 | scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c | |
218 | (scm_i_index): Remove superfluous whitespace from end of docstring | |
219 | lines. | |
220 | ||
221 | * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p), | |
222 | strings.c (scm_make_string), variable.c (scm_make_variable, | |
223 | scm_make_undefined_variable, scm_variable_p, scm_variable_set_x, | |
224 | scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer), | |
225 | posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c | |
226 | (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous | |
227 | newline at end of docstrings. | |
228 | ||
229 | * modules.c (scm_set_current_module): Add missing newline to | |
230 | docstring. | |
231 | ||
b4e15479 SJ |
232 | 2001-11-07 Stefan Jahn <stefan@lkcc.org> |
233 | ||
234 | * win32-socket.[ch]: New files. Defines Winsock-API error codes | |
235 | and makes them available through Guile. That is because the | |
236 | Winsock-API does not store its errors in `errno' and thus cannot | |
237 | return error messages via `strerror (errno)'. | |
238 | ||
239 | * socket.c (scm_init_socket): Initialize `win32-socket' part | |
240 | here under M$-Windows. | |
241 | ||
d6b8cf11 | 242 | * numbers.h: Added missing declaration of |
b4e15479 SJ |
243 | `scm_sys_check_number_conversions()'. |
244 | ||
245 | * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO | |
246 | and use in `(strerror)' and `(system-error)'. | |
247 | ||
d6b8cf11 | 248 | * Makefile.am (EXTRA_libguile_la_SOURCES): Added |
b4e15479 SJ |
249 | `win32-socket.[ch]' to extra source and header files. |
250 | ||
7ab89df1 MV |
251 | 2001-11-06 Marius Vollmer <mvo@zagadka.ping.de> |
252 | ||
253 | * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend | |
254 | a call to turn-on-debugging when --debug has been given instead of | |
255 | turning it on directly. Also, handle new `--no-debug' option, | |
256 | which might suppress the call to turn-on-debugging. | |
257 | ||
0233bfc1 SJ |
258 | 2001-11-05 Stefan Jahn <stefan@lkcc.org> |
259 | ||
260 | * struct.c (s_scm_struct_vtable_p): Corrected docstring. | |
261 | ||
8f99e3f3 SJ |
262 | 2001-11-04 Stefan Jahn <stefan@lkcc.org> |
263 | ||
264 | * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL) | |
d6b8cf11 | 265 | here (was at guile_LDADD) which describes the dependency |
8f99e3f3 SJ |
266 | correctly and allows a clean build on Win32. |
267 | ||
d6b8cf11 | 268 | * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros |
8f99e3f3 SJ |
269 | into FOO. |
270 | ||
271 | * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL | |
272 | import macros for external libraries (libcrypt, libqthreads, | |
273 | libreadline and libregex). | |
274 | ||
275 | * coop-defs.h: Include <winsock2.h> for `struct timeval'. | |
276 | ||
277 | * posix.c (flock): Added support for flock() in M$-Windows. | |
278 | ||
279 | * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead | |
280 | of __SCM_IMPORT__. | |
281 | ||
282 | * fports.c (getflags): Differentiate reading and writing pipes | |
283 | descriptors. | |
284 | ||
285 | * filesys.c (S_IS*): Redefine all of the S_IS*() macros for | |
286 | M$-Windows. | |
287 | ||
288 | * coop.c (coop_condition_variable_timed_wait_mutex): Use | |
289 | conditionalized error code if `ETIMEDOUT' is not available. | |
290 | (scm_thread_usleep): Remove bogus declaration of `struct timeval | |
291 | timeout'. | |
292 | ||
293 | * numbers.c (PTRDIFF_MIN): Moved this definition where it actually | |
294 | belongs. That is because NO_PREPRO_MAGIC gets undefined after | |
295 | each inclusion of `num2integral.i.c'. | |
296 | (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined. | |
297 | ||
4e21fa60 MV |
298 | 2001-11-03 Marius Vollmer <mvo@zagadka.ping.de> |
299 | ||
300 | * eval.c (scm_m_begin): Allow `(begin)`, with no subforms. | |
301 | (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED. | |
302 | ||
08112c95 MD |
303 | 2001-11-02 Mikael Djurfeldt <mdj@linnaeus> |
304 | ||
7663c008 MD |
305 | * print.c (scm_iprin1): Mark print state as revealed when |
306 | dispatching to generic write or display. | |
307 | ||
08112c95 MD |
308 | * unif.c (scm_ra2contig): Fixed memory overwrite bug. |
309 | ||
f712d833 MV |
310 | 2001-11-02 Marius Vollmer <mvo@zagadka.ping.de> |
311 | ||
312 | Support for native Win32. Thanks to Stefan Jahn! | |
d6b8cf11 | 313 | |
f712d833 MV |
314 | * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c |
315 | and win32-dirent.h to extra source and header files. These | |
316 | include the uname() and the POSIX dirent interface implementation | |
317 | for M$-Windows. Put `-no-undefined' into LDFLAGS to support | |
318 | linkers which do not allow unresolved symbols inside shared | |
319 | libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)' | |
320 | dependency. | |
321 | ||
d6b8cf11 TTN |
322 | * __scm.h: Defined SCM_API. This macro gets prepended to all |
323 | function and data definitions which should be exported or imported | |
f712d833 MV |
324 | in the resulting dynamic link library in the Win32 port. |
325 | ||
326 | * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h, | |
d6b8cf11 | 327 | chars.h, continuations.h, coop-defs.h, coop-threads.h, |
f712d833 MV |
328 | debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h, |
329 | environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h, | |
330 | feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h, | |
331 | gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h, | |
332 | hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h, | |
d6b8cf11 | 333 | load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h, |
f712d833 MV |
334 | objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h, |
335 | procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h, | |
336 | read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h, | |
337 | smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h, | |
338 | strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h, | |
339 | tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h, | |
340 | vports.h, weaks.h: | |
341 | Prefixed each each exported symbol with SCM_API. | |
342 | ||
d6b8cf11 | 343 | * continuations.c: Added comment about the use of the extern |
f712d833 MV |
344 | declarations of {get,set}context() functions used in the ia64 port. |
345 | ||
346 | * continuations.h, gc.c: `__libc_ia64_register_backing_store_base' | |
347 | is meant to be a `unsigned long *'. | |
348 | ||
349 | * filesys.c: Include `direct.h' if possible. Use local | |
350 | `win32-dirent.h' for the native M$-Windows port. Define S_IS*() | |
351 | macros for M$-Windows. Implementation of `fstat_Win32()' which is | |
352 | able to differentiate between sockets and other file descriptors. | |
353 | Use this function as wrapper in `scm_fstat()'. Fixed typo in | |
354 | `scm_dirname()'. | |
355 | ||
356 | * fports.c: Include `io.h' is possible. Put `*fp' into referring | |
357 | statement block in `scm_fport_buffer_add()'. | |
358 | Some corrections in `getflags()'. | |
d6b8cf11 | 359 | |
f712d833 MV |
360 | * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__. |
361 | ||
362 | * guile.c: Make sure to define __SCM_IMPORT__ for shared library | |
363 | build on Win32. Disable preloaded symbols on Win2 platforms. | |
364 | ||
365 | * ioext.c, ports.c: Include `io.h' is possible. | |
366 | ||
367 | * mkstemp.c: Include `process.h' is possible. | |
368 | ||
369 | * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__, | |
370 | too. | |
371 | Put `scm_return_entry()' into HAVE_GETSERVENT conditional. | |
372 | ||
373 | * posix.c: Remove unnecessary dirent includes and defines. Include | |
374 | local `win32-uname.h' for MinGW. Extern declaration of | |
375 | `mkstemp()' for systems where it does not exists. Make | |
376 | `getlogin()' available on M$-Windows. | |
377 | ||
378 | * scmsigs.c: Made `usleep()' avalable on MinGW. | |
379 | ||
380 | * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'. | |
381 | ||
382 | * win32-dirent.c: Include "win32-dirent.h", not "dirent.h". | |
383 | ||
384 | * win32-uname.c: Include "win32-uname.h", not "uname.h". | |
385 | ||
d245ce23 MD |
386 | 2001-10-28 Mikael Djurfeldt <mdj@linnaeus> |
387 | ||
388 | * unif.c (scm_uniform_array_read_x, scm_uniform_array_write): | |
389 | Don't apply scm_uniform_vector_length on arrays. | |
390 | ||
8ea46249 DH |
391 | 2001-10-14 Dirk Herrmann <D.Herrmann@tu-bs.de> |
392 | ||
393 | * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq, | |
394 | scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body, | |
395 | scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args, | |
396 | SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer | |
397 | scm_list_<n> over scm_cons[2]?. | |
398 | ||
399 | (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1, | |
400 | scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use | |
401 | SCM_C[AD][AD]R instead of explicit form. | |
402 | ||
403 | (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered | |
404 | comparison parameters. | |
405 | ||
406 | (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use | |
407 | !SCM_NULLP instead of SCM_NIMP. | |
408 | ||
409 | (scm_m_case): Don't copy the form. Renamed proc to clause and | |
410 | minimized its scope. Renamed x to clauses. Removed side | |
411 | effecting operation from macro call. | |
412 | ||
413 | (scm_m_cond): Don't copy the form. Renamed arg1 to clause and | |
414 | minimized its scope. Renamed x to clauses. Minimized the scope | |
415 | of variable 'len'. Make sure the else clause is treated specially | |
416 | even in case of '=>' occurences. Don't change the else to #t in | |
417 | order to be able to distinguish this case in the evaluator. Leave | |
418 | type checking of the recipient to the evaluator. | |
419 | ||
420 | (scm_c_improper_memq): Made the comment somewhat clearer. | |
421 | ||
422 | (scm_m_lambda): Renamed proc to formals. Removed unnecessary | |
423 | test for SCM_IM_LET at the place of the formal parameters. | |
424 | Simplified the formal parameter checking. | |
425 | ||
426 | (scm_m_letstar): Added Comment. Renamed proc to bindings. | |
427 | Renamed arg1 to binding and minimized its scope. Eliminated | |
428 | unnecessary consing. | |
429 | ||
430 | (scm_m_do): Renamed proc to bindings. Minimized the scope of | |
431 | variable 'len'. | |
432 | ||
433 | (build_binding_list): New static function. | |
434 | ||
435 | (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean). | |
436 | Further, split up the 'letrec' unmemoizing code to the | |
437 | corresponding parts for 'do', 'let' and 'letrec', adding comments | |
438 | to each form. Cleanup the handling of the do form (This removes | |
439 | some *real* code :-). | |
440 | ||
441 | (SCM_CEVAL): Removed side effecting operation from macro call. | |
442 | Handle the 'else clause of the 'cond form specially - the symbol | |
443 | 'else is not replaced with #t any more. | |
444 | ||
8186c4f5 GH |
445 | 2001-10-14 Gary Houston <ghouston@arglist.com> |
446 | ||
447 | * version.c (scm_version): use sprintf instead of snprintf, | |
448 | for portability. thanks to Bill Schottstaedt. | |
449 | ||
89759084 MD |
450 | 2001-10-14 Mikael Djurfeldt <mdj@linnaeus> |
451 | ||
452 | * read.c (scm_lreadr): When user-defined hash procedure returns | |
453 | SCM_UNSPECIFIED: Fall back to standard handling instead of raising | |
454 | an exception. (This prevents parsing of uniform vectors from | |
455 | interfering with parsing of numbers.) | |
456 | ||
9c7ce563 MV |
457 | 2001-10-13 Marius Vollmer <mvo@zagadka.ping.de> |
458 | ||
459 | * numbers.c: Set NO_PREPRO_MAGIC when defining our version of | |
460 | PTRDIFF_MIN. Thanks to Ken Raeburn. | |
461 | ||
462 | 2001-10-07 Marius Vollmer <mvo@zagadka.ping.de> | |
463 | ||
464 | * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c". | |
465 | ||
466 | * eval.c (scm_m_atbind): First try to find the variable without | |
467 | defining it locally; when it has not been found, define it | |
468 | locally. | |
469 | ||
470 | * modules.c (module_variable): Pass over variables that exist but | |
471 | are unbound. | |
472 | ||
473 | 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de> | |
474 | ||
475 | * backtrace.c (display_backtrace_file_and_line): Only use | |
476 | scm_basename when POSIX support is compiled in. Thanks to Chris | |
477 | Cramer. | |
478 | ||
1fe5e088 DH |
479 | 2001-10-13 Dirk Herrmann <D.Herrmann@tu-bs.de> |
480 | ||
481 | * numbers.c (mem2uinteger): Return number read so far when coming | |
482 | across a hexdigit after having read a # or if not reading a hex | |
483 | value. This will enable the calling code to correctly handle | |
484 | forms like 1e2. (The background is, that the exponent markers d, | |
485 | e and f are also hexdigits.) Thanks to Mikael Djurfeldt for | |
486 | providing this patch. | |
487 | ||
488 | (mem2complex): Fix erroneous double-negation. Now, numbers like | |
489 | 1-i will be read correctly. | |
490 | ||
68665a97 MD |
491 | 2001-10-12 Mikael Djurfeldt <mdj@linnaeus> |
492 | ||
493 | * debug.c (scm_mem_to_proc): Fixed typo in previous change. | |
494 | ||
495 | * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro. | |
496 | ||
d5cf5324 DH |
497 | 2001-10-12 Dirk Herrmann <D.Herrmann@tu-bs.de> |
498 | ||
499 | * print.c (scm_print_state_vtable, print_state_pool): | |
500 | Initialize. These variables are now registered as gc roots. | |
501 | ||
502 | (scm_current_pstate): Update documentation. | |
503 | ||
504 | (scm_current_pstate, scm_make_print_state, scm_free_print_state, | |
505 | scm_prin1, scm_init_print): print_state_pool is registered as a | |
506 | gc root and thus does not need to be protected by a surrounding | |
507 | pair any more. | |
508 | ||
509 | (make_print_state): The car of print_state_pool no longer holds | |
510 | the scm_print_state_vtable. | |
511 | ||
512 | (scm_current_pstate, scm_make_print_state, print_circref, | |
513 | scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_<foo> over | |
514 | SCM_N<foo>. | |
515 | ||
516 | (scm_prin1): When building lists, prefer scm_list_<n> over | |
517 | scm_cons[2]?. | |
518 | ||
519 | (scm_iprlist): Removed a redundant SCM_IMP test. | |
520 | ||
521 | (scm_simple_format): Use SCM_EQ_P to compare SCM values. | |
522 | ||
37c56aec DH |
523 | 2001-10-11 Dirk Herrmann <D.Herrmann@tu-bs.de> |
524 | ||
525 | * debug.c (scm_make_iloc): Prefer !SCM_<foo> over SCM_N<foo>. | |
526 | ||
527 | (scm_memcons, scm_mem_to_proc): When building lists, prefer | |
528 | scm_list_<n> over scm_cons[2]?. | |
529 | ||
530 | (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP. | |
531 | ||
532 | (scm_procedure_name): Use SCM_CADR instead of explicit form. | |
533 | ||
534 | (debugobj_print): Coerce scm_intprint arg 1 to long, not int. | |
535 | Thanks to Rob Browning for the patch (see log entry 2001-09-21) - | |
536 | for some reason his patch didn't make it into the cvs. | |
537 | ||
79d34f68 DH |
538 | 2001-10-09 Dirk Herrmann <D.Herrmann@tu-bs.de> |
539 | ||
540 | * numbers.c (mem2decimal_from_point): Cleaned up the parsing a | |
541 | little bit - should even be somewhat more accurate now. | |
542 | ||
5e137c65 RB |
543 | 2001-10-08 Rob Browning <rlb@defaultvalue.org> |
544 | ||
545 | * gc.c: support ia64 register backing store. | |
546 | (SCM_MARK_BACKING_STORE): new macro. | |
547 | ||
548 | * continuations.h: support ia64 register backing store. | |
549 | (struct scm_t_contregs): add ia64 register backing store. | |
550 | ||
551 | * continuations.c: support ia64 register backing store. | |
552 | (continuation_mark): mark ia64 register backing store. | |
553 | (continuation_free): free ia64 register backing store. | |
554 | (scm_make_continuation): capture ia64 register backing store. | |
555 | (copy_stack_and_call): copy ia64 register backing store. | |
556 | ||
ee083ac2 DH |
557 | 2001-10-08 Dirk Herrmann <D.Herrmann@tu-bs.de> |
558 | ||
559 | * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn | |
560 | is known to be #f if no entry is found. Thus, use !SCM_FALSEP | |
561 | instead of SCM_NIMP to test for that case. | |
562 | ||
563 | * strings.h (SCM_SET_STRING_LENGTH): Cast the length to | |
564 | scm_t_bits instead of long. | |
565 | ||
71dcdbf9 MV |
566 | 2001-10-06 Marius Vollmer <mvo@zagadka.ping.de> |
567 | ||
568 | * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX, | |
569 | SCM_T_SIGNED_BITS_MIN): New. | |
570 | * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): | |
571 | Use them to make these macros computable by the preprocessor. | |
572 | ||
573 | * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test | |
574 | whether the integral type fits in a fixnum, not the compiler. | |
575 | This removes a spurious compiler warning. Also, honor the | |
576 | NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is | |
577 | needed for `long long's. | |
578 | ||
579 | * numbers.c: Define NO_PREPRO_MAGOC when including | |
580 | num2integral.c.i for `long long' and `signed long long'. | |
581 | ||
152812c0 MD |
582 | 2001-10-06 Mikael Djurfeldt <mdj@linnaeus> |
583 | ||
584 | These changes fixes a race condition in the Guile coop - pthread | |
585 | compatibility code. | |
d6b8cf11 | 586 | |
152812c0 MD |
587 | * coop.c (mother_awake_p): New variable. |
588 | (coop_create): Set mother_awake_p before creating or signalling | |
589 | mother; wait until mother is going to sleep before returning. | |
590 | (mother): Reset mother_awake_p before going to sleep. | |
591 | ||
11d49f54 DH |
592 | 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de> |
593 | ||
594 | * options.c (protected_objects, scm_init_options): The content of | |
595 | protected_objects is now protected from garbage collection using | |
596 | scm_gc_register_root instead of scm_permanent_object. | |
597 | ||
598 | (get_option_setting): New static function that computes an option | |
599 | setting as it was formerly done in the function scm_options. | |
600 | ||
601 | (get_documented_option_setting): New static function that | |
602 | returns option documentation as it was formerly done in the | |
603 | function scm_options. Note that documentation C strings are no | |
604 | longer precomputed into SCM objects. Instead, they are converted | |
605 | into SCM strings every time get_documented_option_setting is | |
606 | called. | |
607 | ||
608 | (change_option_setting): New static functions that modifies the | |
609 | option setting as it was formerly done in the function | |
610 | scm_options. The function is now exception safe, i. e. won't | |
611 | cause a memory leak when interrupted. Further, only non-immediate | |
612 | option values are added to the protection list. | |
613 | ||
614 | (scm_options): This function now has only the purpose to dispatch | |
615 | to to get_option_setting, get_documented_option_setting or | |
616 | change_option_setting, depending on the arguments given to | |
617 | scm_options. | |
618 | ||
619 | (scm_init_opts): Don't convert documentation C strings into SCM | |
620 | strings. Further, don't protect any object values: They _must_ | |
621 | be immediate values, otherwise there is no guarantee that they | |
622 | have not been collected before anyway. | |
623 | ||
624 | * options.[ch] (scm_t_option): Made type unsigned, name into a | |
625 | constant char* and val into a scm_t_bits type. | |
626 | ||
627 | (scm_options, scm_init_opts): The number of options is guaranteed | |
628 | to be larger or equal to zero. Thus, the type is changed to | |
629 | unsigned. | |
630 | ||
3dbacabc DH |
631 | 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de> |
632 | ||
633 | * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about | |
634 | testing an unsigned value for being >= 0. | |
635 | ||
14282d0f DH |
636 | 2001-10-05 Dirk Herrmann <D.Herrmann@tu-bs.de> |
637 | ||
638 | * numbers.h: Removed old comment about using SCM_CAR to access | |
639 | non-pair cells. | |
640 | ||
641 | (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure | |
642 | the return value is signed. Thanks to Brian Crowder for the bug | |
643 | report. | |
644 | ||
645 | (SCM_SRS): Avoid unnecessary casting and don't unpack input | |
646 | values. With this patch, SCM_SRS can be safely used for other | |
647 | types than scm_t_signed_bits. However, it should still better be | |
648 | an internal macro and thus be renamed to SCM_I_SRS. | |
649 | ||
650 | (SCM_MAKINUM, SCM_INUM): Use proper casting. | |
651 | ||
2dbec7b5 GH |
652 | 2001-10-03 Gary Houston <ghouston@arglist.com> |
653 | ||
654 | * continuations.h, unif.h: in the descriptions of the bit patterns | |
655 | of the heap cells, make bit 0 the least significant. | |
656 | ||
cf4ee841 TTN |
657 | 2001-09-25 Thien-Thi Nguyen <ttn@glug.org> |
658 | ||
659 | * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'. | |
660 | Thanks to Golubev I. N. | |
661 | ||
4a151b3d GH |
662 | 2001-09-25 Gary Houston <ghouston@arglist.com> |
663 | ||
664 | * ports.c (scm_drain_input): extended the docstring. thanks to | |
665 | Alex Schroeder and Thien-Thi Nguyen. | |
666 | ||
581ded70 MD |
667 | 2001-09-23 Mikael Djurfeldt <mdj@linnaeus> |
668 | ||
669 | * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE, | |
670 | SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New | |
671 | macros. (The NUM names might soon change.) | |
672 | ||
673 | * numbers.h: Added missing declarations. | |
674 | ||
5437598b MD |
675 | 2001-09-22 Mikael Djurfeldt <mdj@linnaeus> |
676 | ||
677 | * Makefile.am: Distribute num2float.i.c. | |
678 | ||
679 | * num2float.i.c: New file, multiply included by numbers.c, used | |
680 | to "templatize" the float <-> num conversion routines. | |
681 | ||
682 | * numbers.c: New functions: scm_num2float, scm_float2num, | |
683 | scm_num2double, scm_double2num. | |
684 | ||
0b073f0f RB |
685 | 2001-09-21 Rob Browning <rlb@defaultvalue.org> |
686 | ||
687 | * .cvsignore: really add version.h | |
688 | ||
689 | * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long. | |
690 | Otherwise it fails on the alpha. However, we might rather choose | |
691 | this size conditionally. | |
692 | ||
693 | * numbers.c (scm_gcd): change "k" to a long from an int. | |
694 | Otherwise it fails on the alpha. However, we might rather choose | |
695 | this size conditionally. | |
696 | ||
697 | * error.c (scm_wta): coerce char* to intptr_t before int | |
698 | assignment. | |
699 | ||
700 | * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not | |
701 | int. | |
702 | ||
703 | * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t. | |
704 | ||
2830fd91 MD |
705 | 2001-09-20 Mikael Djurfeldt <mdj@linnaeus> |
706 | ||
707 | * numbers.c (scm_integer_expt): Accept inexact integer in second | |
708 | argument. (Thanks to Bill Schottstaedt.) | |
709 | ||
c13f0a90 RB |
710 | 2001-09-20 Rob Browning <rlb@defaultvalue.org> |
711 | ||
712 | * .cvsignore: add version.h | |
713 | ||
714 | * versiondat.h.in: removed (obsolete). | |
715 | ||
716 | * version.h.in: renamed from version.h. | |
717 | (SCM_GUILE_MAJOR_VERSION): new public macro. | |
718 | (SCM_GUILE_MINOR_VERSION): new public macro. | |
719 | (SCM_GUILE_MICRO_VERSION): new public macro. | |
720 | ||
721 | * version.h: renamed to version.h.in. | |
722 | ||
723 | * version.c | |
724 | (scm_major_version): support integer *_VERSION macros. | |
725 | (scm_minor_version): support integer *_VERSION macros. | |
726 | (scm_micro_version): support integer *_VERSION macros. | |
727 | (scm_version): support integer *_VERSION macros. | |
728 | ||
147c18a0 MD |
729 | 2001-09-20 Mikael Djurfeldt <mdj@linnaeus> |
730 | ||
731 | * error.c, error.h: Made error keys globally accessible. | |
732 | Applications might want to test for these or use them in a direct | |
733 | call to scm_error. | |
734 | ||
735 | * num2integral.i.c (NUM2INTEGRAL): Report an error when these | |
736 | routines are passed an inexact. This change in behavior is | |
737 | motivated by concordance with R5RS: It is more common that a | |
738 | primitive doesn't want to accept an inexact for an exact. | |
739 | ||
662c5539 DH |
740 | 2001-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de> |
741 | ||
742 | The following patch partially undoes my patch from 2001-06-30, | |
743 | where I added the function scm_gc_mark_cell_conservatively. The | |
744 | function is buggy, since it breaks guile during conservative | |
745 | marking if a pointer on the stack points directly into the list of | |
746 | free cells on the heap: With conservative cell marking this will | |
747 | cause the whole free list to be scanned and marked - boom! | |
748 | ||
749 | * gc.c (allocated_mark, MARK, heap_segment, | |
750 | scm_gc_mark_cell_conservatively, scm_init_storage), gc.h | |
cf4ee841 | 751 | (scm_gc_mark_cell_conservatively): Remove function |
662c5539 DH |
752 | scm_gc_mark_cell_conservatively and update the corresponding |
753 | comments and uses accordingly. Thanks to Christopher Cramer for | |
754 | the patch. (Minor corrections by me.) | |
755 | ||
6c1b7628 GH |
756 | 2001-09-15 Gary Houston <ghouston@arglist.com> |
757 | ||
758 | * root.h (scm_root_state): removed the continuation_stack and | |
759 | continuation_stack_ptr members, which have no apparent purpose. | |
760 | (scm_continuation_stack, scm_continuation_stack_ptr): #defines | |
761 | removed. | |
662c5539 | 762 | |
6c1b7628 GH |
763 | * root.c (root_mark), init.c (restart_stack, start_stack), gc |
764 | (scm_igc): remove all references to contination_stack and | |
765 | continuation_stack_ptr, avoiding allocation of a vector and | |
766 | useless processing during gc. | |
767 | ||
455c0ac8 DH |
768 | 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de> |
769 | ||
770 | * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc. | |
771 | ||
772 | (TCONC_IN): Make sure that the cell word 0 is initialized last. | |
773 | ||
774 | (guardians_t, t_guardians): Renamed guardians_t to t_guardians. | |
775 | ||
776 | (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA. | |
777 | ||
778 | (guardian_apply, scm_get_one_zombie, scm_make_guardian, | |
779 | mark_and_zombify): Prefer !SCM_<foo> over SCM_N<foo>. | |
780 | ||
22ba637b DH |
781 | 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de> |
782 | ||
783 | * guardians.c (mark_dependencies_in_tconc, | |
784 | whine_about_self_centered_zombies, scm_init_guardians): Register | |
785 | the static global variable `self_centered_zombies' via | |
786 | scm_gc_register_root, to make some cdr-ing unnecessary. | |
787 | ||
c3c4d801 DH |
788 | 2001-09-13 Dirk Herrmann <D.Herrmann@tu-bs.de> |
789 | ||
790 | * backtrace.c (display_backtrace_file, | |
791 | display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM | |
792 | values, use SCM_FALSEP when comparing SCM values against #f. | |
793 | Thanks to Rob Browning for the bug report. | |
794 | ||
b00418df DH |
795 | 2001-09-12 Martin Baulig <martin@home-of-linux.org> |
796 | ||
797 | * strings.[ch] (scm_str2string): New function. | |
798 | ||
a0d34a0b MV |
799 | 2001-09-06 Marius Vollmer <mvo@zagadka.ping.de> |
800 | ||
801 | * gc.c (scm_done_free): Always subtract size from scm_mallocated | |
802 | when computing nm, even if it's negative. | |
803 | (scm_must_malloc): Abort on overflow of scm_mtrigger. | |
804 | (scm_must_realloc): Likewise. | |
805 | ||
b10586f0 ML |
806 | 2001-09-01 Michael Livshin <mlivshin@bigfoot.com> |
807 | ||
808 | * numbers.c (scm_sys_check_number_conversions): new function, | |
809 | defined if Guile is compiled in debugging mode. currently checks | |
810 | `scm_num2ulong', should check much much more. | |
811 | ||
812 | * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to | |
813 | unsigned, ensure that it's positive. thanks to Martin Baulig! | |
cf4ee841 | 814 | |
8c494e99 DH |
815 | 2001-08-31 Dirk Herrmann <D.Herrmann@tu-bs.de> |
816 | ||
817 | * __scm.h: Added new section about compile time selectable | |
818 | features. | |
819 | ||
820 | (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE, | |
821 | SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL, | |
822 | SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, | |
823 | SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS): | |
824 | Removed. | |
825 | ||
826 | * deprecation.c (scm_include_deprecated_features): Simplified. | |
827 | ||
828 | * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use | |
829 |