unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: prj@po.cwru.edu (Paul Jarc)
Subject: Re: loading a module via an absolute path
Date: Mon, 07 Oct 2002 13:09:21 -0400	[thread overview]
Message-ID: <m3hefy41m0.fsf@multivac.cwru.edu> (raw)
In-Reply-To: <87vg4gl4g3.fsf@raven.i.defaultvalue.org> (Rob Browning's message of "Sat, 05 Oct 2002 20:51:56 -0500")

Rob Browning <rlb@defaultvalue.org> wrote:
> prj@po.cwru.edu (Paul Jarc) writes:
>> - The manual says (load) will evaluate the file's contents in the
>>   top-level environment.  Is that still true inside eval, or will it
>>   load into the specified environment?
>> - What's the difference between load and primitive-load?
>
> I think that's roughly the difference.  If I recall right,
> primitive-load doesn't alter the current-environment and doesn't
> restore it after the load, but Marius can probably clarify if I'm
> mistaken.

If that's right, then the documentation needs to be fixed.  1.6.0:
 - Scheme Procedure: load filename
     Load FILENAME and evaluate its contents in the top-level
     environment.  The load paths are not searched.  If the variable
     `%load-hook' is defined, it should be bound to a procedure that
     will be called before any code is loaded.  See documentation for
     `%load-hook' later in this section.
...
 - Scheme Procedure: primitive-load filename
 - C Function: scm_primitive_load (filename)
     Load the file named FILENAME and evaluate its contents in the
     top-level environment. The load paths are not searched; FILENAME
     must either be a full pathname or be a pathname relative to the
     current directory.  If the  variable `%load-hook' is defined, it
     should be bound to a procedure that will be called before any code
     is loaded.  See the documentation for `%load-hook' later in this
     section.

This should also specify what load does with a relative path.  It's
easy enough to guess, but the fact that it's specified for
primitive-load and not for load introduces doubt.

>> - Is there a way to load from an already-open port rather than a
>> filename?  Could I just loop with read and eval?  Would that handle,
>> e.g., read-hash-extend properly?  I don't see any reason it
>> wouldn't.
>
> I think that should work.

Ok, I'll probably do that then.

>> - How do I create a new environment?  The documented procedures don't
>>   seem to exist:
>
> How about this:
>
>   $ guile
>   guile> (use-modules (ice-9 safe))
>   guile> (define msm (make-safe-module))
...
>   guile> (use-modules (ice-9 safe-r5rs))
>   guile> (define msm (null-environment 5))

Thanks, that seems to work.  The manual doesn't mention the need for
(ice-9 safe-r5rs) in the Environments node, and make-safe-module is
undocumented.

>> guile> (assv-ref %guile-build-info 'guileversion)
>> "1.6.0"
>
> or perhaps just (version) :>

Yeah, that too.


paul


_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user


  reply	other threads:[~2002-10-07 17:09 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-04 22:41 loading a module via an absolute path Paul Jarc
2002-10-06  1:51 ` Rob Browning
2002-10-07 17:09   ` Paul Jarc [this message]
2002-10-07 20:05   ` Paul Jarc
2002-10-18 18:21   ` Paul Jarc
2002-10-18 22:26     ` Marius Vollmer
2002-10-18 23:26       ` Paul Jarc
2002-10-19 10:44         ` Marius Vollmer
2002-10-19 20:42           ` Paul Jarc
2002-10-20 16:19             ` Marius Vollmer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3hefy41m0.fsf@multivac.cwru.edu \
    --to=prj@po.cwru.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).