www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Tango 0.97 RC1 released

reply Lars Ivar Igesund <larsivar igesund.net> writes:
Dear D community

This is the first release candidate release of Tango towards 1.0. This is
mostly a bugfix release, plus some news in the packaging department. The
most important changes are:

 * bundling of DMD
 * fixes for 64 bit use
 * fixes for Mac OSX use
 * daily snapshots
 * executable installers also on Linux

For a complete list, see
http://www.dsource.org/projects/tango/wiki/0_97_Changelog. There are still
a few rough edges, so we welcome all feedback and testing. Mac OSX
functionality has improved a lot, but we are still seing issues, mostly due
to differences between GDC and DMD in addition to a couple of show
stoppning bugs in the compiler.

DigitalMars has graciously given the Tango team permission to redistribute
DMD. This release sees the first packages of these bundles. Executable
installers are now also available on Linux, for both DMD and GDC. Please
report back on your experiences. Some downloads (GDC mainly) may take up to
a day before they are up. 

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
Apr 15 2007
next sibling parent reply Jeff <jeffrparsons optusnet.com.au> writes:
Great stuff; I'll certainly be checking this out when I have some time!

One thing I'm very curious about, though: has anything changed to make 
Tango and Phobos play nicely together (e.g. removal of the hard-coded 
dependency on libphobos in dmd)? (I've been occupied with uni and work 
for the last couple of months so I wouldn't have noticed if it had!)

I ask this because I'm really eager to play around with Yage and some 
other projects that use Phobos, but my every-day use of D is with Tango.
Apr 16 2007
parent reply Jeff <jeffrparsons optusnet.com.au> writes:
While I'm at it, I'll mention a pipe dream of mine, too: programs that 
use both? If the libraries were adequately segmented, this could be 
possible, no? :)
Apr 16 2007
parent reply Gregor Richards <Richards codu.org> writes:
Jeff wrote:
 While I'm at it, I'll mention a pipe dream of mine, too: programs that 
 use both? If the libraries were adequately segmented, this could be 
 possible, no? :)

I've created a compatibility layer, tangobos. It's mainly intended for porting (since porting incrementally is infinitely easier than porting in one blow), but I think it could also be useful for using Phobos libraries which you don't control in a Tango app, since it would be a bit silly to maintain a fork of an active app just because it doesn't use the right core library. It's a bit controversial though :P Tangobos doesn't have a home page yet, but stay tuned. - Gregor Richards PS: Yes, I love Tango, and am indeed a Tango team member, I'm just also a realist.
Apr 16 2007
next sibling parent torhu <fake address.dude> writes:
Gregor Richards wrote:
 I've created a compatibility layer, tangobos. It's mainly intended for 
 porting (since porting incrementally is infinitely easier than porting 
 in one blow), but I think it could also be useful for using Phobos 
 libraries which you don't control in a Tango app, since it would be a 
 bit silly to maintain a fork of an active app just because it doesn't 
 use the right core library.
 
 It's a bit controversial though :P
 
 Tangobos doesn't have a home page yet, but stay tuned.

This is just what I need, and I need it today! :D
Apr 16 2007
prev sibling parent reply Justin C Calvarese <technocrat7 gmail.com> writes:
Gregor Richards wrote:
 Jeff wrote:
 While I'm at it, I'll mention a pipe dream of mine, too: programs that 
 use both? If the libraries were adequately segmented, this could be 
 possible, no? :)

I've created a compatibility layer, tangobos. It's mainly intended for porting (since porting incrementally is infinitely easier than porting in one blow), but I think it could also be useful for using Phobos libraries which you don't control in a Tango app, since it would be a bit silly to maintain a fork of an active app just because it doesn't use the right core library. It's a bit controversial though :P

I think Tangobos is an excellent idea. Tango appears to be a powerful library, but I'm already used to Phobos. So it'd be nice to still be able to fall back on some Phobos functions as I try to learn more about Tango. For example, I was trying to write a simple example using Tango, and I quickly discovered that I was having a hard time figuring out how to do anything. It's not than I think that Tango is inferior in any way to Phobos, it's just that I've become accustomed to the "Phobos way". If I want to replace one set of characters with another set of characters, I knew that all I have to do is use the replace function in std.string. When I tried to do a similar operation with Tango, I felt and embarrassed at my ineptitude (I suspect it's a simple matter of using a String object and using the right member function, but I couldn't get anything to work). I had similar problems when I was first trying to learn how Phobos works (along with the additional problems of being new to D and D being such a young language). For some reason, I thought those days were behind me, but I forgot that every library is going to have it's own style. And learning the style can take some time and effort.
 Tangobos doesn't have a home page yet, but stay tuned.

I'll be waiting.
  - Gregor Richards
 
 PS: Yes, I love Tango, and am indeed a Tango team member, I'm just also 
 a realist.

-- jcc7
Apr 16 2007
parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Justin C Calvarese wrote:
 
 For example, I was trying to write a simple example using Tango, and I
 quickly discovered that I was having a hard time figuring out how to do
 anything. It's not than I think that Tango is inferior in any way to
 Phobos, it's just that I've become accustomed to the "Phobos way". If I
 want to replace one set of characters with another set of characters, I
 knew that all I have to do is use the replace function in std.string.
 When I tried to do a similar operation with Tango, I felt and
 embarrassed at my ineptitude (I suspect it's a simple matter of using a
 String object and using the right member function, but I couldn't get
 anything to work).

No reason to feel embarrassed, Tango _is_ different from Phobos. Tango having a String class don't mean that there aren't any free functions to do string handling though. Maybe http://www.dsource.org/projects/tango/wiki/TextReplaceExample can lead you in the right direction? -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Apr 17 2007
parent jcc7 <technocrat7 gmail.com> writes:
== Quote from Lars Ivar Igesund (larsivar igesund.net)'s article
 No reason to feel embarrassed, Tango _is_ different from Phobos. Tango
 having a String class don't mean that there aren't any free functions
 to do string handling though. Maybe
 http://www.dsource.org/projects/tango/wiki/TextReplaceExample
 can lead you in the right direction?

Thanks. That looks like exactly what I needed. jcc7
Apr 17 2007
prev sibling next sibling parent reply Aarti_pl <aarti interia.pl> writes:
Lars Ivar Igesund napisał(a):
 Dear D community
 
 This is the first release candidate release of Tango towards 1.0. This is
 mostly a bugfix release, plus some news in the packaging department. The
 most important changes are:
 
  * bundling of DMD
  * fixes for 64 bit use
  * fixes for Mac OSX use
  * daily snapshots
  * executable installers also on Linux
 

Great that DMD can be redistributed with Tango. It looks like soon problem of original, messy bundle for DMD will be resolved :-) I just would like to propose to make few enhancement to current directory structure of installation: * First - do not assume that people will use only Tango, but no Phobos at all. Directory structure should allow to have installed Tango *AND* Phobos simultaneously. I propose sth. like this: |-bin |-doc (maybe like on linux: share/doc/tango ??) | |-tango | |-phobos | |-<other libraries> | |-example | |-tango | |-phobos | |-<other libraries> | |-import | |-tango | |-phobos | |-<other libraries> | |-lib | |-tango | | | | | <libs> | | | |-phobos | | | | | <libs> | | | <common libs> | README.txt I know that Tango is replacement for Phobos, so you may think that it is unnecessary work to provide additional support for it. But I think it will make Tango more popular allowing people to use easily both libraries as necessary. Probably you could even consider to include sources for Phobos in bundle (if Walter allows it). * Second - dsss and rebuild should be bundled with Tango. Rdmd should be merged to rebuild and removed from bundle then (I've put ticket for this enhancement for rebuild). * Third - there should be dmdc script (second one from Andrei, which generates dmd.sc/dmd.conf for Tango or Phobos). This script could even scan import directory for paths to other libraries and generate proper script. Thanks for addressing issues with uncomfortable installation of DMD and libraries for D! Best Regards Marcin Kuszczak
Apr 16 2007
next sibling parent reply eao197 <eao197 intervale.ru> writes:
On Mon, 16 Apr 2007 12:18:49 +0400, Aarti_pl <aarti interia.pl> wrote:

 * Third - there should be dmdc script (second one from Andrei, which  
 generates dmd.sc/dmd.conf for Tango or Phobos). This script could even  
 scan import directory for paths to other libraries and generate proper  
 script.

Such script is not a good solution when it is possible to run several copies of dmd at one time (from different consoles for example) and one of copy use Phobos and another Tango. -- Regards, Yauheni Akhotnikau
Apr 16 2007
parent Aarti_pl <aarti interia.pl> writes:
eao197 napisał(a):
 On Mon, 16 Apr 2007 12:18:49 +0400, Aarti_pl <aarti interia.pl> wrote:
 
 * Third - there should be dmdc script (second one from Andrei, which 
 generates dmd.sc/dmd.conf for Tango or Phobos). This script could even 
 scan import directory for paths to other libraries and generate proper 
 script.

Such script is not a good solution when it is possible to run several copies of dmd at one time (from different consoles for example) and one of copy use Phobos and another Tango. --Regards, Yauheni Akhotnikau

When you need customized solution there is no way to find one which will satisfy all people. In case you have described I would say that it is rather unusual that someone parallely use Phobos and Tango (just my bet). Script can be easy customized to generate dmd.sc / dmd.conf to current working directory rather than to bin directory. Then you can use Tango AND Phobos parallely. BR Marcin Kuszczak aarti_pl
Apr 16 2007
prev sibling parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Aarti_pl wrote:

 Lars Ivar Igesund napisał(a):
 Dear D community
 
 This is the first release candidate release of Tango towards 1.0. This is
 mostly a bugfix release, plus some news in the packaging department. The
 most important changes are:
 
  * bundling of DMD
  * fixes for 64 bit use
  * fixes for Mac OSX use
  * daily snapshots
  * executable installers also on Linux
 

Great that DMD can be redistributed with Tango. It looks like soon problem of original, messy bundle for DMD will be resolved :-) I just would like to propose to make few enhancement to current directory structure of installation: * First - do not assume that people will use only Tango, but no Phobos at all.

I don't think we do, but I am sure there's still room for improvement. Having imports for both should work out fine, having two libphobos.a/phobos.lib around is worse (without changing configurations, or actually having two installs).
 
 Directory structure should allow to have installed Tango *AND* Phobos
 simultaneously. I propose sth. like this:
 
 |-bin
 |-doc         (maybe like on linux: share/doc/tango ??)
 |  |-tango
 |  |-phobos
 |  |-<other libraries>

A better solution for the docs is definately something we want.
 |
 |-example
 |  |-tango
 |  |-phobos
 |  |-<other libraries>
 |
 |-import
 |  |-tango
 |  |-phobos
 |  |-<other libraries>
 |
 |-lib
 |  |-tango
 |  |   |
 |  |  <libs>
 |  |
 |  |-phobos
 |  |   |
 |  |  <libs>
 |  |
 |  <common libs>
 |
 README.txt

We will certainly look at the above proposal for directory structure.
 
 I know that Tango is replacement for Phobos, so you may think that it is
   unnecessary work to provide additional support for it. But I think it
 will make Tango more popular allowing people to use easily both
 libraries as necessary. Probably you could even consider to include
 sources for Phobos in bundle (if Walter allows it).

I am pretty sure redistribution of the source is no problem, but we do consider it a problem to (officially) distribute something that we don't mantain ourselves. Gregor's tangobos effort may very well be the easier solution in most cases where one is in need of using both, and I expect that one to be available via DSSS.
 
 * Second - dsss and rebuild should be bundled with Tango. Rdmd should be
 merged to rebuild and removed from bundle then (I've put ticket for this
 enhancement for rebuild).

We will most likely make such a bundle (there already is for GDC), but we will still need packages not depending on it. We may also label it unofficial, given that DSSS/Rebuild is no Tango project per se.
 
 * Third - there should be dmdc script (second one from Andrei, which
 generates dmd.sc/dmd.conf for Tango or Phobos). This script could even
 scan import directory for paths to other libraries and generate proper
 script.

Feel free to approach is with further suggestions on this.
 
 Thanks for addressing issues with uncomfortable installation of DMD and
 libraries for D!

We are trying - but as of yet we do not want to provide official distributions for tools/libraries not part of Tango itself (the compilers being notable exceptions). We may set up a page for more unoffical distributions however, if they can be easily mantained and updated. Typical problems with such setups though, are related to tool and library updates outside the Tango release cycle, which is why tools such as DSSS probably will become much more useful in the long run. Further we would like to provide improved support for the different package distribution systems on Linux and other platforms, if someone would like to help out with creating such packaging. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Apr 16 2007
parent =?UTF-8?B?QW5kZXJzIEYgQmrDtnJrbHVuZA==?= <afb algonet.se> writes:
Lars Ivar Igesund wrote:

 Further we would like to provide improved support for the different package
 distribution systems on Linux and other platforms, if someone would like to
 help out with creating such packaging.

I have RPMs pretty much ready to go for Tango, just polishing on the interaction between the -phobos-devel and -tango-devel packages... As it stands now, you can install either of them - not both at once (since they both supply an object.d file and a libgphobos.a library) Will try to fix the build system so that it can build some packages. (currently just installed on Fedora Core Development, so not for FC5) --anders PS. It would be GDC 0.23, for http://gdcgnu.sourceforge.net/
Apr 16 2007
prev sibling next sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Lars Ivar Igesund wrote:

 For a complete list, see
 http://www.dsource.org/projects/tango/wiki/0_97_Changelog. There are still
 a few rough edges, so we welcome all feedback and testing. Mac OSX
 functionality has improved a lot, but we are still seing issues, mostly due
 to differences between GDC and DMD in addition to a couple of show
 stoppning bugs in the compiler.

The easiest way of installing Tango on Mac OS X is installing a fresh copy of GDC (and Rebuild) in a separate directory, like /opt/gdc or so. Then set the PATH to this alternative prefix (PATH=/opt/gdc/bin:$PATH), and build/install Tango there and finally use Rebuild to build programs. So to use the regular library you would call /usr/bin/gdc (e.g. gdcmac), and to use the alternative library it would call upon /opt/gdc/bin/gdc. --anders
Apr 16 2007
prev sibling next sibling parent Marcio <mqmnews321 sglebs.com> writes:
	Mandatory for class lib developers:

How To Design A Good API and Why it Matters
http://video.google.ca/videoplay?docid=-3733345136856180693

	And also:

"API first" (Jim des Rivieres): 
http://www.eclipse.org/eclipse/development/apis/API-First.pdf

"API Tutorial 2006" (Jim des Rivieres) 
http://wiki.eclipse.org/index.php/API_Tutorial_2006

	:-)

marcio
Apr 16 2007
prev sibling parent Lars Ivar Igesund <larsivar igesund.net> writes:
Lars Ivar Igesund wrote:

 DigitalMars has graciously given the Tango team permission to redistribute
 DMD. This release sees the first packages of these bundles. Executable
 installers are now also available on Linux, for both DMD and GDC. Please
 report back on your experiences. Some downloads (GDC mainly) may take up
 to a day before they are up.

Thanks to Anders Bergh, we now have a Arch Linux repository set up for use with Pacman. It lets you install, and later upgrade DMD and Tango via Pacman. http://www.dsource.org/projects/tango/wiki/ArchLinux If you want to help us with your distribution or have other ideas, see the page below. Community downloads: http://www.dsource.org/projects/tango/wiki/CommunityDownloads
Apr 19 2007