summaryrefslogtreecommitdiff
path: root/libguile/alist.c
Commit message (Expand)AuthorAgeFilesLines
* Let assv/assoc shortcircuit to assq where feasible...* libguile/alist.c (scm_sloppy_assv, scm_sloppy_assoc): (scm_assv, scm_assoc): Shortcircuit to scm_assq where feasible. David Kastrup2016-08-071-0/+21
* Merge remote-tracking branch 'origin/stable-2.0'...Conflicts: GUILE-VERSION libguile/gc-malloc.c libguile/ports.c Andy Wingo2012-02-081-2/+2
|\
| * Improve the usage of variable names in C docstrings....* libguile/alist.c: * libguile/array-map.c: * libguile/arrays.c: * libguile/bitvectors.c: * libguile/filesys.c: * libguile/foreign.c: * libguile/generalized-arrays.c: * libguile/hashtab.c: * libguile/ioext.c: * libguile/load.c: * libguile/numbers.c: * libguile/ports.c: * libguile/posix.c: * libguile/print.c: * libguile/procprop.c: * libguile/promises.c: * libguile/simpos.c: * libguile/socket.c: * libguile/srfi-1.c: * libguile/srfi-13.c: * libguile/srfi-14.c: * libguile/stacks.c: * libguile/stime.c: * libguile/strings.c: * libguile/struct.c: * libguile/symbols.c: * libguile/threads.c: * libguile/weak-table.c: * libguile/weak-vector.c: Make the variable names in the C docstrings more consistent. Replace a few instances of @var with @code when appropriate. Bake Timmons2012-02-021-2/+2
* | de-inline cons in scm_acons...* libguile/alist.c (scm_acons): Don't inline the conses. Andy Wingo2011-10-241-4/+2
|/
* remove libguile/lang.h, deprecate %nil (in favor of #nil)...* libguile/Makefile.am: * libguile/init.c: * libguile/lang.c: * libguile/lang.h: Remove lang.c and lang.h. * libguile/pairs.h (SCM_NIL_P, SCM_NULL_OR_NIL_P): Moved here. * module/ice-9/deprecated.scm (%nil): %nil definition moved here. * libguile/alist.c: * libguile/async.c: * libguile/backtrace.c: * libguile/boolean.c: * libguile/dynl.c: * libguile/eval.c: * libguile/filesys.c: * libguile/fluids.c: * libguile/list.c: * libguile/load.c: * libguile/options.c: * libguile/posix.c: * libguile/print.c: * libguile/promises.c: * libguile/sort.c: * libguile/throw.c: * libguile/trees.c: * libguile/vectors.c: * libguile/vm.c: * libguile/weaks.c: * srfi/srfi-1.c: <libguile/lang.h> references removed. Andy Wingo2010-04-091-2/+1
* Change Guile license to LGPLv3+...(Not quite finished, the following will be done tomorrow. module/srfi/*.scm module/rnrs/*.scm module/scripts/*.scm testsuite/*.scm guile-readline/* ) Neil Jerram2009-06-171-6/+7
* Include <config.h> in all C files; use `#ifdef HAVE_CONFIG_H' rather than `#if'.Ludovic Courtès2008-09-131-1/+5
* merge from 1.8 branchKevin Ryde2006-04-171-1/+1
* The FSF has a new address.Marius Vollmer2005-05-231-1/+1
* *** empty log message ***Marius Vollmer2004-09-221-22/+23
* * tags.h, deprecated.h (SCM_EQ_P): Deprecated by moving it into...deprecated.h. Replaced all uses with scm_is_eq. Marius Vollmer2004-07-271-2/+2
* * deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,...SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into "deprecated.h". Replaced all uses with scm_is_false, scm_is_true, scm_from_bool, and scm_is_bool, respectively. Marius Vollmer2004-07-061-4/+4
* Changed license terms to the plain LGPL thru-out.Marius Vollmer2003-04-051-36/+12
* Retire inclusion guard macro SCM_MAGIC_SNARFER.Thien-Thi Nguyen2002-03-141-2/+0
* Changes in doc/ref:...* api.txt, data-rep.texi: Renamed the struct scm_cell to scm_t_cell. * data-rep.texi: Renamed scm_alloc_cell to scm_cell and scm_alloc_double_cell to scm_double_cell. Changes in libguile: * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, NEXT_DATA_CELL, init_heap_seg, alloc_some_heap), gc.h (struct scm_cell, struct scm_t_cell, SCM_CELLPTR, SCM_GC_CARD_SIZE, SCM_GC_IN_CARD_HEADERP), tags.h (SCM_CELLP): Renamed the struct scm_cell and all its uses to scm_t_cell in accordance to Guile's naming scheme for types. * alist.c (scm_acons), convert.i.c (CTYPES2UVECT, CTYPES2UVECT_OPTIONAL), coop-threads.c (scm_call_with_new_thread, scm_spawn_thread), debug.c (scm_make_debugobj), environments.c (scm_make_environment), eval.c (scm_closure), fports.c (scm_fdes_to_port), gc.c (scm_deprecated_newcell, scm_deprecated_newcell2), inline.h (scm_alloc_cell, scm_cell), list.c (SCM_I_CONS), numbers.c (scm_i_mkbig), pairs.c (scm_cons), ports.c (scm_void_port), procs.c (scm_c_make_subr, scm_makcclo), smob.c (scm_make_smob), smob.h (SCM_NEWSMOB), strings.c (scm_take_str, scm_allocate_string), strports.c (scm_mkstrport), unif.c (scm_make_uve), variable.c (make_variable), vectors.c (scm_c_make_vector), vports.c (scm_make_soft_port): Renamed scm_alloc_cell to scm_cell. * environments.c (core_environments_observe), gc.c (scm_deprecated_newcell2), goops.c (wrap_init, scm_wrap_object), inline.h (scm_alloc_double_cell, scm_double_cell), num2float.i.c (FLOAT2NUM), numbers.c (scm_make_real), procs.c (scm_make_procedure_with_setter), smob.h (SCM_NEWSMOB2, SCM_NEWSMOB3), struct.c (scm_make_struct, scm_make_vtable_vtable), symbols.c (scm_mem2symbol, scm_mem2uninterned_symbol), weaks.c (allocate_weak_vector): Renamed scm_alloc_double_cell to scm_double_cell. Dirk Herrmann2002-03-011-3/+3
* * First batch of libguile changes for Elisp support....* Fixed a few typos. * Minor rationalization of macros relating to source breakpoints. Neil Jerram2002-01-221-3/+4
* Replaced SCM_NEWCELL and SCM_NEWCELL2 with scm_alloc_cell and...scm_alloc_double_cell, respectively. Marius Vollmer2001-11-251-12/+3
* * Adding C function declarations from the SCM interface to the... reference manual documentation. Neil Jerram2001-11-161-11/+11
* * alist.c, arbiters.c, async.h, backtrace.h, boolean.c, chars.c,... chars.h, continuations.h, debug-malloc.h, dynl.c, feature.c, feature.h, filesys.h, fluids.h, fports.h, gc_os_dep.c, gdb_interface.h, gh_eval.c, gh_funcs.c, gh_io.c, gh_list.c, gh_predicates.c, gsubr.c, gsubr.h, guardians.h, guile-func-name-check.in, guile-snarf-docs-texi.in, guile-snarf-docs.in, guile-snarf.awk.in, guile-snarf.in, hashtab.h, iselect.h, keywords.h, lang.c, list.h, load.h, objprop.c, objprop.h, options.c, options.h, random.h, regex-posix.h, root.c, root.h, script.c, snarf.h, stackchk.c, strerror.c, strop.h, strports.h, threads.h, values.c, values.h, version.c, version.h: Updated copyright notice. Martin Grabmüller2001-07-191-1/+1
* Remove "face-lift" comment.Thien-Thi Nguyen2001-07-091-2/+0
* Remove #include <stdio.h>. Add #include <string.h>.Keisuke Nishida2001-03-091-1/+0
* * alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,...continuations.c, debug-malloc.c, debug.c, dynl.c, dynwind.c, environments.c, eq.c, error.c, eval.c, evalext.c, feature.c, filesys.c, fluids.c, fports.c, gc.c, goops.c, guardians.c, hash.c, hashtab.c, hooks.c, ioext.c, iselect.c, keywords.c, lang.c, list.c, load.c, macros.c, modules.c, net_db.c, numbers.c, objects.c, objprop.c, options.c, pairs.c, ports.c, posix.c, print.c, procprop.c, procs.c, properties.c, ramap.c, random.c, read.c, regex-posix.c, root.c, scmsigs.c, script.c, simpos.c, socket.c, sort.c, srcprop.c, stackchk.c, stacks.c, stime.c, strings.c, strop.c, strorder.c, strports.c, struct.c, symbols.c, tag.c, threads.c, throw.c, unif.c, variable.c, vectors.c, version.c, vports.c, weaks.c: Makes sure the snarfer output inclusion is disabled when the snarfer is run on the file. Thanks to Lars J. Aas! * Makefile.am: Install guile-procedures.txt in version-specific directory to enable multiple installed guile versions. Suggested by Karl M. Hegbloom <karlheg@debian.org, patch by Matthias Koeppe. Marius Vollmer2000-11-171-0/+2
* * Some more work to get rid of SCM_LENGTH...* Eliminated some cell type bit fiddling * Various minor changes Dirk Herrmann2000-10-251-0/+12
* FixMikael Djurfeldt2000-08-131-12/+21
* * alist.c (scm_assq, scm_assv, scm_assoc): Report argument type...error for the alist rather than the sublist where the type mismatch is discovered. Mikael Djurfeldt2000-08-131-3/+3
* * alist.c (scm_assq_remove_x, scm_assv_remove_x,...scm_assoc_remove_x): Use scm_delq1_x instead of scm_delq_x, since using the latter is pointless. Marius Vollmer2000-07-301-3/+3
* * alist.c (scm_assq_remove_x, scm_assv_remove_x,...scm_assoc_remove_x): Remove only the first cell with a matching key, not all. Marius Vollmer2000-07-251-16/+10
* * alist.c (scm_assq_remove_x, scm_assv_remove_x,...scm_assoc_remove_x): Remove all cells whose key is eq, eqv, or equal (respectively) to the argument key, not all cells that are eq, eqv, or equal to the first cell with the argument key. Thanks to Neil Jerram! Marius Vollmer2000-07-231-13/+13
* Use SCM{_SET}?_CELL_OBJECT if a cell is not known to be a valid pair yet.Dirk Herrmann2000-05-081-4/+4
* * Makefile.am (DEFS): Added. automake adds -I options to DEFS,...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.) Mikael Djurfeldt2000-04-211-6/+6
* Don't use C operators == and != to compare SCM values.Dirk Herrmann2000-03-291-2/+2
* * *.[hc]: add Emacs magic at the end of file, to ensure GNU... indentation style. Michael Livshin2000-03-191-0/+6
* * alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,...tags.h: Fixed copyright notices. Mikael Djurfeldt2000-03-121-1/+1
* * error.h, error.c: Added `scm_wrong_type_arg_msg' to support...displaying the expected type. Use SCM_LISTn in a couple places instead of scm_cons-ing by hand. * __scm.h: Added SCM_ASSERT_TYPE macro. * validate.h, scm_validate.h: Added the former, as a renamed version of the latter with SCM_ASSERT_TYPE used in SCM_MAKE_VALIDATE (instead of just SCM_ASSERT) * Makefile.am: Rename scm_validate.h to validate.h. * *.c, *.h: Include validate.h, not scm_validate.h (old name's prefix was superfluous). Greg J. Badros2000-03-031-1/+1
* * alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,... evalext.c, filesys.c, gc.c, hash.c, hashtab.c, ioext.c, keywords.c, list.c, load.c, macros.c, net_db.c, numbers.c, objprop.c, ports.c, posix.c, print.c, procprop.c, procs.c, ramap.c, regex-posix.c, root.c, scmsigs.c, simpos.c, socket.c, stacks.c, stime.c, strings.c, strop.c, strports.c, struct.c, symbols.c, throw.c, unif.c, vectors.c, version.c, vports.c, weaks.c: Converted docstrings to ANSI C format. Mikael Djurfeldt2000-01-181-53/+50
* Cosmetic fixesMikael Djurfeldt2000-01-081-23/+23
* * alist.c: Do not report mismatch errors on some uses of `tmp' (do...this by using SCM_ARG2 instead of `2' in the SCM_VALIDATE_CONS macro call. Greg J. Badros2000-01-061-3/+3
* * alist.c: minimize scope of the tmp variables, and initialize...them when declared. The strange SCM_NIMP tests are replaced by SCM_CONSP tests that more closely reflect the intended semantics. However, we don't get a performance penalty here, because the SCM_CONSP test was performed by the ALISTCELL test anyway. * The extremely ugly use of ASRTGO macros was removed: The calls to ASRTGO were not encapsulated by "#ifndef SCM_RECKLESS", but got a label parameter that only exists when SCM_RECKLESS is not defined. This works, because ASRTGO itself is defined in a way that it only makes use of the label parameter if SCM_RECKLESS is not defined (shudder!). Does guile make at all use of the possibility to define SCM_RECKLESS? * Codesize is likely to be reduced, since instead of two calls to SCM_ASSERT performed by the ALISTCELL test we now only get one test. * list.c: Use SCM_NNULLP, not SCM_NIMP as appropriate. Also use SCM_NULLP instead of SCM_IMP. Drop use of "register" keyword on some variables in `list?'. Fix `reverse' and `reverse!' primitives to handle improper lists better. Greg J. Badros2000-01-061-23/+24
* * *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*...macros and SCM_DEFINE macros to match GNU coding standards. Greg J. Badros2000-01-051-8/+8
* *.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.Greg J. Badros2000-01-051-16/+16
* * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP...removals from Dirk Hermann. * alist.c: Rename formals to match the parameter names in the documentation, updates to documentation. Thanks Dirk Hermann! Greg J. Badros2000-01-041-35/+35
* * alist.c, chars.c, dynl.c, net_db.c, numbers.c, unif.c: Use...SCM_NUM2ULONG instead of scm_num2ulong; SCM_NUM2LONG instead of scm_num2long; SCM_WTA instead of scm_wta. Only done for when FUNC_NAME was used as an argument of the macro and the formal argument name was the explicit argument in the old function call. These were just missed in my first pass of changes. Greg J. Badros1999-12-181-1/+1
* * coop-threads.c: Remove K&R function headers....* scm_validate.h: Added SCM_VALIDATE_THREAD. * *.c: Remove SCM_NIMP(X) when it is an extraneous pre-test given that SCM_FOOP macros all now include SCM_NIMP in their expansion. This simplifies lots of code, making it far more readable. Greg J. Badros1999-12-161-14/+14
* * Makefile.am: Fix ETAGS_ARGS to recognize GUILE_PROC,...GUILE_PROC1. Build guile-procedures.txt, and add that file to pkgdata_DATA. * load.c: Added `pkgdata-dir', `site-dir', `library-dir' primitives. * guile-doc-snarf.awk: Drop trailing space when no arguments: e.g., "(foo )" is now "(foo)". * *.c: moved all the documentation for primitives from guile-doc/ref/{appendices,posix,scheme}.texi into the source code. This leaves about half of the primitives undocumented. Also, all the markup is currently still texinfo. I don't have a problem with texinfo per se, but the markup is not very descriptive or accurate. Greg J. Badros1999-12-131-15/+52
* * *.c: Pervasive software-engineering-motivated rewrite of...function headers and argument checking. Switched SCM_PROC, SCM_PROC1 macros to be GUILE_PROC, GUILE_PROC1 (may change names later, but was useful to keep old versions around while migrate) that has docstrings and argument lists embedded in the GUILE_PROC macro invocations that expand into a function header. Use lots of new SCM_VALIDATE_* macros to simplify error checking and reduce tons of redundancy. This is very similar to what I did for Scwm. Note that none of the extraction of the docstrings, nor software engineering checks of Scwm is yet added to Guile. I'll work on that tomorrow, I expect. * Makefile.am: Added scm_validate.h to modinclude_HEADERS. * chars.c: Added docstrings for the primitives defined in here. * snarf.h: Added GUILE_PROC, GUILE_PROC1. Added SCM_REGISTER_PROC to be like old SCM_PROC, though old SCM_PROC still remains for now. Changed naming convention for the s_foo string name of the primitive to be s_scm_foo for ease of use with the macro. * scm_validate.h: Lots of new SCM_VALIDATE macros to simplify argument checking through guile. Maybe some of these should be folded into the header file for the types they check, but for now it was easiest to just stick them all in one place. Greg J. Badros1999-12-121-119/+100
* * __scm.h, alist.c, async.c, async.h, backtrace.h, chars.c,...continuations.c, debug.c, debug.h, dynl-dl.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, error.c, error.h, eval.c, eval.h, feature.c, filesys.c, filesys.h, fports.c, fports.h, gc.c, gc.h, genio.c, genio.h, gh.h, gh_data.c, gsubr.c, gsubr.h, hash.c, hashtab.c, init.c, init.h, ioext.c, ioext.h, kw.c, libguile.h, list.c, list.h, load.c, load.h, mallocs.c, markers.c, mit-pthreads.c, net_db.c, numbers.c, numbers.h, options.c, ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c, procprop.h, procs.c, procs.h, ramap.c, ramap.h, regex-posix.c, regex-posix.h, root.c, root.h, scmsigs.c, scmsigs.h, script.c, script.h, simpos.c, simpos.h, smob.c, smob.h, snarf.h, socket.c, srcprop.c, stackchk.c, stackchk.h, stacks.c, stime.c, stime.h, strings.c, strings.h, strports.c, struct.c, struct.h, symbols.c, symbols.h, tags.h, threads.c, throw.h, unif.c, variable.c, vectors.c, vectors.h, version.h, vports.c, weaks.c: Update copyright years. Jim Blandy1998-10-191-1/+1
* * (__scm.h, alist.c, eval.c, feature.c, gsubr.c, numbers.c,...options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS -> SCM_CAUTIOUS; this way, 1) there's only one version of each flag to define (we used to have both RECKLESS and SCM_RECKLESS), and 2) if we want to use them in a header file some day, we can. (Thanks to Michael Livshin.) Jim Blandy1998-10-141-1/+1
* * Lots of files: New address for FSF.Jim Blandy1997-05-261-3/+3
* * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,...eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c, ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h, pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c, procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h, strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c, vports.c: Cleaned up use of pairs: Don't make any special assumptions about the internal structure of selectors and mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>), SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc. (Among other things, this change makes it easier to build Guile with certain compilers which have problems with casted lvalues.) Mikael Djurfeldt1996-10-201-4/+4
* * alist.c (scm_sloppy_assq, scm_sloppy_assv, scm_sloppy_assoc):...Don't crash when passed an improper list terminated by a non-immediate value. Jim Blandy1996-10-151-28/+17