* discriminant in constraint must appear alone @ 2003-12-02 19:43 Vincent Smeets 2003-12-02 20:56 ` Randy Brukardt ` (2 more replies) 0 siblings, 3 replies; 17+ messages in thread From: Vincent Smeets @ 2003-12-02 19:43 UTC (permalink / raw) Hallo, I want to define a discriminated record type with two arrays. One array only half the size of the other. Below is the type definition that I want to use. type R (D : Positive) is record A : String (1 .. D); B : String (1 .. D / 2); end record; This type definition can't be compiled by the GNAT compiler. It gives the error message "discriminant in constraint must appear alone" for the record component B. I know this isn't correct Ada, but how should I define the type in a correct way? I have defined B as B : String (1 .. D); and only used the first half of it, but this way I waist memory and can't have any Ada constraint checks for component B. So this is not the way I want to do it. Are there other possiblities? -- Thanks, Vincent Smeets ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: discriminant in constraint must appear alone 2003-12-02 19:43 discriminant in constraint must appear alone Vincent Smeets @ 2003-12-02 20:56 ` Randy Brukardt 2003-12-02 21:15 ` tmoran 2003-12-03 0:06 ` Robert I. Eachus 2003-12-03 21:02 ` Vincent Smeets 2 siblings, 1 reply; 17+ messages in thread From: Randy Brukardt @ 2003-12-02 20:56 UTC (permalink / raw) "Vincent Smeets" <No.Spam@T-Online.de> wrote in message news:bqiq1m$uis$00$1@news.t-online.com... > Hallo, > > I want to define a discriminated record type with two arrays. One array only half the size > of the other. Below is the type definition that I want to use. > > type R (D : Positive) is > record > A : String (1 .. D); > B : String (1 .. D / 2); > end record; > > This type definition can't be compiled by the GNAT compiler. It gives the error message > "discriminant in constraint must appear alone" >for the record component B. I know this isn't correct Ada, but how should I define the type >in a correct way? I don't think you can. >I have defined B as > B : String (1 .. D); >and only used the first half of it, but this way I waist memory and can't have any Ada >constraint checks for component B. So this is not the way I want to do it. > >Are there other possiblities? The only thing that comes to mind is to have a second discriminant. The problem with that is that the relationship between them can't be defined formally. type R (D1, D2 : Positive) is record A : String (1 .. D1); B : String (1 .. D2); end record; Obj : R (Max_Size, Max_Size/2); I suppose you could have Initialize check if they don't match and raise an exception: type R (D1, D2 : Positive) is new Ada.Finalization.Controlled with record A : String (1 .. D1); B : String (1 .. D2); end record; procedure Initialize (Obj : in out R); procedure Initialize (Obj : in out R) is begin if Obj.D1 /= Obj.D2*2 then raise Constraint_Error; -- Or better Ada.Exceptions.Raise_with_Message (Constraint_Error'Identity, "D2 is not half of D1"); end if; end Initialize; Obj : R (Max_Size, Max_Size/2); Obj2 : R (Max_Size, Max_Size); -- Would raise Constraint_Error. But that seems like a lot of mechanism for a simple check. (OTOH, my theory is that virtually all types ought to be derived from Controlled or Limited_Controlled anyway, so this doesn't add much in that case.) Randy. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: discriminant in constraint must appear alone 2003-12-02 20:56 ` Randy Brukardt @ 2003-12-02 21:15 ` tmoran 2003-12-03 9:06 ` Dmitry A. Kazakov 0 siblings, 1 reply; 17+ messages in thread From: tmoran @ 2003-12-02 21:15 UTC (permalink / raw) > > I want to define a discriminated record type with two arrays. One array > only half the size > > of the other. Below is the type definition that I want to use. > > > > type R (D : Positive) is > > record > > A : String (1 .. D); > > B : String (1 .. D / 2); > > end record; > >Are there other possiblities? > type R (D1, D2 : Positive) is new Ada.Finalization.Controlled with If you use Controlled, then this could be one of those occasions where access types are really useful. type String_Ptr_Type is access String; procedure Free is new Ada.Unchecked_Conversion(String, String_Ptr_Type); type R (D : Positive) is record A : String_Ptr_Type; B : String_Ptr_Type; end record; Then "R.A" needs to be "R.A.all", but R.A(i) can stay untouched. procedure Initialize (Obj : in out R) is begin A := new String(1 .. Obj.D); B := new String(1 .. Obj.D/2); end Initialize; procedure Finalize (Obj : in out R) is begin Free(Obj.B); Free(Obj.A); end Finalize; ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: discriminant in constraint must appear alone 2003-12-02 21:15 ` tmoran @ 2003-12-03 9:06 ` Dmitry A. Kazakov 0 siblings, 0 replies; 17+ messages in thread From: Dmitry A. Kazakov @ 2003-12-03 9:06 UTC (permalink / raw) On Tue, 02 Dec 2003 21:15:36 GMT, tmoran@acm.org wrote: >> > I want to define a discriminated record type with two arrays. One array >> only half the size >> > of the other. Below is the type definition that I want to use. >> > >> > type R (D : Positive) is >> > record >> > A : String (1 .. D); >> > B : String (1 .. D / 2); >> > end record; >> >Are there other possiblities? > >> type R (D1, D2 : Positive) is new Ada.Finalization.Controlled with > > If you use Controlled, then this could be one of those occasions where >access types are really useful. > > type String_Ptr_Type is access String; > procedure Free is new Ada.Unchecked_Conversion(String, String_Ptr_Type); > type R (D : Positive) is > record > A : String_Ptr_Type; > B : String_Ptr_Type; > end record; > >Then "R.A" needs to be "R.A.all", but R.A(i) can stay untouched. > > procedure Initialize (Obj : in out R) is > begin > A := new String(1 .. Obj.D); > B := new String(1 .. Obj.D/2); > end Initialize; > procedure Finalize (Obj : in out R) is > begin > Free(Obj.B); > Free(Obj.A); > end Finalize; Well, if heap allocation comes into play then better: type R is new Ada.Finalization.Controlled with private; function Create (D : Positive) return R; -- Constructor procedure Adjust (X : in out R); -- Copying constructor procedure Finalize (X : in out R); -- Destructor function A (X : R) return String; -- Getters function B (X : R) return String; ... private type R_Implementation (D1, D2 : Positive) is record A : String (1..D1); B : String (1..D2); end R_Implementation; type R_Implementation_Ptr is access R_Implementation; type R is new Ada.Finalization.Controlled with record Implementation : R_Implementation_Ptr; end record; Implemented like: function Create (D : Positive) return R is begin return ( Implementation => new R_Implementation (D, D / 2) ); end Create; procedure Adjust (X : in out R) is begin X.Implementation := new R_Implementation'(X.Implementation.all); end Adjust; procedure Finalize (X : in out R) is begin Free (X.Implementation); end Finalize; --------- But I think it is better to change the standard! (:-)) -- Regards, Dmitry Kazakov http://www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: discriminant in constraint must appear alone 2003-12-02 19:43 discriminant in constraint must appear alone Vincent Smeets 2003-12-02 20:56 ` Randy Brukardt @ 2003-12-03 0:06 ` Robert I. Eachus 2003-12-03 21:02 ` Vincent Smeets 2 siblings, 0 replies; 17+ messages in thread From: Robert I. Eachus @ 2003-12-03 0:06 UTC (permalink / raw) Vincent Smeets wrote: > Are there other possiblities? There are always other possibilities. ;-) In this case the rule (RM 3.8(12) is clear on how discriminants can appear in a record type. You could try: type R (D2 : Positive) is record A1 : String (1 .. D); A2 : String (1 .. D); B : String (1 .. D); end record; Where A = A1 & A2, and D2 = D/2, or you could use aliasing to map a string on top of an array (1..D) of Integer_16 elements. But I think the only reasonable approach for now is to have two discriminants. Incidently I have tripped over this problem in the past, and I think it would be wonderful to add three possible uses of discriminants in array bounds: -D, D + n and n * D, where n is an integer literal. Except for the first case, a compiler has to be able to generate these types of expressions and evaluate them at run-time. For example, where does the value of B start in the type above? Probably at 2*D + 4 bytes from the start of an object of type R. (Your milage may vary, I am assuming that for this type the bounds of the arrays are implicit, but that D2 is stored at the beginning of any objects.) -- Robert I. Eachus 100% Ada, no bugs--the only way to create software. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: discriminant in constraint must appear alone 2003-12-02 19:43 discriminant in constraint must appear alone Vincent Smeets 2003-12-02 20:56 ` Randy Brukardt 2003-12-03 0:06 ` Robert I. Eachus @ 2003-12-03 21:02 ` Vincent Smeets 2003-12-04 19:16 ` Randy Brukardt 2 siblings, 1 reply; 17+ messages in thread From: Vincent Smeets @ 2003-12-03 21:02 UTC (permalink / raw) Thanks for your answers, After evaluating the possibilities, I wil stick to: B : String (1 .. D); and waist memory and having no constraint check. I am using it in a smal program which I am writing. I can control my self in not violating the constraints. Giving the record two discreminants isn't nice for general use because there needs to be a lot of comments describing the relation between the discreminants. The type needs to be controled type to implement the checking between the discreminants. The checking will be done at run-time, not at compile-time. Defining the type as a controlled type and using dynamic allocation for the arrays is too mush overhead for my problem. The best solution would be a change in the language. Is there something foreseen for the new version of Ada? Thanks, Vincent Smeets "Vincent Smeets" <No.Spam@T-Online.de> schrieb im Newsbeitrag news:bqiq1m$uis$00$1@news.t-online.com... Hallo, I want to define a discriminated record type with two arrays. One array only half the size of the other. Below is the type definition that I want to use. type R (D : Positive) is record A : String (1 .. D); B : String (1 .. D / 2); end record; This type definition can't be compiled by the GNAT compiler. It gives the error message "discriminant in constraint must appear alone" for the record component B. I know this isn't correct Ada, but how should I define the type in a correct way? I have defined B as B : String (1 .. D); and only used the first half of it, but this way I waist memory and can't have any Ada constraint checks for component B. So this is not the way I want to do it. Are there other possiblities? -- Thanks, Vincent Smeets ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: discriminant in constraint must appear alone 2003-12-03 21:02 ` Vincent Smeets @ 2003-12-04 19:16 ` Randy Brukardt 2003-12-05 0:56 ` info version of Ada Reference Manual Stephen Leake 0 siblings, 1 reply; 17+ messages in thread From: Randy Brukardt @ 2003-12-04 19:16 UTC (permalink / raw) "Vincent Smeets" <No.Spam@T-Online.de> wrote in message news:bqlj28$erv$07$1@news.t-online.com... > The best solution would be a change in the language. Is there something > foreseen for the new version of Ada? No. This is one the issues that was throughly discussed during the Ada 95 design, and it was decided then that no change was appropriate. (This restriction comes from Ada 83.) Nothing has changed since then, so there is no reason to revisit the decision. Randy. ^ permalink raw reply [flat|nested] 17+ messages in thread
* info version of Ada Reference Manual 2003-12-04 19:16 ` Randy Brukardt @ 2003-12-05 0:56 ` Stephen Leake 2003-12-05 1:08 ` Stephane Richard ` (4 more replies) 0 siblings, 5 replies; 17+ messages in thread From: Stephen Leake @ 2003-12-05 0:56 UTC (permalink / raw) To: comp.lang.ada In some earlier GNAT distributions (3.15 and earlier? ) there was an info version of the Ada Reference Manual. However, on the official website (http://www.adaic.org/standards/ada95.html) for the current LRM (which has the Technical Corrigendum included), there is no info version. Info format is good for Emacs; it's close to plain text plus hyperlinks, and is fully searchable. The current manual is generated by some Ada code that reads the vaguely-Scribe like source and generates RTF, HTML, or plain text. I'm working on adding Texinfo as an output format, which can then generate info. This will give us a current info version, and any future versions (Ada 200x). Does anyone know how the old info version was generated? Maybe I can just do that again, or get some hints on how they formatted things. Is anyone else interested in an info version? -- -- Stephe ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 0:56 ` info version of Ada Reference Manual Stephen Leake @ 2003-12-05 1:08 ` Stephane Richard 2003-12-05 1:27 ` Ludovic Brenta ` (3 subsequent siblings) 4 siblings, 0 replies; 17+ messages in thread From: Stephane Richard @ 2003-12-05 1:08 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 1214 bytes --] I'm interested :-)....But I don't know how to get it, generate it, read it from, whichever method is used. -- St�phane Richard "Ada World" Webmaster http://www.adaworld.com "Stephen Leake" <stephen_leake@acm.org> wrote in message news:mailman.12.1070585826.31149.comp.lang.ada@ada-france.org... > In some earlier GNAT distributions (3.15 and earlier? ) there was an > info version of the Ada Reference Manual. However, on the official > website (http://www.adaic.org/standards/ada95.html) for the current > LRM (which has the Technical Corrigendum included), there is no info > version. Info format is good for Emacs; it's close to plain text plus > hyperlinks, and is fully searchable. > > The current manual is generated by some Ada code that reads the > vaguely-Scribe like source and generates RTF, HTML, or plain text. I'm > working on adding Texinfo as an output format, which can then generate > info. This will give us a current info version, and any future > versions (Ada 200x). > > Does anyone know how the old info version was generated? Maybe I can > just do that again, or get some hints on how they formatted things. > > Is anyone else interested in an info version? > > -- > -- Stephe > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 0:56 ` info version of Ada Reference Manual Stephen Leake 2003-12-05 1:08 ` Stephane Richard @ 2003-12-05 1:27 ` Ludovic Brenta 2003-12-05 4:36 ` Fionn mac Cuimhaill ` (2 subsequent siblings) 4 siblings, 0 replies; 17+ messages in thread From: Ludovic Brenta @ 2003-12-05 1:27 UTC (permalink / raw) Stephen Leake <stephen_leake@acm.org> writes: > In some earlier GNAT distributions (3.15 and earlier? ) there was an > info version of the Ada Reference Manual. However, on the official > website (http://www.adaic.org/standards/ada95.html) for the current > LRM (which has the Technical Corrigendum included), there is no info > version. Info format is good for Emacs; it's close to plain text plus > hyperlinks, and is fully searchable. Aye. There Is Only One Editor (but vim is the Other). > The current manual is generated by some Ada code that reads the > vaguely-Scribe like source and generates RTF, HTML, or plain text. I'm > working on adding Texinfo as an output format, which can then generate > info. This will give us a current info version, and any future > versions (Ada 200x). > > Does anyone know how the old info version was generated? Maybe I can > just do that again, or get some hints on how they formatted things. > > Is anyone else interested in an info version? Yes, I am. I use the info version of the ARM (without TC1) every day from within emacs. BTW, thanks to Florian Weimer for the Debian package `ada-reference-manual'. -- Ludovic Brenta. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 0:56 ` info version of Ada Reference Manual Stephen Leake 2003-12-05 1:08 ` Stephane Richard 2003-12-05 1:27 ` Ludovic Brenta @ 2003-12-05 4:36 ` Fionn mac Cuimhaill 2003-12-05 5:28 ` [Totally OT] Nick Roberts 2003-12-05 14:07 ` info version of Ada Reference Manual Stephen Leake 2003-12-05 14:18 ` Arthur Evans Jr 2003-12-05 14:28 ` Georg Bauhaus 4 siblings, 2 replies; 17+ messages in thread From: Fionn mac Cuimhaill @ 2003-12-05 4:36 UTC (permalink / raw) On 04 Dec 2003 19:56:43 -0500, Stephen Leake <stephen_leake@acm.org> wrote: >In some earlier GNAT distributions (3.15 and earlier? ) there was an >info version of the Ada Reference Manual. However, on the official >website (http://www.adaic.org/standards/ada95.html) for the current >LRM (which has the Technical Corrigendum included), there is no info >version. Info format is good for Emacs; it's close to plain text plus >hyperlinks, and is fully searchable. > >The current manual is generated by some Ada code that reads the >vaguely-Scribe like source and generates RTF, HTML, or plain text. I'm >working on adding Texinfo as an output format, which can then generate >info. This will give us a current info version, and any future >versions (Ada 200x). > >Does anyone know how the old info version was generated? Maybe I can >just do that again, or get some hints on how they formatted things. > >Is anyone else interested in an info version? Yes. It would be a good companion to the Ada compiler that is now a part of GCC. ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Totally OT] 2003-12-05 4:36 ` Fionn mac Cuimhaill @ 2003-12-05 5:28 ` Nick Roberts 2003-12-05 14:07 ` info version of Ada Reference Manual Stephen Leake 1 sibling, 0 replies; 17+ messages in thread From: Nick Roberts @ 2003-12-05 5:28 UTC (permalink / raw) Fionn mac Cuimhaill wrote ... ^^^^^^^^^^^^^^^^^^^ This is totally off topic, sorry, but I can't help noting that we appear to have had a posting from Finn McCool, as in Giant Finn McCool, the biggest hero of them all, the granddaddy of all heroes. I mean ... Wow! :-) -- Nick Roberts ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 4:36 ` Fionn mac Cuimhaill 2003-12-05 5:28 ` [Totally OT] Nick Roberts @ 2003-12-05 14:07 ` Stephen Leake 1 sibling, 0 replies; 17+ messages in thread From: Stephen Leake @ 2003-12-05 14:07 UTC (permalink / raw) To: Fionn mac Cuimhaill; +Cc: comp.lang.ada Fionn mac Cuimhaill <invisible@hiding.from.spam> writes: > On 04 Dec 2003 19:56:43 -0500, Stephen Leake <stephen_leake@acm.org> > wrote: > > >Is anyone else interested in an info version? > > Yes. It would be a good companion to the Ada compiler that is now a > part of GCC. Ok. I'll release an info version when it's ready. Or maybe Randy will; we haven't discussed details yet. -- -- Stephe ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 0:56 ` info version of Ada Reference Manual Stephen Leake ` (2 preceding siblings ...) 2003-12-05 4:36 ` Fionn mac Cuimhaill @ 2003-12-05 14:18 ` Arthur Evans Jr 2003-12-05 14:52 ` Stephen Leake 2003-12-05 14:28 ` Georg Bauhaus 4 siblings, 1 reply; 17+ messages in thread From: Arthur Evans Jr @ 2003-12-05 14:18 UTC (permalink / raw) In article <mailman.12.1070585826.31149.comp.lang.ada@ada-france.org>, Stephen Leake <stephen_leake@acm.org> wrote: > The current manual is generated by some Ada code that reads the > vaguely-Scribe like source [snip] The source for the original Ada-95 manual was not Scribe-like but was Scribe. Two different header files existed, one to produce the ARM and one to produce the AARM (Annotated ARM). Scribe supports macros, and these header files had complex macro definitions to achieve the desired effects. The last time I checked, maybe six or eight years ago, Cygnet was supporting Scribe processors on a variety of platforms. Art Evans ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 14:18 ` Arthur Evans Jr @ 2003-12-05 14:52 ` Stephen Leake 2003-12-07 15:22 ` Arthur Evans Jr 0 siblings, 1 reply; 17+ messages in thread From: Stephen Leake @ 2003-12-05 14:52 UTC (permalink / raw) To: Arthur Evans Jr; +Cc: comp.lang.ada ev_remove_this_anssl21@earthlink.net (Arthur Evans Jr) writes: > In article <mailman.12.1070585826.31149.comp.lang.ada@ada-france.org>, > Stephen Leake <stephen_leake@acm.org> wrote: > > > The current manual is generated by some Ada code that reads the > > vaguely-Scribe like source > [snip] > > The source for the original Ada-95 manual was not Scribe-like but was > Scribe. Two different header files existed, one to produce the ARM and one > to produce the AARM (Annotated ARM). Scribe supports macros, and these > header files had complex macro definitions to achieve the desired effects. > > The last time I checked, maybe six or eight years ago, Cygnet was > supporting Scribe processors on a variety of platforms. Ok. Did any of those processors produce info (or Texinfo) format? I did a quick web search for "cygnet scribe"; found lots of neat stuff, but not a Scribe processor :). Do you have a URL or more complete company name? The current Ada code (see http://www.ada-auth.org/cgi-bin-acats/cvsweb.cgi/) also outputs both the ARM and the AARM, and also does various versions (original, with TC1, with/without changes). So adding the capability to produce Texinfo to that Ada code is the best approach in the long run, I believe. The "changes" are marked with crossouts and underlines (as in MS Word with Change Tracking turned on). Since info doesn't support that, I'm not trying to support the "with changes" option in my Ada code. But I will try outputting the AARM. -- -- Stephe ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 14:52 ` Stephen Leake @ 2003-12-07 15:22 ` Arthur Evans Jr 0 siblings, 0 replies; 17+ messages in thread From: Arthur Evans Jr @ 2003-12-07 15:22 UTC (permalink / raw) I said > The source for the original Ada-95 manual was not Scribe-like but was > Scribe. Two different header files existed, one to produce the ARM and one > to produce the AARM (Annotated ARM). Scribe supports macros, and these > header files had complex macro definitions to achieve the desired effects. > > The last time I checked, maybe six or eight years ago, Cygnet was > supporting Scribe processors on a variety of platforms. and Stephen Leake <stephen_leake@acm.org> wrote: > I did a quick web search for "cygnet scribe"; found lots of neat > stuff, but not a Scribe processor :). Do you have a URL or more > complete company name? My latest Scribe manual, copyright 1991, says that the document is Distributed exclusively by Cygnet Publishing Technologies, Inc. and gives an address here in Pittsburgh for Cygnet. The Pittsburgh telephone book for 2002-03 gives these data: 355 Fifth Ave 412-471-2070 Good luck! Art Evans ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: info version of Ada Reference Manual 2003-12-05 0:56 ` info version of Ada Reference Manual Stephen Leake ` (3 preceding siblings ...) 2003-12-05 14:18 ` Arthur Evans Jr @ 2003-12-05 14:28 ` Georg Bauhaus 4 siblings, 0 replies; 17+ messages in thread From: Georg Bauhaus @ 2003-12-05 14:28 UTC (permalink / raw) Stephen Leake <stephen_leake@acm.org> wrote: : Does anyone know how the old info version was generated? Maybe I can : just do that again, or get some hints on how they formatted things. I think Jerry van Dijk mentioned that he had done some manual editing using Emacs. -- Georg ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2003-12-07 15:22 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2003-12-02 19:43 discriminant in constraint must appear alone Vincent Smeets 2003-12-02 20:56 ` Randy Brukardt 2003-12-02 21:15 ` tmoran 2003-12-03 9:06 ` Dmitry A. Kazakov 2003-12-03 0:06 ` Robert I. Eachus 2003-12-03 21:02 ` Vincent Smeets 2003-12-04 19:16 ` Randy Brukardt 2003-12-05 0:56 ` info version of Ada Reference Manual Stephen Leake 2003-12-05 1:08 ` Stephane Richard 2003-12-05 1:27 ` Ludovic Brenta 2003-12-05 4:36 ` Fionn mac Cuimhaill 2003-12-05 5:28 ` [Totally OT] Nick Roberts 2003-12-05 14:07 ` info version of Ada Reference Manual Stephen Leake 2003-12-05 14:18 ` Arthur Evans Jr 2003-12-05 14:52 ` Stephen Leake 2003-12-07 15:22 ` Arthur Evans Jr 2003-12-05 14:28 ` Georg Bauhaus
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox