comp.lang.ada
 help / color / mirror / Atom feed
* SPARK and Interfaces.C
@ 2005-05-13 17:34 ich_bin_elvis
  2005-05-13 19:40 ` JP Thornley
  0 siblings, 1 reply; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-13 17:34 UTC (permalink / raw)


Hi,

Im trying to spark a program that uses Interfaces.C and
Ada.Numerics.Elementary_Functions; I read in John Barnes book that
there is a method callded shadowing that allows you to use these
packages. I understand that you create a dummy package and uses this
with the spark examiner. But i get an error when i try to examin the
dummy package. Does anybody have any good examples how this is done??
any article regarding multilanguage development and spark would be
apriciated.

Regrads
Ronny




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-13 17:34 SPARK and Interfaces.C ich_bin_elvis
@ 2005-05-13 19:40 ` JP Thornley
  2005-05-14 12:15   ` Rod Chapman
  0 siblings, 1 reply; 19+ messages in thread
From: JP Thornley @ 2005-05-13 19:40 UTC (permalink / raw)


In article <1116005688.002279.128010@g43g2000cwa.googlegroups.com>,
ich_bin_elvis@hotmail.com writes
>Hi,
>
>Im trying to spark a program that uses Interfaces.C and
>Ada.Numerics.Elementary_Functions; I read in John Barnes book that
>there is a method callded shadowing that allows you to use these
>packages. I understand that you create a dummy package and uses this
>with the spark examiner. But i get an error when i try to examin the
>dummy package. Does anybody have any good examples how this is done??
>any article regarding multilanguage development and spark would be
>apriciated.
>
>Regrads
>Ronny
>

What errors are you getting? The following packages (based on the
examples in John's book) go through the Examiner without any errors.

(You have to add a couple of parent packages that aren't there at
present.)

Cheers,

Phil Thornley

-------------------------------------------------
package Interfaces is

end Interfaces;


package Interfaces.C is

   UCHAR_MAX : constant := 255;

   type unsigned_char is mod (UCHAR_MAX+1);

end Interfaces.C;






package Ada.Numerics is

end Ada.Numerics;



package Ada.Numerics.Elementary_Functions is

   function Sqrt(X : Float) return Float;
   function Log(X : Float) return Float;
   function Cos(X : Float) return Float;

end Ada.Numerics.Elementary_Functions;

-----------------------------------------------------



-- 
JP Thornley



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-13 19:40 ` JP Thornley
@ 2005-05-14 12:15   ` Rod Chapman
  2005-05-14 13:31     ` Martin Dowie
  2005-05-17 10:55     ` ich_bin_elvis
  0 siblings, 2 replies; 19+ messages in thread
From: Rod Chapman @ 2005-05-14 12:15 UTC (permalink / raw)


You'll also need to supply entries for these units in your Examiner
Index file, of course.  For example:

Interfaces specification is in interfaces.ads
Interfaces.C specification is in interfaces-c.ads
Ada.Numerics specification is in ada-numerics.ads
Ada.Numerics.Elementary_Functions specification is in
ada-numerics-elementary_functions.ads

assuming you're using the GNAT file-naming convention.

You _don't_ need to supply an index file entry for package Ada, since
this
is internally synthesized by the Examiner.
 - Rod Chapman, SPARK Team




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-14 12:15   ` Rod Chapman
@ 2005-05-14 13:31     ` Martin Dowie
  2005-05-14 15:41       ` Rod Chapman
  2005-05-17 10:55     ` ich_bin_elvis
  1 sibling, 1 reply; 19+ messages in thread
From: Martin Dowie @ 2005-05-14 13:31 UTC (permalink / raw)


Rod Chapman wrote:
> You'll also need to supply entries for these units in your Examiner
> Index file, of course.  For example:
> 
> Interfaces specification is in interfaces.ads
> Interfaces.C specification is in interfaces-c.ads
> Ada.Numerics specification is in ada-numerics.ads
> Ada.Numerics.Elementary_Functions specification is in
> ada-numerics-elementary_functions.ads
> 
> assuming you're using the GNAT file-naming convention.
> 
> You _don't_ need to supply an index file entry for package Ada, since
> this is internally synthesized by the Examiner.

Don't know if the SPARK Examiner cares but the GNAT file-naming 
convention is slightly different for the predefined units, e.g.

Interfaces                        => interfac.ads
Interfaces.C                      => i-c.ads
Ada.Numerics                      => a-numeri.ads
Ada.Numerics.Elementary_Functions => a-nuelfu.ads

Just in case... presumably they still need to support 'old fashioned' 
8.3 filenames on some environments.

Cheers

-- Martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-14 13:31     ` Martin Dowie
@ 2005-05-14 15:41       ` Rod Chapman
  0 siblings, 0 replies; 19+ messages in thread
From: Rod Chapman @ 2005-05-14 15:41 UTC (permalink / raw)


Yes...but the whole point of shadows in SPARK is that you _don't_
want the Examiner to read in the compiler's standard specifications
of these packages, since they aren't legal SPARK!
 - Rod




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-14 12:15   ` Rod Chapman
  2005-05-14 13:31     ` Martin Dowie
@ 2005-05-17 10:55     ` ich_bin_elvis
  2005-05-17 14:40       ` Rod Chapman
  1 sibling, 1 reply; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-17 10:55 UTC (permalink / raw)


Now I've made the index file as described above. I also made all the
files interfaces.ads, interfaces-c.ads etc and made empty package
spesifications on the parent packages. I run the spark command

spark /i=adadll.idx
adadll.ads,interfaces.ads,interfaces-c.ads,ada-numerics.ads,ada-numerics-elementary_functions.ads


and I get the message.

                       DATE : 17-MAY-2005 12:48:54.31


   3  WITH Interfaces.C;
      ^
***        Syntax Error      : No complete DOTTED_SIMPLE_NAME can be
followe
           by ANNOTATION_END here.

           Generating listing file ADADLL.LST ...

           Examining the specification of package Interfaces ...

           Generating listing file INTERFACES.LST ...

           Examining the specification of package C ...

           Generating listing file INTERFACES-C.LST ...

           Examining the specification of package Numerics ...

           Generating listing file ADA-NUMERICS.LST ...

           Examining the specification of package Elementary_Functions
...

           Generating listing file
ADA-NUMERICS-ELEMENTARY_FUNCTIONS.LST ...

           Generating report file ...


-----------End of SPARK Examination--------------------------------

The start of the Adadll.ads file looks like this:

with Ada.Numerics.Elementary_Functions;
with Interfaces.C;
with Win32;
use type Win32.Bool;

package body Adadll is
...

What am I doing wrong??




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-17 10:55     ` ich_bin_elvis
@ 2005-05-17 14:40       ` Rod Chapman
  2005-05-19  8:12         ` ich_bin_elvis
  2005-05-19  8:46         ` ich_bin_elvis
  0 siblings, 2 replies; 19+ messages in thread
From: Rod Chapman @ 2005-05-17 14:40 UTC (permalink / raw)


1) When you give an indedx file you shouldn't have to specify all the
other files on the command-line - that's the whole idea!  just try
   spark /i=adadll adadll.ads
and let the Examiner sort out all the dependencies for you.

2) Why do you have a package body in a file ending in ".ads" - this
looks wrong.

3) Does this package have an "inherit" annotation?  If so, then it must
be a package specification not a body!

4) Are you seriously planning on shadowing the Win32 package for use
within SPARK? This could be very hard indeed.

- Rod, SPARK Team




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-17 14:40       ` Rod Chapman
@ 2005-05-19  8:12         ` ich_bin_elvis
  2005-05-19  8:46         ` ich_bin_elvis
  1 sibling, 0 replies; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-19  8:12 UTC (permalink / raw)


Thanx, Sorry I posted in the adb fil heading.
Isn'nt there always the possibility to just shadow the things you use
from the win32 package? or I can hide the Dllmain function in the adb
file??? The only thing I use from the Win32 package is use type
Win32.Bool;




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-17 14:40       ` Rod Chapman
  2005-05-19  8:12         ` ich_bin_elvis
@ 2005-05-19  8:46         ` ich_bin_elvis
  2005-05-19  9:01           ` Rod Chapman
  1 sibling, 1 reply; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-19  8:46 UTC (permalink / raw)


I've come a little further  all the packages is examined except the
system package.

type Address is private;

gives the error
           Examining the specification of package System ...

  16  end System;
          ^
***        Semantic Error    : 27: The private type Address does not
have an
           associated full definition.
          ^
---        Warning           :394: Variables of type Address cannot be
initialized
           using the facilities of this package.

How can one declare this one??

regards
Ronny




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-19  8:46         ` ich_bin_elvis
@ 2005-05-19  9:01           ` Rod Chapman
  2005-05-19 10:25             ` ich_bin_elvis
  0 siblings, 1 reply; 19+ messages in thread
From: Rod Chapman @ 2005-05-19  9:01 UTC (permalink / raw)


Either
a) Supply a hidden private part in your shadow.  e.g.
  ...
  private
      -# hide System;
  end System;

or

b) Give the specifications of packages Standardm and System in the
Examiner's configuration file. This is the preferred method - see page
196-7 of the SPARK book.

As for Win32 - yes - you only have to shadow the delcarations that you
actually need - in this case just type Bool.

 - Rod




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-19  9:01           ` Rod Chapman
@ 2005-05-19 10:25             ` ich_bin_elvis
  2005-05-21 22:52               ` JP Thornley
  0 siblings, 1 reply; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-19 10:25 UTC (permalink / raw)


Thanks got the sytem shadow to work when i used the hide an, with
configuration file i still got an error.

   4  type double is new Standard.Long_Float;
                                            ^
***        Syntax Error      : reserved word "WITH" expected.

   6  type int is new Integer;
                             ^
***        Syntax Error      : reserved word "WITH" expected.

           Examining the specification of package Adadll ...

The spesification file looks like this

package interfaces.C is

type double is new Standard.Long_Float;
type unsigned_long  is mod 2 ** long'Size;
type int is new Integer;

end interfaces.C;

and the Adadll.ads file looks like this, this one gets several errors
like this
  11     subtype BOOL      is Interfaces.C.int;
                              ^
***        Semantic Error    :754: The identifier Interfaces is either
undeclared
           or not visible at this point. This package must be both
inherited
           and withed to be visible here.


----
with System;
WITH Interfaces.C;
--#inherit System,Interfaces.C;

package Adadll is

   ------------------------------
   --  Win32 Type Definitions  --
   ------------------------------

   subtype BOOL      is Interfaces.C.int;
   subtype ULONG     is Interfaces.C.unsigned_long;
   subtype LPVOID    is System.Address;
   subtype HINSTANCE is System.Address;

   --------------------------
   --  DLL Initialization  --
   --------------------------

   function DllMain (hInst    : HINSTANCE;
                     Reason   : ULONG;
                     Reserved : LPVOID) return BOOL;
   --  DLL management

   -------------------
   --  Subprograms  --
   -------------------

   procedure Check_Buffer(Vrtemp,Vltemp : in out Interfaces.C.Double );
   procedure Calcnewposandcourse (T,Vr,Vl,Oldfi, width : in
Interfaces.C.Double;
      X,Y,Fi    : in out Interfaces.C.Double  );
    procedure Stopdrone(vr,vl : in out Interfaces.C.Double);

   function Angle(X1, Y1, X2, Y2 : in Interfaces.C.Double) return
Interfaces.C.Double;
   function Distance(X1, Y1, X2, Y2 : in Interfaces.C.Double) return
Interfaces.C.Double;



private

   -----------------
   --  Constants  --
   -----------------

   True_BOOL : constant BOOL := 1;
   --  win32 BOOL 'True' value

   DLL_PROCESS_DETACH : constant ULONG := 0;
   DLL_PROCESS_ATTACH : constant ULONG := 1;
   --  reasons for calling DllMain

   ---------------------------
   --  Export Declarations  --
   ---------------------------

   pragma Export (StdCall, DllMain, "DllMain");
   --DllMain always uses the StdCall convention
   --pragma Export(C, Distance, "Distance");
   pragma Export (Convention => C, Entity => Distance, External_Name =>
"Distance");

   --pragma Export(C, Angle, "Angle");
   pragma Export (Convention => C, Entity => Angle, External_Name =>
"Angle");

   --pragma Export (C, Checkbuffer,    "CheckBuffer");
   pragma Export (Convention => C, Entity => Check_Buffer,
External_Name => "CheckBuffer");

--pragma Export (C, Calcnewposandcourse,    "Calcnewposandcourse");
   pragma Export (Convention => C, Entity => Calcnewposandcourse,
External_Name => "Calcnewposandcourse");

   --pragma Export (C, Stopdrone,    "Stopdrone");
   pragma Export (Convention => C, Entity => Stopdrone, External_Name
=> "Stopdrone");

    ---------------------------
   --  Import Declarations  --
   ---------------------------

   procedure AdaInit;
   pragma Import (C, AdaInit, "adainit");
   --  initialize Ada runtime library

   procedure AdaFinal;
   pragma Import (C, AdaFinal, "adafinal");
   --  finalize Ada runtime library

end Adadll;




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-19 10:25             ` ich_bin_elvis
@ 2005-05-21 22:52               ` JP Thornley
  2005-05-23  9:48                 ` ich_bin_elvis
  0 siblings, 1 reply; 19+ messages in thread
From: JP Thornley @ 2005-05-21 22:52 UTC (permalink / raw)


In article <1116498302.651121.297610@g49g2000cwa.googlegroups.com>,
ich_bin_elvis@hotmail.com writes
>Thanks got the sytem shadow to work when i used the hide an, with
>configuration file i still got an error.
>
>   4  type double is new Standard.Long_Float;
>                                            ^
>***        Syntax Error      : reserved word "WITH" expected.
>
>   6  type int is new Integer;
>                             ^
>***        Syntax Error      : reserved word "WITH" expected.
>
>           Examining the specification of package Adadll ...

That's because non-tagged derived types aren't in SPARK.

The obvious change is to change them to renaming subtype definitions:

   subtype double is Standard.Long_Float;

   subtype int is Integer;

which might trigger some "unnecessary type conversion" warnings, but you
can ignore these.

>
>The spesification file looks like this
>
>package interfaces.C is
>
>type double is new Standard.Long_Float;
>type unsigned_long  is mod 2 ** long'Size;
>type int is new Integer;
>
>end interfaces.C;
>
>and the Adadll.ads file looks like this, this one gets several errors
>like this
>  11     subtype BOOL      is Interfaces.C.int;
>                              ^
>***        Semantic Error    :754: The identifier Interfaces is either
>undeclared
>           or not visible at this point. This package must be both
>inherited
>           and withed to be visible here.
This is probably a result of the semantic errors in the specification.
Once you've got rid of those then this one will probably go away as
well.

Cheers,

Phil
-- 
JP Thornley



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-21 22:52               ` JP Thornley
@ 2005-05-23  9:48                 ` ich_bin_elvis
  2005-05-23 13:30                   ` JP Thornley
  0 siblings, 1 reply; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-23  9:48 UTC (permalink / raw)


Now I have sparked the adadll.ads spesifcation file with the use of
interfaces.C.
Ada have moved on to Adadll.adb  this one uses the elementary
functions. and I have added. ada.numerics.elementary_functions; on the
inherit clause in the ads file. when I try to spark then I get an error
when I try to spark the ads file again.


           Examining the specification of package Elementary_Functions
...

   1  package Ada.Numerics.Elementary_Functions is
                  ^
***        Semantic Error    :  1: The identifier Numerics is either
undeclared
or
           not visible at this point.

           Examining the specification of package Adadll ...

   4  --#inherit System, Interfaces.C,
Ada.Numerics.Elementary_Functions;
                                           ^
***        Semantic Error    :  1: The identifier Numerics is either
undeclared
or
           not visible at this point.

 130  end Adadll;

---        Warning           : 10: The private part of package Adadll
is hidden
-
           hidden text is ignored by the SPARK Examiner.

           Generating listing file ADADLL.LST ...

           Generating report file ...

Ive added

Ada.Numerics specification is in ada-numerics.ads
Ada.Numerics.Elementary_Functions specification is in
ada-numerics-elementary_functions.ads

in my Index file where ada-numerics.ads is an empty

package ada.numerics is
end package;

Ada.numerics.elementarty_functions contains all the functions I use
like Cos,Sin and Atan.

could some one help me please?




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-23  9:48                 ` ich_bin_elvis
@ 2005-05-23 13:30                   ` JP Thornley
  2005-05-23 15:10                     ` JP Thornley
  0 siblings, 1 reply; 19+ messages in thread
From: JP Thornley @ 2005-05-23 13:30 UTC (permalink / raw)


In article <1116841716.694148.260010@g43g2000cwa.googlegroups.com>, 
ich_bin_elvis@hotmail.com writes
>           Examining the specification of package Elementary_Functions
>...
>
>   1  package Ada.Numerics.Elementary_Functions is
>                  ^
>***        Semantic Error    :  1: The identifier Numerics is either
>undeclared
>or
>           not visible at this point.

One of the more unexpected rules in SPARK is that a child package has to 
explicitly inherit its parent (although no with clause is required).

Add
--# inherit Ada.Numerics;
to the Elementary_Functions child and you should be OK.

Cheers,

Phil

-- 
JP Thornley



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-23 13:30                   ` JP Thornley
@ 2005-05-23 15:10                     ` JP Thornley
  2005-05-24  8:57                       ` ich_bin_elvis
  0 siblings, 1 reply; 19+ messages in thread
From: JP Thornley @ 2005-05-23 15:10 UTC (permalink / raw)


In article <jzj4YsA$rdkCJw85@diphi.demon.co.uk>, JP Thornley 
<jpt@diphi.demon.co.uk> writes
>One of the more unexpected rules in SPARK is that a child package has 
>to explicitly inherit its parent (although no with clause is required).
>
>Add
>--# inherit Ada.Numerics;
>to the Elementary_Functions child and you should be OK.
(Sorry about following up my own post...) but I've just realised that if 
both specifications are in the same file then that will pass the 
Examiner without an inherit clause.

I don't know whether this is intended behaviour, or an undocumented 
feature ;-)

Cheers,

Phil
-- 
JP Thornley



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-23 15:10                     ` JP Thornley
@ 2005-05-24  8:57                       ` ich_bin_elvis
  2005-05-24 10:36                         ` JP Thornley
  0 siblings, 1 reply; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-24  8:57 UTC (permalink / raw)


Got all the shadows to work now, I hided the DLLmain in procedure since
this one had some types that I had difficulties to get thru the
examiner. but now im left with an proofing annaion I don't know how to
work around.
Ads file:

function Distance (
         X1,
         Y1,
         X2,
      Y2 : in     Float)
      return Float;
      --# return Ada.Numerics.Elementary_Functions.Sqrt(((X2 - X1)
**2),((Y2-Y1)**2));

If i understand the error right it only wan't to parameters an now i
have to many paranteces, but how do I make an temporary value I can use
insead of the expressions I have.

Regards
Ronny




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-24  8:57                       ` ich_bin_elvis
@ 2005-05-24 10:36                         ` JP Thornley
  2005-05-24 20:34                           ` ich_bin_elvis
  0 siblings, 1 reply; 19+ messages in thread
From: JP Thornley @ 2005-05-24 10:36 UTC (permalink / raw)


In article <1116925072.146066.235050@g49g2000cwa.googlegroups.com>, 
ich_bin_elvis@hotmail.com writes
>      --# return Ada.Numerics.Elementary_Functions.Sqrt(((X2 - X1)
>**2),((Y2-Y1)**2));
>
>If i understand the error right it only wan't to parameters an now i
>have to many paranteces, but how do I make an temporary value I can use
>insead of the expressions I have.
Well, you've put two parameters in for a function that usually only has 
one.

Perhaps that comma should be a '+'?

Cheers

Phil
-- 
JP Thornley



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-24 10:36                         ` JP Thornley
@ 2005-05-24 20:34                           ` ich_bin_elvis
  2005-05-25  7:54                             ` JP Thornley
  0 siblings, 1 reply; 19+ messages in thread
From: ich_bin_elvis @ 2005-05-24 20:34 UTC (permalink / raw)


You were corret about the above my fault so thanks for seeing that. One
more question and I hope this is the last for my concern for awhile.
Pragma Import is it okay to use that or is it best to use --#hide

procedure AdaInit;
   pragma Import (C, AdaInit, "adainit");
   --  initialize Ada runtime library

   procedure AdaFinal;
   pragma Import (C, AdaFinal, "adafinal");
   --  finalize Ada runtime library

adainit and adafinal is not in the adb file since those are imported so
I get an error. what is done in the real world concerning pragma
imports?? pragma export is ingored by the examiner but this is not the
case for ada import

Ronny




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SPARK and Interfaces.C
  2005-05-24 20:34                           ` ich_bin_elvis
@ 2005-05-25  7:54                             ` JP Thornley
  0 siblings, 0 replies; 19+ messages in thread
From: JP Thornley @ 2005-05-25  7:54 UTC (permalink / raw)


In article <1116966852.991519.250200@g43g2000cwa.googlegroups.com>, 
ich_bin_elvis@hotmail.com writes
>You were corret about the above my fault so thanks for seeing that. One
>more question and I hope this is the last for my concern for awhile.
>Pragma Import is it okay to use that or is it best to use --#hide
>
>procedure AdaInit;
>   pragma Import (C, AdaInit, "adainit");
>   --  initialize Ada runtime library
>
>   procedure AdaFinal;
>   pragma Import (C, AdaFinal, "adafinal");
>   --  finalize Ada runtime library
>
>adainit and adafinal is not in the adb file since those are imported so
>I get an error. what is done in the real world concerning pragma
>imports?? pragma export is ingored by the examiner but this is not the
>case for ada import
I don't think that there is a universal best answer for this sort of 
question - it all depends on what level of confidence you require for 
the software and how you can get that confidence at minimum cost.

Clearly you are developing a system with some non-SPARK components, and 
so you need to think about how you are going to get the same level of 
confidence in that software as you are getting with the SPARK 
components. You need to identify the SPARK boundary - i.e. what parts of 
the system will be SPARK, and analysable by the tools and what parts 
will be non-SPARK and so require analysis by other means.

You should define the SPARK boundary so that you get the maximum 
confidence in the complete system for the effort that you have available 
(which isn't always achieved by getting as much as possible into SPARK.)

So the answer is to look at the options and pick the one that suits your 
situation.

Cheers,

Phil
-- 
JP Thornley



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2005-05-25  7:54 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-13 17:34 SPARK and Interfaces.C ich_bin_elvis
2005-05-13 19:40 ` JP Thornley
2005-05-14 12:15   ` Rod Chapman
2005-05-14 13:31     ` Martin Dowie
2005-05-14 15:41       ` Rod Chapman
2005-05-17 10:55     ` ich_bin_elvis
2005-05-17 14:40       ` Rod Chapman
2005-05-19  8:12         ` ich_bin_elvis
2005-05-19  8:46         ` ich_bin_elvis
2005-05-19  9:01           ` Rod Chapman
2005-05-19 10:25             ` ich_bin_elvis
2005-05-21 22:52               ` JP Thornley
2005-05-23  9:48                 ` ich_bin_elvis
2005-05-23 13:30                   ` JP Thornley
2005-05-23 15:10                     ` JP Thornley
2005-05-24  8:57                       ` ich_bin_elvis
2005-05-24 10:36                         ` JP Thornley
2005-05-24 20:34                           ` ich_bin_elvis
2005-05-25  7:54                             ` JP Thornley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox