October 07, 2015
On Wednesday, 7 October 2015 at 14:59:37 UTC, Johannes Pfau wrote:
> I think it wouldn't be hard to implement a solution. I guess it's mainly a political discussion :-(

It should be fairly easy to implement a solution - especially if it's simply marking the static constructor to say that it doesn't depend on any other module's static constructor having run (obviously, it gets far more complicated if you try and make it so that the programmer indicates which modules it doesn't depend on in order to have other cyclic dependencies caught if they creep into the code). druntime just needs to know that the order of that static constructor doesn't matter with regards to the others when it's deciding the order to run them in. I expect that actually making the change to druntime would be pretty simple.

The core problem is definitely that Walter objects to the idea (IIRC on the grounds that it's too easy for circular dependencies to creep in later and then not be caught). If he agreed to it, it could probably be implemented fairly quickly.

- Jonathan M Davis
October 07, 2015
On Wednesday, 7 October 2015 at 08:27:18 UTC, Kagamin wrote:
> On Tuesday, 6 October 2015 at 16:38:06 UTC, Jan Johansson wrote:
>> I know about that too, the KnownType is applied to types that the DataContractSerializer (not the XmlSerializer) must be aware of before it can serialize the type (you enlist the type to the serializer). Thanks.
>
> For a general purpose serialization it can make sense to support arbitrary types, but WCF is a communication technology that warrants contracts including and especially web-services that usually require full contract to be expressed in WSDL in order to be cross-platform.

Yepp, that's the point of SOA :-) We are in agreement.
October 08, 2015
On Wednesday, 7 October 2015 at 16:09:37 UTC, Jan Johansson wrote:
> Yepp, that's the point of SOA :-) We are in agreement.

:) Since the contract is known upfront, it can be processed at compile time and D can do it. C# has to do it at run time because it can't do a thing at compile time.
1 2 3 4 5 6 7
Next ›   Last »