Jump to page: 1 2 3
Thread overview
Tango 0.96 beta2 released
Mar 16, 2007
Lars Ivar Igesund
Mar 16, 2007
Frits van Bommel
Mar 16, 2007
Frits van Bommel
Mar 16, 2007
Frits van Bommel
Mar 16, 2007
Lars Ivar Igesund
Mar 16, 2007
Frits van Bommel
Mar 16, 2007
Sean Kelly
Mar 16, 2007
Sean Kelly
Mar 16, 2007
Frits van Bommel
Mar 16, 2007
Sean Kelly
Mar 16, 2007
Frits van Bommel
Mar 16, 2007
kris
Mar 16, 2007
Frits van Bommel
Mar 16, 2007
Sean Kelly
Mar 17, 2007
Frits van Bommel
Mar 17, 2007
Sean Kelly
Mar 17, 2007
Frits van Bommel
Mar 17, 2007
Sean Kelly
Mar 17, 2007
Sean Kelly
Mar 17, 2007
Frits van Bommel
Mar 17, 2007
Sean Kelly
Mar 17, 2007
Frits van Bommel
Mar 20, 2007
Sean Kelly
Mar 29, 2007
Lars Ivar Igesund
March 16, 2007
Dear D community

This is the second beta release of Tango which fixes some issues, sports a few changes, and adds some new functionality. For this release we have worked on:

 * providing libraries in order to easy installation and usage
 * incremental migration via -version=PhobosCompatibility
 * support for TracedException
 * time and date functionality
 * integrated locale support
 * debug upon exception
 * text formatting
 * file paths

For a complete list, see
http://www.dsource.org/projects/tango/wiki/0_96_Changelog . There are still
a few rough edges, so we welcome all feedback and testing. Within a few
days, daily source-snapshots plus binaries will be enabled also. We would
also like to take this opportunity to ask users familiar with the specifics
of Mac OSX to help us make Tango fully stable on that platform.

The Tango homepage can be found at http://www.dsource.org/projects/tango

Downloads: http://www.dsource.org/projects/tango/wiki/Download

See http://www.dsource.org/projects/tango/wiki/TopicInstallTango for more detailed installation instructions for your system.

Contact http://www.dsource.org/projects/tango/wiki/Contact

Signed, The Tango Team http://www.dsource.org/projects/tango/wiki/Contributors

---------

Tango is a D library providing a cohesive runtime plus library for the D programming language. A feature list can be found on http://www.dsource.org/projects/tango/wiki/Features
March 16, 2007
Lars Ivar Igesund wrote:
> [snip release announcement Tango 0.96 beta 2]

http://www.dsource.org/projects/tango/wiki still mentions 0.95 beta 1, you might want to update that.
March 16, 2007
Frits van Bommel wrote:
> Lars Ivar Igesund wrote:
>> [snip release announcement Tango 0.96 beta 2]
> 
> http://www.dsource.org/projects/tango/wiki still mentions 0.95 beta 1, you might want to update that.

Also, you might want to mention the GDC Linux binary distribution is for x86 Linux only. I don't see that mentioned on the download page.
March 16, 2007
It doesn't compile for me... :(
OS: Ubuntu 6.10 (Edgy) amd64
Compiler: gdc (GCC) 4.1.1 20060524 (  (gdc 0.23, using dmd 1.007))

---
urxae@urxae:~/opt/tango/tango-0.96-src/lib$ ./build-gdc.sh

[...]

gdc -o lifetime.o -g -frelease -O2 -fversion=GC_Use_Alloc_MMap -fversion=GC_Use_Stack_GLibC -fversion=GC_Use_Data_Fixed -nostdinc -pipe -I../../..   \
        -c lifetime.d
../../../tango/stdc/stdarg.d:21: Error: cannot have out or inout parameter of type ubyte[24][1]
../../../tango/stdc/stdarg.d:815: template instance tango.stdc.stdarg.va_start!(uint) error instantiating
lifetime.d:815: Error: cannot change reference to static array 'va'
make[2]: *** [lifetime.o] Error 1
make[2]: Leaving directory `/home/urxae/opt/tango/tango-0.96-src/lib/compiler/gdc'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/urxae/opt/tango/tango-0.96-src/lib/compiler/gdc'
make: *** [lib] Error 2
---
March 16, 2007
Frits van Bommel wrote:

> It doesn't compile for me... :(
> OS: Ubuntu 6.10 (Edgy) amd64
> Compiler: gdc (GCC) 4.1.1 20060524 (  (gdc 0.23, using dmd 1.007))
> 
> ---
> urxae@urxae:~/opt/tango/tango-0.96-src/lib$ ./build-gdc.sh
> 
> [...]
> 
> gdc -o lifetime.o -g -frelease -O2 -fversion=GC_Use_Alloc_MMap
> -fversion=GC_Use_Stack_GLibC -fversion=GC_Use_Data_Fixed -nostdinc -pipe
> -I../../..   \
>          -c lifetime.d
> ../../../tango/stdc/stdarg.d:21: Error: cannot have out or inout
> parameter of type ubyte[24][1]
> ../../../tango/stdc/stdarg.d:815: template instance
> tango.stdc.stdarg.va_start!(uint) error instantiating
> lifetime.d:815: Error: cannot change reference to static array 'va'
> make[2]: *** [lifetime.o] Error 1
> make[2]: Leaving directory
> `/home/urxae/opt/tango/tango-0.96-src/lib/compiler/gdc'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory
> `/home/urxae/opt/tango/tango-0.96-src/lib/compiler/gdc'
> make: *** [lib] Error 2
> ---

Thanks for the wiki notes, they're fixed.

As for the above, I expect it to be 64 bit issues, as I cannot reproduce it on my similar 32 bit setup. It is not something we have had time to fully support yet, but it is an immediate goal preparing for the next release and the coming snapshot builds.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
March 16, 2007
Lars Ivar Igesund wrote:
> Frits van Bommel wrote:
> 
>> It doesn't compile for me... :(
>> OS: Ubuntu 6.10 (Edgy) amd64
>> Compiler: gdc (GCC) 4.1.1 20060524 (  (gdc 0.23, using dmd 1.007))
>>
[snip]
> As for the above, I expect it to be 64 bit issues, as I cannot reproduce it
> on my similar 32 bit setup. It is not something we have had time to fully
> support yet, but it is an immediate goal preparing for the next release and
> the coming snapshot builds.

Indeed, it seems to compile fine if I install the 32-bit binary from sourceforge and compile in a 32-bit chroot. Unfortunately, the main reason I have GDC installed is the new 64-bit support :(.
March 16, 2007
Frits van Bommel wrote:
> It doesn't compile for me... :(
> OS: Ubuntu 6.10 (Edgy) amd64
> Compiler: gdc (GCC) 4.1.1 20060524 (  (gdc 0.23, using dmd 1.007))
> 
> ---
> urxae@urxae:~/opt/tango/tango-0.96-src/lib$ ./build-gdc.sh
> 
> [...]
> 
> gdc -o lifetime.o -g -frelease -O2 -fversion=GC_Use_Alloc_MMap -fversion=GC_Use_Stack_GLibC -fversion=GC_Use_Data_Fixed -nostdinc -pipe -I../../..   \
>         -c lifetime.d
> .../../../tango/stdc/stdarg.d:21: Error: cannot have out or inout parameter of type ubyte[24][1]
> .../../../tango/stdc/stdarg.d:815: template instance tango.stdc.stdarg.va_start!(uint) error instantiating

This is a known issue I'm afraid.  GDC designates va_start as an intrinsic and it must be located in either std.stdarg or std.c.stdarg (and the behavior is actually different for each of the two).  The easiest fix would be to add these two modules to the 'std' package in Tango (just like intrinsic) and have the appropriate Tango modules import them in a "GNU" block.  Those modules are: tango.core.Vararg and tango.stdc.stdarg.  I'd have fixed this prior to release but I just figured out the problem a day or two ago and haven't had time.  Expect this to be fixed in trunk in the next few days.


Sean
March 16, 2007
Sean Kelly wrote:
> Frits van Bommel wrote:
>> It doesn't compile for me... :(
>> OS: Ubuntu 6.10 (Edgy) amd64
>> Compiler: gdc (GCC) 4.1.1 20060524 (  (gdc 0.23, using dmd 1.007))
>>
>> ---
>> urxae@urxae:~/opt/tango/tango-0.96-src/lib$ ./build-gdc.sh
>>
>> [...]
>>
>> gdc -o lifetime.o -g -frelease -O2 -fversion=GC_Use_Alloc_MMap -fversion=GC_Use_Stack_GLibC -fversion=GC_Use_Data_Fixed -nostdinc -pipe -I../../..   \
>>         -c lifetime.d
>> .../../../tango/stdc/stdarg.d:21: Error: cannot have out or inout parameter of type ubyte[24][1]
>> .../../../tango/stdc/stdarg.d:815: template instance tango.stdc.stdarg.va_start!(uint) error instantiating
> 
> This is a known issue I'm afraid.  GDC designates va_start as an intrinsic and it must be located in either std.stdarg or std.c.stdarg (and the behavior is actually different for each of the two).  The easiest fix would be to add these two modules to the 'std' package in Tango (just like intrinsic) and have the appropriate Tango modules import them in a "GNU" block.  Those modules are: tango.core.Vararg and tango.stdc.stdarg.  I'd have fixed this prior to release but I just figured out the problem a day or two ago and haven't had time.  Expect this to be fixed in trunk in the next few days.

Okay, I've checked a fix into trunk.  If anyone is inclined to try it out, please let me know if it works.


Sean
March 16, 2007
Sean Kelly wrote:
> Okay, I've checked a fix into trunk.  If anyone is inclined to try it out, please let me know if it works.

Sorry, but no. At first I get an error because you forgot to define va_list in std/c/stdarg.di. After copying
---
     private import gcc.builtins;
     alias __builtin_va_list va_list;
---
into the version(GNU) block, I get basically the same error message as before:
---
gdc -o lifetime.o -g -frelease -O2 -fversion=GC_Use_Alloc_MMap
-fversion=GC_Use_Stack_GLibC -fversion=GC_Use_Data_Fixed -nostdinc -pipe
-I../../..   \
         -c lifetime.d
../../../std/c/stdarg.di:16: Error: cannot have out or inout parameter
of type ubyte[24][1]
../../../std/c/stdarg.di:815: template instance
std.c.stdarg.va_start!(uint) error instantiating
lifetime.d:815: Error: cannot change reference to static array 'va'
make[2]: *** [lifetime.o] Error 1
make[2]: Leaving directory
`/home/urxae/opt/tango/svn-trunk/lib/compiler/gdc'
make[1]: *** [all] Error 2
make[1]: Leaving directory
`/home/urxae/opt/tango/svn-trunk/lib/compiler/gdc'
make: *** [lib] Error 2
---

However, copying GDC's std.c.stdarg module over it lets it compile a bit further. Unfortunately, it then chokes on something else:
---
gcc -c -O -m32 core/ThreadASM.S -ocore/ThreadASM.o
gcc -c -O -m32 stdc/wrap.c -ostdc/wrap.o
In file included from /usr/include/features.h:346,
                  from /usr/include/errno.h:29,
                  from stdc/wrap.c:1:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or
directory
make[1]: *** [stdc/wrap.o] Error 1
make[1]: Leaving directory
`/home/urxae/opt/tango/svn-trunk/lib/common/tango'
make: *** [lib] Error 2
---

I've seen this error before when trying to get my 64-bit GCC to compile
32-bit code[1], but I'm wondering *why* it tries to do that. I don't
think it'll run properly (or perhaps even fail to link against 64-bit
binaries) even *if* you get it to compile...
(Removing the -m32 and executing the second 'gcc' command manually works
fine, by the way)
I guess the first command worked mostly because it doesn't contain any
code outside "#if defined( __ppc__ )".

[a bit later]
After removing -m32 from CFLAGS in all relevant makefiles (and perhaps
some irrelevant ones; the only one I left was in
lib/compiler/dmd/posix.mak since I figured it wouldn't use that one :) )
  build-gdc.sh completes successfully.

I attached a patch, though I'm not sure how much use it'll be if you insist on your own version of std.c.stdarg ...


[1]: "-m32" means "emulate 32-bit compiler", right?


March 16, 2007
Frits van Bommel wrote:
> 
> I attached a patch, though I'm not sure how much use it'll be if you insist on your own version of std.c.stdarg ...

Thanks.  I think the stdarg issues should now be resolved and I'll look into making the other changes.  About the only place I'm not entirely sure they will work is common/tango/stdc/wrap.c, since this is built by both DMD and GDC.  I think I'm going to pass -m32 through from dmd-posix.mak, etc, using a C equivalent of ADDFLAGS.  So:

ADDFLAGS -> ADD_DFLAGS
(new)	 -> ADD_CFLAGS

This should support all configurations.

> [1]: "-m32" means "emulate 32-bit compiler", right?

I think so.


Sean
« First   ‹ Prev
1 2 3