From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Andreas Rottmann Newsgroups: gmane.lisp.guile.user,gmane.comp.version-control.arch.user,gmane.lisp.guile.devel Subject: Re: ITLA Date: Mon, 01 Mar 2004 20:14:29 +0100 Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Message-ID: <87r7wc4bxm.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> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1078190727 20245 80.91.224.253 (2 Mar 2004 01:25:27 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 2 Mar 2004 01:25:27 +0000 (UTC) Cc: gnu-arch-users@gnu.org, guile-user@gnu.org, ttn@glug.org, guile-devel@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Mar 02 02:25:20 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 1Axyeu-0005jm-00 for ; Tue, 02 Mar 2004 02:25:20 +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 1AxydI-00033x-CK for guile-user@m.gmane.org; Mon, 01 Mar 2004 20:23:40 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1AxstB-0006hv-Kw for guile-user@gnu.org; Mon, 01 Mar 2004 14:15:41 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1AxssT-0005pT-Iv for guile-user@gnu.org; Mon, 01 Mar 2004 14:15:29 -0500 Original-Received: from [213.165.64.20] (helo=mail.gmx.net) by monty-python.gnu.org with smtp (Exim 4.30) id 1AxssS-0005ng-Lb for guile-user@gnu.org; Mon, 01 Mar 2004 14:14:56 -0500 Original-Received: (qmail 10180 invoked by uid 65534); 1 Mar 2004 19:14:52 -0000 Original-Received: from chello212186006140.401.14.univie.teleweb.at (EHLO garibaldi) (212.186.6.140) by mail.gmx.net (mp017) with SMTP; 01 Mar 2004 20:14:52 +0100 X-Authenticated: #3102804 Original-Received: from ivanova.rhinosaur.lan ([192.168.1.9] helo=ivanova) by garibaldi with esmtp (Exim 4.30) id 1Axss3-00020J-MF; Mon, 01 Mar 2004 20:14:31 +0100 Original-Received: from andy by ivanova with local (Exim 4.30) id 1Axss3-0001rr-AL; Mon, 01 Mar 2004 20:14:31 +0100 Original-To: Tom Lord In-Reply-To: <200403011904.LAA20046@morrowfield.regexps.com> (Tom Lord's message of "Mon, 1 Mar 2004 11:04:02 -0800 (PST)") User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) X-Spam-Score: -4.9 (----) X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.user:2870 gmane.comp.version-control.arch.user:22105 gmane.lisp.guile.devel:3471 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:3471 Tom Lord 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:=20 > > 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: |=20 | ~ the name of the command | ~ a documentation string for the command | ~ a list of options and parameters to the command, each | specified by: |=20 | + a parameter name |=20 | + a "type declaration" (e.g., "string", or "new-archive-name", | or "existing-archive-name", or "archive-name".) |=20 | + a description of how it is parsed from options and | arguments provided on command lines |=20 | + a default value |=20 | + an optional prompt string |=20 | + an optional help string for the parameter |=20 | ~ a "type declaration" for the output of the command |=20 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 |=20 | Once the parameter editor is done collecting parameters, the=20 | 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=20 | might recursively call "prepare-tree" and/or "make-archive"). |=20 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: |=20 [sip] Full ACK here. | * Usefulness for GUIs |=20 | There is nothing that says that the parameter editor and output=20 | handler have to be TTY programs -- nothing that says they have | to do their work by printing prompts and reading keyboard input. |=20 | For example, a GUI might include an alternative form of the=20 | parameter editor that knows how to translate _any_ command=20 | declaration into a "form". |=20 | That approach can make writing a complete GUI a much smaller task | and effort can focus on generic parts that help the entire=20 | interface (such an an "archive name selector"). |=20 | 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.=20 [1] http://www.gnu.org/software/guile-gtk/docs/ Cheers, Andy --=20 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 5B= 62 Latein ist das humanoide =C3=84quivalent zu Fortran. -- Alexander Bartolich in at.linux _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user