2013/5/8 Thien-Thi Nguyen <t...@gnu.org>

> () Panicz Maciej Godek <godek.mac...@gmail.com>
> () Wed, 8 May 2013 00:50:32 +0200
>
>    both guile-sdl and guile-figl copy the scm modules to
>    $(prefix)/share/guile/site..., but apparently they both do that in a
>    different way (which means there's no standard way), and none of them
>    allows to 'fine tune' that directory with an optarg to ./configure
>
> I like how guile-ncurses does it.  Maybe Guile-BAUX (and SNUGGLE[0],
> which i forgot to mention previously) will follow its lead.
>
>
I think that it might be misleading. I see that autotools are already
complicated, and there's no need to complicate them more, especially if
guile is an official extension language of the GNU project.
When you ./configure --help, you get a section "Fine tuning of the
installation directories", where you get such directives, as --bindir,
--datadir and so on. However, if you want to install the guile modules, you
need to use --with-guilesitedir, which is documented in 'Optional Packages'
section, as if the installation directory was a package.
The Right Thing would be to place --guilesitedir flag in the former
section, although I see that there's currently no official way to do it.
(And I see that there's been a few discussions about that, like this one:
http://lists.gnu.org/archive/html/autoconf/2006-09/msg00009.html, which
says that it's allegedly incompatible with GNU Coding Standards, or that
one:
http://stackoverflow.com/questions/3538705/adding-a-custom-installation-directory-option-to-autoconf-generated-configure-sc.
Terribly frustrating!)

    And the whole thing makes me wonder about the status of guile
>    documentation.
>
> Back in time, Guile inherited the documentation maintenance mindset of
> Emacs, i.e., "docstrings are for interactive (repl) consumption, full
> descriptions belong in the manual".  This makes for a lot of work, which
> Emacs can easily demand of its large hacker population, but Guile cannot
> (its hackers being relatively few and somewhat prone to solipsism).  So
> naturally, as w/ any situation where todo exceeds doers, some stuff does
> not get done or gets done w/ less attention than deserved.
>
>
The actual state of the documentation is a secondary issue. I find the
question whether we have a framework that allows to extend documentation
easily somewhat more important.

At present, there is a protocol between the repl and the database of
> docstrings (guile-procedures.txt) only, and only for libguile(?).  And
> those laboriously maintained docstrings do not make it into the manual,
> either, by dint of the mindset.  If that were to change, i think it
> would be a SMOP to arrange to significantly improve the status of Guile
> documentation.  (Maybe that has already happened, but i missed it?)
>

Even not minding the manual (although it would be best if the maintainer
could decide whether or not she wishes to export the docstring to the
manual), as I understand -- there is no straigtforward C interface to
provide docstrings to the functions exported by external modules?
The other problem is that with the introduction of guile-vm, the builtin
procedures' argument names disappeared, while they're quite helpful when
used with geiser's autodoc mode.

Personally, i think the ideal model is to define a protocol between the
> repl and the manual-viewing program, such that full documentation is the
> only thing that needs to be maintained.  IMHO, the best layout for that
> is intro, concept and expository text in .texi, and proc/var/etc details
> in .h/.c/.scm comments.  That's what Guile-BAUX supports, no surpise.
>
>
I agree that it's a fairly clean approach, and I will try to employ it ASAP

   The guide is really great (although sometimes it remains silent about
>    certain features that can be found in header files), but I've
>    observed that doc-strings for built-in functions are no longer
>    available, even though they are specified.
>
> Could you give some examples?
>
>
I see now that I might have gotten something wrong, but e.g. in
libguile/alst.c there was a definition:
SCM_DEFINE (scm_acons, "acons", 3, 0, 0,
           (SCM key, SCM value, SCM alist),
            "Add a new key-value pair to @var{alist}.  A new pair is\n"
            "created whose car is @var{key} and whose cdr is @var{value},
and the\n"
            "pair is consed onto @var{alist}, and the new list is returned.
 This\n"
            "function is @emph{not} destructive; @var{alist} is not
modified.")
#define FUNC_NAME s_scm_acons
{
  return scm_cons (scm_cons (key, value), alist);
}
#undef FUNC_NAME

and (procedure-documentation acons) returns #f. Now I see that it's meant
rather to generate the manual than to provide a docstring.

   And besides, how do the aforementioned modules (those are, as I
>    reckon, tsar and c-tsar) refer to guile-snarf-docs that is shipped
>    with guile source?
>
> They don't.  The script guile-snarf-docs is not installed, and thus not
> available to third parties (like SLAYER or Guile-SDL).  But even if it
> were, its method has changed over the years; it might give bad results
> if used w/ a different Guile version than its original distribution.
> Believe me, i [pw]ondered the same thing.  That's what led to Guile
> 1.4.x hacking and doc fu[1], and eventually, Guile-BAUX (and SNUGGLE).
>

 I see you've done a lot of good things :)
I'm grateful!

Reply via email to