unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Andreas Rottmann <a.rottmann@gmx.at>
Cc: gnu-arch-users@gnu.org, guile-user@gnu.org, guile-devel@gnu.org
Subject: Re: ITLA
Date: Tue, 02 Mar 2004 15:04:28 +0100	[thread overview]
Message-ID: <87hdx7mjkj.fsf@alice.rotty.yi.org> (raw)
In-Reply-To: 200403020250.SAA21846@morrowfield.regexps.com

Tom Lord <lord@emf.net> writes:

>     > Of course, this is just low-level stuff, and would never shine thru up
>     > to the "declarative level".
>
> The last paragraph is probably the most important.
>
> Keep in mind, too, that someone might want to write extensions that
> crawl over the set of commands -- perhaps to format a help message or
> perhaps to make some new kind of menu-driven interface.   Keeping all
> the relevent data in the simplest format (e.g., s-exps following an
> extensible syntax over basic types) makes that easy.
>
If you have a brief glance at the codebase, you'll see that there is a
(itla ui) module. This currently is a crude wrapper around a single
<tla> instance, using the Guile REPL and GOOPS for user-interaction. I
just came up with this as a quick hack to have something to play
around with, not intending it as a permanent solution. So my question
is: do you feel comfortable with this design (a low-level interface,
using GOOPS, designed for maximum flexibility) and an eventual command
processor/UI built on top of that?

I think this seperation is warranted, to quote you[0]:

,----
| (define-command (init-tree version dir nested?)
| 
| 	  (help-message   (category tree)
|                           (% tla init-tree -H))
| 
|           (parameters   (version	new-fq-version-name)
|                         (dir		(extended existing-directory))
|                         (nested?	(extended y-or-n)))
| 
|           (output	plain-text)
| 
| 	  (run-tla "init-tree"
|                    (if dir (list "-D" dir))
|                    (if nested? (list "--nested"))
|                    version))
`----

I think there might be concepts apparent in this code that don't
belong into the low level interface: new-fq-version-name, for instance
(if I understand correctly) will cause the user to be prompted for a
*new* version name. I would consider the knowledge about existing
versions not something to be located at the low level interface (but
easily extracted using it). Also, prompting, as indicated by y-or-n
doesn't belong there.

But, on the other hand, this separation turns up the issue of
duplication: Since you'd want access most TLA commands also through
the low-level interface, you'd define most commands in two places,
which is unfortunate.

> For example, since you have the basic idea of a command processor of
> the sort we're discussing, can you:
>
>   (a) imagine an implementation
>   (b) presume the implementation is built, has at least a CLI a 
>       front-end and maybe a GUI front end.
>   (c) assume that lots of people have written code against this
>       implementation.
>
> and then:
>
>   (d) imagine implementing something like:
>
>         http://segusoland.sourceforge.net
>
Looks and sounds interesting, this segusoland stuff.

>
>       in a way that everybody's existing code "just works" with
>       the new input method?
>
I hope you didn't mean for me now to come up with an implementation
plan (cough), but I'll try to keep that in the back of my mind.


[0] http://article.gmane.org/gmane.comp.version-control.arch.user/18334

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

Say NO to Software Patents! -- http://petition.eurolinux.org/



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


  reply	other threads:[~2004-03-02 14:04 UTC|newest]

Thread overview: 28+ 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
2004-03-01 11:10   ` Thien-Thi Nguyen
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         ` ITLA Andreas Rottmann
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                 ` Andreas Rottmann [this message]
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-04 13:55             ` Archive of library modules for Guile Andreas Rottmann
2004-03-04 20:49               ` Neil Jerram
2004-03-04 23:00                 ` Andreas Rottmann
2004-03-07 17:33               ` Thamer Al-Harbash
2004-03-07 18:17               ` Thien-Thi Nguyen
2004-03-01 23:07       ` Arch and Guile Thien-Thi Nguyen
2004-03-02  0:23         ` Andreas Rottmann
2004-03-03 13:01           ` Thien-Thi Nguyen
2004-03-01 11:21 ` Extended -e syntax Thien-Thi Nguyen
2004-03-01 20:20 ` Christopher Cramer
2004-03-02  4:55   ` Clinton Ebadi
2004-03-06 15:47 ` ttn's build system [was: Extended -e syntax] Andreas Rottmann
2004-03-10 18:59   ` ttn's build system 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=87hdx7mjkj.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 \
    /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).