November 23, 2005
"Don Clugston" <dac@nospam.com.au> wrote in message news:dm1jtv$12ff$1@digitaldaemon.com...
>>>The crucial question is, can the code from Phobos be pulled into Ares, and repackaged as a much better standard library, or are there issues with the licenses? It would just be ridiculous for Ares to reimplement things that are already in Phobos.
>>
>>
>> I think that's what's already been done. I believe Ares is a full replacement for Phobos, including AA and GC.
>
> It's only enough to compile. All the functions like writef(), the string functions, the math functions, io, etc are not in Ares.
>
>> I agree! The wiki's is getting kind-of messy. Of course, anybody can go about and organize stuff. Maybe the official docs should be imported into the wiki and be the unofficial "official doc".
>
> Better I think would be to create a subversion repository (on dsource?)
> and import phobos and the docs into it.
> Then anyone could change it, and if Walter liked any changes, he could
> bless it as official, and someone could update the unofficial phobos with
> the official one every time a release was made. Of course he would have to
> agree to the existence such an unofficial phobos repository.
>
> I just suggest this because it would require no effort from Walter. It would of course be better if there was an official repository.
>
> trunk --- official DMD releases
> branch --- latest unofficial release for Walter to review
> subbranches --- new submissions.
>
> One branch could be called 'Ares' :-) The Ares crowd could fold relevant
> Phobos updates into their branch, instead of needing to reinvent the
> wheel.
> I just hate to see duplicated effort.
That would be an interesting idea; have  ares be the "testbed" for phobos. That way ares would just be phobos-unstable or something like that, and after a period of testing and such a module is put in to phobos.
>
>> I really believe Phobos is pulling D down, rather than pushing it up, which is a real shame. D deserves better.
>
> I couldn't agree more.


November 23, 2005
"Bruno Medeiros" <daiphoenixNO@SPAMlycos.com> wrote in message news:dm1pbf$1528$2@digitaldaemon.com...
> Let me give some of my thoughts on this issue:
>
> I too think good libraries are very important, but I question the need for
> them to be "standard", and by "standard" I mean supervised by the language
> makers, or being part of the language library standard itself. Actually,
> let me refine this statement in two cases:
> One is about libraries about general-purpose stuff, like containers, IO,
> memory, etc., -> yes, those should be in the language standard.

I guess if only the stuff D _really_ needs to be in Phobos, meaning the GC and AA stuff. And one can use the CRT for IO, although it doesn't really show D's strengths.

> But more specific or advanced stuff, like XML, DOM's, HTTP and advanced networking, databases, graphical toolkits, etc., they could well be in seperate libraries, or in a whole seperate high-level library. What I want of such library is that it be consistent, well-structured, etc. and possibly "standard" in the sense that there aren't a slew of different ones to do the same thing, but I don't necessarely want to be the language makers the responsable for such library.

True. They/he has better things to do, I assume. But D definately needs this kind of library. It will open many doors.

> In fact, even for the core library (the general-purpose stuff) Walter's time is very limited, so there's no purpose is just sitting and wishing for such a library to exist. The best we can do is ask to those interested in the D community to help build a good "single" library instead of the slew of stuff we have currently (Phobos, Ares, MinTL, DTL, Mango, etc.), and then maybe someday it would be good enough that it (or parts of it) would be incorporated in the D standard.

It's true that the initiative lies with the community on this one.

L.


November 23, 2005
In article <l7c7o1pobdcq54mjevlncu0qtc0gavq11k@4ax.com>, Chris says...
>
>On Tue, 22 Nov 2005 22:21:40 +0100, Ivan Senji <ivan.senji_REMOVE_@_THIS__gmail.com> wrote:
>
>>Deja Augustine was doing a great job with that, but unfortunatelly he doesn't seem to be working on it any more.
>>
>>Although having a MSIL D compiler would be great. I am often forsed to program in .NET and it would be wonderfull to be able to do that in my favourite language.
>
>I requested (quite politely of course) that Deja Augustine release the source to the D community so we could continue to develop it. Unfortunately I never heard back from him.

I contacted him a while back, and he told me that he lost the source for D.NET. He seemed to be interested in rewriting it (he thought a rewrite would've been a good idea even if he hadn't lost the original source code). As far as I know, he hasn't worked any more on it though. See http://www.prowiki.org/wiki4d/wiki.cgi?DDotNet for more info about D.NET.

I'm sure I still have a copy of a D.NET compiler around somewhere if someone wants to try disassembling and/or reverse engineering it. ;)

jcc7
November 23, 2005
>> As for DWT, DFL: they should both have adopted WTL or Windows
>> Forms, or VCL or something :-)

...

> Of course, rewriting existing libraries in D isn't the only way to go
> about it, and wouldn't be optimal - you end up copying those
> libraries' bugs and inefficiencies. You could start from scratch, as
> Mango did with its XML modules.

I see like three different tacks.

1) We create good os-independent libraries.

2) We write adapters for existing platform specific libraries.

3) Phobos gets some more help from us.

I don't see these as mutually exclusive.

---

As to how we'd get more bang for the brain-cell hours we have, the idea of a repository sounds good to me. The repository could be a place for anything from small single functions that do one thing well, up to largish packages for an application area.

We might decide that anything that gets uploaded into the repository, is implicitly there for any Real Library Developer (think Mango, Ares, Phobos, DWT, whatever), to incorporate into their libraries, as they see fit. And for others just to use in their D code as such.

November 23, 2005
Ivan Senji wrote:
> Sean Kelly wrote:
> 
>> Someone was working on an MSIL compiler for D.  The project was doing pretty well the last time I heard about it, too, though it's been a while since then.
> 
> Deja Augustine was doing a great job with that, but unfortunatelly he doesn't seem to be working on it any more.
> 
> Although having a MSIL D compiler would be great. I am often forsed to program in .NET and it would be wonderfull to be able to do that in my favourite language.

Hmm. I kinda hate the thought of compiling D to MSIL.

Is there a theoretical reason for not having the D program as a native .exe and it using an interface library so it can use all of the .NET APIs?
November 23, 2005
Lionello Lunesu wrote:
> There's no way to convert all the code to D, but it's doable to start
> using a different library for some pieces. I was imagining my own C++
> Phobos to replace all the fopen's and CreateFile's. Not necessarily
> to convert the whole thing to D later, but just to force people to
> use 1 way of doing things. And to clean up, of course.

I can imagine some gc-issues with that tack.

Would it not be better to first have folks do garbage collected C++, and once they're used to that, introduce D as a more productive and pleasant way to develop code?
November 23, 2005
John C wrote:
> "Ivan Senji" <ivan.senji_REMOVE_@_THIS__gmail.com> wrote in message news:dm1e9c$vj6$1@digitaldaemon.com...
> 
>> Don Clugston wrote:
>> 
>>> <rant> I think .NET is a great fraud. There is only *one* .NET
>>> language, it's C#.
>> 
>> What do you mean by this? There are many .NET languages. Any
>> language that conforms to some rules, types and gets translated to
>> MSIL can be a .NET language. Even D could.
> 
> 
> Right - there are dozens of .NET languages. http://www.dotnetpowered.com/languages.aspx. C# was merely the first
> to be designed especially for .NET.
> 
> 
>>> There's only one standard libray -- the C# standard library.
>> 
>> Iz is .NET standard library, and if D had a .NET compiler it would
>> equally be D.NET's std lib.
>> 
>> 
>>> The other languages don't have one. Other languages are supported
>>> only to the extent that they are similar to C#. VB6 was too
>>> different, it got shafted. C++ got a lobotomy, a hack was
>>> required to supported deterministic destruction.
>> 
>> With this I agree, C++.NET is the ugliest thing in the world.
> 
> 
> That's not the case anymore. The new C++/CLI is a vast improvement
> over Managed C++ (although it no longer looks like C++).
> 
> 
>>> The container classes  are pathetic by C++ standards. There's no
>>> support in the IL for 80 bit reals. .NET is C# through and
>>> through. They had an enormous budget, and they abandoned
>>> compatibility with C, with the Windows API, and even the x86 CPU,
>>> they had Java to learn from,
>> 
>> Well in the end .NET code gets just-in-time compiled to WinAPI
>> calls and x86 instructions, there is just one more step in between
>> - MSIL.
>> 
>> 
>>> and the best they could come up with was C# ???? Any idiot can
>>> produce a cleaner language by cutting the stupid bits out of C++,
>>> if you don't mind losing the best bits at the same time.
>> 
>> I agree D is much better, and more powerfull than C#, that is why
>> it would ne so great to have an alternative D(.NET) compiler. Some
>> people like-it-or-not have to program in .NET and D would be IMHO a
>> far better choise than C#.

IF D becomes as universal as we'd like, then unavoidably the day comes when some big-buck company (not Microsoft) starts selling a D.NET compiler. And they'll get filthy rich. Filthy!

Maybe Walter should now copyright everything so that, if that's done, they have to pay him royalties!

(I'm not asking commission for this idea. :-)
November 23, 2005
Lionello Lunesu wrote:
> 
> Seperating the core D stuff from the rest is a good start. And 'atomic' sounds like something that I'd put in a standard library (D has 'synchronized', so something like 'atomic makes sense). By the way, how is 'synchronized' done? Is it also done by the library?

As with a bunch of other built-in functionality, the DMD compiler generates code for this that calls extern (C) functions and such in the 'internal' portion of Phobos--if you do a search for the Windows critical section calls you'll find  the code in question.  I don't really consider this to be a part of the standard library though so much as compiler runtime code, which is why I split it out into a completely different library in Ares.  It is my hope that even if Ares never really makes it, the three library structure it uses will be applied to Phobos.


Sean
November 23, 2005
Lionello Lunesu wrote:
>> Walter's a fantastic language designer and compiler writer, but D
>> would progress much faster if the standard library could be spun
>> off. Even if there was a repository for branches on the library,
>> with Walter retaining the sole authority to merge branches into the
>> trunk. The docs could improve quickly, for a start, instead of
>> wasting effort updating that stupid wiki instead of the real thing.
> 
> I agree! The wiki's is getting kind-of messy. Of course, anybody can
> go about and organize stuff. Maybe the official docs should be
> imported into the wiki and be the unofficial "official doc".

Yes, please!!!!

The docs should be automatically put to the Wiki each time a new version of DMD comes out. Then folks could just look at the Wiki changes to quickly see what's new or what's changed.

Like it is today, no matter how much and often one rereads the docs, there's always _something_ you non't notice, that's been fixed like 6 months ago, and you still don't know. A total waste of everybody's time. It would also reduce static on this forum.


On other pages on the Wiki we could start developing a proper manual!
November 23, 2005
Don Clugston wrote:
> 
> <rant>
>  I think .NET is a great fraud. There is only *one* .NET language, it's C#. There's only one standard libray -- the C# standard library. The other languages don't have one. Other languages are supported only to the extent that they are similar to C#. VB6 was too different, it got shafted. C++ got a lobotomy, a hack was required to supported deterministic destruction. The container classes  are pathetic by C++ standards. There's no support in the IL for 80 bit reals. .NET is C# through and through.
> They had an enormous budget, and they abandoned compatibility with C, with the Windows API, and even the x86 CPU, they had Java to learn from, and the best they could come up with was C# ???? Any idiot can produce a cleaner language by cutting the stupid bits out of C++, if you don't mind losing the best bits at the same time.
> </rant>

I agree completely.  However, the .NET library is still the best library MS has produced to date.  It's a vast improvement over MFC, for example.  And C++/CLI, unlike other .NET languages, allows managed and unmanaged code to be quite easily intermixed.  I do my utmost to avoid front-end programming tasks, but if I ever had to I would write a thin layer in C++ .NET and do the bulk of my codebase in plain old unmanaged C++.  Or perhaps managed C++ but using STL containers and the like--.NET 2.0 contains some clever hacks to make templates and such work with managed code.

> Walter's a fantastic language designer and compiler writer, but D would progress much faster if the standard library could be spun off. Even if there was a repository for branches on the library, with Walter retaining the sole authority to merge branches into the trunk. The docs could improve quickly, for a start, instead of wasting effort updating that stupid wiki instead of the real thing.

Agreed.  Though Walter would have to retain ownership of the DMD runtime code.  That said, one thing I like about Ares being unofficial is that it allows me to make fundamental changes to it if someone has a good idea.  Even with D in its current beta state, I think Walter has a bit less freedom with Phobos simply because so many people expect it to be as stable as a release-level library.  If this ever happens I think it should begin as a new (from scratch) library project where things can be refined before being made "official" so people expect new features to change a bit while they're being evaluated.  Standard Phobos components may be retained in a compatibility area, but only to support legacy code.  This is pretty much what Ares is doing, but without any sort of official stamp of approval.

> Reduce Walter's involvement into "have a look at the changes in this file, if it's OK, click this button to check it into the official Phobos". Especially, he's got better things to do than fix typos in documentation.

Aside from the runtime code and perhaps the DMD GC implementation, I agree.  There's simply no reason for Walter to be responsible for the language design *and* for the entire standard library.  Some degree of advisory or veto control over the library code should be sufficient IMO.  But this is an old topic.  I suggest that anyone who is interested in this sort of thing participate in the Ares project.  If Ares gets to the point where it's "better" than Phobos, I have the feeling Walter would be amenable to using it in some way or another.  Until that time, it's really just an interesting idea that may or may not pan out.


Sean