Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Tango lite or something like that

Moderators: kris

Posted: 05/18/08 17:44:44

Hi,

just an idea. Something like this http://mootools.net/download for Tango would be nice. Tango has countless classes and some of us don't need all of that (thousands files on the hdd, bigger .lib, slower build times).

Regards, bobef

Author Message

Posted: 07/03/08 12:17:24

I don't agree.

- Thousands files on hdd? Hmm.. this gives a good enhancement idea for DMD. Anyway, that's not a big deal, move on. - Bigger lib? Who cares? Unused classes should be stripped from a target executable. (I know dmd can't do that for now, but gdc does, to my knowledge). This is not a Tango problem. - Slower build times. No, if you don't use some modules, then these modules are not parsed and don't take any compilation time (except linking, maybe).

There are other minuses: it is yet another fork that only harms. Some people would ask about porting some stuff to MiniTango?, others would complain about it, etc. Someone should maintain it as well. Any volunteers? :)

But I do see one benefit out of it. There should exist a small subset of self-sufficient Tango library to ease porting DMD to other platforms. For ex., not everyone needs IO, net, collections etc. Dropping some non-essential features while focusing on essential ones would help to get up and running HelloWorld? applications faster. And such a subset does exist and is concentrated in a Tango.core package (please, correct me if I'm wrong).

I would also move Threads out of it (since they are not crucial for an application, unlike Mutexes - they are needed for synchronized statements), but it is just a matter of someones flavour, I think.

Posted: 07/03/08 12:29:29

I mostly agree with korDen, if only because it would be some work to mantain it, and I don't think the support hassle would be worth it.

As for the minimal Hello world, more is needed than you would think as it uses parts of Tango IO. Also threads are pretty much integrated in D itself, and thus would be hard to remove. sync from core is not necessary though.

Posted: 07/04/08 05:19:33

On the other hand, we did go to great lengths to build Tango in a layered manner. The lower levels have no dependencies on the higher levels, so it is perfectly feasible to use just small portions of the lib. For example, there have been at least two bootstrapping efforts where just the core of Tango was used to get D running on a new platform.

Posted: 07/17/08 18:57:44

larsivi wrote:

I mostly agree with korDen, if only because it would be some work to mantain it, and I don't think the support hassle would be worth it.

As for the minimal Hello world, more is needed than you would think as it uses parts of Tango IO. Also threads are pretty much integrated in D itself, and thus would be hard to remove. sync from core is not necessary though.

Actually no. Module dependencies are known "at compile time" (i.e. download time) and can be extracted automatically (easily!). Then on the download site you click the checkbox for net.http.HttpSomething? and it automatically checks all the modules it depends on, compiles a zip file with appropriate make file, remembers the choice for your username (this is important) and there is your download. Run the batch files and you have Tango lite. This is what mootools does, this is why I gave this example. It is not something that requires any kind of maintenance.

Regards, bobef

Posted: 09/13/08 09:01:20

I don't really get the point of that, your not forced to use the other classes you don't need.

Posted: 09/13/08 10:31:14

I don't really understand the motivation myself, but if someone contributes the system, fine with me. I don't really buy into the "no maintainance required" notion though, since at least the package generator itself needs to be written.