guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Recent guile-user related reversion in boot-9.scm


From: Marius Vollmer
Subject: Re: Recent guile-user related reversion in boot-9.scm
Date: 07 Jun 2001 02:47:06 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.0.102

Rob Browning <address@hidden> writes:

>   1) Should top-repl be an exported function?  i.e. is it intended for
>      general use?

Phfrr, don't know.  I'm using it in my simulator, which has its own
way to set up the environment for the user, passing the buck to
top-repl in the end.  So I would say, yes, there should be a
advertised way to start the standard repl, but maybe it should not be
top-repl but rather something more consciously designed.  For example
(related to something you say in another post), there should be a way
to not switch to (guile-user) for the repl, etc.

>   2) What things do you already have in mind that shouldn't be in the
>      "script environment" guile-user vs the "interactive environment"
>      guile-user?  (ice-9 threads) is one.  What else?

I'd say, nothing should be in the script environment except (guile),
which is hard to avoid anyway.  In the interactive encironment, I
don't know... probably what is currently in there: regex, threads,
session, debug, autoloaded debugger.

However, I'm also growing sympathetic towards meta commands in the
repl.  I don't know exactly what I was opposed to in the past, but now
I can see the value of such commands, like being able to type

    guile> ,(apropos "string")

The primary feature (for me, currently) is that these commands are
independent of the current module.  That is, "apropos" is available
even if the visited module hasn't imported (ice-9 session).

Maybe we should replace the `convenience modules' with a `meta module'
that is used by the repl in a funny way: Whenever the repl reads a
sexp starting with unquote, it would evaluate the car of the subform
in the `meta module', evaluate the rest in the `current module' and
then apply the results accordingly.  There might be specially
registered abbreviations so that

    guile> ,a "string"

is equivalent to

    guile> ,(apropos "string")

(and

    ,v MOD   ===  ,(define-module MOD)
    ,u MOD   ===  ,(use-modules MOD)
    etc)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]