unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API
@ 2011-12-19 15:00 Ian Hulin
  2011-12-23 23:46 ` Ian Price
  2012-01-27 12:20 ` Andy Wingo
  0 siblings, 2 replies; 5+ messages in thread
From: Ian Hulin @ 2011-12-19 15:00 UTC (permalink / raw)
  To: 10326

Section 6.17.6 of the manual could do with a sections for %load-path
and %load-compiled-path.

e.g.
— Variable: %load-path

    The list of directories which will currently be searched by
load-from-path, primitive-load-path and %search-load-path to locate a
scheme file.

- Variable: %load-compiled-path

    The list of directories which will currently be searched by
load-compiled-from-path and %search-load-compiled-path to locate a
compiled scheme file.


Also, Guile really needs to provide a %search-load-compiled-path and a
load-compiled-from-path, it would have been useful in LilyPond code, and
Manual Section 4.7 (discussing site locations says)
"As with Scheme files, Guile searches a path to find compiled .go
files, the %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 .go files into the latter. Currently there is no
procedure to get at this path, which is probably a bug."


— Scheme Procedure: %search-load-compiled-path filename
— C Function: scm_sys_search_load_compiled_path (filename)

    Search %load-compiled-path for the file named filename, which must
be readable by the current user. If filename is found in the list of
paths to search or is an absolute pathname, return its full pathname.
Otherwise, return #f.

— Scheme Procedure: load-compiled-from-path filename

    Similar to load-compiled, but searches for filename in the
compiled load paths.








^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API
  2011-12-19 15:00 bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API Ian Hulin
@ 2011-12-23 23:46 ` Ian Price
  2011-12-24 12:22   ` Ian Hulin
  2012-01-27 12:20 ` Andy Wingo
  1 sibling, 1 reply; 5+ messages in thread
From: Ian Price @ 2011-12-23 23:46 UTC (permalink / raw)
  To: 10326

Ian Hulin <ian@hulin.org.uk> writes:

> Section 6.17.6 of the manual could do with a sections for %load-path
> and %load-compiled-path.
>
> e.g.
> — Variable: %load-path
>
>     The list of directories which will currently be searched by
> load-from-path, primitive-load-path and %search-load-path to locate a
> scheme file.
>
> - Variable: %load-compiled-path
>
>     The list of directories which will currently be searched by
> load-compiled-from-path and %search-load-compiled-path to locate a
> compiled scheme file.

%load-path is already documented in 2.0, in section 6.22.1, 6.17.6 may
be a better place for it though, as that is where
e.g. %search-load-path, %load-hook etc. are.

%load-compiled-path seems to be only indirectly referred to in the
%documentation for GUILE_LOAD_COMPILED_PATH and compiled-file-name.

> Also, Guile really needs to provide a %search-load-compiled-path and a
> load-compiled-from-path, it would have been useful in LilyPond code, and
> Manual Section 4.7 (discussing site locations says)

I don't see a %search-load-compiled-path or load-compiled-from-path in
guile 2.0's stable branch. Where these removed? Or have I missed them?

> "As with Scheme files, Guile searches a path to find compiled .go
> files, the %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 .go files into the latter. Currently there is no
> procedure to get at this path, which is probably a bug."
>
>
> — Scheme Procedure: %search-load-compiled-path filename
> — C Function: scm_sys_search_load_compiled_path (filename)
>
>     Search %load-compiled-path for the file named filename, which must
> be readable by the current user. If filename is found in the list of
> paths to search or is an absolute pathname, return its full pathname.
> Otherwise, return #f.

Unless you meant %search-load-compiled-path, this sounds similar to the
documented procedure 'compiled-file-name'
>
> — Scheme Procedure: load-compiled-from-path filename
>
>     Similar to load-compiled, but searches for filename in the
> compiled load paths.
If the above is correct, this is just
(compose load-compiled compiled-file-name), yes?
Might be useful for symmetry with 'load-from-path'

-- 
Ian Price

"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API
  2011-12-23 23:46 ` Ian Price
@ 2011-12-24 12:22   ` Ian Hulin
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Hulin @ 2011-12-24 12:22 UTC (permalink / raw)
  To: Ian Price; +Cc: 10326

Hi Ian,
On 23/12/11 23:46, Ian Price wrote:
> Ian Hulin <ian@hulin.org.uk> writes:
> 
>> Section 6.17.6 of the manual could do with a sections for
>> %load-path and %load-compiled-path.
>> 
>> e.g. — Variable: %load-path
>> 
>> The list of directories which will currently be searched by 
>> load-from-path, primitive-load-path and %search-load-path to
>> locate a scheme file.
>> 
>> - Variable: %load-compiled-path
>> 
>> The list of directories which will currently be searched by 
>> load-compiled-from-path and %search-load-compiled-path to locate
>> a compiled scheme file.
> 
> %load-path is already documented in 2.0, in section 6.22.1, 6.17.6
> may be a better place for it though, as that is where e.g.
> %search-load-path, %load-hook etc. are.
> 
Or a cross-ref,or move it from 6.22 and put the cross-ref in here,
depending on Guile's documentation policies.
> %load-compiled-path seems to be only indirectly referred to in the 
> %documentation for GUILE_LOAD_COMPILED_PATH and
> compiled-file-name.
> 
>> Also, Guile really needs to provide a %search-load-compiled-path
>> and a load-compiled-from-path, it would have been useful in
>> LilyPond code, and Manual Section 4.7 (discussing site locations
>> says)
> 
> I don't see a %search-load-compiled-path or load-compiled-from-path
> in guile 2.0's stable branch. Where these removed? Or have I missed
> them?
> 
I don't think they were ever implemented.
>> "As with Scheme files, Guile searches a path to find compiled
>> .go files, the %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 .go files into the latter. Currently
>> there is no procedure to get at this path, which is probably a
>> bug."
>> 
>> 
>> — Scheme Procedure: %search-load-compiled-path filename — C
>> Function: scm_sys_search_load_compiled_path (filename)
>> 
>> Search %load-compiled-path for the file named filename, which
>> must be readable by the current user. If filename is found in the
>> list of paths to search or is an absolute pathname, return its
>> full pathname. Otherwise, return #f.
> 
> Unless you meant %search-load-compiled-path, this sounds similar to
> the documented procedure 'compiled-file-name'
No: compiled-file-name does more and different things which are
intimately linked in to --auto-compile and its related cache.

If you're compiling things to locations outside of this cache (as we
need to do for LilyPond) you need to set a directory as an entry in
%load-compiled-path and pass this explicitly to compile-file (guild
compile if your doing this from within a build environment).

We then need to have custom code to load the compiled files during
startup. This is because the built-in things in load-from-path et al.
rely on compiled-file-name which don't do the right thing if you're
compiling to a location outside the --auto-compile cache.

So. . . if we want to load our compiled scheme files, possibly
produced from guild compile in a build, outside of the --auto-compile
cache, we have to use load-compiled, which explicitly says "Load the
compiled file named /filename/.  The load paths are not searched."

>> 
>> — Scheme Procedure: load-compiled-from-path filename
>> 
>> Similar to load-compiled, but searches for filename in the 
>> compiled load paths.
> If the above is correct, this is just (compose load-compiled
> compiled-file-name), yes?
No.  See above
> Might be useful for symmetry with 'load-from-path'
> 
Yes.

Cheers,
Ian Hulin





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API
  2011-12-19 15:00 bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API Ian Hulin
  2011-12-23 23:46 ` Ian Price
@ 2012-01-27 12:20 ` Andy Wingo
  2013-03-10 22:22   ` Andy Wingo
  1 sibling, 1 reply; 5+ messages in thread
From: Andy Wingo @ 2012-01-27 12:20 UTC (permalink / raw)
  To: Ian Hulin; +Cc: 10326

Hi Ian,

Thank you for the bug report.  As a result of this report we have added
a fair amount of documentation and reorganized other things.

In particular, see the new sections:

  Modules and the File System
  Installing Site Packages
  Load Paths

On Mon 19 Dec 2011 16:00, Ian Hulin <ian@hulin.org.uk> writes:

> - Variable: %load-compiled-path
>
>     The list of directories which will currently be searched by
> load-compiled-from-path and %search-load-compiled-path to locate a
> compiled scheme file.

There is no load-compiled-from-path or %search-load-compiled-path.
There is, however, search-path and %load-compiled-path.

Guile doesn't simply look for compiled files: it looks for compiled
files that correspond to source files.  They could be in the
load-compiled path or in the fallback path.  The search rules are
different here -- see "Load Paths" and "Compilation", for details.
Auto-compilation only happens with the fallback path.

Do you still think that load-compiled-from-path would be useful to you?
If everything is set up correctly, load-from-path should be sufficient,
as it would find the corresponding compiled file.

> "As with Scheme files, Guile searches a path to find compiled .go
> files, the %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 .go files into the latter. Currently there is no
> procedure to get at this path, which is probably a bug."

I'll see about fixing this.

Andy
-- 
http://wingolog.org/





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API
  2012-01-27 12:20 ` Andy Wingo
@ 2013-03-10 22:22   ` Andy Wingo
  0 siblings, 0 replies; 5+ messages in thread
From: Andy Wingo @ 2013-03-10 22:22 UTC (permalink / raw)
  To: Ian Hulin; +Cc: 10326-done

On Fri 27 Jan 2012 13:20, Andy Wingo <wingo@pobox.com> writes:

>> "As with Scheme files, Guile searches a path to find compiled .go
>> files, the %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 .go files into the latter. Currently there is no
>> procedure to get at this path, which is probably a bug."
>
> I'll see about fixing this.

Added %site-ccache-dir, and updated docs.

Andy
-- 
http://wingolog.org/





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-03-10 22:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-19 15:00 bug#10326: Need to document %load-path, %load-compiled-path, and add %search-load-compiled-path and load-compiled-from-path to API Ian Hulin
2011-12-23 23:46 ` Ian Price
2011-12-24 12:22   ` Ian Hulin
2012-01-27 12:20 ` Andy Wingo
2013-03-10 22:22   ` Andy Wingo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).