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

{5} Assigned, Active Tickets by Owner (Full Description) (90 matches)

List assigned tickets, grouped by ticket owner. The report includes a full description of the tickets.

Don Clugston

Ticket Summary Component Milestone Type Created
Description
#1048 too stringent tests in tango/math/Probability.d ? Core Functionality 0.99.8 defect 04/15/08

Unitetest

assert( feqrel(studentsTDistribution(18, studentsTDistributionInv(18, 0.4L)),0.4L)
 > real.mant_dig-2 );

fails with a difference of -0.27105054e-18 which means feqrel is 60, which is smaller than 62 (matissa of real is 64) with gdc trunk on AMD64. same thing happens for

  assert(feqrel(chiSqrDistributionCompl(3.5L, chiSqrDistributionComplInv(3.5L, 0.1L)), 0.1L)>=real.mant_dig-3);

I do not know if this a compiler problem (using double somewhere instead of real, or ok given the numerics real.mant_dig-5 (or real.mant_dig-1-real.mant_dig/16) would work.

For

    assert(feqrel(binomialDistributionInv(0, 24, w), 0.637L)>=real.mant_dig-5);

feqrel=38, obviously in the inversion something gets lost, things are not converged enough or a double or float crops up at the wrong place.


Gregor

Ticket Summary Component Milestone Type Created
Description
#308 can't compile samples on linux/ppc Core Functionality 0.99.8 defect 03/03/07
$ make -f linux.mak console/hello
Building :  console/hello
bud console/hello.d -noautoimport -op -clean -full -g -debug -I.. -Tconsole/hello -unittest
/usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libgphobos.a(Thread.o): In function `_D5tango4core6Thread5Fiber9switchOutMFZv':
Thread.d:(.text+0xb18): referencia a `fiber_switchContext' sin definir
/usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libgphobos.a(Thread.o): In function `_D5tango4core6Thread5Fiber8switchInMFZv':
Thread.d:(.text+0xbb4): referencia a `fiber_switchContext' sin definir
/usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libgphobos.a(Thread.o): In function `_D5tango4core6Thread5Fiber4callMFbZv':
Thread.d:(.text+0x13f0): referencia a `fiber_switchContext' sin definir
/usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libgphobos.a(Thread.o): In function `fiber_entryPoint':
Thread.d:(.text+0x238c): referencia a `fiber_switchContext' sin definir
/usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libgphobos.a(Thread.o): In function `_D5tango4core6Thread5Fiber13yieldAndThrowFC6ObjectZv':
Thread.d:(.text+0x2478): referencia a `fiber_switchContext' sin definir
/usr/local/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libgphobos.a(Thread.o):Thread.d:(.text+0x2528): más referencias a `fiber_switchContext' sin definir a continuación

JJR

Ticket Summary Component Milestone Type Created
Description
#185 Reference chapter on networking Documentation Documentation task 01/12/07

In the process, clean up these pages:


#188 Reference chapter on text tools Documentation Documentation task 01/13/07

kris

Ticket Summary Component Milestone Type Created
Description
#563 tango.net.Socket.d uses non reentrant and thread-unsafe C functionality Core Functionality 1.0 defect 08/07/07

While going through the Socket.d code, I noticed some C library calls that will definitely make a fairly significant impact on using this library in a multi-threaded environment.

Here's the pieces I was able to find:

tango.net.Socket.IPv4Address.toAddrString() uses inet_ntoa (deprecated, uses a static buffer) should be inet_ntop, ie:

char[] toAddrString() {

char[16] buff; // 16 bytes is INET_ADDRSTRLEN
int AF_IENT = 2; // on linux...

return .toUtf8(inet_ntop(AF_INET, sin.sin_addr, buff.ptr, buff.sizeof)).dup;

}

Also:

tango.net.Socket.NetHost?.getHostByAddr uses gethostbyaddr which uses an internal static buffer:

The "new" way to do this is using getnameinfo ... However, big chunks of NetHost? will have to be rewritten as there's a lot of functionality that deals with hostents. I couldn't find a gethostbyaddr_r in my man pages, or you could probably use that.

Also:

tango.net.Socket.NetHost?.getHostByName uses gethostbyname which uses an internal static buffer.

The "new" way to do this is by using getaddrinfo, or gethostbyname_r would probably work.

Basically, any new InternetAddress? has a chance to have unknown data, as well as any call to toAddrInfo.


#665 Clean up DMD Toolchain docs Documentation Documentation defect 10/05/07

These are old and somewhat outdated (I fixed at least parts of the first):


#697 rename some things Core Functionality 1.0 defect 10/21/07
  • Java-style methods in tango.net.Uri
  • change MemoryConduit? to HeapConduit?
  • toUtf8 => toString
  • String class => Text
  • tango.io.File.create() => createPaths()

#728 Buffer.drain throws exception on Eof Core Functionality 1.0 defect 11/04/07

It's also final. This makes me sad.

For the case of non-blocking sockets, the eof case is common. I could see it throwing an error if the connection goes bad (currently the only cause for Eof in blocking sockets) If my proposal in http://www.dsource.org/projects/tango/ticket/279 gets accepted, buffer.drain could check both return values, throw an error only on the case of a bad connection, and return 0 in the case of Eof.


#837 FilePath.modified FtpFileInfo.modify Documentation 1.0 defect 12/28/07

Please mention in the docs what type of time (UTC or local) these two are returning. I think it also makes sense to name them the same way.


#860 opAssign in FilePath Tango External Bugs defect 01/19/08

From http://digitalmars.com/d/1.0/operatoroverloading.html
The assignment operator cannot be overloaded for rvalues that can be implicitly cast to the lvalue type.

Doing so results in a compiler error. But doing it via an alias, as done in tango.io.FilePath?, the compiler does not complain.

But trying to nullify a ref result in compile error:

auto fp = new FilePath( "/tmp" );
fp = null;
t.d(14): Error: overloads FilePath(FilePath path) and FilePath(char[] path) both match argument list for set
t.d(14): function tango.io.FilePath.FilePath.set called with argument types:
        (void*)
matches both:
        tango.io.FilePath.FilePath.set(FilePath)
and:
        tango.io.FilePath.FilePath.set(char[])

#861 It is impossible to enumerate hidden/system files on Windows IO 1.0 defect 01/20/08

It is impossible to enumerate hidden/system files on Windows using Tango.

The only way to enumerate files without invoking OS-level functions, tango.io.FilePath.opApply, has a hard-coded check and completely ignores files with these arguments.

FWIW, I think it's saner to enumerate all files than make some files inaccessible by their attributes.


#874 Tango's IO code uses uint to represent buffer length instead of size_t IO 1.0 defect 02/05/08

My specific instance: IBuffer.read(delegate) expects an uint-returning delegate instead of a size_t-returning delegate, while the latter seems more natural. This means that on my amd64-gdc

buffer.read( (void[] slice) { return slice.length; } );

doesn't compile, it currently needs to be

buffer.read( delegate uint(void[] slice) { return slice.length; } );

I asked about this on #d.tango and Sean answered:

<sean_k> the IO code uses uint to represent buffer length. you'll have to ask Kris about why. <sean_k> my guess is that it will have to change at some point


#941 Warnings in logging package on X86_64 Tango 1.0 defect 02/24/08

Event.d

warning - tango/util/log/Event.d:326: Error: implicit conversion of expression (x.length) of type ulong to uint can cause loss of data
warning - tango/util/log/Event.d:327: Error: implicit conversion of expression (cast(ulong)*(&(this.scratch) + 0LU) + (x.length)) of type ulong to uint can cause loss of data

Hierarchy.d

warning - tango/util/log/Hierarchy.d:251: Error: implicit conversion of expression ((this.name_).length) of type ulong to int can cause loss of data
warning - tango/util/log/Hierarchy.d:431: Error: implicit conversion of expression (length) of type ulong to int can cause loss of data

EventLayout.d

warning - tango/util/log/EventLayout.d:71: Error: implicit conversion of expression (s.length) of type ulong to int can cause loss of data

#943 Warnings in text.convert package on x86_64 Tango 1.0 defect 02/24/08

Utf.d

warning - tango/text/convert/Utf.d:85: Error: implicit conversion of expression (input.length) of type ulong to uint can cause loss of data
warning - tango/text/convert/Utf.d:89: Error: implicit conversion of expression ((input.length) * 2LU + 3LU) of type ulong to int can cause loss of data
warning - tango/text/convert/Utf.d:110: Error: implicit conversion of expression ((pOut - cast(char*)output) / 1L) of type long to int can cause loss of data
warning - tango/text/convert/Utf.d:139: Error: implicit conversion of expression ((pOut - cast(char*)output) / 1L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:205: Error: implicit conversion of expression ((pIn - cast(char*)input) / 1L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:213: Error: implicit conversion of expression ((pIn - cast(char*)input) / 1L) of type long to uint can cause loss of data
warning - tango/text/convert/Utf.d:217: Error: implicit conversion of expression ((pIn - cast(char*)input) / 1L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:243: Error: implicit conversion of expression (input.length) of type ulong to uint can cause loss of data
warning - tango/text/convert/Utf.d:247: Error: implicit conversion of expression ((input.length) * 2LU + 4LU) of type ulong to int can cause loss of data
warning - tango/text/convert/Utf.d:268: Error: implicit conversion of expression ((pOut - cast(char*)output) / 1L) of type long to int can cause loss of data
warning - tango/text/convert/Utf.d:305: Error: implicit conversion of expression ((pOut - cast(char*)output) / 1L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:362: Error: implicit conversion of expression ((pIn - cast(char*)input) / 1L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:380: Error: implicit conversion of expression ((pIn - cast(char*)input) / 1L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:388: Error: implicit conversion of expression ((pIn - cast(char*)input) / 1L) of type long to uint can cause loss of data
warning - tango/text/convert/Utf.d:392: Error: implicit conversion of expression ((pIn - cast(char*)input) / 1L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:416: Error: implicit conversion of expression (input.length) of type ulong to uint can cause loss of data
warning - tango/text/convert/Utf.d:419: Error: implicit conversion of expression ((input.length) * 2LU + 2LU) of type ulong to int can cause loss of data
warning - tango/text/convert/Utf.d:440: Error: implicit conversion of expression ((pOut - cast(wchar*)output) / 2L) of type long to int can cause loss of data
warning - tango/text/convert/Utf.d:460: Error: implicit conversion of expression ((pOut - cast(wchar*)output) / 2L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:499: Error: implicit conversion of expression ((pIn - cast(wchar*)input) / 2L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:514: Error: implicit conversion of expression ((pIn - cast(wchar*)input) / 2L) of type long to ulong can cause loss of data
warning - tango/text/convert/Utf.d:522: Error: implicit conversion of expression ((pIn - cast(wchar*)input) / 2L) of type long to uint can cause loss of data
warning - tango/text/convert/Utf.d:526: Error: implicit conversion of expression ((pIn - cast(wchar*)input) / 2L) of type long to ulong can cause loss of data

#944 Warnings in text package on x86_64 Tango 1.0 defect 02/24/08

Util.d

warning - tango/text/Util.d:1144: Error: implicit conversion of expression (x.length) of type ulong to uint can cause loss of data

#1027 SHFileOperation in UserGdi should be SHFileOperationA SHFileOperationW Packaging 1.0 defect 04/07/08

/**

tango.sys.win32.UserGdi? int SHFileOperation(LPSHFILEOPSTRUCT) should be:

*/

    int SHFileOperationA(LPSHFILEOPSTRUCTA);
    int SHFileOperationW(LPSHFILEOPSTRUCTW);

//tango.sys.win32.Types SHFILEOPSTRUCT shouled be:

struct SHFILEOPSTRUCTA {
	HWND         hwnd;
	UINT         wFunc;
	LPCSTR       pFrom;
	LPCSTR       pTo;
	FILEOP_FLAGS fFlags;
	BOOL         fAnyOperationsAborted;
	PVOID        hNameMappings;
	LPCSTR       lpszProgressTitle;
}
alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA;

struct SHFILEOPSTRUCTW {
	HWND         hwnd;
	UINT         wFunc;
	LPCWSTR      pFrom;
	LPCWSTR      pTo;
	FILEOP_FLAGS fFlags;
	BOOL         fAnyOperationsAborted;
	PVOID        hNameMappings;
	LPCWSTR      lpszProgressTitle;
}
alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW;

and add these to Types.di, for use with SHFileOperation

/** lacks in Tango 
 See_Also:
    SHFILEOPSTRUCT http://msdn2.microsoft.com/en-us/library/bb759795(VS.85).aspx
    SHFileOperation http://msdn2.microsoft.com/en-us/library/bb762164(VS.85).aspx
*/
const FILEOP_FLAGS
	FOF_MULTIDESTFILES        = 0x0001,
	FOF_CONFIRMMOUSE          = 0x0002,
	FOF_SILENT                = 0x0004,
	FOF_RENAMEONCOLLISION     = 0x0008,
	FOF_NOCONFIRMATION        = 0x0010,
	FOF_WANTMAPPINGHANDLE     = 0x0020,
	FOF_ALLOWUNDO             = 0x0040,
	FOF_FILESONLY             = 0x0080,
	FOF_SIMPLEPROGRESS        = 0x0100,
	FOF_NOCONFIRMMKDIR        = 0x0200,
	FOF_NOERRORUI             = 0x0400,
	FOF_NOCOPYSECURITYATTRIBS = 0x0800;

enum : UINT {
	FO_MOVE = 1,
	FO_COPY,
	FO_DELETE,
	FO_RENAME
}


#1097 patch: text.Util warning free on x86_64 Tango 1.0 defect 05/10/08

Replaced uint with size_t at alot of places, which resolves all warnings I encountered on Linux x86_64.

In addition, I changed the functions trim[r|l] and strip[r|l] so they can be evaluated at compile time. (Now they use array-indices instead of pointers).


#356 function to get iterator for the end of a container Core Functionality 1.0 enhancement 03/24/07

If you could get the iterator from the end of a container like a list, you could use the list as a queue. If the container was a map, you could keep discarding the largest element, to keep a map of the N smallest items of a set.


#748 Replacement/Enhancement for tango.util.ArgParser Core Functionality 0.99.8 enhancement 11/15/07

Currently, ArgParser? is fairly simplistic. As command line syntax is traditionally fairly similar, it could be extended/replaced with additional functionality.

As example, I present http://www.dsource.org/projects/tango.scrapple/browser/trunk/tango/scrapple/util/Arguments.d

This is a command line argument parsing module that was ported from C for use in D. It could use some polish and 'tangofication', but otherwise, I think is a good example of how argument parsing could be made simpler for the user. A possible future extension of this could be to generate help text automatically.


#903 Add (_argptr,_arguments) versions of tango.io.Print varargs methods. IO 1.0 enhancement 02/14/08

tango.io.Print's print,format, and formatln should all come in 'va' versions that take a _argptr,_arguments pair.


#963 insert / remove / replace node(s) in xml document Tango 1.0 enhancement 03/04/08

In tango.text.xml.Document.NodeImpl there are public methods to append child node or attribute, but it lacks methods to insert at arbitrary position, remove or replace them.


#1157 tango.io.digest.Crc32 speed-up IO 0.99.8 enhancement 06/25/08

I would like to propose the following change in update method:

instead of current:

    r &= 0xFFFFFF00;
    r /= 0x100;
    r &= 16777215;

change it to:

    r >>>= 8;

this should improve speed of calculating crc a bit.

similiar code is also present in ctor, but it's short loop, and usually called much less times than update, but readability could be imporved:

current:

        if (value & 1) {
                value &= 0xFFFFFFFE;
                value /= 2;
                value &= 0x7FFFFFFF;
                value ^= polynomial;
        }
        else
        {
                value &= 0xFFFFFFFE;
                value /= 2;
                value &= 0x7FFFFFFF;
        }

to:

        if (value & 1)
                value >>>=1, value ^= polynomial;
        else
                value >>>=1;

If there are any reasons for keeping & + /= + & instead of >>> please write them below.

Testing on 350M file on my computer gives avarage times 6.55 secs for old version and 5.65 secs for new one that gives about 16% speed-up.


#640 add COM support to Tango Packaging 1.0 wishlist 09/21/07

COM is a great thing on Windows, you can find COM object everywhere (e.g. IE).

Juno (by Jonh C) wraped COM apis with Phobos.

add COM support to Tango, Just:

first:

port tlbimpd to Tango, to generate COM header(type library) automatically.
http://svn.dsource.org/projects/juno/trunk/tools/tlbimpd/

second:
port Juno.com package to Tango.

http://www.dsource.org/projects/juno


#282 tango.text.convert.Utf accepts some invalid UTF sequences Core Functionality 1.0 defect 02/17/07

Attached is a UTF conversion testing module and its output when used with Tango's tango.text.convert.Utf functions. What Tango fails at is that it's too liberal in what it accepts. To name a few: UTF-16 surrogates encoded in UTF-8 or UTF-32, overlong representations, UTF-8 continuation bytes that aren't part of a whole sequence.

The forum topic http://www.dsource.org/projects/tango/forums/topic/13 has a UTF-8 to UTF-32 converter which works for a single code point, returning a dchar. Fixing the toUtf32 functions, at least, should be trivial if it is used as a helper function. The toUtf16 ones I haven't looked at too much, but shouldn't be too difficult.


#752 Sprint.format should take a platform-dependent valist, not void* IO 1.0 defect 11/16/07

I think that Sprint.format is the only function in Tango that takes a void* instead of something like a va_list.. needless to say this causes compilation issues when using things that are trying to call it with a char* (default on x86 Linux) but it doesn't match that overload.


#853 tango.text.convert.Layout.Layout(T).convertOne argument order Tango 1.0 defect 01/10/08

public T[] tango.text.convert.Layout.Layout(T).convertOne(T[] result, TypeInfo? ti, Arg arg)

If convertOne is meant to be a public function, should it not take result as the last argument instead of as the first one and make result default to null like other similar Tango funcs?


#1060 println is missing IO 2.0 defect 04/18/08

The Print api should be made more orthogonal by including a println function.

Then you would have a nice grid:

             no nl      with nl
             ------     --------
plain     :  print      println
formatted :  format     formatln

#377 '%A' format hex output for floating-point Tango 1.0 enhancement 04/03/07

Hex output & parsing required in tango.text.convert


#479 tango.text.convert.Layout cannot handle imaginary or complex types Tango 1.0 enhancement 05/17/07

As the summary states, Layout cannot format imaginary of complex floating point types, and only outputs the type of arrays, not their contents.

It would be nice to have this for parity with Phobos.


#484 doc tango.io.protocol Tango Documentation enhancement 05/22/07

I would like to have a summary about the existing protocols.

What to use, to write/read network byte order?

What about, to use a "better" name for PickleProtocol?? e.g. "NetworkByteorderProtocol?" or "BigEndianProtocol?"


#553 Difficulties working with tango.io.MemoryConduit and tango.text.stream.LineIterator Core Functionality 1.0 enhancement 07/31/07

During the process of moving some existing phobos code to tango, I encountered some issues with the current design of some of the IO components of tango. The existing phobos code was a mime parser.

1. The ability to seek in conduits. FileConduit? supports this, I had to make a new MemoryConduit? to do this, as I wanted to be able to seek to a specific part of the MemoryConduit? and read an exact amount of data during parsing. I'm unsure if this type of behavior is what was intended for the MemoryConduit?.

2. The ability to find my position of the underlying stream using an iterator. I've implemented this using the attached LineIterator?. It seems to work with both Memory and File conduits.

3. The ability to reverse a stream iterator (LineIterator? in this case). Kris added a new function "push" that allows you to push one token back on the Iterator, which solved my specific problem. However, this may need to be extended, as parsing a file can require moving backwards some amount due to recursion, etc.

I've attached the two modified files as examples of what I needed to do to finish implementation of this module. I didn't go over them to see if they much the "contributing guidelines" as I think of them more as a suggestion and not anything concrete.


#624 SocketConduit doesn't play well with non-blocking sockets in writing and connecting IO 2.0 enhancement 09/12/07

the "read" functionality works really well, sets the hadTimeout etc, but connecting and writing does not seem to work as well.


#927 complex parsing function Tango 1.0 enhancement 02/18/08

Here's an addition to text.convert.Float. I haven't really put it to any use yet, but it passes the unittests. The way it evaluates addition/subtraction operations may be a little surprising, but I wanted it to work as similarly as possible to D's complex "literals".


#1135 SerialPort: simple access to serial ports (aka COM-ports) IO 1.0 enhancement 06/07/08

Enables applications to use a serial port (aka COM-port, ttyS). Usage is similar to that of FileConduit?:

auto serPort = new SerialPort("ttyS0");
serPort.speed = 38400;
serPort.write("Hello world!");
serPort.close();

#1178 Arguments should support outputting parameters to certain types Core Functionality 1.0 enhancement 07/07/08

One of the benefits of Phobos' std.getopt is it easily supports parsing integer arguments to integer variables. It would be cool if there were automatic built-in pieces that could be added as 'validators' that also save the argument to a variable.

For instance:

int timeout;
args.define("timeout").output(timeout);

This could be done using template member functions to determine the type. I think it could parse ints, longs, doubles, and strings with simple builtin functions (i.e. don't use Convert).

For anything other than those types, the default template could call a parse function on the given type, i.e.:

mytype var;
args.define("mytype").output(var);

and calling application with -mytype hello translates to calling var.parse("hello").

Then one could define wrapper structs that would do the translation on objects that don't have a built-in parse function, or for user-defined parsing (dates come to mind).


#1179 Arguments should support options to stop parsing Core Functionality 1.0 enhancement 07/07/08

2 cases:

  1. stopping on first non option (i.e. ssh -v host -v ls -la: this should stop after the second -v)
  2. stopping when a sentinel option is encountered (i.e. '--' by itself)

#175 DeRailed -- RubyOnRails for D Packaging 2.0 wishlist 01/11/07

We're almost at the stage where it's possible to construct an equivalent of RubyOnRails? for D. IMO, this is *the* killer app for D -- how about we get a group together to investigate? Eric? You up for this? Who else? Add your names below :)

We'll need a solid DB interface, dynamic page builder, web-server and, most of all, a means to dynamically change the db-schema (as pages are changed). What do you think?


#516 D 2.0 support Tango 2.0 wishlist 06/19/07

AKA "The Great const Cleanup".

Is this going to happen any time soon? I suppose you'll be waiting for D 2.0 to stabilize, first? Or will there be a fork of Tango?


#548 alias char[] string Core Functionality 1.0 wishlist 07/24/07

Since Phobos introduced this very handy alias (and also wstring,dstring), Tango should also adopt it, too.

Just a reminder for the tango team. :P


#866 Have both functional and object-oriented versions of Regex functionality Core Functionality 1.0 wishlist 01/24/08

It already seems to have search, but it'd be nice to have this extended to all the methods. Basically, for a method "foo", there should be a free function "foo" that takes a regex string as the first param. That is, something like:

auto r = Regexp(pattern);
auto val = r.foo(params);

Should be interchangeable with:

auto val = foo(pattern, params);

#908 Add function interface to Stdout methods IO 1.0 wishlist 02/14/08

Here's an implementation of some plain functions (a la writefln) for Tango. See doc comment in module for explanation and rationale.


#1116 VfsFile : support for atime,mtime,ctime IO 1.0 wishlist 05/21/08

Methods in VfsFile? to get modification, access and creation times could be usefull.

http://dsource.org/projects/tango/forums/topic/471


#279 Broken SocketConduit.read() in non-blocking mode. Tango 2.0 defect 02/11/07

In nonblocking mode calling SocketConduit?.read() seams to make connection closed and returns nothing.

As a workaround I was told to use Socket.receive().


#407 toUtf8 (fromUtf8) etc. are missing Tango 1.0 enhancement 04/17/07

Seems like the trivial functions are missing from tango.text.convert.Utf ? I would like these for Phobos compatibility, and because they're handy...

char[] toUtf8(char[] input ... 

wchar[] toUtf16(wchar[] input ...

dchar[] toUtf32(wchar[] input ...

Did a workaround for now, but it would still be nice to have it in Tango. (to be clear they don't convert anything at all, but just copy it over)


#695 Need a way to format a number as a code point IO 1.0 enhancement 10/21/07

Currently, if one wishes to output a number as both a Unicode code point and a number, one must pass it twice, doing a typecast:

int n;
Stdout.formatln("{} {:d}", cast(dchar)n, n);

Having a Unicode character formatting string would be preferable:

int n;
Stdout.formatln("{0:c} {0:d}", n);

:c would be following from printf and Java's java.util.Formatter, where it's %c. Other possibilities: :u (perhaps too easily confused with printf's %u for unsigned integers), :unicode, :cp, :codepoint.


#914 Variant.toString should give a representation of the data Core Functionality 1.0 enhancement 02/16/08

Currently, Variant.toString returns a string representation of the type of data contained in the Variant. Ideally, it should return a representation of the data instead.

This probably won't work for structs, which don't need to define a toString method. But you can do this:

char[] toString(Variant v)
{
   if (v.isImplicitly!(long)) 
   {
      return Integer.toString(v.get!(long));
   }
   else if (v.isImplicitly!(real))
   {
      return Float.toString(v.get!(real));
   }
   else if (v.isImplicitly!(Object))
   {
      return v.get!(Object).toString;
   }
   else
   {
      // current implementation
      return v.type.toString;
   }
}

unittest
{
   Variant v = 5;
   assert ("5" == toString(v));
   auto o = new Object;
   v = o;
   assert (o.toString == toString(v));
   v = 7.83;
   assert (Float.toString(7.83) == toString(v));
   ubyte[] array = [];
   v = array;
   assert (typeid(ubyte[]).toString == toString(v));
}

This would, of course, be an inappropriate dependency if placed in Variant. So could you guys add a formatter to tango.text.convert?


#15 Create code style document Documentation Documentation task 05/05/06

larsivi

Ticket Summary Component Milestone Type Created
Description
#999 Legacy support Packaging 0.99.8 enhancement 03/25/08

Please provide an archive of downloads and documentation for each release. With breaking API changes and bugs in new releases, it's impractical to upgrade to every release. Without this, it's increadably painful to stay with an old release.


#254 The Logger doc is screwed Documentation Documentation defect 02/02/07

http://www.dsource.org/projects/tango/docs/current/tango.util.log.Logger.html

The page is badly formatted:

$(DDOC_MODULE_MEMBERS # class Logger : tango.util.log.model.ILevel.ILevel; $(DDOC_DECL_DD This is the primary API to the log package. Use the two static methods to access and/or create Logger instances, and the other methods to modify specific Logger attributes.


#463 Unittest fails in tango.math.IEEE using gdc Core Functionality External Bugs defect 05/10/07

tango.core.Exception.AssertException?@tango/math/IEEE.d(279): Assertion failure

Using GDC 0.23 on linux 32 bit


#907 Locale stuff not working like it should IO 1.0 defect 02/14/08

Here's a slightly modified version of tango/example/text/formatspec.d

/**

  Example showing how to use format specifier components in a format string's 
  argument.

  Put into public domain by Lars Ivar Igesund

*/


import tango.io.Stdout;
import tango.text.locale.Locale;

void main(){
    double avogadros = 6.0221415e23;
    Stdout.formatln("I have {0:C} in cash.", 100);
    Stdout.formatln("Avogadro's number is {0:E}.", avogadros);
    Stdout.formatln("Avogadro's number (with alignment) is {0,4:E}.", avogadros);

    Stdout.layout = new Locale (Culture.getCulture ("en-US"));

    Stdout.formatln("I have {0:C} in cash.", 100);
    Stdout.formatln("Avogadro's number is {0:E}.", avogadros);
    Stdout.formatln("Avogadro's number (with alignment) is {0,4:E}.", avogadros);
}

Output on Windows XP:

F:\usr\pkg\d\dmd\import\tango\example\text>formatspec
I have {unknown format 'C'} in cash.
Avogadro's number is 6.02e+23.
Avogadro's number (with alignment) is 6.02e+23.
I have $100.00 in cash.
Avogadro's number is {invalid FP format specifier 'E'}.
Avogadro's number (with alignment) is {invalid FP format specifier 'E'}.

I don't think any of these should be giving "Unknown format". The default posix "C" locale defines currency to be "$" I think. I guess you could argue for current behavior.

But at the very least floating point formats shouldn't become "invalid" after changing to en-US locale.


#1136 Zip consistency check fails on seemingly correct archives Core Functionality 0.99.8 defect 06/08/08

The program in #1089 seems to fail with some archives. A simple look at the header dumps seems to suggest that this is caused by the wrong headers being compared, but I can't see an obvious reason off the bat.


#1176 Manual, API docs, examples and tutorials, per function/class wiki pages -> total confusion Documentation Documentation defect 07/05/08

There's mostly nice API documentation generated from the source code. There are nice tutorials that really helped me. There's also a manual I never took a look at. Then, there's a wiki page per function or class, linked from the API docs. It seems I'm the only one who wrote any of significance. Also, there are examples all over the place.

If this sounds confusing, then it probably is. This really has to be clearly documented - what goes where, where do I look if I need what - and this document should be easily accessible (from the front page?). Otherwise, people looking for documentation (anyone using Tango) won't know where to look and will be confused. That also applies to people who want to write documentation - I find the wiki comfortable for that, but the confusion remains.


#1189 extractArchive path bug Core Functionality 0.99.7 defect 07/13/08

in tango.io.compress.Zip extractArchive :

auto path = Path.join(dest, entry.info.name);

will get a incorrect path, for example, compressed D:\test.txt to D:\test.zip, and extract to D:, the path will be

D:/d:/test.txt

how about atleast run sample code once before commit the code?

void extractArchive(char[] archive, char[] dest)
{
    scope zr = new ZipBlockReader(archive);

    foreach( entry ; zr )
    {
        // Skip directories
        if( entry.info.name[$-1] == '/' ) continue;

        auto path = Path.join(dest, entry.info.name);
        scope fout = new FileConduit(path, FileConduit.WriteCreate);
        fout.output.copy(entry.open);
    }
}



#1191 Path.modified(name) same as Path.created(name) if modified now Core Functionality External Bugs defect 07/14/08

assume D:\test.txt created yesterday, and modified now.

        import Path = tango.io.Path;
        auto name = "D:\\test.txt";
        auto modified = Path.modified(name);
        auto created = Path.created(name);
        Stdout.formatln("modified {}", modified.ticks); //633517142269165056
        Stdout.formatln("created {}", created.ticks);   //633517142269165056
        assert(modified.ticks == created.ticks );       //true
        assert(modified == created );                   //true

        assert(Path.modified(name) == Path.created(name)); //failure
        assert(Path.modified(name).ticks == Path.created(name).ticks); //failure
        

Driver D:\ is FAT32 format, but Path.timeStamps(name).created returns UTC time.

tested with latest tango-trunk, Windows XP


#678 Link libdl on linux Tango External Bugs enhancement 10/11/07

The original issue has been fixed in unittest.sh (by linking libdl), the underlying problem isn't fixed though. This is due to the fact that different build methods would require different ways to specify this.

The only work for all solution would be to put libdl in dmd.conf, something which may be acceptable in that case.

The best thing though, would be to pragma (lib, "") working and interpreted by the compiler. This means that DMD needs to support it on Linux too, and GDC just needs to implement it.

The first is reported in http://d.puremagic.com/issues/show_bug.cgi?id=1663


#749 Enhanced Unit Testing Core Functionality 2.0 enhancement 11/15/07

As unit testing is part of the D language itself, I don't think a unit test module is out of place in a standard lib.

Presenting as example: http://www.dsource.org/projects/tango.scrapple/browser/trunk/tango/scrapple/util/Test.d


#868 FTP Updates IO 1.0 enhancement 01/25/08

This update FtpClient?.d FtpTelnet?.d and SocketConduit?.d(edited part of it to make a member of it protected so my class that inherited could do what it needed to.)


#401 Clean up package generation scripts Packaging 1.0 task 04/16/07

Clean up and commit package generation scripts.

  • One version should be enough - one that could just be exectued with different configs
  • See if more packages should be added to the fray - in particular with binaries, but no compiler.
  • Improve to make it possible to build with several compiler versions (DMD in particular)

#633 Same ole ddoc garbage Documentation Documentation defect 09/17/07

http://dsource.org/projects/tango/docs/current/tango.io.FileScan.html


#912 Warning messages from recent math.IEEE changes Core Functionality External Bugs defect 02/16/08

some warnings slipped in here recently (compile with -w)


#1004 Add installer for user libraries Core Functionality 0.99.8 defect 03/26/08

There is no installer for tango user libraries in the lib directory. Installers exist for all other components.


#473 Include Tango docs with downloads. Documentation Documentation enhancement 05/15/07

Tango has some very nice documentation, but sadly you need net access to read it. This makes programming with Tango inconvenient for dialup users. Also, dsource occasionally drops out entirely making things even worse.

At a minimum, a snapshot of the docs should be included. Bonus cookie for including a searchable reference as well; as loathe as I am to admit it, a Java applet could be useful here.


#1003 Tango Installers Core Functionality 0.99.8 enhancement 03/26/08

Please make Tango installers print out the actions they're taking, AKA which files are getting copied to where. This will help users know where things are going and more easily diagnose improper installer behavior.