October 21, 2008
"Yigal Chripun" <yigal100@gmail.com> wrote in message news:gdjqd6$2mia$1@digitalmars.com...
> You've posted in the NG your intention to re-implement several key
> modules in phobos including IO and algorithm, I'm hoping that instead of
> two separate IO systems (tango and phobos) you could use the Tango IO
> and implement your Range proposal on top of it. Others already suggested
> that on this NG.

There are good reasons for keeping the IO separate. Phobos is based on the C runtime, meaning you can interleave D IO with C IO and everything will behave nicely. Tango's IO layer is written from scratch, using OS calls. You shouldn't mix Tango IO with IO in a linked-in C library.

L. 

October 21, 2008
bump
> Will D1.0 ever get the same fix-up?


October 21, 2008
BCS wrote:
> Will D1.0 ever get the same fix-up?

No, as there are many changes that break existing code.
October 21, 2008
Sean Kelly wrote:
> Bill Baxter wrote:
>> On Tue, Oct 21, 2008 at 10:59 AM, dsimcha <dsimcha@yahoo.com> wrote:
>>>
>>> Seriously, though, Walter, thank you very much for this release.  You have done a
>>> tremendous job bringing us a better language.  Merging the Phobos and Tango
>>> runtime is a monumental task (Sean, thank you, too) and a few bumps along the road
>>> are definitely understandable.
>>
>> Hmm, first off it looks like druntime.lib doesn't exist in the D2 download.
>> I was able to build it by running build-dmd.bat in one of the druntime
>> subdirectories.
>>
>> But there's more to it than that.
>>
>> There's an object.d in src/phobos with a prototype for a print() function.
>> But the object.di in src/druntime/import does not have a print() function.
>>
>> So maybe the phobos.lib included was built using the old object.d
>> instead of the new one from druntime?
> 
> I have family visiting and haven't been online much the past few days as a result.  But from a quick perusal these are some issues with the current release:
> 
> * ship druntime.lib in dmd/lib
> * remove object.d and errno.c from phobos/
> * modify DFLAGS to reference the druntime import path
> 
> Also, something will have to be done about druntime including a 'std' package in its import directory.  I'd say just remove it for now, but hopefully at some point it won't be necessary to retain it at all (the reasons for it being there are somewhat weird).  This shouldn't affect use of the current release, though you may have to place the phobos directory first in your import path list.
> 
> Finally, I still need to look over the core.memory.GC.xxxHandle() routines, which were added by necessity just prior to release.  The basic functionality will remain, but names may be changed to protect the innocent, etc.
> 
> If anyone runs across any other issues, please submit a ticket on dsource or the puremagic site as appropriate, or simply post them here.
> 
> By the way... thank you all for testing this out.  I know the initial release is a bit rough, but hopefully things will be smoothed out soon.  Once DMD is sorted I'll be porting the GDC runtime as well.  I just wanted to get one distro sorted out first before dealing with the others.
> 
> 
> Sean

Thanks to you & Walter for all your hard work.
October 21, 2008
Walter Bright wrote:
> 
> http://www.digitalmars.com/d/1.0/changelog.html
> http://ftp.digitalmars.com/dmd.1.036.zip
> 
> The 2.0 version splits phobos into druntime and phobos libraries (thanks to Sean Kelly). This will enable both Tango and Phobos to share a common core library.
> 
> http://www.digitalmars.com/d/2.0/changelog.html
> http://ftp.digitalmars.com/dmd.2.020.zip
> 
> There are a lot of structural changes that go along with this, so expect some rough patches with this release. It may take a followup release to file them down. There's also some renaming of imports and function names, as a compromise with Tango names.


Sounds great !

But why is it that since 2.020 i cannot name a package "shared" anymore?

moudle shared.foo;

dmd: "Identifier expected following module"

WTF ?
October 21, 2008
Extrawurst wrote:

> Walter Bright wrote:
>> 
>> http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.036.zip
>> 
>> The 2.0 version splits phobos into druntime and phobos libraries (thanks to Sean Kelly). This will enable both Tango and Phobos to share a common core library.
>> 
>> http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.020.zip
>> 
>> There are a lot of structural changes that go along with this, so expect some rough patches with this release. It may take a followup release to file them down. There's also some renaming of imports and function names, as a compromise with Tango names.
> 
> 
> Sounds great !
> 
> But why is it that since 2.020 i cannot name a package "shared" anymore?
> 
> moudle shared.foo;
> 
> dmd: "Identifier expected following module"
> 
> WTF ?

Because shared is now a keyword.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
October 21, 2008
Lionello Lunesu wrote:
> 
> "Yigal Chripun" <yigal100@gmail.com> wrote in message news:gdjqd6$2mia$1@digitalmars.com...
>> You've posted in the NG your intention to re-implement several key modules in phobos including IO and algorithm, I'm hoping that instead of two separate IO systems (tango and phobos) you could use the Tango IO and implement your Range proposal on top of it. Others already suggested that on this NG.
> 
> There are good reasons for keeping the IO separate. Phobos is based on the C runtime, meaning you can interleave D IO with C IO and everything will behave nicely. Tango's IO layer is written from scratch, using OS calls. You shouldn't mix Tango IO with IO in a linked-in C library.
> 
> L.

IMHO, Tango's IO is a better default for D exactly because it's written
from scratch specifically for D. the benefits are better performance and
no dependence on the C stdlib.
interleaving D IO with C IO is also possible with tango, with the
relevant stdc modules, but that should IMHO be an opt-in feature.
October 21, 2008
Lars Ivar Igesund wrote:
> Extrawurst wrote:
> 
>> Walter Bright wrote:
>>> http://www.digitalmars.com/d/1.0/changelog.html
>>> http://ftp.digitalmars.com/dmd.1.036.zip
>>>
>>> The 2.0 version splits phobos into druntime and phobos libraries (thanks
>>> to Sean Kelly). This will enable both Tango and Phobos to share a common
>>> core library.
>>>
>>> http://www.digitalmars.com/d/2.0/changelog.html
>>> http://ftp.digitalmars.com/dmd.2.020.zip
>>>
>>> There are a lot of structural changes that go along with this, so expect
>>> some rough patches with this release. It may take a followup release to
>>> file them down. There's also some renaming of imports and function
>>> names, as a compromise with Tango names.
>>
>> Sounds great !
>>
>> But why is it that since 2.020 i cannot name a package "shared" anymore?
>>
>> moudle shared.foo;
>>
>> dmd: "Identifier expected following module"
>>
>> WTF ?
> 
> Because shared is now a keyword.
> 

Ok, what is it for ? Where is it documented ? Or is it another reserved keyword like "macro" is ?
October 21, 2008
Walter Bright wrote:
> 
> http://www.digitalmars.com/d/1.0/changelog.html
> http://ftp.digitalmars.com/dmd.1.036.zip
> 
> The 2.0 version splits phobos into druntime and phobos libraries (thanks to Sean Kelly). This will enable both Tango and Phobos to share a common core library.
> 
> http://www.digitalmars.com/d/2.0/changelog.html
> http://ftp.digitalmars.com/dmd.2.020.zip
> 
> There are a lot of structural changes that go along with this, so expect some rough patches with this release. It may take a followup release to file them down. There's also some renaming of imports and function names, as a compromise with Tango names.

Thanks Walter. This is a great day!

One rough patch:
Phobos docs don't include the new 'core' modules, except core.memory which appears where std.gc used to be.

We also now have two modules called 'bitmanip', which is somewhat ironic since we brainstormed for ages trying to come up with a better name for it. Modules with duplicate names have caused linking problems in the past -- not sure if that applies here.
October 21, 2008
Extrawurst wrote:
> Lars Ivar Igesund wrote:
>> Extrawurst wrote:
>>
>>> Walter Bright wrote:
>>>> http://www.digitalmars.com/d/1.0/changelog.html
>>>> http://ftp.digitalmars.com/dmd.1.036.zip
>>>>
>>>> The 2.0 version splits phobos into druntime and phobos libraries (thanks
>>>> to Sean Kelly). This will enable both Tango and Phobos to share a common
>>>> core library.
>>>>
>>>> http://www.digitalmars.com/d/2.0/changelog.html
>>>> http://ftp.digitalmars.com/dmd.2.020.zip
>>>>
>>>> There are a lot of structural changes that go along with this, so expect
>>>> some rough patches with this release. It may take a followup release to
>>>> file them down. There's also some renaming of imports and function
>>>> names, as a compromise with Tango names.
>>>
>>> Sounds great !
>>>
>>> But why is it that since 2.020 i cannot name a package "shared" anymore?
>>>
>>> moudle shared.foo;
>>>
>>> dmd: "Identifier expected following module"
>>>
>>> WTF ?
>>
>> Because shared is now a keyword.
>>
> 
> Ok, what is it for ? Where is it documented ? Or is it another reserved keyword like "macro" is ?

shared & unshared memories for parallel computing IIRC.