A port of the Tango library to D2
D JavaScript C Ruby Shell C# Other
Switch branches/tags
Nothing to show
Pull request Compare This branch is 361 commits behind SiegeLord:d2port.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
doc
tango
unported
.gitignore
LICENSE.txt
README.md
README_tango.txt
ported_modules
porting_guidelines

README.md

Tango for D2

This is a half-hearted effort to port Tango to the D2 programming language. I am doing this quickly, and in a haphazard fashion. I primarily care that it compiles, and passes the unittests (or my own quick tests). I am sure the parts I ported don't work 100%.

This port roughly follows the guidelines outlined in the porting_guidelines file. If you want to help out, please follow that procedure.

I see this as a rough first pass at porting this library... making it more D2-like will be the second pass.

What works so far

Modules that have not been yet ported are located in the unported folder. All those located in the tango folder are ported, in the sense that they pass the import+unittest test (sometimes imperfectly on 64 bits due to DMD bugs). See also the ported_modules list which enumerates the ported modules.

I do the porting on Linux, so that is the most tested platform. It generally should also compile on Windows, but might not pass all the unit-tests, since DMD does weird things with unittests on Windows. All other platforms probably don't compile at all.

Some notables

  • tango.io.Stdout and the imported modules (notably tango.io.Console, tango.text.convert.Layout and tango.core.Thread (maybe))
  • tango.text.xml.Document and the imported modules
  • tango.io.device.File
  • tango.core.Array
  • tango.core.Traits
  • tango.math
  • tango.util.container

What will work next

Who knows... I'm porting stuff rather randomly.

What won't work for awhile:

Anything that's hard to port... like intrinsics/anything that's Tango's runtime specific

How to use it

It is possible to use the binary bob building tool (located in build/bin/*/bob) like so:

64-bit Linux

cd PathToTango
./build/bin/linux64/bob -vu .

Windows

cd PathToTango
build\bin\win32\bob.exe -vu .

Contact

You can message me on Github, or find me on IRC on #d and #d.tango @ irc.freenode.net