From: Andreas Rottmann <a.rottmann@gmx.at>
Cc: gnu-arch-users@gnu.org, guile-user@gnu.org, ttn@glug.org,
guile-devel@gnu.org
Subject: Re: ITLA
Date: Mon, 01 Mar 2004 20:14:29 +0100 [thread overview]
Message-ID: <87r7wc4bxm.fsf@alice.rotty.yi.org> (raw)
In-Reply-To: <200403011904.LAA20046@morrowfield.regexps.com> (Tom Lord's message of "Mon, 1 Mar 2004 11:04:02 -0800 (PST)")
Tom Lord <lord@emf.net> writes:
> > I'm not totally clear what you mean here, and how that relates to an
> > Arch<->CVS gateway. Anyway, you might be interested in my ITLA
> > thingy[0].
>
> You appear to have left out the footnote.
>
Indeed: [0] http://stud3.tuwien.ac.at/~e9926584/ITLA
> I'd like to point out some info about the ITLA idea. ITLA is not, at
> it's core, tla specific -- it's a generic engine for making
> interactive Scheme programs, both CLI and GUI.
>
> See:
>
> http://mail.gnu.org/archive/html/gnu-arch-users/2003-11/msg00291.html
>
I obviously missed the initial discussion. Big thanks for pointing
this out.
> The ITLA framework is one of the target applications for Pika Scheme
> but it will be a long time before Pika is ready to start implementing
> it. There's no reason not to start on the framework earlier, using
> Guile (and many good reasons to do so).
>
I'll quote parts of your initial ITLA mail here, adding my view how
things would/could look like when *I*'d do this in Guile, building
upon/integrating my ITLA stuff.
,----
| Each interactive command will be defined by an ordinary Scheme
| procedure supplemented with a _declaration_. The declaration lists:
|
| ~ the name of the command
| ~ a documentation string for the command
| ~ a list of options and parameters to the command, each
| specified by:
|
| + a parameter name
|
| + a "type declaration" (e.g., "string", or "new-archive-name",
| or "existing-archive-name", or "archive-name".)
|
| + a description of how it is parsed from options and
| arguments provided on command lines
|
| + a default value
|
| + an optional prompt string
|
| + an optional help string for the parameter
|
| ~ a "type declaration" for the output of the command
|
I'd make the declaration result in registering a GOOPS class instance
somewhere. Type declarations would map to classes directly, along with
generics that deal with I/O, completion, etc.
| The "main loop" of itla reads partially specified command lines,
| looks up the interactive command, parses any options and arguments
| already provided, and enters a generic "argument editor" that
| prompts for the remaining arguments
|
| Once the parameter editor is done collecting parameters, the
| procedure that defines the command is called. Typically, it
| works by running tla as a subprocess.
|
This is the part on which "my" ITLA focuses currently: Offering a
GOOPS-based scripting interface to tla.
| It can also recursively
| invoke the command loop to run particular commands (e.g., import
| might recursively call "prepare-tree" and/or "make-archive").
|
Right now, I use the Guile repl (as can be seen from the screen-shot
at [0]), which is of course not the most user-friendly thing to do
:-).
| The rationale for this approach is four-fold:
|
[sip]
Full ACK here.
| * Usefulness for GUIs
|
| There is nothing that says that the parameter editor and output
| handler have to be TTY programs -- nothing that says they have
| to do their work by printing prompts and reading keyboard input.
|
| For example, a GUI might include an alternative form of the
| parameter editor that knows how to translate _any_ command
| declaration into a "form".
|
| That approach can make writing a complete GUI a much smaller task
| and effort can focus on generic parts that help the entire
| interface (such an an "archive name selector").
|
| It also means that a GUI can automatically just "work" as new
| commands are added to itla. For example, after I load a set
| of extensions defining commands specific to the tla project,
| these can automatically appear on a menu or toolbar and immediately
| have a GUI interface.
`----
I'd use Guile-GObject[1] here.
[1] http://www.gnu.org/software/guile-gtk/docs/
Cheers, Andy
--
Andreas Rottmann | Rotty@ICQ | 118634484@ICQ | a.rottmann@gmx.at
http://yi.org/rotty | GnuPG Key: http://yi.org/rotty/gpg.asc
Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62
Latein ist das humanoide Äquivalent zu Fortran.
-- Alexander Bartolich in at.linux
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
next prev parent reply other threads:[~2004-03-01 19:14 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-01 3:32 Extended -e syntax Clinton Ebadi
2004-03-01 5:04 ` Andreas Rottmann
[not found] ` <E1AxlJY-0002cb-00@surf.glug.org>
2004-03-01 14:27 ` Arch and Guile Andreas Rottmann
2004-03-01 19:04 ` ITLA (was Re: Arch and Guile) Tom Lord
2004-03-01 19:14 ` Andreas Rottmann [this message]
2004-03-01 21:55 ` ITLA Tom Lord
2004-03-02 0:11 ` ITLA Andreas Rottmann
2004-03-02 2:50 ` ITLA Tom Lord
2004-03-02 14:04 ` ITLA Andreas Rottmann
2004-03-02 3:26 ` ITLA Miles Bader
2004-03-03 11:22 ` ITLA Neil Jerram
2004-03-03 11:55 ` ITLA Andreas Rottmann
2004-03-06 15:47 ` ttn's build system [was: Extended -e syntax] Andreas Rottmann
[not found] ` <E1AziNk-0007mW-00@surf.glug.org>
2004-03-06 20:39 ` ttn's build system Andreas Rottmann
2004-03-10 18:59 ` Andreas Rottmann
2004-03-10 22:28 ` ttn's build system [was: Extended -e syntax] Clinton Ebadi
2004-03-10 23:22 ` Tom Lord
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=87r7wc4bxm.fsf@alice.rotty.yi.org \
--to=a.rottmann@gmx.at \
--cc=gnu-arch-users@gnu.org \
--cc=guile-devel@gnu.org \
--cc=guile-user@gnu.org \
--cc=ttn@glug.org \
/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).