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
next prev parent 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).