From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Andreas Rottmann Newsgroups: gmane.lisp.guile.devel,gmane.comp.version-control.arch.user,gmane.lisp.guile.user Subject: Re: ITLA Date: Tue, 02 Mar 2004 15:04:28 +0100 Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Message-ID: <87hdx7mjkj.fsf@alice.rotty.yi.org> References: <200402292232.51103.clinton@unknownlamer.org> <87r7wdma3d.fsf@alice.rotty.yi.org> <87n0707icl.fsf_-_@alice.rotty.yi.org> <200403011904.LAA20046@morrowfield.regexps.com> <87r7wc4bxm.fsf@alice.rotty.yi.org> <200403012155.NAA20825@morrowfield.regexps.com> <87fzcs3y6v.fsf@alice.rotty.yi.org> <200403020250.SAA21846@morrowfield.regexps.com> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1078264765 6341 80.91.224.253 (2 Mar 2004 21:59:25 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 2 Mar 2004 21:59:25 +0000 (UTC) Cc: gnu-arch-users@gnu.org, guile-user@gnu.org, guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Mar 02 22:59:18 2004 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AyHv4-0000Hy-00 for ; Tue, 02 Mar 2004 22:59:18 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1AyHkq-0000kG-Sb for guile-devel@m.gmane.org; Tue, 02 Mar 2004 16:48:44 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1AyC3l-0004iB-P2 for guile-devel@gnu.org; Tue, 02 Mar 2004 10:43:53 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1AyC39-0004W7-8z for guile-devel@gnu.org; Tue, 02 Mar 2004 10:43:46 -0500 Original-Received: from [80.91.224.249] (helo=main.gmane.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1AyC0J-0003WG-9v for guile-devel@gnu.org; Tue, 02 Mar 2004 10:40:19 -0500 Original-Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AyC0B-0000qP-00 for ; Tue, 02 Mar 2004 16:40:12 +0100 Original-Received: from chello212186006140.401.14.univie.teleweb.at ([212.186.6.140]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue Mar 2 15:40:12 2004 Original-Received: from a.rottmann by chello212186006140.401.14.univie.teleweb.at with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue Mar 2 15:40:12 2004 X-Injected-Via-Gmane: http://gmane.org/ Original-To: guile-devel@gnu.org Original-Lines: 89 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: chello212186006140.401.14.univie.teleweb.at User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) Cancel-Lock: sha1:A4HTnkyIKRTk8BYLt8UvaBPROPA= X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.devel:3477 gmane.comp.version-control.arch.user:22139 gmane.lisp.guile.user:2880 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:3477 Tom Lord 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 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