dmd 2.029 release

grauzone none at example.net
Fri Apr 24 09:21:13 PDT 2009


Andrei Alexandrescu wrote:
> grauzone wrote:
>> Simen Kjaeraas wrote:
>>> Do note that I might have misinterpreted it all, as Andrei's code 
>>> would not do what I have outlined above, I only feel it makes the 
>>> most sense.
>>
>> Yeah OK, but what about virtual functions? Not having it virtual is a 
>> real disadvantage, because subclass-parts aren't automatically dumped.
> 
> Streaming out is a virtual function that takes a classic interface 
> object. (I explained that in two posts.)

There were a lot of posts in this thread. From what I've gathered, what 
you said wasn't really concrete. Not as concrete as the sink proposals.

>> What exactly is R, and why is it simpler than a Sink delegate? A Sink 
>> delegate is as simple as it gets, and what else than a string do you 
>> want to output? (Hint: this is probably not supposed to be a 
>> serialization framework.)
> 
> It is simpler than a Sink delegate because the delegate is not simple; 
> it's simplistic. You can't use std.algorithm with a delegate, it only 
> accepts one type (meaning it is very inefficient if you have multiple 
> types to output) - it's essentially a non-design.

At some point, you need to format it to a string anyway. And it's 
probably not favorable to move that code into some deeply buried library 
code, because then you don't have full control over formatting. Anyway, 
I don't quite understand what you want to do. We were talking abou 
improving toString, right?

>> One thing that I could imagine that put() automatically takes care of 
>> formatting various data types into a string. Okay, where can I pass 
>> format specifiers? What if put() can't deal with the type? Or does it 
>> call std.string.format() anyway? Then why the indirection through the 
>> string? Why not call format() directly? (Yes, format() needs to be 
>> able to output using a sink instead of returning a string.)
> 
> I'd spend more time on explaining that but I fear you want more to 
> convince yourself and others that output streams are no good and that 
> your non-design is simpler, than actually getting answers to your 
> questions.

It's not my design, and I didn't even come up with that proposal. Come 
on, I know my tone and my posts is bitchy as hell, but flaming is not 
really what I'm up to.

>> Oh by the way, unlike a weird template, sink works with virtual 
>> methods, too.
>>
>> I have the impression Andrei wants to cast everything into ranges 
>> instead of adhering to KISS.
> 
> I want to adhere to KISS, and therefore I want to support output ranges 
> with e.g. strings and files. If you don't take the time to look at 
> ranges as you yourself said, then why do you spend time commenting on 
> them? Shouldn't things go the other way?

Oh, I look at the Phobos docs as it seems necessary. But I still might 
not know to the fullest how the pieces fit together and so on.

> 
> Andrei


More information about the Digitalmars-d-announce mailing list