* 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.
backward-compatibility of packages that use Guile. Internally
Guile should not use them, though. (Maybe enforce this with a new
-DBUILDING_GUILE compile-time flag?).
set_print_params_x.
* guile-doc-snarf.in: Use guile-snarf.awk, not
guile-doc-snarf.awk. Pass the basename of $filename
* load.h: Added prototypes for scm_sys_library_dir,
scm_sys_site_dir.
* load.c (scm_sys_library_dir, scm_sys_site_dir): Added these
functions, and took out the old scm_library_dir, scm_site_dir,
scm_pkgdata_dir. Now the primitives are %package-data-dir
(already existed), %library-dir, and %site-dir.
* debug.c: Use SCM_MISC_ERROR when possible instead of using
s_scm_* in a scm_misc_error() call.
* Makefile.am: Use guile-snarf.awk, not guile-doc-snarf.awk. Make
using guile-doc-snarf send stdout to $@ to create the .x file like
guile-snarf does.
* guile-snarf.awk.in: Added.
* guile-doc-snarf.awk.in: Added.
* ports.c (s_scm_pt_member): Fixed validation.
* guile-doc-snarf.in (filename): Use basename in order to strip
away path.
* debug.c (scm_make_iloc, s_scm_proc_to_mem): Added missing
semicolon.
(scm_memcons, scm_memcons, mem_to_proc): Renamed function name
strings to new form.
* backtrace.c (set_print_params_x): Fixed GUILE_PROC macro.
* tags.h (SCM_UNBOUND): New iflag which is needed for some time to
mark the unboundness of a GOOPS slot. (Added now in order to
correct a oversight. Should probably be removed again and
replaced with SCM_UNDEFINED when the corresponding code in GOOPS
is rewritten.)
* print.c (scm_isymnames): Added printed representation for
SCM_UNBOUND.
* eval.c (SCM_CEVAL): Bugfix: Added check for unbound slot in
SCM_IM_SLOT_REF.
gets stuck directly in the files instead of redirected from
stdout.
* guile-doc-snarf.awk: Escape a literal ) -- thanks Ryan
Yeske. Use print instead of printf to prime the .x file since
AIX's cpp has problems with #include-ing empty files (according to
the old guile-snarf.in file).
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.
SCM_VALIDATE macros; the SCM_VALIDATE macros should be checked
for argument mismatches (along with the FUNC_NAME macro checking)
by a static tool that runs directly over the .c files.
* snarf.h: Handle SCM_REGISTER_PROC better when snarfing. The
docstring is still missing from the .doc file; it just gives the
name of the C function that gets called instead.
* guile-doc-snarf.awk: Be sure to touch the output files to help
make out. Also handle SCM_REGISTER_PROC better, and change the
output format slightly.
guile-doc-snarf script.
* guile-doc-snarf.in, guile-doc-snarf.awk: New, simple doc
extraction system. Builds foo.x, foo.doc from foo.{c,cc}.
There are dependencies between these files and snarf.h. This
replaces guile-snarf.
* guile-snarf.in: Drop everything after $$$ for the new snarf.h
macros. This is obsoleted by guile-doc-snarf, but kept here for
now for good measure.
* Makefile.am: Added guile-doc-snarf, guile-doc-snarf.awk to
bin_SCRIPTS. Added .doc to SUFFIXES, and give rule for creating
.doc files to use guile-doc-snarf. Update the rule for creating
.x files to use guile-doc-snarf.
prototypes.
* eval.c: Make scm_m_mody's 3rd argument be a const char *, not a
char *. ANSI prototypes caught this.
* strorder.c: Use GUILE_PROC1 for the couple SCM_PROC1 expansions
that I missed.
* scm_validate.h: Use SCM_BOOLP for validating bools. Do not
expand macros if SCM_DOCSTRING_SNARF.
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.