From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: * X-Spam-Status: No, score=1.3 required=5.0 tests=BAYES_00,INVALID_MSGID, MSGID_RANDY autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,fa2cc518ef3b992c X-Google-Attributes: gid103376,public From: blaak@infomatch.com Subject: Re: scripting/extension language for Ada (we have an opportunity here) Date: 2000/02/12 Message-ID: <883ddr$rq9$1@nnrp1.deja.com>#1/1 X-Deja-AN: 584902805 References: <389207CC.C16D80E8@averstar.com> <38971028.BB16D8A2@earthlink.net> <3899F757.FAE131B3@free.fr> <389D43A6.786C7B79@free.fr> <880gpk$fv04@ftp.kvaerner.com> <38A47E5A.42406034@earthlink.net> X-Http-Proxy: 1.0 x30.deja.com:80 (Squid/1.1.22) for client 207.34.170.121 Organization: Deja.com - Before you buy. X-Article-Creation-Date: Sat Feb 12 10:42:03 2000 GMT X-MyDeja-Info: XMYDJUIDblaak Newsgroups: comp.lang.ada X-Http-User-Agent: Mozilla/4.61 [en] (X11; I; Linux 2.0.18 i486) Date: 2000-02-12T00:00:00+00:00 List-Id: In article <38A47E5A.42406034@earthlink.net>, "Robert I. Eachus" wrote: > Concept: Build a special version of gnat for scripting purposes [...] > Requirements: [...] > 2 Procedure, function, (and entry?) calls which do not match a > subprogram or entry declared in the script will be searched for > using a search path. I would recommend against this one. Procedures and processes are very different things. If nothing else, typos for an intended procedure call should not accidentally invoke a process. By using some lightweight invocation syntax, the distinction can be kept. Maybe even just Run(...). If you don't make a distinction between procedures and processes then you will be forced to have all these rules for the conversion of non-string parameters into process arguments, and process results back into Ada. Preserving the distinction lets this be unnecessary by using explicit interfaces to and from processes. The syntax should definitely be easy to express, but the distinction should be there. > 4) Environment variables shall be treated as String (Unbounded_String?) > variables in an outer scope, and shall be > hidden by identically > named variables in inner scopes. (In other > words, it must be > possible to pass a modified set of environment > variables to > nested calls.) Again I would preserve the distinction, since environment variables cross processes, but local variables don't. It would be a real drag if my local variables could accidentally be propagated to subprocesses (maybe I have one called DISPLAY). Note also that having environment variables be directly in the namespace of the Ada script implies that the scripting language must be case sensitive. I would suggest either a special package where environment variables can be read and set or a simple get/set routine pair. Cheers, The Rhythm is around me, The Rhythm has control. Ray Blaak The Rhythm is inside me, blaak@infomatch.com The Rhythm has my soul. Sent via Deja.com http://www.deja.com/ Before you buy.