X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/b29058ffee392969b448f8157afaf370c17a736c..eb880cef297dff7e97304d4af422bf20bbd68e5b:/libguile/ChangeLog diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 65f9ffcd2..cb2b0887f 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,959 @@ +2001-11-20 Thien-Thi Nguyen + + * Makefile.am (libpath.h): In SCM_BUILD_INFO, + also include `buildstamp'. + +2001-11-18 Rob Browning + + * version.c + (s_scm_major_version): use SCM_MAJOR_VERSION. + (s_scm_minor_version): use SCM_MINOR_VERSION. + (s_scm_micro_version): use SCM_MICRO_VERSION. + (s_scm_version): use SCM_MAJOR_VERSION, SCM_MINOR_VERSION, and + SCM_MICRO_VERSION. + + * version.h.in + (SCM_MAJOR_VERSION): renamed from SCM_GUILE_MAJOR_VERSION. + (SCM_MINOR_VERSION): renamed from SCM_GUILE_MINOR_VERSION. + (SCM_MICRO_VERSION): renamed from SCM_GUILE_MICRO_VERSION. + +2001-11-18 Neil Jerram + + * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x): + Rewrite docstrings without reference to substring-move-left/right, + since the latter no longer exist. + +2001-11-17 Dirk Herrmann + + * eval.c: Removed bogus comment about acros. + + (scm_unmemocar): Use !SCM_CONSP instead of SCM_IMP. + Minimize scope of local variable. Eliminate dependency on + macro DEBUG_EXTENSIONS. + + (s_splicing): New error message string. + + (scm_m_body): Issue 'bad body' message rather than 'missing + expression' message. + + (scm_m_quote): Eliminate unnecessary copying. + + (scm_m_lambda, scm_m_letstar, scm_m_letrec, scm_m_let): Leave the + checking of the body to scm_m_body. + + (scm_m_do): Move comment to function header. Rename arg1 to + binding. Made the code a bit easier to read. + + (evalcar): Removed. + + (iqq): Added a comment. Changed the depth parameter to + unsigned. Use size_t for vector lengths. Make sure vector object + is gc protected as long as its contents are read. Add some syntax + checks. Get rid of unnecessary SCM_IMP test. Clean up the + control structure a bit. + + (scm_m_delay): Added comment about the implementation of + scm_m_delay. + + (scm_m_define): Add comment about guile's currying define + syntax. Renamed 'proc' to 'name'. Eliminate dependency on macro + DEBUG_EXTENSIONS. Simplified code a bit. Eliminate SICP code. + + (scm_m_letrec1): Removed. Part of the functionality is taken + over by the new function 'transform_bindings'. + + (transform_bindings): New function. Takes over some of the + functionality of removed function 'scm_m_letrec1', namely to split + a list of bindings into a reversed list of variables and a list of + initializers. + + (scm_m_letrec): Call 'transform_bindings'. + + (scm_m_let): Minimized scope of local variables. Renamed 'proc' + to 'temp' and 'arg1' to 'binding'. Eliminated redundant SCM_NIMP + test. Use 'transform_bindings'. Fixed scoping error with named + let (Thanks to Aubrey Jaffer for reporting the bug and to Neil + Jerram for suggesting the fix). Cleaned up the control structure + a bit. + + (scm_m_expand_body): Use 'transform_bindings'. Eliminated + unnecessary consing. Eliminated unnecessary + SCM_DEFER/ALLOW_INTS. + + (SCM_CEVAL): Un-obfuscated some loops. + +2001-11-16 Neil Jerram + + * gc.h (scm_unhash_name): Old declaration removed. + + * eval.c (s_scm_eval): Change @var{primitive-eval} to + @code{primitive-eval}. + + * feature.c, vectors.c, net_db.c, unif.c, weaks.c, struct.c, + version.c, alist.c, ports.c, ramap.c, unif.c, strings.c, list.c: + Change @deffnx lines in docstrings to say {Scheme Procedure} + rather than primitive or procedure. + + * posix.c (scm_execl), filesys.c (scm_close), unif.c + (scm_array_set_x, scm_array_contents, scm_uniform_array_read_x, + scm_bit_set_star_x, scm_bit_invert_x), ramap.c (scm_array_fill_x, + scm_array_for_each, scm_array_index_map_x), vectors.c (scm_vector, + scm_make_vector, scm_vector_to_list, scm_vector_fill_x), strop.c + (scm_string_split, scm_string_ci_to_symbol), strings.c + (scm_string_p), sort.c (scm_merge), print.c (scm_newline), + macros.c (scm_macro_type), alist.c (scm_acons, scm_assq): + Docstring fixes and improvements reflecting edits that have been + made in the reference manual source. + + * objprop.c (scm_object_properties, scm_set_object_properties_x, + scm_object_property, scm_set_object_property_x): Remove invalid + @deffnx lines for corresponding procedure property primitives. + + These changes add a @deffnx C function declaration and function + index entries for each Guile primitive to the copy of the doc + snarf output that is used for reference manual synchronization. + Online help is unchanged. + + * snarf.h (SCM_SNARF_DOCS): Output primitive's C function name. + (SCM_DEFINE, SCM_DEFINE1, SCM_REGISTER_PROC): Supply to C function + name to SCM_SNARF_DOCS. + + * guile-snarf-docs-texi.in: Pass the shell script's arguments into + snarf-check-and-output-texi. + + * Makefile.am (guile-procedures.texi): New rule. + (BUILT_SOURCES, guile.texi, guile-procedures.txt, CLEANFILES): + Changed so that the last stage of doc snarfing is now performed + twice, once to produce guile-procedures.txt for online help, and + once to produce guile.texi for reference manual synchronization. + +2001-11-15 Dirk Herrmann + + * eval.c (RETURN): Wrap in do{}while(0) in order to make it + safely usable as a single statement followed by a ';', for example + in an if statement. + + (SCM_CEVAL, SCM_APPLY): Clean up code using 'RETURN'. + +2001-11-13 Neil Jerram + + * random.c (scm_random_solid_sphere_x, + scm_random_hollow_sphere_x): Correct "shere" typos. + + * hashtab.c (scm_hash_fold): Add missing apostrophe to docstring. + + * version.c (scm_version): Update docstring to include + `micro-version'. + +2001-11-13 Marius Vollmer + + * modules.c (scm_c_export): Call va_end after collecting the + symbols. + + * strop.h, strop.c (scm_substring_move_left_x, + scm_substring_move_right_x): Removed. + + * __scm.h (HAVE_UINTPTR_T, HAVE_PTRDIFF_T, HAVE_LONG_LONG, + HAVE_LONG_LONGS): Define to "1" when defining them, to mirror what + configure does. + +2001-11-12 Marius Vollmer + + * numbers.c: Document macros to define when including + num2integral.i.c. MAX_VALUE and MIN_VALU are no longer used, we + now rely on SIZEOF_ macros that have been figured out at + configure time. + + * num2integral.i.c: Adapt to new interface. + (NUM2INTEGRAL): Test whether a fixnum can be represented in the + target type by casting it and checking whether it is still the + same. Do not try to handle bignums for integral types that are + smaller than fixnums. When handling bignums, collect the + magnituse first into a unsigned type, and correctly check for + overflow. + (INTEGRAL2BIG): Do not use MIN_VALUE explicitely by observing that + only -MIN_VALUE can still be negative of all negative numbers (in + twos-complement). + + * tags.h (SIZEOF_SCM_T_BITS): Define it appropriately. + + * __scm.h: Define HAVE_UINTPTR_T, HAVE_PTRDIFF_T and + HAVE_LONG_LONG depending on whether their size is non-zero. + +2001-11-11 Thien-Thi Nguyen + + * strop.c (scm_string_null_p): Docfix; nfc. + Thanks to Scott Lenser. + +2001-11-07 Neil Jerram + + * extensions.c (scm_load_extension): Canonicalize docstring + whitespace. + + * unif.c (scm_uniform_array_write), ports.c + (scm_current_output_port, scm_force_output), dynwind.c + (scm_dynamic_wind), scmsigs.c (scm_setitimer, scm_getitimer), + filesys.c (scm_open, scm_lstat), struct.c + (scm_make_struct_layout), random.c (scm_random, + scm_random_solid_sphere_x, scm_random_hollow_sphere_x, strop.c + (scm_i_index): Remove superfluous whitespace from end of docstring + lines. + + * filesys.c (scm_select), guardians.c (scm_guardian_greedy_p), + strings.c (scm_make_string), variable.c (scm_make_variable, + scm_make_undefined_variable, scm_variable_p, scm_variable_set_x, + scm_variable_bound_p), scmsigs.c (scm_setitimer, scm_getitimer), + posix.c (scm_crypt), struct.c (scm_make_vtable_vtable), hashtab.c + (scm_hash_fold), ports.c (scm_port_for_each): Remove superfluous + newline at end of docstrings. + + * modules.c (scm_set_current_module): Add missing newline to + docstring. + +2001-11-07 Stefan Jahn + + * win32-socket.[ch]: New files. Defines Winsock-API error codes + and makes them available through Guile. That is because the + Winsock-API does not store its errors in `errno' and thus cannot + return error messages via `strerror (errno)'. + + * socket.c (scm_init_socket): Initialize `win32-socket' part + here under M$-Windows. + + * numbers.h: Added missing declaration of + `scm_sys_check_number_conversions()'. + + * error.c: Local definition of SCM_I_STRERROR and SCM_I_ERRNO + and use in `(strerror)' and `(system-error)'. + + * Makefile.am (EXTRA_libguile_la_SOURCES): Added + `win32-socket.[ch]' to extra source and header files. + +2001-11-06 Marius Vollmer + + * script.c (scm_shell_usage, scm_compile_shell_switches): Prepend + a call to turn-on-debugging when --debug has been given instead of + turning it on directly. Also, handle new `--no-debug' option, + which might suppress the call to turn-on-debugging. + +2001-11-05 Stefan Jahn + + * struct.c (s_scm_struct_vtable_p): Corrected docstring. + +2001-11-04 Stefan Jahn + + * Makefile.am (libguile_la_LIBADD): Added $(THREAD_LIBS_LOCAL) + here (was at guile_LDADD) which describes the dependency + correctly and allows a clean build on Win32. + + * __scm.h (SCM_API): Follow-up patch. Renamed __FOO__ macros + into FOO. + + * __scm.h: USE_DLL_IMPORT indicates the usage of the DLL + import macros for external libraries (libcrypt, libqthreads, + libreadline and libregex). + + * coop-defs.h: Include for `struct timeval'. + + * posix.c (flock): Added support for flock() in M$-Windows. + + * guile.c (SCM_IMPORT): Follow-up patch. Use SCM_IMPORT instead + of __SCM_IMPORT__. + + * fports.c (getflags): Differentiate reading and writing pipes + descriptors. + + * filesys.c (S_IS*): Redefine all of the S_IS*() macros for + M$-Windows. + + * coop.c (coop_condition_variable_timed_wait_mutex): Use + conditionalized error code if `ETIMEDOUT' is not available. + (scm_thread_usleep): Remove bogus declaration of `struct timeval + timeout'. + + * numbers.c (PTRDIFF_MIN): Moved this definition where it actually + belongs. That is because NO_PREPRO_MAGIC gets undefined after + each inclusion of `num2integral.i.c'. + (SIZE_MAX): Define NO_PREPRO_MAGIC if SIZE_MAX is undefined. + +2001-11-03 Marius Vollmer + + * eval.c (scm_m_begin): Allow `(begin)`, with no subforms. + (SCM_CEVAL): Evaluate an empty `begin' to SCM_UNSPECIFIED. + +2001-11-02 Mikael Djurfeldt + + * print.c (scm_iprin1): Mark print state as revealed when + dispatching to generic write or display. + + * unif.c (scm_ra2contig): Fixed memory overwrite bug. + +2001-11-02 Marius Vollmer + + Support for native Win32. Thanks to Stefan Jahn! + + * Makefile.am: Add win32-uname.c, win32-uname.h, win32-dirent.c + and win32-dirent.h to extra source and header files. These + include the uname() and the POSIX dirent interface implementation + for M$-Windows. Put `-no-undefined' into LDFLAGS to support + linkers which do not allow unresolved symbols inside shared + libraries. Corrected `guile_filter_doc_snarfage$(EXEEXT)' + dependency. + + * __scm.h: Defined SCM_API. This macro gets prepended to all + function and data definitions which should be exported or imported + in the resulting dynamic link library in the Win32 port. + + * __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h, + chars.h, continuations.h, coop-defs.h, coop-threads.h, + debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h, + environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h, + feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h, + gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h, + hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h, + load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h, + objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h, + procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h, + read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h, + smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h, + strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h, + tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h, + vports.h, weaks.h: + Prefixed each each exported symbol with SCM_API. + + * continuations.c: Added comment about the use of the extern + declarations of {get,set}context() functions used in the ia64 port. + + * continuations.h, gc.c: `__libc_ia64_register_backing_store_base' + is meant to be a `unsigned long *'. + + * filesys.c: Include `direct.h' if possible. Use local + `win32-dirent.h' for the native M$-Windows port. Define S_IS*() + macros for M$-Windows. Implementation of `fstat_Win32()' which is + able to differentiate between sockets and other file descriptors. + Use this function as wrapper in `scm_fstat()'. Fixed typo in + `scm_dirname()'. + + * fports.c: Include `io.h' is possible. Put `*fp' into referring + statement block in `scm_fport_buffer_add()'. + Some corrections in `getflags()'. + + * gdb_interface.h (GDB_INTERFACE): Also support __CYGWIN__. + + * guile.c: Make sure to define __SCM_IMPORT__ for shared library + build on Win32. Disable preloaded symbols on Win2 platforms. + + * ioext.c, ports.c: Include `io.h' is possible. + + * mkstemp.c: Include `process.h' is possible. + + * net_db.c: Disable extern declaration of `h_errno' for __CYGWIN__, + too. + Put `scm_return_entry()' into HAVE_GETSERVENT conditional. + + * posix.c: Remove unnecessary dirent includes and defines. Include + local `win32-uname.h' for MinGW. Extern declaration of + `mkstemp()' for systems where it does not exists. Make + `getlogin()' available on M$-Windows. + + * scmsigs.c: Made `usleep()' avalable on MinGW. + + * stime.c: On M$-Windows `tzname[]' is known to be `_tzname[]'. + + * win32-dirent.c: Include "win32-dirent.h", not "dirent.h". + + * win32-uname.c: Include "win32-uname.h", not "uname.h". + +2001-10-28 Mikael Djurfeldt + + * unif.c (scm_uniform_array_read_x, scm_uniform_array_write): + Don't apply scm_uniform_vector_length on arrays. + +2001-10-14 Dirk Herrmann + + * eval.c (scm_lookupcar, scm_m_letstar, scm_m_do, iqq, + scm_m_define, scm_m_letrec1, scm_m_let, scm_m_expand_body, + scm_macroexp, unmemocopy, scm_eval_args, scm_deval_args, + SCM_CEVAL, scm_map, scm_init_eval): When building lists, prefer + scm_list_ over scm_cons[2]?. + + (scm_unmemocar, scm_m_cond, scm_m_letstar, scm_m_letrec1, + scm_m_let, scm_m_atbind, unmemocopy, SCM_CEVAL, SCM_APPLY): Use + SCM_C[AD][AD]R instead of explicit form. + + (scm_m_set_x, scm_m_cond, scm_m_letstar, scm_m_do): Reordered + comparison parameters. + + (scm_m_case, scm_m_cond, scm_m_letstar, scm_m_do, SCM_CEVAL): Use + !SCM_NULLP instead of SCM_NIMP. + + (scm_m_case): Don't copy the form. Renamed proc to clause and + minimized its scope. Renamed x to clauses. Removed side + effecting operation from macro call. + + (scm_m_cond): Don't copy the form. Renamed arg1 to clause and + minimized its scope. Renamed x to clauses. Minimized the scope + of variable 'len'. Make sure the else clause is treated specially + even in case of '=>' occurences. Don't change the else to #t in + order to be able to distinguish this case in the evaluator. Leave + type checking of the recipient to the evaluator. + + (scm_c_improper_memq): Made the comment somewhat clearer. + + (scm_m_lambda): Renamed proc to formals. Removed unnecessary + test for SCM_IM_LET at the place of the formal parameters. + Simplified the formal parameter checking. + + (scm_m_letstar): Added Comment. Renamed proc to bindings. + Renamed arg1 to binding and minimized its scope. Eliminated + unnecessary consing. + + (scm_m_do): Renamed proc to bindings. Minimized the scope of + variable 'len'. + + (build_binding_list): New static function. + + (unmemocopy): Don't use SCM_TYP7 on pairs (it's unclean). + Further, split up the 'letrec' unmemoizing code to the + corresponding parts for 'do', 'let' and 'letrec', adding comments + to each form. Cleanup the handling of the do form (This removes + some *real* code :-). + + (SCM_CEVAL): Removed side effecting operation from macro call. + Handle the 'else clause of the 'cond form specially - the symbol + 'else is not replaced with #t any more. + +2001-10-14 Gary Houston + + * version.c (scm_version): use sprintf instead of snprintf, + for portability. thanks to Bill Schottstaedt. + +2001-10-14 Mikael Djurfeldt + + * read.c (scm_lreadr): When user-defined hash procedure returns + SCM_UNSPECIFIED: Fall back to standard handling instead of raising + an exception. (This prevents parsing of uniform vectors from + interfering with parsing of numbers.) + +2001-10-13 Marius Vollmer + + * numbers.c: Set NO_PREPRO_MAGIC when defining our version of + PTRDIFF_MIN. Thanks to Ken Raeburn. + +2001-10-07 Marius Vollmer + + * Makefile.am (EXTRA_libguile_la_SOURCES): Added "mkstemp.c". + + * eval.c (scm_m_atbind): First try to find the variable without + defining it locally; when it has not been found, define it + locally. + + * modules.c (module_variable): Pass over variables that exist but + are unbound. + +2001-10-06 Marius Vollmer + + * backtrace.c (display_backtrace_file_and_line): Only use + scm_basename when POSIX support is compiled in. Thanks to Chris + Cramer. + +2001-10-13 Dirk Herrmann + + * numbers.c (mem2uinteger): Return number read so far when coming + across a hexdigit after having read a # or if not reading a hex + value. This will enable the calling code to correctly handle + forms like 1e2. (The background is, that the exponent markers d, + e and f are also hexdigits.) Thanks to Mikael Djurfeldt for + providing this patch. + + (mem2complex): Fix erroneous double-negation. Now, numbers like + 1-i will be read correctly. + +2001-10-12 Mikael Djurfeldt + + * debug.c (scm_mem_to_proc): Fixed typo in previous change. + + * validate.h (SCM_VALIDATE_DOUBLE_DEF_COPY): New macro. + +2001-10-12 Dirk Herrmann + + * print.c (scm_print_state_vtable, print_state_pool): + Initialize. These variables are now registered as gc roots. + + (scm_current_pstate): Update documentation. + + (scm_current_pstate, scm_make_print_state, scm_free_print_state, + scm_prin1, scm_init_print): print_state_pool is registered as a + gc root and thus does not need to be protected by a surrounding + pair any more. + + (make_print_state): The car of print_state_pool no longer holds + the scm_print_state_vtable. + + (scm_current_pstate, scm_make_print_state, print_circref, + scm_iprin1, scm_prin1, scm_iprlist): Prefer !SCM_ over + SCM_N. + + (scm_prin1): When building lists, prefer scm_list_ over + scm_cons[2]?. + + (scm_iprlist): Removed a redundant SCM_IMP test. + + (scm_simple_format): Use SCM_EQ_P to compare SCM values. + +2001-10-11 Dirk Herrmann + + * debug.c (scm_make_iloc): Prefer !SCM_ over SCM_N. + + (scm_memcons, scm_mem_to_proc): When building lists, prefer + scm_list_ over scm_cons[2]?. + + (scm_mem_to_proc): Prefer SCM_CONSP over SCM_NIMP. + + (scm_procedure_name): Use SCM_CADR instead of explicit form. + + (debugobj_print): Coerce scm_intprint arg 1 to long, not int. + Thanks to Rob Browning for the patch (see log entry 2001-09-21) - + for some reason his patch didn't make it into the cvs. + +2001-10-09 Dirk Herrmann + + * numbers.c (mem2decimal_from_point): Cleaned up the parsing a + little bit - should even be somewhat more accurate now. + +2001-10-08 Rob Browning + + * gc.c: support ia64 register backing store. + (SCM_MARK_BACKING_STORE): new macro. + + * continuations.h: support ia64 register backing store. + (struct scm_t_contregs): add ia64 register backing store. + + * continuations.c: support ia64 register backing store. + (continuation_mark): mark ia64 register backing store. + (continuation_free): free ia64 register backing store. + (scm_make_continuation): capture ia64 register backing store. + (copy_stack_and_call): copy ia64 register backing store. + +2001-10-08 Dirk Herrmann + + * hashtab.c (scm_hash_fn_create_handle_x): The result of assoc_fn + is known to be #f if no entry is found. Thus, use !SCM_FALSEP + instead of SCM_NIMP to test for that case. + + * strings.h (SCM_SET_STRING_LENGTH): Cast the length to + scm_t_bits instead of long. + +2001-10-06 Marius Vollmer + + * tags.h (SCM_T_BITS_MAX, SCM_T_SIGNED_BITS_MAX, + SCM_T_SIGNED_BITS_MIN): New. + * numbers.h (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): + Use them to make these macros computable by the preprocessor. + + * num2integral.i.c (INTEGRAL2NUM): Let the preprocessor test + whether the integral type fits in a fixnum, not the compiler. + This removes a spurious compiler warning. Also, honor the + NO_PREPRO_MAGIC flag to suppress any preprocessor tests. This is + needed for `long long's. + + * numbers.c: Define NO_PREPRO_MAGOC when including + num2integral.c.i for `long long' and `signed long long'. + +2001-10-06 Mikael Djurfeldt + + These changes fixes a race condition in the Guile coop - pthread + compatibility code. + + * coop.c (mother_awake_p): New variable. + (coop_create): Set mother_awake_p before creating or signalling + mother; wait until mother is going to sleep before returning. + (mother): Reset mother_awake_p before going to sleep. + +2001-10-05 Dirk Herrmann + + * options.c (protected_objects, scm_init_options): The content of + protected_objects is now protected from garbage collection using + scm_gc_register_root instead of scm_permanent_object. + + (get_option_setting): New static function that computes an option + setting as it was formerly done in the function scm_options. + + (get_documented_option_setting): New static function that + returns option documentation as it was formerly done in the + function scm_options. Note that documentation C strings are no + longer precomputed into SCM objects. Instead, they are converted + into SCM strings every time get_documented_option_setting is + called. + + (change_option_setting): New static functions that modifies the + option setting as it was formerly done in the function + scm_options. The function is now exception safe, i. e. won't + cause a memory leak when interrupted. Further, only non-immediate + option values are added to the protection list. + + (scm_options): This function now has only the purpose to dispatch + to to get_option_setting, get_documented_option_setting or + change_option_setting, depending on the arguments given to + scm_options. + + (scm_init_opts): Don't convert documentation C strings into SCM + strings. Further, don't protect any object values: They _must_ + be immediate values, otherwise there is no guarantee that they + have not been collected before anyway. + + * options.[ch] (scm_t_option): Made type unsigned, name into a + constant char* and val into a scm_t_bits type. + + (scm_options, scm_init_opts): The number of options is guaranteed + to be larger or equal to zero. Thus, the type is changed to + unsigned. + +2001-10-05 Dirk Herrmann + + * num2integral.i.c (NUM2INTEGRAL): Eliminated some warnings about + testing an unsigned value for being >= 0. + +2001-10-05 Dirk Herrmann + + * numbers.h: Removed old comment about using SCM_CAR to access + non-pair cells. + + (SCM_MOST_POSITIVE_FIXNUM, SCM_MOST_NEGATIVE_FIXNUM): Make sure + the return value is signed. Thanks to Brian Crowder for the bug + report. + + (SCM_SRS): Avoid unnecessary casting and don't unpack input + values. With this patch, SCM_SRS can be safely used for other + types than scm_t_signed_bits. However, it should still better be + an internal macro and thus be renamed to SCM_I_SRS. + + (SCM_MAKINUM, SCM_INUM): Use proper casting. + +2001-10-03 Gary Houston + + * continuations.h, unif.h: in the descriptions of the bit patterns + of the heap cells, make bit 0 the least significant. + +2001-09-25 Thien-Thi Nguyen + + * chars.h (SCM_MAKE_CHAR): Use `scm_t_bits' instead of `intptr_t'. + Thanks to Golubev I. N. + +2001-09-25 Gary Houston + + * ports.c (scm_drain_input): extended the docstring. thanks to + Alex Schroeder and Thien-Thi Nguyen. + +2001-09-23 Mikael Djurfeldt + + * validate.h (SCM_NUM2FLOAT, SCM_NUM2DOUBLE, + SCM_VALIDATE_FLOAT_COPY, SCM_VALIDATE_DOUBLE_COPY): New + macros. (The NUM names might soon change.) + + * numbers.h: Added missing declarations. + +2001-09-22 Mikael Djurfeldt + + * Makefile.am: Distribute num2float.i.c. + + * num2float.i.c: New file, multiply included by numbers.c, used + to "templatize" the float <-> num conversion routines. + + * numbers.c: New functions: scm_num2float, scm_float2num, + scm_num2double, scm_double2num. + +2001-09-21 Rob Browning + + * .cvsignore: really add version.h + + * strings.h (SCM_SET_STRING_LENGTH): coerce "l" to a long. + Otherwise it fails on the alpha. However, we might rather choose + this size conditionally. + + * numbers.c (scm_gcd): change "k" to a long from an int. + Otherwise it fails on the alpha. However, we might rather choose + this size conditionally. + + * error.c (scm_wta): coerce char* to intptr_t before int + assignment. + + * debug.c (debugobj_print): coerce scm_intprint arg 1 to long, not + int. + + * chars.h (SCM_MAKE_CHAR): coerce value to intptr_t. + +2001-09-20 Mikael Djurfeldt + + * numbers.c (scm_integer_expt): Accept inexact integer in second + argument. (Thanks to Bill Schottstaedt.) + +2001-09-20 Rob Browning + + * .cvsignore: add version.h + + * versiondat.h.in: removed (obsolete). + + * version.h.in: renamed from version.h. + (SCM_GUILE_MAJOR_VERSION): new public macro. + (SCM_GUILE_MINOR_VERSION): new public macro. + (SCM_GUILE_MICRO_VERSION): new public macro. + + * version.h: renamed to version.h.in. + + * version.c + (scm_major_version): support integer *_VERSION macros. + (scm_minor_version): support integer *_VERSION macros. + (scm_micro_version): support integer *_VERSION macros. + (scm_version): support integer *_VERSION macros. + +2001-09-20 Mikael Djurfeldt + + * error.c, error.h: Made error keys globally accessible. + Applications might want to test for these or use them in a direct + call to scm_error. + + * num2integral.i.c (NUM2INTEGRAL): Report an error when these + routines are passed an inexact. This change in behavior is + motivated by concordance with R5RS: It is more common that a + primitive doesn't want to accept an inexact for an exact. + +2001-09-17 Dirk Herrmann + + The following patch partially undoes my patch from 2001-06-30, + where I added the function scm_gc_mark_cell_conservatively. The + function is buggy, since it breaks guile during conservative + marking if a pointer on the stack points directly into the list of + free cells on the heap: With conservative cell marking this will + cause the whole free list to be scanned and marked - boom! + + * gc.c (allocated_mark, MARK, heap_segment, + scm_gc_mark_cell_conservatively, scm_init_storage), gc.h + (scm_gc_mark_cell_conservatively): Remove function + scm_gc_mark_cell_conservatively and update the corresponding + comments and uses accordingly. Thanks to Christopher Cramer for + the patch. (Minor corrections by me.) + +2001-09-15 Gary Houston + + * root.h (scm_root_state): removed the continuation_stack and + continuation_stack_ptr members, which have no apparent purpose. + (scm_continuation_stack, scm_continuation_stack_ptr): #defines + removed. + + * root.c (root_mark), init.c (restart_stack, start_stack), gc + (scm_igc): remove all references to contination_stack and + continuation_stack_ptr, avoiding allocation of a vector and + useless processing during gc. + +2001-09-13 Dirk Herrmann + + * guardians.c (tconc_t, t_tconc): Renamed tconc_t to t_tconc. + + (TCONC_IN): Make sure that the cell word 0 is initialized last. + + (guardians_t, t_guardians): Renamed guardians_t to t_guardians. + + (GUARDIAN, GUARDIAN_DATA): Renamed GUARDIAN to GUARDIAN_DATA. + + (guardian_apply, scm_get_one_zombie, scm_make_guardian, + mark_and_zombify): Prefer !SCM_ over SCM_N. + +2001-09-13 Dirk Herrmann + + * guardians.c (mark_dependencies_in_tconc, + whine_about_self_centered_zombies, scm_init_guardians): Register + the static global variable `self_centered_zombies' via + scm_gc_register_root, to make some cdr-ing unnecessary. + +2001-09-13 Dirk Herrmann + + * backtrace.c (display_backtrace_file, + display_backtrace_file_and_line): Use SCM_EQ_P when comparing SCM + values, use SCM_FALSEP when comparing SCM values against #f. + Thanks to Rob Browning for the bug report. + +2001-09-12 Martin Baulig + + * strings.[ch] (scm_str2string): New function. + +2001-09-06 Marius Vollmer + + * gc.c (scm_done_free): Always subtract size from scm_mallocated + when computing nm, even if it's negative. + (scm_must_malloc): Abort on overflow of scm_mtrigger. + (scm_must_realloc): Likewise. + +2001-09-01 Michael Livshin + + * numbers.c (scm_sys_check_number_conversions): new function, + defined if Guile is compiled in debugging mode. currently checks + `scm_num2ulong', should check much much more. + + * num2integral.i.c (NUM2INTEGRAL): when converting a bignum to + unsigned, ensure that it's positive. thanks to Martin Baulig! + +2001-08-31 Dirk Herrmann + + * __scm.h: Added new section about compile time selectable + features. + + (long_long, ulong_long, scm_sizet, SCM_WNA, SCM_OUTOFRANGE, + SCM_NALLOC, SCM_HUP_SIGNAL, SCM_INT_SIGNAL, SCM_FPE_SIGNAL, + SCM_BUS_SIGNAL, SCM_SEGV_SIGNAL, SCM_ALRM_SIGNAL, SCM_GC_SIGNAL, + SCM_TICK_SIGNAL, SCM_SIG_ORD, SCM_ORD_SIG, SCM_NUM_SIGS): + Removed. + + * deprecation.c (scm_include_deprecated_features): Simplified. + + * eval.c (EVALCAR, unmemocopy), eval.h (SCM_XEVALCAR): Use + `SCM_IMPĀ“ instead of `!SCM_CELLPĀ“. + + * eval.c (unmemocopy): Eliminate redundant SCM_CELLP tests. + Extract side-effecting operations from macros. + + (scm_init_eval): Don't initialize *top-level-lookup-closure*, + scm_top_level_lookup_closure_var and scm_system_transformer. + + * gc.c (CELL_P): New local definition to replace SCM_CELLP. + + (heap_segment): Use CELL_P instead of SCM_CELLP. + + * init.c (start_stack): Don't initialize + scm_top_level_lookup_closure_var and scm_system_transformer. + + * modules.c (scm_set_current_module): Don't access + scm_top_level_lookup_closure_var and scm_system_transformer. + + (scm_sym2var): Don't call scm_variable_set_name_hint. + + (scm_post_boot_init_modules): Removed deprecated initializations. + + * print.c (scm_ipruk): Don't access cell contents of non cells. + + * strings.c (scm_string_set_x): All strings are writable. + + * strings.h (SCM_STRINGP): Use SCM_TYP7 to determine the string + type. There is only one string type now. + + (SCM_STRING_COERCE_0TERMINATION_X): Deprecated. + + * tags.h: Remove comments about two different string types. + + (SCM_CELLP, SCM_NCELLP): Deprecated. + + * variable.c (make_variable): Remove code variant for vcells. + + * variable.h (SCM_VARIABLE_REF, SCM_VARIABLE_SET, + SCM_VARIABLE_LOC): Remove code variant for vcells. + + * __scm.h, deprecation.[ch]: Renamed SCM_DEBUG_DEPRECATED to + SCM_ENABLE_DEPRECATED with the logic reversed. + + * dynl.c (moddata, registered_mods), dynl.[ch] + (scm_register_module_xxx, scm_registered_modules, + scm_clear_registered_modules), error.[ch] (scm_wta), eval.c + (*top-level-lookup-closure*), eval.[ch] + (scm_top_level_lookup_closure_var, scm_system_transformer, + scm_eval_3, scm_eval2), gc.h (SCM_SETAND_CAR, SCM_SETOR_CAR, + SCM_SETAND_CDR, SCM_SETOR_CDR, SCM_FREEP, SCM_NFREEP, + SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16, + SCM_GCCDR), gc.[ch] (scm_remember, scm_protect_object, + scm_unprotect_object), modules.c (root_module_lookup_closure, + scm_sym_app, scm_sym_modules, module_prefix, make_modules_in_var, + beautify_user_module_x_var, try_module_autoload_var, + scm_module_full_name), modules.[ch] (scm_the_root_module, + scm_make_module, scm_ensure_user_module, scm_load_scheme_module), + ports.h (scm_port, scm_ptob_descriptor, scm_port_rw_active), + ports.[ch] (scm_close_all_ports_except), random.h (scm_rstate, + scm_rng, scm_i_rstate), strings.h (SCM_SLOPPY_STRINGP, + SCM_RWSTRINGP, SCM_STRING_UCHARS, SCM_STRING_CHARS), strings.[ch] + (scm_read_only_string_p, scm_makstr, scm_makfromstr, + scm_make_shared_substring), tags.h (scm_tc7_substring, + SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP, scm_tc7_ssymbol, + scm_tc7_msymbol, scm_tcs_symbols), variable.c (sym_huh), + variable.[ch] (scm_variable_set_name_hint, scm_builtin_variable), + variable.h (SCM_VARVCELL, SCM_UDVARIABLEP, SCM_DEFVARIABLEP): + Removed. + + * dynl.c (scm_dynamic_link, scm_dynamic_func), error.c + (scm_error_scm), filesys.c (scm_chown, scm_chmod, scm_open_fdes, + scm_stat, scm_link, scm_rename, scm_delete_file, scm_mkdir, + scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink, + scm_lstat, scm_copy_file), fports.c (scm_open_file), ioext.c + (scm_fdopen), net_db.c (scm_gethost, scm_getnet, scm_getproto, + scm_getserv), ports.c (scm_truncate_file, scm_sys_make_void_port), + posix.c (scm_getpwuid, scm_getgrgid, scm_execl, scm_execlp, + scm_execle, scm_mkstemp, scm_utime, scm_access, scm_setlocale, + scm_mknod, scm_crypt, scm_chroot, scm_getpass, scm_sethostname), + regex-posix.c (scm_make_regexp, scm_regexp_exec), simpos.c + (scm_system, scm_getenv), socket.c (scm_inet_aton), stime.c + (setzone, scm_strftime, scm_strptime), vports.c + (scm_make_soft_port): Remove calls to + SCM_STRING_COERCE_0TERMINATION_X. Since the substring type is + gone, all strings are 0-terminated anyway. + + * dynl.h (LIBGUILE_DYNL_H, SCM_DYNL_H), random.h (RANDOMH, + SCM_RANDOM_H): Renamed the macros that are defined to inhibit + double inclusion of the same headers to the SCM__H + format. + + * eval.c (SCM_CEVAL), gc.c (MARK, scm_gc_sweep), gh_data.c + (gh_scm2chars), hash.c (scm_hasher), objects.c (scm_class_of), + print.c (scm_iprin1): The type scm_tc7_substring does not exist + any more. + + * ports.h (SCM_PORTP, SCM_OPPORTP, SCM_OPINPORTP, SCM_OPOUTPORTP, + SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P, SCM_OPENP), tags.h + (SCM_TYP16_PREDICATE), variable.h (SCM_VARIABLEP): Prefer + !SCM_ over SCM_N. + +2001-08-31 Dirk Herrmann + + * Makefile.am: Remove references to symbols-deprecated.c. + + * symbols.c (scm_init_symbols): Don't initialize deprecated + symbol functions. + + * symbols-deprecated.c: Removed. + + * fluids.[ch] (scm_internal_with_fluids), gsubr.[ch] + (scm_make_gsubr, scm_make_gsubr_with_generic), hooks.[ch] + (scm_create_hook), list.c (list*), list.h (SCM_LIST[0-9], + scm_listify), list.[ch] (scm_sloppy_memq, scm_sloppy_memv, + scm_sloppy_member), load.c (scm_end_of_file_key), load.[ch] + (scm_read_and_eval_x), numbers.[ch] (scm_mkbig, scm_big2inum, + scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big, + scm_big2dbl), numbers.h (SCM_FIXNUM_BIT), procs.h + (scm_subr_entry, SCM_SUBR_DOC), procs.[ch] (scm_make_subr_opt, + scm_make_subr, scm_make_subr_with_generic), root.c (setjmp_type, + setjmp_type), root.[ch] (scm_call_catching_errors), smob.[ch] + (scm_make_smob_type_mfpe, scm_set_smob_mfpe), strports.[ch] + (scm_strprint_obj, scm_read_0str, scm_eval_0str), symbols.h + (SCM_CHARS, SCM_UCHARS, SCM_SETCHARS, SCM_SLOPPY_SUBSTRP, + SCM_SUBSTR_STR, SCM_SUBSTR_OFFSET, SCM_LENGTH_MAX, SCM_LENGTH, + SCM_SETLENGTH, SCM_ROSTRINGP, SCM_ROLENGTH, SCM_ROCHARS, + SCM_ROUCHARS, SCM_SUBSTRP, SCM_COERCE_SUBSTR, scm_strhash, + scm_sym2vcell, scm_sym2ovcell_soft, scm_sym2ovcell, + scm_intern_obarray_soft, scm_intern_obarray, scm_intern, + scm_intern0, scm_sysintern, scm_sysintern0, + scm_sysintern0_no_module_lookup, scm_symbol_value0, + scm_string_to_obarray_symbol, scm_intern_symbol, + scm_unintern_symbol, scm_symbol_binding, scm_symbol_interned_p, + scm_symbol_bound_p, scm_symbol_set_x, scm_gentemp, + scm_init_symbols_deprecated), vectors.c (s_vector_set_length_x), + vectors.[ch] (scm_vector_set_length_x): Removed. + + * fluids.h (FLUIDSH, SCM_FLUIDS_H), gsubr.c (GSUBRH, SCM_GSUBR_H), + list.h (LISTH, SCM_LIST_H), load.h (LOADH, SCM_LOAD_H), root.h + (ROOTH, SCM_ROOT_H), strports.h (STRPORTSH, SCM_STRPORTS_H): + Renamed the macros that are defined to inhibit double inclusion of + the same headers to the SCM__H format. + + * procs.h (SCM_CLOSUREP, SCM_PROCEDURE_WITH_SETTER_P), symbols.h + (SCM_SYMBOLP), vectors.h (SCM_VECTORP): Prefer !SCM_ over + SCM_N. + 2001-08-31 Dirk Herrmann * continuations.h (scm_contregs), debug.h (scm_debug_info,