summaryrefslogtreecommitdiff
path: root/libguile/struct.c
AgeCommit message (Collapse)AuthorFilesLines
2000-11-28* Removed SCM_SYMBOL_UCHARS.Dirk Herrmann1-8/+8
2000-11-22* Deprecated macros SCM_ROCHARS and SCM_ROUCHARS.Dirk Herrmann1-1/+1
2000-11-17* alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,Marius Vollmer1-0/+2
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.
2000-10-25* Some more work to get rid of SCM_LENGTHDirk Herrmann1-3/+3
* Eliminated some cell type bit fiddling * Various minor changes
2000-10-09* Replace a bunch of calls to SCM_LENGTH.Dirk Herrmann1-11/+11
2000-09-26* Replaced a lot of references to SCM_CHARS.Dirk Herrmann1-4/+4
2000-09-22* Fix docstring texinfo warnings.Neil Jerram1-1/+1
2000-09-02* Docstring updates for scm_make_struct and scm_make_vtable_vtable.Neil Jerram1-4/+3
2000-08-27* struct.c (scm_make_struct_layout): Removed reference toMikael Djurfeldt1-4/+4
"read-only string" in comment; Check that argument is a string. (scm_make_vtable_vtable): Check that argument is a string.
2000-08-09* struct.c (scm_make_struct, scm_make_vtable_vtable): StructsMikael Djurfeldt1-2/+63
handles are now double cells; Initialize SCM_STRUCT_GC_CHAIN to 0. (scm_struct_gc_init, scm_free_structs): New GC C hooks. (scm_struct_prehistory): Install them.
2000-08-02*** empty log message ***Mikael Djurfeldt1-2/+2
2000-08-02* struct.c (scm_make_struct_layout, scm_make_struct,Mikael Djurfeldt1-58/+59
scm_make_vtable_vtable): Updated documentation.
2000-07-26* Fixed struct initialization.Dirk Herrmann1-7/+5
2000-05-18* Unified some rest argument checking and handling.Dirk Herrmann1-0/+2
2000-05-02* numbers.c (scm_logtest, scm_division): Reordered dispatch sequence.Dirk Herrmann1-1/+1
* removed calls to deprecated scm_makdbl.
2000-04-21* Makefile.am (DEFS): Added. automake adds -I options to DEFS,Mikael Djurfeldt1-12/+12
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-04-19* struct.c (scm_struct_free_light, scm_struct_free_standard,Mikael Djurfeldt1-3/+3
scm_struct_free_entity): Use `scm_must_free' instead of `free'.
2000-04-17* struct.c, struct.h: Struct data regions (and thus also vtable data regions)Dirk Herrmann1-23/+23
are now C arrays of scm_bits_t elements. * gc.c: Made the mixup of glocs and structs explicit.
2000-04-12The struct data is now an array of scm_bits_t variables.Dirk Herrmann1-36/+24
2000-04-11The struct vtable data is now an array of scm_bits_t variables.Dirk Herrmann1-1/+1
2000-04-03Lots of fixes to make guile (at some time) compile with strict typing.Dirk Herrmann1-6/+6
2000-03-19 * *.[hc]: add Emacs magic at the end of file, to ensure GNUMichael Livshin1-0/+6
indentation style.
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
2000-03-17Removed empty file genio.h and references to it.Dirk Herrmann1-1/+0
2000-03-12*** empty log message ***Mikael Djurfeldt1-12/+12
2000-03-12* stacks.c, stacks.h, struct.c, tags.h, unif.c (scm_bits_t):Mikael Djurfeldt1-2/+2
Renamed from SCMWORD.
2000-03-12* async.c, boolean.h, debug.c, dynl.c, dynwind.c, eval.c, eval.h,Mikael Djurfeldt1-12/+12
feature.h, filesys.h, fluids.h, fports.c, fports.h, gc.c, gc.h, hash.c, keywords.h, macros.c, numbers.c, numbers.h, objects.c, objects.h, options.c, pairs.h, ports.c, ports.h, print.c, procs.h, ramap.c, read.c, smob.c, smob.h, srcprop.h, stacks.c, stacks.h, strports.c, struct.c, struct.h, tag.c, tags.h, throw.c, unif.c, unif.h, variable.h, vectors.h, weaks.c, weaks.h (SCM_SCM, SCM_BITS, SCM_CARBITS): Renamed from SCM_ASSCM, SCM_ASWORD, SCM_CARW).
2000-03-12* alist.c, eval.c, net_db.c, posix.c, print.c, snarf.h, struct.c,Mikael Djurfeldt1-6/+8
tags.h: Fixed copyright notices. * struct.c, coop-threads.c: SCM_ASSCM/ASWORD fixes.
2000-03-09*.[ch]: make a distinction between SCM as a genericGreg J. Badros1-10/+10
name for a Scheme object (now a void*), and SCM as 32 bit word for storing tags and immediates (now a long int). Introduced SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious code in the process: arbiter.c (use macros), unif.c (scm_array_p),
2000-03-03* error.h, error.c: Added `scm_wrong_type_arg_msg' to supportGreg J. Badros1-1/+1
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).
2000-03-02* list.c: Moved append docs to append! Thanks Dirk Hermann. Also,Greg J. Badros1-8/+8
added append docs from R4RS. * strings.c: Docstring typo fix, + eliminate unneeded IMP tests. Thanks Dirk Hermann! * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann! * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout. Drop use of SCM_P for function prototypes... assume an ANSI C compiler. Thanks Dirk Hermann!
2000-01-18* alist.c, chars.c, debug.c, dynl.c, dynwind.c, error.c, eval.c,Mikael Djurfeldt1-102/+85
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.
2000-01-05* *.[ch]: Whitespace changes -- added space after SCM_VALIDATE_*Greg J. Badros1-14/+14
macros and SCM_DEFINE macros to match GNU coding standards.
2000-01-05*.[ch]: Replace GUILE_PROC w/ SCM_DEFINE.Greg J. Badros1-11/+11
2000-01-05* *.[ch]: Replace SCM_VALIDATE_INT w/ SCM_VALIDATE_INUM forGreg J. Badros1-4/+4
better consistency with the names of other SCM_VALIDATE_ macros and better conformance to guile naming policy.
2000-01-05* guile-snarf.awk.in: Do argument/number mismatch checking andGreg J. Badros1-2/+2
print warnings in an Emacs compile-mode parseable format. * struct.c: Use SCM_ASSERT_RANGE instead of SCM_ASSERT w/ SCM_OUTOFRANGE as 3rd argument. * random.c: Fix argument/number mismatch (that I introduced :-( ). * __scm.h: Do not #define SCM_ARG* when snarfing; lets us distinguish between 1 and SCM_ARG1 when snarfing as only the former (using the number) requires the argument to match the formal in the current argument snarfing check. * ramap.c: Remove extraneous #undef FUNC_NAME.
1999-12-16* coop-threads.c: Remove K&R function headers.Greg J. Badros1-1/+1
* 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.
1999-12-13* Makefile.am: Fix ETAGS_ARGS to recognize GUILE_PROC,Greg J. Badros1-7/+98
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.
1999-12-13Remove leading whitespace before empty docstrings.Greg J. Badros1-3/+3
1999-12-12* *.c: Pervasive software-engineering-motivated rewrite ofGreg J. Badros1-123/+97
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.
1999-09-12* __scm.h, backtrace.c, backtrace.h, debug.c, debug.h, dynl-dld.c,Mikael Djurfeldt1-1/+1
dynwind.c, dynwind.h, eval.h, evalext.c, evalext.h, feature.c, feature.h, hashtab.c, hashtab.h, objects.c, objects.h, print.c, procs.c, procs.h, smob.c, smob.h, srcprop.c, strorder.c, struct.c, struct.h: Updated copyrigth notices.
1999-08-30* struct.c, struct.h (scm_struct_free_0, scm_struct_free_light,Mikael Djurfeldt1-4/+4
scm_struct_free_standard, scm_struct_free_entity): Declared to return scm_sizet instead of size_t.
1999-08-29* struct.c, struct.h: Replace 4 procedure slots with one.Mikael Djurfeldt1-4/+1
(scm_struct_i_procedure): Replaces scm_struct_i_procedure.
1999-07-29* struct.c (scm_print_struct): Use vtable name.Mikael Djurfeldt1-2/+9
1999-06-23* struct.c, struct.h:Mikael Djurfeldt1-14/+42
(scm_struct_i_free): New hidden struct slot. Holds destructor for instances to this vtable. (scm_struct_free_0): New destructor: Doesn't deallocate data. (scm_struct_free_light): New destructor: Deallocates a light struct (i.e. a struct without hidden slots). (scm_struct_free_standard): New destructor: Deallocates standard structs. (scm_struct_free_entity): New destructor: Deallocates entity structs. (SCM_SET_VTABLE_DESTRUCTOR): New macro. Changes to hidden slots: (scm_struct_i_size): scm_struct_i_flags now shares space with scm_struct_i_size which holds the size of light structs. (scm_struct_i_n_words): This slot has changed meaning. Previously it included hidden slots. Now it indicates visible slots. (scm_alloc_struct): Clear flags. (SCM_STRUCTF_MASK): 4 new flag positions added => 12 bits. (struct_num, scm_struct_i_tag): Removed. (scm_struct_vtable_tag): Base tag on the pointer to mallocated memory. (scm_struct_ihashq): Base hash value on pointer to struct handle.
1999-03-14* struct.c: #include "alist.h", "weaks.h", "hashtab.h";Mikael Djurfeldt1-5/+64
(scm_struct_table): Weak key table with auxilliary information for struct types. Currently used for names and wrapper classes. (scm_struct_ihashq): Hash function for structs. (scm_struct_create_handle): Get/create entry in scm_struct_table. (scm_struct_vtable_name, scm_set_struct_vtable_name_x): Procedures for accessing names of vtables. The record implementation in boot-9.scm currently uses the setter to record the name of record types. When the object system is initialized, it can use this information to create wrapper classes with suitable names. (scm_init_struct): Allocate scm_struct_table. (scm_alloc_struct): Don't initialize scm_struct_i_tag here. (struct tags are a finite resource and we might want to restrict the use of tags to vtables only. E.g., Goops only uses tags for classes.) (scm_make_struct): Use scm_struct_entity_n_extra_words instead of magic number 5. (scm_struct_vtable_tag): Use scm_struct_i_tag instead of magic number -1.
1999-03-11* struct.c (scm_make_struct): Allocate one word more forMikael Djurfeldt1-1/+2
entities and initialize the new slot.
1998-12-16* struct.c (scm_make_struct): Allocate "invisible" room forMikael Djurfeldt1-20/+29
procedures if SCM_STRUCTF_ENTITY is set in vtable. * struct.c, struct.h (scm_alloc_struct): Renamed from alloc_struct and made global. (scm_struct_init): Renamed from init_struct and made global.
1998-10-19* __scm.h, alist.c, async.c, async.h, backtrace.h, chars.c,Jim Blandy1-1/+1
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.