summaryrefslogtreecommitdiff
path: root/libguile/gdbint.c
AgeCommit message (Collapse)AuthorFilesLines
2013-11-27Remove nonfunctional gdb interfaceAndy Wingo1-266/+0
* libguile/gdb_interface.h: * libguile/gdbint.c: * libguile/gdbint.h: Remove. These were last modified significantly in 1997 and I think they are unused. * libguile/guile.c: Remove use. * libguile.h: Remove inclusion. * libguile/Makefile.am: Remove reference. * libguile/init.c: Remove use.
2012-05-23Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo1-3/+2
This commit removes code that was newly deprecated in stable-2.0. Conflicts: libguile/deprecated.c libguile/deprecated.h libguile/modules.c module/ice-9/boot-9.scm module/ice-9/deprecated.scm
2012-05-23deprecate scm_sym2varAndy Wingo1-3/+2
* libguile/deprecated.h: * libguile/deprecated.c (scm_sym2var): Deprecate this function. * libguile/modules.h: * libguile/modules.c (scm_module_ensure_local_variable): New public function, replacing scm_sym2var with a true definep, without going through eval closures (which are deprecated). (scm_current_module): Rework to do something sensible before modules are booted. (scm_module_lookup, scm_lookup): Refactor to use scm_module_variable. (scm_module_define, scm_define): Refactor to use scm_module_ensure_local_variable. * libguile/vm-i-system.c (define!): Use scm_define. * libguile/vm.c (resolve_variable): Use scm_module_lookup. * libguile/macros.c (scm_make_syntax_transformer): Use scm_module_variable. * libguile/gdbint.c (gdb_binding): Use scm_define. * doc/ref/api-modules.texi (Accessing Modules from C): Add docs for scm_module_ensure_local_variable.
2011-11-08locking for putc, putsAndy Wingo1-1/+1
* libguile/ports.c (scm_putc, scm_puts): * libguile/ports.h (scm_putc_unlocked, scm_puts_unlocked): Separate into _unlocked and locked variants. Change all callers to use the _unlocked versions.
2011-11-08locking on port buffering operationsAndy Wingo1-1/+1
* libguile/ports.c (scm_fill_input_unlocked, scm_fill_input) (scm_end_input, scm_end_input_unlocked, scm_flush) (scm_flush_unlocked): Add locking and _unlocked variants. * libguile/filesys.c: * libguile/fports.c: * libguile/gdbint.c: * libguile/r6rs-ports.c: * libguile/read.c: * libguile/rw.c: Adapt callers to use _unlocked variants.
2011-10-24add SCM_HEAP_OBJECT_PAndy Wingo1-2/+2
* libguile/tags.h (SCM_HEAP_OBJECT_P): New macro, an alias for SCM_NIMP. * libguile/arrays.c: * libguile/debug.c: * libguile/foreign.c: * libguile/gdbint.c: * libguile/guardians.c: * libguile/list.c: * libguile/modules.c: * libguile/options.c: * libguile/smob.c: * libguile/validate.h: * libguile/weak-set.c: * libguile/weak-table.c: * libguile/weak-vector.c: Use it instead of SCM_NIMP or !SCM_IMP.
2011-03-06Let `scm_mkstrport' allocate buffers on the caller's behalf.Ludovic Courtès1-7/+5
* libguile/strports.c (INITIAL_BUFFER_SIZE): New macro. (scm_mkstrport): If STR is false, allocate a bytevector on the caller's behalf. (scm_object_to_string, scm_call_with_output_string, scm_open_output_string): Pass SCM_BOOL_F as the STR argument of `scm_mkstrport'. * libguile/backtrace.c (scm_display_application, display_backtrace_body): Likewise. * libguile/gdbint.c (scm_init_gdbint): Likewise. * libguile/print.c (scm_simple_format): Likewise.
2009-12-05remove a bunch of needless scm_permanent_object callsAndy Wingo1-1/+1
* libguile/array-handle.c: * libguile/bytevectors.c: * libguile/deprecated.c: * libguile/eval.c: * libguile/feature.c: * libguile/filesys.c: * libguile/gc.c: * libguile/gdbint.c: * libguile/goops.c: * libguile/instructions.c: * libguile/load.c: * libguile/modules.c: * libguile/numbers.c: * libguile/options.c: * libguile/ports.c: * libguile/scmsigs.c: * libguile/srcprop.c: * libguile/srfi-4.c: * libguile/stacks.c: * libguile/threads.c: * libguile/vm.c: Remove calls to scm_permanent_object, as they are no longer needed with the BDW GC.
2009-12-01fix to gdb_eval to use newer interfacesAndy Wingo1-3/+2
* libguile/gdbint.c (gdb_eval): Use scm_primitive_eval instead of scm_i_eval_x.
2009-08-18Merge branch 'master' into boehm-demers-weiser-gcLudovic Courtès1-6/+7
Conflicts: lib/Makefile.am libguile/Makefile.am libguile/frames.c libguile/gc-card.c libguile/gc-freelist.c libguile/gc-mark.c libguile/gc-segment.c libguile/gc_os_dep.c libguile/load.c libguile/macros.c libguile/objcodes.c libguile/programs.c libguile/strings.c libguile/vm.c m4/gnulib-cache.m4 m4/gnulib-comp.m4 m4/inline.m4
2009-06-17Change Guile license to LGPLv3+Neil Jerram1-6/+7
(Not quite finished, the following will be done tomorrow. module/srfi/*.scm module/rnrs/*.scm module/scripts/*.scm testsuite/*.scm guile-readline/* )
2008-09-13Merge branch 'master' into boehm-demers-weiser-gcLudovic Courtès1-1/+1
Conflicts: lib/Makefile.am libguile/gc-card.c libguile/gc-freelist.c libguile/gc-mark.c libguile/gc-segment.c libguile/gc.c libguile/gc.h libguile/gc_os_dep.c libguile/private-gc.h m4/.cvsignore m4/gnulib-cache.m4 m4/gnulib-comp.m4
2008-09-13Include <config.h> in all C files; use `#ifdef HAVE_CONFIG_H' rather than `#if'.Ludovic Courtès1-1/+1
2008-09-10Fixed warnings due to unused stuff.Ludovic Courtes1-39/+0
* libguile/gc.c (scm_cells_allocated, scm_last_cells_allocated, scm_gc_cells_collected, scm_gc_cells_collected_1, scm_gc_malloc_collected, scm_gc_time_taken, t_before_gc, scm_gc_mark_time_taken, scm_gc_times, scm_gc_cells_swept, scm_gc_cells_marked_acc, scm_gc_cells_swept_acc, scm_gc_cell_yield_percentage, scm_gc_malloc_yield_percentage): Removed. * libguile/gc.h: Updated accordingly. * libguile/gdbint.c (port_mark_p, stream_mark_p, string_mark_p, unmark_port, remark_port): Removed. git-archimport-id: lcourtes@laas.fr--2006-libre/guile-core--boehm-gc--0--patch-4
2008-09-10Merge commit '7337d56d5714227865aeca2b40b6bd97cce296d2' into ↵Ludovic Courtès1-10/+2
boehm-demers-weiser-gc Conflicts: libguile/struct.c
2008-09-05Merge from lcourtes@laas.fr--2005-mobileLudovic Courtes1-2/+15
Patches applied: * lcourtes@laas.fr--2005-mobile/guile-core--boehm-gc--1.9 (base, patch 1) - tag of lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--base-0 - Initial hack for Boehm's GC support: nothing works. git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-1
2007-07-22Changes from arch/CVS synchronizationLudovic Courtès1-10/+2
2005-05-23The FSF has a new address.Marius Vollmer1-1/+1
2005-03-10(SCM_BEGIN_FOREIGN_BLOCK, SCM_END_FOREIGN_BLOCK): Do not setMarius Vollmer1-3/+0
scm_block_gc.
2004-08-19* strings.h, strings.c: (scm_i_string_chars, scm_i_string_length,Marius Vollmer1-3/+3
scm_i_string_writable_chars, scm_i_string_stop_writing): New, to replace SCM_I_STRING_CHARS and SCM_I_STRING_LENGTH. Updated all uses. (scm_i_make_string, scm_c_make_string): New, to replace scm_allocate_string. Updated all uses. (SCM_STRINGP, SCM_STRING_CHARS, SCM_STRING_UCHARS, SCM_STRING_LENGTH): Deprecated. (scm_allocate_string, scm_take_str, scm_take0str, scm_mem2string, scm_str2string, scm_makfrom0str, scm_makfrom0str_opt): Discouraged. Replaced all uses with scm_from_locale_string or similar, as appropriate. (scm_c_string_length, scm_c_string_ref, scm_c_string_set_x, scm_c_substring, scm_c_substring_shared, scm_c_substring_copy, scm_substring_shared, scm_substring_copy): New. * symbols.c, symbols.h (SCM_SYMBOLP, SCM_SYMBOL_FUNC, SCM_SET_SYMBOL_FUNC, SCM_SYMBOL_PROPS, SCM_SET_SYMBOL_PROPS, SCM_SYMBOL_HASH, SCM_SYMBOL_INTERNED_P, scm_mem2symbol, scm_str2symbol, scm_mem2uninterned_symbol): Discouraged. (SCM_SYMBOL_LENGTH, SCM_SYMBOL_CHARS, scm_c_symbol2str): Deprecated. (SCM_MAKE_SYMBOL_TAG, SCM_SET_SYMBOL_LENGTH, SCM_SET_SYMBOL_CHARS, SCM_PROP_SLOTS, SCM_SET_PROP_SLOTS): Removed. (scm_is_symbol, scm_from_locale_symbol, scm_from_locale_symboln): New, to replace scm_str2symbol and scm_mem2symbol, respectively. Updated all uses. (scm_gensym): Generate only the number suffix in the buffer, just string-append the prefix.
2004-07-23* deprecated.h, deprecated.c, numbers.h (SCM_INUMP, SCM_NINUMP,Marius Vollmer1-5/+5
SCM_INUM): Deprecated by reenaming them to SCM_I_INUMP, SCM_I_NINUMP and SCM_I_INUM, respectively and adding deprecated versions to deprecated.h and deprecated.c. Changed all uses to either use the SCM_I_ variants or scm_is_*, scm_to_*, or scm_from_*, as appropriate.
2004-07-08* numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM toMarius Vollmer1-5/+5
SCM_I_MAKINUM and changed all uses.
2004-03-29 Introduce scm_debug_mode_p as a replacement for scm_debug_mode andDirk Herrmann1-7/+3
SCM_DEBUGGINGP: * debug.h (scm_debug_mode_p, scm_debug_mode, SCM_DEBUGGINGP), eval.c (scm_debug_mode_p): Deprecated scm_debug_mode and SCM_DEBUGGINGP. Provided scm_debug_mode_p instead, to have one single interface that also matches the naming conventions. Probably scm_debug_mode_p should be part of the private interface anyway. * debug.h (scm_debug_mode_p), backtrace.c (display_error_body), eval.c (SCM_APPLY, scm_trampoline_0, scm_trampoline_1, scm_trampoline_2): Change uses of scm_debug_mode or SCM_DEBUGGINGP to scm_debug_mode_p. Deprecate direct access to scm_ceval, scm_deval and scm_ceval_ptr: * eval.h (scm_ceval, scm_deval, scm_ceval_ptr), debug.h (scm_ceval_ptr): Deprecated. Moved declaration of scm_ceval_ptr from debug.h to eval.h. * debug.h (SCM_RESET_DEBUG_MODE): Don't access scm_ceval_ptr any more, just leave it with setting scm_debug_mode_p, which is equivalent for practical purposes. * deprecated.h (SCM_XEVAL, SCM_XEVALCAR): Call scm_i_eval_x instead of *scm_ceval_ptr. Leave all evaluating to scm_i_eval_x. * gdbint.c (gdb_eval): Call scm_i_eval_x instead of scm_ceval. * eval.c (ceval, deval, scm_ceval, scm_deval): Made scm_ceval static and renamed it to ceval throughout. Provide a new exported but deprecated function scm_ceval as a wrapper for backwards compatibility. The same is done for the deval/scm_deval pair of functions. * eval.c (CEVAL, SCM_CEVAL): Renamed SCM_CEVAL to CEVAL throughout. Defined CEVAL to ceval or deval, based on compilation phase. * eval.c (SCM_XEVAL, SCM_XEVALCAR): Dispatch on scm_debug_mode_p to ceval and deval instead of calling *scm_ceval_ptr. * eval.c (dispatching_eval): New deprecated static function. * eval.c (scm_ceval_ptr): Initialized to dispatching_eval in order to emulate its old behaviour as closely as possible. Change the evaluator such that only expressions for which pair? is true are passed to CEVAL, and such that all other expressions are evaluated outside of CEVAL: * eval.c (EVAL): New, provided in analogy to EVALCAR. Evaluate an expression that is assumed to be memoized already. All but expressions of the form '(<form> <form> ...)' are evaluated inline without calling an evaluator. * eval.c (SCM_XEVAL, SCM_XEVALCAR, EVALCAR): Evaluate all but expressions of the form '(<form> <form> ...)' inline without calling an evaluator. * eval.c (scm_i_eval_x, scm_i_eval, scm_ceval, scm_deval): Handle the special case of unmemoized symbols passed on the top level. * eval.c (CEVAL): Change calls to CEVAL to EVAL, except where it is known that the expression passed to CEVAL is of the form '(<form> <form> ...)'. Remove handling of the tc7-objects, since now it is known that the input expression of CEVAL is a pair.
2003-04-05Changed license terms to the plain LGPL thru-out.Marius Vollmer1-38/+11
2003-03-25*** empty log message ***Rob Browning1-1/+3
2002-12-10* async.c, error.h (scm_ints_disabled): Removed.Mikael Djurfeldt1-4/+2
* gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1), root.c (scm_internal_cwdr), gdbint.c (SCM_BEGIN_FOREIGN_BLOCK, SCM_END_FOREIGN_BLOCK): Don't touch scm_ints_disabled. (old_ints): Removed. * __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Define as a recursive critical section. (SCM_REDEFER_INTS, SCM_ALLOW_INTS): Define as SCM_DEFER_INTS and SCM_ALLOW_INTS.
2002-08-04new gcHan-Wen Nienhuys1-13/+16
2001-07-09Remove "face-lift" comment.Thien-Thi Nguyen1-2/+0
2001-06-20Removed tag.c and tag.h and all references.Martin Grabmüller1-1/+0
2001-06-14replace "scm_*_t" with "scm_t_*".Marius Vollmer1-1/+1
2001-05-24* validate.hMichael Livshin1-1/+1
(SCM_NUM2{SIZE,PTRDIFF,SHORT,USHORT,BITS,UBITS,INT,UINT}[_DEF]): new macros. * unif.h: type renaming: scm_array -> scm_array_t scm_array_dim -> scm_array_dim_t the old names are deprecated, all in-Guile uses changed. * tags.h (scm_ubits_t): new typedef, representing unsigned scm_bits_t. * stacks.h: type renaming: scm_info_frame -> scm_info_frame_t scm_stack -> scm_stack_t the old names are deprecated, all in-Guile uses changed. * srcprop.h: type renaming: scm_srcprops -> scm_srcprops_t scm_srcprops_chunk -> scm_srcprops_chunk_t the old names are deprecated, all in-Guile uses changed. * gsubr.c, procs.c, print.c, ports.c, read.c, rdelim.c, ramap.c, rw.c, smob.c, sort.c, srcprop.c, stacks.c, strings.c, strop.c, strorder.c, strports.c, struct.c, symbols.c, unif.c, values.c, vectors.c, vports.c, weaks.c: various int/size_t -> size_t/scm_bits_t changes. * random.h: type renaming: scm_rstate -> scm_rstate_t scm_rng -> scm_rng_t scm_i_rstate -> scm_i_rstate_t the old names are deprecated, all in-Guile uses changed. * procs.h: type renaming: scm_subr_entry -> scm_subr_entry_t the old name is deprecated, all in-Guile uses changed. * options.h (scm_option_t.val): unsigned long -> scm_bits_t. type renaming: scm_option -> scm_option_t the old name is deprecated, all in-Guile uses changed. * objects.c: various long -> scm_bits_t changes. (scm_i_make_class_object): flags: unsigned long -> scm_ubits_t * numbers.h (SCM_FIXNUM_BIT): deprecated, renamed to SCM_I_FIXNUM_BIT. * num2integral.i.c: new file, multiply included by numbers.c, used to "templatize" the various integral <-> num conversion routines. * numbers.c (scm_mkbig, scm_big2num, scm_adjbig, scm_normbig, scm_copybig, scm_2ulong2big, scm_dbl2big, scm_big2dbl): deprecated. (scm_i_mkbig, scm_i_big2inum, scm_i_adjbig, scm_i_normbig, scm_i_copybig, scm_i_short2big, scm_i_ushort2big, scm_i_int2big, scm_i_uint2big, scm_i_long2big, scm_i_ulong2big, scm_i_bits2big, scm_i_ubits2big, scm_i_size2big, scm_i_ptrdiff2big, scm_i_long_long2big, scm_i_ulong_long2big, scm_i_dbl2big, scm_i_big2dbl, scm_short2num, scm_ushort2num, scm_int2num, scm_uint2num, scm_bits2num, scm_ubits2num, scm_size2num, scm_ptrdiff2num, scm_num2short, scm_num2ushort, scm_num2int, scm_num2uint, scm_num2bits, scm_num2ubits, scm_num2ptrdiff, scm_num2size): new functions. * modules.c (scm_module_reverse_lookup): i, n: int -> scm_bits_t.x * load.c: change int -> size_t in various places (where the variable is used to store a string length). (search-path): call scm_done_free, not scm_done_malloc. * list.c (scm_ilength): return a scm_bits_t, not long. some other {int,long} -> scm_bits_t changes. * hashtab.c: various [u]int -> scm_bits_t changes. scm_ihashx_closure -> scm_ihashx_closure_t (and made a typedef). (scm_ihashx): n: uint -> scm_bits_t use scm_bits2num instead of scm_ulong2num. * gsubr.c: various int -> scm_bits_t changes. * gh_data.c (gh_scm2double): no loss of precision any more. * gh.h (gh_str2scm): len: int -> size_t (gh_{get,set}_substr): start: int -> scm_bits_t, len: int -> size_t (gh_<num>2scm): n: int -> scm_bits_t (gh_*vector_length): return scm_[u]size_t, not unsigned long. (gh_length): return scm_bits_t, not unsigned long. * fports.h: type renaming: scm_fport -> scm_fport_t the old name is deprecated, all in-Guile uses changed. * fports.c (fport_fill_input): count: int -> scm_bits_t (fport_flush): init_size, remaining, count: int -> scm_bits_t * debug.h (scm_lookup_cstr, scm_lookup_soft, scm_evstr): removed those prototypes, as the functions they prototype don't exist. * fports.c (default_buffer_size): int -> size_t (scm_fport_buffer_add): read_size, write_size: int -> scm_bits_t default_size: int -> size_t (scm_setvbuf): csize: int -> scm_bits_t * fluids.c (n_fluids): int -> scm_bits_t (grow_fluids): old_length, i: int -> scm_bits_t (next_fluid_num, scm_fluid_ref, scm_fluid_set_x): n: int -> scm_bits_t (scm_c_with_fluids): flen, vlen: int -> scm_bits_t * filesys.c (s_scm_open_fdes): changed calls to SCM_NUM2LONG to the new and shiny SCM_NUM2INT. * extensions.c: extension -> extension_t (and made a typedef). * eval.h (SCM_IFRAME): cast to scm_bits_t, not int. just so there are no nasty surprises if/when the various deeply magic tag bits move somewhere else. * eval.c: changed the locals used to store results of SCM_IFRAME, scm_ilength and such to be of type scm_bits_t (and not int/long). (iqq): depth, edepth: int -> scm_bits_t (scm_eval_stack): int -> scm_bits_t (SCM_CEVAL): various vars are not scm_bits_t instead of int. (check_map_args, scm_map, scm_for_each): len: long -> scm_bits_t i: int -> scm_bits_t * environments.c: changed the many calls to scm_ulong2num to scm_ubits2num. (import_environment_fold): proc_as_ul: ulong -> scm_ubits_t * dynwind.c (scm_dowinds): delta: long -> scm_bits_t * debug.h: type renaming: scm_debug_info -> scm_debug_info_t scm_debug_frame -> scm_debug_frame_t the old names are deprecated, all in-Guile uses changed. (scm_debug_eframe_size): int -> scm_bits_t * debug.c (scm_init_debug): use scm_c_define instead of the deprecated scm_define. * continuations.h: type renaming: scm_contregs -> scm_contregs_t the old name is deprecated, all in-Guile uses changed. (scm_contregs_t.num_stack_items): size_t -> scm_bits_t (scm_contregs_t.num_stack_items): ulong -> scm_ubits_t * continuations.c (scm_make_continuation): change the type of stack_size form long to scm_bits_t. * ports.h: type renaming: scm_port_rw_active -> scm_port_rw_active_t (and made a typedef) scm_port -> scm_port_t scm_ptob_descriptor -> scm_ptob_descriptor_t the old names are deprecated, all in-Guile uses changed. (scm_port_t.entry): int -> scm_bits_t. (scm_port_t.line_number): int -> long. (scm_port_t.putback_buf_size): int -> size_t. * __scm.h (long_long, ulong_long): deprecated (they pollute the global namespace and have little value besides that). (SCM_BITS_LENGTH): new, is the bit size of scm_bits_t (i.e. of an SCM handle). (ifdef spaghetti): include sys/types.h and sys/stdtypes.h, if they exist (for size_t & ptrdiff_t) (scm_sizet): deprecated. * Makefile.am (noinst_HEADERS): add num2integral.i.c
2001-05-15Merge from mvo-vcell-cleanup-1-branch.Marius Vollmer1-4/+2
2001-03-22* Replace function scm_makstr with new function scm_allocate_string.Dirk Herrmann1-2/+2
2001-03-09Remove #include <stdio.h>. Add #include <string.h>.Keisuke Nishida1-0/+1
2000-12-06* eval.c: remove commented code, remove #ifdef CCLO conditionalsDirk Herrmann1-9/+9
* remove uses of older GC marking and cell accessing macros
2000-08-27* gdbint.c (gdb_print): Removed superfluous macro definition.Mikael Djurfeldt1-2/+0
2000-07-13* Extend checks performed with SCM_DEBUG_CELL_ACCESSES=1 and make themDirk Herrmann1-2/+2
configurable at run-time. * Replace SCM_FREEP by SCM_FREE_CELL_P and scm_gc_heap_lock by scm_gc_running_p (not in all places yet).
2000-06-21(SCM_TOP_LEVEL_LOOKUP_CLOSURE): New macro which replacesMikael Djurfeldt1-3/+3
SCM_CDR (scm_top_level_lookup_closure_var) everywhere.
2000-06-19* gdbint.c (gdb_print): Print warning instead of calling scm_writeMikael Djurfeldt1-14/+22
if Guile isn't yet initialized.
2000-06-12* gdbint.c (SEND_STRING): Cast argument to char pointer.Mikael Djurfeldt1-2/+2
2000-06-12Updated copyrightsMikael Djurfeldt1-1/+1
2000-05-16* Makefile.am: Let 'make clean' remove *.x and *.doc files.Dirk Herrmann1-3/+1
* Renamed SCM_STRICT_TYPING to SCM_DEBUG_TYPING_STRICTNESS. * Removed conditionally compiled code for Turbo C. * gdbint.c: Eliminated call to scm_tag.
2000-04-21* Makefile.am (DEFS): Added. automake adds -I options to DEFS,Mikael Djurfeldt1-13/+13
and we don't want that. (INCLUDES): Removed all -I options except for the root source directory and the root build directory. * *.*: Change includes so that they always use the "prefixes" libguile/, qt/, guile-readline/, or libltdl/. (Thanks to Tim Mooney.)
2000-03-31Use SCM_EQ_P to compare scheme objects, use SCM_CELL_WORD_1 for raw data.Dirk Herrmann1-1/+1
2000-03-31Change type of member 'stream' in scm_port from SCM to scm_bits_t.Dirk Herrmann1-2/+2
2000-03-19 * *.[hc]: add Emacs magic at the end of file, to ensure GNUMichael Livshin1-0/+6
indentation style.
2000-03-18Only include root.h where it is actually needed.Dirk Herrmann1-0/+1
2000-03-17Only include strings.h where it is actually needed.Dirk Herrmann1-0/+1
2000-03-17Only include ports.h where it is actually needed.Dirk Herrmann1-0/+1
1999-12-16* *.h: Use SCM_NIMP(X) && in all the FOOP macros.Greg J. Badros1-6/+6
* *.[ch]: Use do { ... } while (0) idiom in macros that expanded to a bare block.