{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() {
} 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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 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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
second: 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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||



