1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

add %site-ccache-dir

* libguile/load.h:
* libguile/load.c (scm_sys_site_ccache_dir): New procedure.

* doc/ref/scheme-using.texi (Installing Site Packages):
* doc/ref/api-options.texi (Build Config): Add docs.

Fixes bug 10326.
This commit is contained in:
Jason Earl 2013-03-10 23:20:22 +01:00 committed by Andy Wingo
parent a4b4fbbdaa
commit 988ca6b212
4 changed files with 28 additions and 6 deletions

View file

@ -96,6 +96,13 @@ your site should be installed. On Unix-like systems, this is usually
@file{/usr/local/share/guile/site} or @file{/usr/share/guile/site}.
@end deffn
@deffn {Scheme Procedure} %site-ccache-dir
@deffnx {C Function} scm_sys_site_ccache_dir ()
Return the directory where users should install compiled @code{.go}
files for use with this version of Guile. Might look something like
@file{/usr/lib/guile/@value{EFFECTIVE-VERSION}/site-ccache}.
@end deffn
@defvar %guile-build-info
Alist of information collected during the building of a particular
Guile. Entries can be grouped into one of several categories:

View file

@ -752,6 +752,7 @@ list}, or simply @code{guild}.
@cindex site path
@cindex load path
@findex %site-dir
@findex %site-ccache-dir
At some point, you will probably want to share your code with other
people. To do so effectively, it is important to follow a set of common
@ -783,11 +784,11 @@ find them.
As with Scheme files, Guile searches a path to find compiled @code{.go}
files, the @code{%load-compiled-path}. By default, this path has two
entries: a path for Guile's files, and a path for site packages. You
should install your @code{.go} files into the latter. Currently there
is no procedure to get at this path, which is probably a bug. As in the
previous example, if Guile @value{EFFECTIVE-VERSION} is installed on
your system in @code{/usr/}, then the place to put compiled files for
site packages will be
should install your @code{.go} files into the latter directory, whose
value is returned by invoking the @code{%site-ccache-dir} procedure. As
in the previous example, if Guile @value{EFFECTIVE-VERSION} is installed
on your system in @code{/usr/}, then @code{(%site-ccache-dir)} site
packages will be
@code{/usr/lib/guile/@value{EFFECTIVE-VERSION}/site-ccache}.
Note that a @code{.go} file will only be loaded in preference to a

View file

@ -198,6 +198,19 @@ SCM_DEFINE (scm_sys_global_site_dir, "%global-site-dir", 0,0,0,
#undef FUNC_NAME
#endif /* SCM_GLOBAL_SITE_DIR */
#ifdef SCM_SITE_CCACHE_DIR
SCM_DEFINE (scm_sys_site_ccache_dir, "%site-ccache-dir", 0,0,0,
(),
"Return the directory where users should install compiled\n"
"@code{.go} files for use with this version of Guile.\n\n"
"E.g., may return \"/usr/lib/guile/" SCM_EFFECTIVE_VERSION "/site-ccache\".")
#define FUNC_NAME s_scm_sys_site_ccache_dir
{
return scm_from_locale_string (SCM_SITE_CCACHE_DIR);
}
#undef FUNC_NAME
#endif /* SCM_SITE_CCACHE_DIR */
/* Initializing the load path, and searching it. */

View file

@ -3,7 +3,7 @@
#ifndef SCM_LOAD_H
#define SCM_LOAD_H
/* Copyright (C) 1995,1996,1998,2000,2001, 2006, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
/* Copyright (C) 1995,1996,1998,2000,2001, 2006, 2008, 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@ -34,6 +34,7 @@ SCM_API SCM scm_sys_package_data_dir (void);
SCM_API SCM scm_sys_library_dir (void);
SCM_API SCM scm_sys_site_dir (void);
SCM_API SCM scm_sys_global_site_dir (void);
SCM_API SCM scm_sys_site_ccache_dir (void);
SCM_API SCM scm_search_path (SCM path, SCM filename, SCM rest);
SCM_API SCM scm_sys_search_load_path (SCM filename);
SCM_API SCM scm_primitive_load_path (SCM filename_and_exception_on_not_found);