comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Is this expected behavior or not
Date: Tue, 26 Mar 2013 16:31:35 -0500
Date: 2013-03-26T16:31:35-05:00	[thread overview]
Message-ID: <kit43q$mj1$1@munin.nbi.dk> (raw)
In-Reply-To: 1u72u7h5j4jg3$.wlxmaltyzqik.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:1u72u7h5j4jg3$.wlxmaltyzqik.dlg@40tude.net...
> On Mon, 25 Mar 2013 17:58:26 -0500, Randy Brukardt wrote:
>
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>> news:a96esjwiniqy$.op3wh7x9wrsl.dlg@40tude.net...
>>> On Fri, 22 Mar 2013 21:33:02 -0500, Randy Brukardt wrote:
>> ...
>>>> That doesn't necessarily mean copying of the data. If the designer
>>>> of the abstraction, have put in enough smarts to share 
>>>> representations --
>>>> after all,
>>>
>>> You should break your mental block. No shared representation, I want
>>> different representations for different string types.
>>
>> I was talking about sharing representations of *different* objects of the
>> same string type (for instance, a string variable and a slice of that
>> variable - that case, sharing the data might be preferred to copying it).
>
> OK, the representation would be for type-specific string objects:
>
>   bounds + pointer
>
> and for class-wide string objects:
>
>   tag + bounds + pointer

Sure, but irrelevant. The question is whether slicing copies the data or 
not. If it is a new object, the data must be copied logically, but my point 
was that it would be possible for an abstraction to defer actually making a 
copy until an assignment is actually done. It's still a copy.

...
>> Unifying old junk it's possible without serious breakage of existing 
>> code,
>> which is intolerable.
>
> Why is it junk? There is nothing wrong with String, Wide_String,
> Wide_Wide_String. They should stay.

They're junk because they can't be unified without serious breakage of 
existing code. Since we're not willing to break those eggs, we have to start 
over.

> Unbounded_String is indeed junk, but after adding an array interface to it
> = putting it into the same hierarchy it would perfectly serve the purpose.

That's the idea, but of course that requires starting over with it.

>>> The way is to allow untagged T to have T'Class. This will preserve all
>>> semantics and all existing representations. Not even an explicit root 
>>> type
>>> is needed, e.g. for char_array. The technique makes it possible to have
>>> ad-hoc supertypes, which would serve the purpose, e.g. you would define
>>> Put_Line on such a supertype and it will work for both String and
>>> char_array. Not a line changed in Standard or Interfaces.C.
>>
>> Sounds great, but it won't work in practice. You'd introduce a lot of
>> ambiguities and break existing code that way.
>
> Why? The effect is limited strictly to T'Class objects, which presently do
> not exist.

Not true, as I explained later in my note. The possibility of dispatching 
changes a lot of rules about inheritance and assignment.

>> (That's why
>> Ada.Strings.Unbounded_String doesn't have string literals; we couldn't 
>> find
>> any way to add them without making most existing code using the package
>> ambiguous.)
>
> This is a different problem. I think the model is that string and other
> literals would become primitive operations. Upon inheritance in the class
> sense, they should be overridden or else dropped. There should be some
> syntax invented for handling literals, e.g, some factory operation etc. An
> alternative is having literals class-wide, which roughly corresponds to
> existing Universal_String approach. In both cases you might wish to add
> some preference rules [we already have some] to keep it compatible and
> slash ambiguities. It would be worth to consider a possibility for the 
> user
> to control such preference rules and to have user-defined literals in
> general.

But that's not the problem; that was what we wanted to do. The problem is 
that Unbounded string has two versions of most operations, one that takes 
String and one that takes Unbounded_String. If you gave literals to 
Unbounded_String, all of the operations which took both would be ambiguous 
for literals unless you qualified them. Which defeats the purpose.

We could solve the problem by getting rid of all of the routines that take 
String parameters, but that of course woulc break any code that passed 
slices or objects of type String.

So the only fix here is to start over with a new package, keeping the old 
one around for existing code.

>> Secondly, the inheritance and overriding of untagged types is much looser
>> than the that of tagged types; you don't even have to use the same 
>> parameter
>> modes.
>
> Yes, but untagged types in the model I have in mind will remain 
> independent
> types, they would not suddenly become Ada-subtypes, if you mean that. So
>
>   subtype S is String ...;
>   type Q is new String ...;
>
> would have different semantics, just like they do for tagged types 
> already.
>
>> And dispatching is incompatible with untagged types, simply because Ada 
>> 83
>> got inheritance horribly wrong, and we're stuck with that.
>
> I disagree. It seems fully compatible with Ada 83 because T'Class would be
> a distinct type with objects of that type. It is orthogonal to
> Ada-subtypes. You will not dispatch on Positive vs. Integer, these will
> reman specific [sub]types. In order to dispatch you will need a class-wide
> object of the type Integer'Class (which will be strictly same as
> Positive'Class, except, possibly, the constraint). That object will have
> the representation tag + value. For Integer and Positive objects nothing
> changes. We might consider redefining some existing operations to become
> class-wide in some arguments, but that is another story.

You missed the point altogether. You can't dispatch in general on untagged 
types because overriding operations may have different modes and subtypes 
for the parameters. So what *is* the profile of the operation for T'Class, 
and how can it work?

Consider:

     Type Int is range 1 .. 10;
     procedure Op (A, B : in Int);

     Type Der is new Int;
     overriding
     procedure Op (A : in out Der; B : in Der);

     Obj : Int'Class := Der'(1);
     Op (A => 1, B => Obj); -- Legal??

Here, we're dispatching to a routine with an "in out" parameter, passing a 
literal (because the profile of Op for Int'Class has an "in" parameter). Is 
this legal? If so, what does it mean? If not, how does that work if Der is 
added to the program later during maintenance.

And if you say that Der cannot override Op this way, you're now incompatible 
with Ada 83- Ada 2012.

>>>>> You have a very specific use case in mind, namely containers. There is 
>>>>> a
>>>>> whole world outside that, for which what you said is untrue, e.g. for
>>>>> smart pointers. The thing not only exposes access, it also exposes the
>>>>> target type.
>>>>
>>>> You have to expose the target type in order to have strong typing. How
>>>> could you hide it and still make type checks?
>>>
>>> Why should target type be public?
>>
>> How do you enforce strong typing without that being the case? If you 
>> don't
>> know what the target is, how do you determine how the resulting object 
>> can
>> be used?
>
> Target and handle types usually implement some public interface. E.g.
>
>   type File_Access is limited interface;
>   procedure Write (File : in out File_Access; Data : ...) is abstract;
>   ...
>
> Somewhere else
>
>   type File_Descriptor is ... limited ... and File_Access ...;
>
> Somewhere else
>
>   type File_Handle is ... and File_Access ...;

An interface can't have "..." as the parameter type for Write; there has to 
be something there. And that's the target type! Say again how it is that you 
are not exposing this type??

...
>>>> That's my point about static analysis. Such a tool should be able to 
>>>> prove
>>>> that the majority of run-time checks can't happen, and give you a list 
>>>> of
>>>> those remaining.
>>>
>>> I don't need any list. Should I send it to my customers? I need the
>>> program fail to compile when writing analogue input.
>>
>> Treat the list as failures if you must, and insist that it be empty 
>> before
>> shipping.
>
> So, I need an AI system to parse compiler messages (of various vendors) on
> top?

Huh? Why would you "parse" them? It's a binary choice (just as it is with 
ACATS testing): either require them to be removed or ignored. You only have 
to decide which classes of warnings you require to be removed from your 
code. For that, you have to understand your tools, sure, but if you don't 
understand your tools you are never going to get anywhere. A programming 
language definition is only a small part of getting programming right; it 
could never be more than 10% or so; the tools used provide another 20-30%. 
The rest is on the programmer's skills (to do good things like decrease 
coupling).

                                    Randy.




  reply	other threads:[~2013-03-26 21:31 UTC|newest]

Thread overview: 242+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-11 19:42 Is this expected behavior or not Anh Vo
2013-03-11 20:01 ` Robert A Duff
2013-03-11 20:41   ` Shark8
2013-03-12  9:27     ` Dmitry A. Kazakov
2013-03-12 17:19       ` Robert A Duff
2013-03-12 17:42         ` Dmitry A. Kazakov
2013-03-12 18:04           ` Georg Bauhaus
2013-03-12 18:21             ` Dmitry A. Kazakov
2013-03-12 22:23               ` Georg Bauhaus
2013-03-13  8:49                 ` Dmitry A. Kazakov
2013-03-13  9:45                   ` J-P. Rosen
2013-03-13 13:31                     ` Dmitry A. Kazakov
2013-03-13 14:34                       ` Georg Bauhaus
2013-03-13 15:51                         ` Dmitry A. Kazakov
2013-03-13 16:56                           ` Jeffrey Carter
2013-03-13 17:09                             ` Shark8
2013-03-13 17:32                           ` Georg Bauhaus
2013-03-13 19:28                             ` Dmitry A. Kazakov
2013-03-13 21:01                               ` Randy Brukardt
2013-03-13 21:18                                 ` Dmitry A. Kazakov
2013-03-14 21:51                                   ` Randy Brukardt
2013-03-15  1:10                                     ` Adam Beneschan
2013-03-15 21:22                                       ` Randy Brukardt
2013-03-15  9:20                                     ` Dmitry A. Kazakov
2013-03-15 21:43                                       ` Randy Brukardt
2013-03-16  7:56                                         ` Dmitry A. Kazakov
2013-03-18 22:52                                           ` Randy Brukardt
2013-03-19 10:32                                             ` Dmitry A. Kazakov
2013-03-13 21:37                               ` Georg Bauhaus
2013-03-14 11:18                                 ` Dmitry A. Kazakov
2013-03-14 12:37                                   ` Georg Bauhaus
2013-03-14 14:26                                     ` Dmitry A. Kazakov
2013-03-14 14:57                                       ` Georg Bauhaus
2013-03-14 15:51                                         ` Anh Vo
2013-03-14 16:21                                       ` J-P. Rosen
2013-03-14 17:29                                         ` Dmitry A. Kazakov
2013-03-14 18:16                                           ` Georg Bauhaus
2013-03-15  9:33                                             ` Dmitry A. Kazakov
2013-03-15 10:05                                               ` Georg Bauhaus
2013-03-15 11:15                                                 ` Dmitry A. Kazakov
2013-03-14 22:12                                           ` Randy Brukardt
2013-03-15  9:46                                             ` Dmitry A. Kazakov
     [not found]                                             ` <ewe0v3ck1xdo$.e8rtuof27ke6$.dlg@40tude.net >
2013-03-15 21:17                                               ` Randy Brukardt
2013-03-16  7:51                                                 ` Dmitry A. Kazakov
2013-03-16  9:30                                                   ` Georg Bauhaus
2013-03-16 10:27                                                     ` Dmitry A. Kazakov
2013-03-16 11:37                                                       ` Georg Bauhaus
2013-03-16 13:04                                                         ` Dmitry A. Kazakov
2013-03-16 16:10                                                           ` Georg Bauhaus
2013-03-16 17:47                                                             ` Dmitry A. Kazakov
2013-03-18 22:36                                                   ` Randy Brukardt
2013-03-19 10:14                                                     ` Dmitry A. Kazakov
2013-03-19 14:23                                                       ` Georg Bauhaus
2013-03-19 15:13                                                         ` Dmitry A. Kazakov
2013-03-19 16:52                                                           ` Georg Bauhaus
2013-03-19 17:31                                                             ` Dmitry A. Kazakov
2013-03-19 20:07                                                               ` J-P. Rosen
2013-03-19 20:45                                                                 ` Dmitry A. Kazakov
2013-03-19 21:59                                                                   ` J-P. Rosen
2013-03-20 10:04                                                                     ` Dmitry A. Kazakov
2013-03-20 11:01                                                                       ` J-P. Rosen
2013-03-20 13:21                                                                         ` Dmitry A. Kazakov
2013-03-20 23:31                                                                           ` Randy Brukardt
2013-03-21  9:08                                                                             ` Dmitry A. Kazakov
2013-03-22 10:23                                                                           ` J-P. Rosen
2013-03-22 14:54                                                                             ` Dmitry A. Kazakov
2013-03-22 22:18                                                                               ` J-P. Rosen
2013-03-22 23:05                                                                                 ` Shark8
2013-03-23  8:32                                                                                   ` Dmitry A. Kazakov
2013-03-23  8:14                                                                                 ` Dmitry A. Kazakov
2013-03-23  9:02                                                                                   ` J-P. Rosen
2013-03-23 10:19                                                                                     ` Dmitry A. Kazakov
2013-03-23 21:53                                                                                       ` J-P. Rosen
2013-03-24  8:17                                                                                         ` Dmitry A. Kazakov
2013-03-24  8:27                                                                                           ` J-P. Rosen
2013-03-24 13:01                                                                                             ` AdaMagica
2013-03-25  8:32                                                                                             ` Dmitry A. Kazakov
2013-03-25  9:19                                                                                               ` Georg Bauhaus
2013-03-25 10:08                                                                                                 ` Dmitry A. Kazakov
2013-03-19 21:37                                                       ` Randy Brukardt
2013-03-20  8:48                                                         ` Dmitry A. Kazakov
2013-03-14 16:22                                       ` Shark8
2013-03-14 17:08                                         ` Dmitry A. Kazakov
2013-03-13 22:34                               ` Robert A Duff
2013-03-14  9:09                                 ` Dmitry A. Kazakov
2013-03-14  9:27                                   ` Georg Bauhaus
2013-03-13 17:05                         ` Shark8
2013-03-13 17:45                           ` Simon Wright
2013-03-13 19:37                             ` Dmitry A. Kazakov
2013-03-13 19:54                               ` Simon Wright
2013-03-13 20:54                                 ` Dmitry A. Kazakov
2013-03-13 21:28                                   ` Simon Wright
2013-03-14  9:16                                     ` Dmitry A. Kazakov
2013-03-14 16:42                                       ` Simon Wright
2013-03-14 17:05                                         ` Dmitry A. Kazakov
2013-03-13 22:12                                   ` Robert A Duff
2013-03-13 21:47                                 ` Jeffrey Carter
2013-03-13 21:09                               ` Randy Brukardt
2013-03-13 22:48                                 ` Shark8
2013-03-14 22:01                                   ` Randy Brukardt
2013-03-15  3:27                                     ` Shark8
2013-03-15 21:05                                       ` Randy Brukardt
2013-03-15 21:46                                         ` Robert A Duff
2013-03-16  5:52                                           ` Shark8
2013-03-16  7:41                                             ` Dmitry A. Kazakov
2013-03-16 16:55                                               ` Shark8
2013-03-16 17:36                                                 ` Dmitry A. Kazakov
2013-03-16 21:51                                                   ` Shark8
2013-03-17  9:36                                                     ` Dmitry A. Kazakov
2013-03-18 23:13                                                       ` Randy Brukardt
2013-03-19  9:12                                                         ` Dmitry A. Kazakov
2013-03-19 21:19                                                           ` Randy Brukardt
2013-03-20 11:21                                                             ` Dmitry A. Kazakov
2013-03-20 23:57                                                               ` Randy Brukardt
2013-03-21 10:30                                                                 ` Dmitry A. Kazakov
2013-03-21 23:27                                                                   ` Randy Brukardt
2013-03-22 16:07                                                                     ` Dmitry A. Kazakov
2013-03-22 20:10                                                                       ` Shark8
2013-03-22 20:51                                                                         ` Dmitry A. Kazakov
2013-03-22 23:34                                                                           ` Robert A Duff
2013-03-23  8:41                                                                             ` Dmitry A. Kazakov
2013-03-23  2:29                                                                           ` Nasser M. Abbasi
2013-03-23  2:33                                                                       ` Randy Brukardt
2013-03-23  4:44                                                                         ` Shark8
2013-03-25 22:24                                                                           ` Randy Brukardt
2013-03-26  1:15                                                                             ` Shark8
2013-03-23  9:53                                                                         ` Dmitry A. Kazakov
2013-03-25 22:58                                                                           ` Randy Brukardt
2013-03-26 10:52                                                                             ` Dmitry A. Kazakov
2013-03-26 21:31                                                                               ` Randy Brukardt [this message]
2013-03-27  9:37                                                                                 ` Dmitry A. Kazakov
2013-03-27 19:42                                                                                   ` Randy Brukardt
2013-03-28 13:50                                                                                     ` Dmitry A. Kazakov
2013-03-28 21:55                                                                                       ` Randy Brukardt
2013-03-29 12:26                                                                                         ` Dmitry A. Kazakov
2013-03-30  0:49                                                                                           ` Randy Brukardt
2013-03-30  2:55                                                                                             ` Shark8
2013-04-01 23:43                                                                                               ` Messaging question [was: Is this expected behavior or not] Randy Brukardt
2013-03-30  9:20                                                                                             ` Is this expected behavior or not Dmitry A. Kazakov
2013-04-02  0:40                                                                                               ` Randy Brukardt
2013-04-02  8:44                                                                                                 ` Dmitry A. Kazakov
2013-04-02 21:54                                                                                                   ` Randy Brukardt
2013-04-03  8:54                                                                                                     ` Dmitry A. Kazakov
2013-04-04  0:04                                                                                                       ` Randy Brukardt
2013-04-04  8:26                                                                                                         ` Dmitry A. Kazakov
2013-04-04 20:31                                                                                                           ` Randy Brukardt
2013-04-05  9:57                                                                                                             ` Dmitry A. Kazakov
2013-04-05 12:45                                                                                                               ` Stefan.Lucks
2013-04-05 12:49                                                                                                                 ` Stefan.Lucks
2013-04-05 14:19                                                                                                                   ` Dmitry A. Kazakov
2013-04-05 14:44                                                                                                                     ` Stefan.Lucks
2013-04-05 16:11                                                                                                                       ` Dmitry A. Kazakov
2013-04-05 19:02                                                                                                                         ` Stefan.Lucks
2013-04-05 19:34                                                                                                                           ` Dmitry A. Kazakov
2013-04-05 20:23                                                                                                                             ` Stefan.Lucks
2013-04-06  7:39                                                                                                                               ` Dmitry A. Kazakov
2013-04-07 18:10                                                                                                                                 ` Stefan.Lucks
2013-04-07 18:23                                                                                                                                   ` Dmitry A. Kazakov
2013-04-05 20:38                                                                                                                             ` Stefan.Lucks
2013-04-05 14:36                                                                                                                 ` Dmitry A. Kazakov
2013-04-05 15:16                                                                                                                   ` Stefan.Lucks
2013-04-05 16:29                                                                                                                     ` Dmitry A. Kazakov
2013-04-05 19:55                                                                                                                       ` Stefan.Lucks
2013-04-06  1:45                                                                                                                         ` Randy Brukardt
2013-04-06  7:54                                                                                                                         ` Dmitry A. Kazakov
2013-04-07 18:17                                                                                                                           ` Stefan.Lucks
2013-04-07 18:28                                                                                                                             ` Dmitry A. Kazakov
2013-04-08  7:48                                                                                                                               ` Stefan.Lucks
2013-04-08  8:59                                                                                                                                 ` Dmitry A. Kazakov
2013-04-08 15:35                                                                                                                                   ` Stefan.Lucks
2013-04-08 19:08                                                                                                                                     ` Dmitry A. Kazakov
2013-04-09  7:18                                                                                                                                       ` Stefan.Lucks
2013-04-09  8:17                                                                                                                                         ` Dmitry A. Kazakov
2013-04-09 15:20                                                                                                                                           ` Stefan.Lucks
2013-04-09 16:15                                                                                                                                             ` Dmitry A. Kazakov
2013-04-09 22:59                                                                                                                                             ` Randy Brukardt
2013-04-09 22:57                                                                                                                                           ` Randy Brukardt
2013-04-10  7:30                                                                                                                                             ` Dmitry A. Kazakov
2013-04-10  8:00                                                                                                                                             ` Root_String'Class? (Was: Is this expected behavior or not) Jacob Sparre Andersen
2013-04-10 21:48                                                                                                                                               ` Randy Brukardt
2013-04-09 22:53                                                                                                                                     ` Is this expected behavior or not Randy Brukardt
2013-04-09 22:45                                                                                                                                   ` Randy Brukardt
2013-04-10  7:37                                                                                                                                     ` Dmitry A. Kazakov
2013-04-10 22:15                                                                                                                                       ` Randy Brukardt
2013-04-11  7:33                                                                                                                                         ` Dmitry A. Kazakov
2013-04-11 22:37                                                                                                                                           ` Randy Brukardt
2013-04-12  7:47                                                                                                                                             ` Dmitry A. Kazakov
2013-04-13  0:26                                                                                                                                               ` Randy Brukardt
2013-04-13  0:35                                                                                                                                               ` Randy Brukardt
2013-04-13  7:07                                                                                                                                                 ` Dmitry A. Kazakov
2013-04-06  1:38                                                                                                                       ` Randy Brukardt
2013-04-06  1:20                                                                                                               ` Randy Brukardt
2013-04-06  5:20                                                                                                                 ` Usefulness of OOP (was Is this expected behavior or not) J-P. Rosen
2013-04-06 10:31                                                                                                                   ` Dmitry A. Kazakov
2013-04-06 18:43                                                                                                                     ` Georg Bauhaus
2013-04-07  7:00                                                                                                                 ` Is this expected behavior or not Dmitry A. Kazakov
2013-04-09 23:24                                                                                                                   ` Randy Brukardt
2013-04-10  8:20                                                                                                                     ` Dmitry A. Kazakov
2013-04-10 22:07                                                                                                                       ` Randy Brukardt
2013-04-11  7:59                                                                                                                         ` Dmitry A. Kazakov
2013-04-11 11:10                                                                                                                           ` Georg Bauhaus
2013-04-11 13:49                                                                                                                           ` J-P. Rosen
2013-04-11 15:07                                                                                                                             ` Dmitry A. Kazakov
2013-04-12  4:39                                                                                                                               ` J-P. Rosen
2013-04-12  8:00                                                                                                                                 ` Dmitry A. Kazakov
2013-04-12  9:09                                                                                                                                   ` J-P. Rosen
2013-04-12 17:00                                                                                                                                     ` Jeffrey Carter
2013-04-11 23:02                                                                                                                           ` Randy Brukardt
2013-04-12  8:17                                                                                                                             ` Dmitry A. Kazakov
2013-04-12  9:41                                                                                                                               ` Georg Bauhaus
2013-04-12 11:46                                                                                                                                 ` Dmitry A. Kazakov
2013-04-13 17:38                                                                                                                                   ` Georg Bauhaus
2013-04-13  0:22                                                                                                                               ` Randy Brukardt
2013-04-13  6:49                                                                                                                                 ` Dmitry A. Kazakov
2013-04-16  1:41                                                                                                                                   ` Randy Brukardt
2013-04-16  8:03                                                                                                                                     ` Dmitry A. Kazakov
2013-04-16 22:57                                                                                                                                       ` Randy Brukardt
2013-04-17  7:18                                                                                                                                         ` Dmitry A. Kazakov
2013-04-17  9:23                                                                                                                                           ` Georg Bauhaus
2013-04-17  9:57                                                                                                                                             ` Dmitry A. Kazakov
2013-04-17 19:38                                                                                                                                               ` Georg Bauhaus
2013-04-18 11:52                                                                                                                                                 ` Dmitry A. Kazakov
2013-04-19  2:16                                                                                                                                                   ` Randy Brukardt
2013-04-19  7:39                                                                                                                                                     ` Dmitry A. Kazakov
2013-04-19  9:07                                                                                                                                                   ` Georg Bauhaus
2013-04-19  9:11                                                                                                                                                     ` Georg Bauhaus
2013-04-19 12:09                                                                                                                                                     ` Dmitry A. Kazakov
2013-04-19 22:14                                                                                                                                                       ` Randy Brukardt
2013-04-20  6:39                                                                                                                                                         ` Dmitry A. Kazakov
2013-03-19  0:38                                                       ` Shark8
2013-03-19  8:53                                                         ` Dmitry A. Kazakov
2013-03-16 20:45                                             ` Robert A Duff
2013-03-16  9:29                                           ` Georg Bauhaus
2013-03-16 20:49                                             ` Robert A Duff
2013-03-14 22:41                             ` Florian Weimer
2013-03-12 23:21           ` Randy Brukardt
2013-03-12 23:14       ` Randy Brukardt
2013-03-11 20:43   ` Anh Vo
2013-03-11 22:32     ` Randy Brukardt
2013-03-11 22:38     ` Robert A Duff
2013-03-12  9:17   ` Dmitry A. Kazakov
2013-03-13  0:10     ` Shark8
replies disabled

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