[Issue 5237] writefln doesn't respect Complex.toString

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5237



--- Comment #1 from Don clugd...@yahoo.com.au 2010-11-19 01:25:33 PST ---
Partial fix in svn 2183. This fixes the last 3 cases, not the first one.
It would be very straightforward to implement the first case, but we need to
think if it would really be a sensible design, since we'd be doing
atoi(itoa(atoi(original_string))).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5231] BigInt lacks a normal toString()

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5231


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #16 from Don clugd...@yahoo.com.au 2010-11-19 01:27:43 PST ---
This is a bug in format. Even the partial fix I made for bug 5237, makes BigInt
print correctly, without any change to the BigInt code.

*** This issue has been marked as a duplicate of issue 5237 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5237] writefln doesn't respect Complex.toString

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5237


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #2 from Don clugd...@yahoo.com.au 2010-11-19 01:27:43 PST ---
*** Issue 5231 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5237] writefln doesn't respect Complex.toString

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5237


Lars T. Kyllingstad bugzi...@kyllingen.net changed:

   What|Removed |Added

 CC||bugzi...@kyllingen.net


--- Comment #3 from Lars T. Kyllingstad bugzi...@kyllingen.net 2010-11-19 
02:26:47 PST ---
(In reply to comment #1)
 Partial fix in svn 2183. This fixes the last 3 cases, not the first one.
 It would be very straightforward to implement the first case, but we need to
 think if it would really be a sensible design, since we'd be doing
 atoi(itoa(atoi(original_string))).

Couln't that be easily solved by storing the full format string in FormatSpec?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5237] writefln doesn't respect Complex.toString

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5237



--- Comment #4 from Don clugd...@yahoo.com.au 2010-11-19 04:19:11 PST ---
(In reply to comment #3)
 (In reply to comment #1)
  Partial fix in svn 2183. This fixes the last 3 cases, not the first one.
  It would be very straightforward to implement the first case, but we need to
  think if it would really be a sensible design, since we'd be doing
  atoi(itoa(atoi(original_string))).
 
 Couln't that be easily solved by storing the full format string in FormatSpec?

Probably. My guess is that positional parameters will make it more complicated,
but possibly it's really simple.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5237] writefln doesn't respect Complex.toString

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5237



--- Comment #5 from Lars T. Kyllingstad bugzi...@kyllingen.net 2010-11-19 
04:32:21 PST ---
(In reply to comment #4)
 My guess is that positional parameters will make it more complicated,
 but possibly it's really simple.

Regarding positional parameters, allow me to restate a point I made in the DIP9
thread on the newsgroup:

I think it's best to leave out the '%' from the format string that is sent to
toString().  This will facilitate the use of positional parameters, in which
the percent is followed by a position specifier which necessarily has to be
handled at a higher level than toString().  Example:

  BigInt i = 456;
  BigInt j = 123;
  writefln(%2$s %1$s, i, j);  // Prints 123 456

The only thing BigInt.writeTo() needs to see is the part after the '$'
character.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5237] writefln doesn't respect Complex.toString

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5237



--- Comment #6 from Lars T. Kyllingstad bugzi...@kyllingen.net 2010-11-19 
04:35:04 PST ---
(In reply to comment #3)
 (In reply to comment #1)
  Partial fix in svn 2183. This fixes the last 3 cases, not the first one.
  It would be very straightforward to implement the first case, but we need to
  think if it would really be a sensible design, since we'd be doing
  atoi(itoa(atoi(original_string))).
 
 Couln't that be easily solved by storing the full format string in FormatSpec?

One problem is of course when the user passes a non-immutable format string, as
in

  char[] fmt = %s %s.dup;
  writefln(fmt, 1, 3.14);

Then each format specifier has to be dup-ed before being stored in FormatSpec.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5238] PATCH: fix return of uninitialised var in interpret.c

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5238



--- Comment #4 from simon s.d.hamm...@googlemail.com 2010-11-19 06:21:24 PST 
---
(In reply to comment #1)
 With this patch applied on my system, I still fail to pass 
 runnable/interpret.d
 with -O, but now a few lines later at 2110:
 
 2106 int goodfoo3()
 2107 {
 2108S[4] w = void; // uninitialized array of structs
 2109w[$-2].x = 217; // initialize one member
 2110return w[2].x;
 2111 }
 2112 static assert(goodfoo3()==217);
 
 Simon, did you find this due to a failure with no changes to interpret.d or
 with -O added to the set of compilation flags to test?

Neither.

I've build DMD with Visual studio; the vc compiler does a pretty good
job of detected these sorts of bugs in debug builds.

I'll run the rest of the tests when I get home, see if there are any
other gotchas lurking.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2954] [tdpl] Appalling bug in associative arrays (D2 only)

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2954



--- Comment #5 from Don clugd...@yahoo.com.au 2010-11-19 06:36:06 PST ---
(In reply to comment #4)
 The fix still isn't right, as it fails at compile time on line 10.

It works for me. Hmm.
I think this might also be relying on the patch for bug 5218, which I still
have active in my local copy. Sorry about that -- it needs to be included as
well.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5231] BigInt lacks a normal toString()

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5231



--- Comment #17 from bearophile_h...@eml.cc 2010-11-19 07:14:29 PST ---
(In reply to comment #16)
 This is a bug in format. Even the partial fix I made for bug 5237, makes 
 BigInt
 print correctly, without any change to the BigInt code.
 
 *** This issue has been marked as a duplicate of issue 5237 ***

See also:
http://d.puremagic.com/issues/show_bug.cgi?id=4122

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5240] New: Faster std.random.uniform() for [0.0, 1.0) range

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5240

   Summary: Faster std.random.uniform() for [0.0, 1.0) range
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2010-11-19 07:16:51 PST ---
std.random.uniform() is a powerful and flexible function, but some tests show
that it's slow. It also calls nextafter() that is not fast.

A very common use case is the generation of random doubles in the [0.0, 0.1[
range (open on the right). So I suggest to speed up this special case. This
special case is present in the Python standard module random too, it is just
named random().

A way to support it is just to add a uniform() that takes no arguments (and
hopefully it doesn't need to call nextafter() inside):


import std.random: uniform;
void main() {
double d = uniform(); // equivalent to uniform(0.0, 1.0) but faster
}

This function that takes no arguments may also have a name like uniform01()
or random().


Another special case that may be worth supporting is the generation of a random
size_t. This is useful because it avoids using floating point values at all,
and probably minimizes other operations too to generate it, so it may be faster
still than the uniform() with no arguments.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5219] @noheap annotation

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5219


SHOO zan77...@nifty.com changed:

   What|Removed |Added

 CC||zan77...@nifty.com


--- Comment #5 from SHOO zan77...@nifty.com 2010-11-19 07:17:10 PST ---
I agree this suggestion. This is not only performance but also behavior.

When GC runs, it is a very huge cause of trouble to lack in real-time
processing.
All programs may not work under the abundant resources.
There are software that put emphasis on point that should work in limited
resource and limited duration like embedded software.
There are software that cannot offer performance to be satisfied with 
if they don't control it by a high-speed period of 1,000Hz like haptic device
controlling.
There are software to control the medical device that the delay of moment takes
the human life. 
It is fatal to lack in this property.
Of course it will be impossible to encode not to use GC at all. In that case,
you may move processing to another thread that never use GC.
It is not important that a heap is assigned, and it is important that GC does
not work. Therefore I prefer @nogc to @noheap.

On the other hand, there is a problem of the readability.
It does not appear on the code even if I introduced a profile to observe a
behavior of the real-time processing.
The property is clear if @nogc/@noheap is given to the attribute of the
function.
It is the best that the thing which wants not to be compiled is not compiled.
And I think it to be the information that a compiler can grasp like nothrow.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5241] New: dmd: ABI breakage/regression

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5241

   Summary: dmd: ABI breakage/regression
   Product: D
   Version: D1
  Platform: Other
OS/Version: All
Status: NEW
  Severity: regression
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: nfx...@gmail.com


--- Comment #0 from nfx...@gmail.com 2010-11-19 08:19:30 PST ---
At some point, both dmd and Phobos1 added a new member to TypeInfo_Struct:
m_flags.

The way dmd handles this causes an ABI breakage: dmd will use the _calculated_
size of the struct to calculate the offset of the name string. After that, dmd
_unconditionally_ writes the new m_flags field, and writes it at the same
offset where the name string is supposed to start.

As a result, TypeInfo names for structs are broken. The first 4 items of
typeid(somestruct).toString() will contain garbage. I'm not really sure why
after these 4 bytes, the expected string starts. Either I got it wrong, or the
backend data segment writer does strange things?

The problem doesn't appear if the object.d[i] contains the proper m_align. E.g.
compare:
http://www.dsource.org/projects/phobos/browser/branches/phobos-1.x/phobos/object.d#L141
http://www.dsource.org/projects/tango/browser/trunk/object.di#L163 (WARNING:
BSD LICENSED CODE)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5241] dmd: ABI breakage/regression

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5241



--- Comment #1 from nfx...@gmail.com 2010-11-19 08:20:24 PST ---
(In reply to comment #0)
 At some point, both dmd and Phobos1 added a new member to TypeInfo_Struct:
 m_flags.

Damn, that should be m_align.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 4966] Loops and closures break immutable

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4966


Bruno Medeiros bdom.pub+deeb...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bdom.pub+deeb...@gmail.com
 Resolution||DUPLICATE


--- Comment #1 from Bruno Medeiros bdom.pub+deeb...@gmail.com 2010-11-19 
08:59:45 PST ---
There is not just one variable 'v', there are several instances of variable
'v', each of them created on each iteration of the loop. Each of them is
immutable during its lifecycle (and cease to exist after their lifecycle, by
definition).

The orthogonal solution is:
 * make each 'v' variable be heap-allocated (have unscoped lifecycle). This is
consistent to how variables work in the top scope in functions.

I'm starting to reconsider though, if closures should automatically make
variables be heap-allocated. Maybe its best to require a keyword/annotation in
such referenced variables, and make the code not compile if such keywords is
not present.

*** This issue has been marked as a duplicate of issue 2043 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2043] Closure outer variables in nested blocks are not allocated/instantiated correctly.

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2043


Bruno Medeiros bdom.pub+deeb...@gmail.com changed:

   What|Removed |Added

 CC||nfx...@gmail.com


--- Comment #5 from Bruno Medeiros bdom.pub+deeb...@gmail.com 2010-11-19 
08:59:46 PST ---
*** Issue 4966 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5027] Ghost fields for Contract Programming

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5027


Bruno Medeiros bdom.pub+deeb...@gmail.com changed:

   What|Removed |Added

 CC||bdom.pub+deeb...@gmail.com


--- Comment #1 from Bruno Medeiros bdom.pub+deeb...@gmail.com 2010-11-19 
09:36:07 PST ---
Or alternatively, have the compiler define a debug/version identifier when
compiled in release mode, and then just use conditional compilation.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5193] SList cannot have struct elements that have immutable members.

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5193


chuck chuck.so...@gmail.com changed:

   What|Removed |Added

 CC||chuck.so...@gmail.com


--- Comment #1 from chuck chuck.so...@gmail.com 2010-11-19 09:35:14 PST ---
WARNING: N00B ALERT! Similar issues with Array and/or SList initializer?

Similar but slightly different:

 main.d 
import std.container;

void main() {
  auto aList = Array!string();
}
 Result  
$ dmd -run main
/opt/dmd2/bin/../../src/phobos/std/container.d(1536): Error: this for _data
needs to be type Array not type Payload
/opt/dmd2/bin/../../src/phobos/std/container.d(1537): Error: this for _data
needs to be type Array not type Payload
/opt/dmd2/bin/../../src/phobos/std/container.d(1538): Error: this for _data
needs to be type Array not type Payload



Different but slightly similar:

 main.d 
import std.container;

void main() {
  auto s = SList!string(hello);
}
 Result  
$ dmd -run main
main.d(5): Error: template std.container.SList!(string).SList.__ctor(U) if
(isImplicitlyConvertible!(U,T)) does not match any function template
declaration
main.d(5): Error: template std.container.SList!(string).SList.__ctor(U) if
(isImplicitlyConvertible!(U,T)) cannot deduce template function from argument
types !()(string)


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5027] Ghost fields for Contract Programming

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5027



--- Comment #2 from bearophile_h...@eml.cc 2010-11-19 09:45:30 PST ---
(In reply to comment #1)
 Or alternatively, have the compiler define a debug/version identifier when
 compiled in release mode, and then just use conditional compilation.

In that case the compiler can't enforce this constraint:

 can't be accessed inside static or instance methods of the
 class/struct/union,

The idea is that ghost field may be read/written only inside
pre/post-conditions and invariants.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5103] Container Documentation missing syntax

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5103



--- Comment #5 from Nick Treleaven ntrel-pub...@yahoo.co.uk 2010-11-19 
09:45:51 PST ---
 It's defined in docsrc/std.ddoc, but not in phobos/std.ddoc

I can confirm that building with docsrc/std.ddoc fixes this bug.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 4122] More handy BigInt.toString()

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4122



--- Comment #1 from bearophile_h...@eml.cc 2010-11-19 10:06:24 PST ---
See:
http://www.dsource.org/projects/phobos/changeset/2183

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5121] Make std.algorithm.swap weakly pure

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5121



--- Comment #1 from bearophile_h...@eml.cc 2010-11-19 10:05:01 PST ---
See:
http://www.dsource.org/projects/phobos/changeset/2180

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5240] Faster std.random.uniform() for [0.0, 1.0) range

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5240



--- Comment #1 from bearophile_h...@eml.cc 2010-11-19 12:10:42 PST ---
A specialized overload/function like this is useful in Phobos even if it's not
faster.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5242] New: self referencing template constraint crashes compiler

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5242

   Summary: self referencing template constraint crashes compiler
   Product: D
   Version: D2
  Platform: Other
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: michal.min...@gmail.com


--- Comment #0 from Michal Minich michal.min...@gmail.com 2010-11-19 14:30:59 
PST ---
I wanted to restrict template parameter X to allow only derived classes of A.

class A (X : A!(X)) { }

class B : A!(B) { }

void main () {}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5242] self referencing template constraint crashes compiler

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5242


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code, patch
 CC||clugd...@yahoo.com.au


--- Comment #1 from Don clugd...@yahoo.com.au 2010-11-19 14:42:41 PST ---
PATCH: template.c, line 2509

void deduceBaseClassParameters(BaseClass *b,
Scope *sc, Type *tparam, TemplateParameters *parameters, Objects *dedtypes,
Objects *best, int numBaseClassMatches)
{
-TemplateInstance *parti = b-base-parent-isTemplateInstance();
+TemplateInstance *parti = b-base ? b-base-parent-isTemplateInstance()
: NULL;
if (parti)
{
// Make a temporary copy of dedtypes so we don't destroy it
Objects *tmpdedtypes = new Objects();

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5027] Ghost fields for Contract Programming

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5027



--- Comment #3 from Bruno Medeiros bdom.pub+deeb...@gmail.com 2010-11-19 
15:11:32 PST ---
If instead of:

@ghost static int x;

you have:

debug(contracts) static int x;

and contracts is said identifier that is only defined in non-release mode,
then the compiler can enforce those constraints equally well: Just compile it
in release and see if it compiles without errors or not. It might be a minor
drawback in compiling performance (if you need to compile twice), but it is not
any less of a drawback on compiler checking power.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2095] covariance w/o typechecks = bugs

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2095



--- Comment #21 from Bruno Medeiros bdom.pub+deeb...@gmail.com 2010-11-19 
15:29:24 PST ---
(In reply to comment #20)
 (In reply to comment #19)
 
  Classes are not like arrays and pointers. These are
  supposed to be lightweight data types, it's out of place for D to have that
  extra runtime data in these lightweight data types (arrays and pointers). It
  worries me that you suggested this change without even considering an 
  approach
  based on fixing/improving the (static) type system.
 
 A solution based on the type system (plus a bit of syntax) as in C#/Java seems
 better. But it's probably better to implement it after the current group of
 features is implemented.

Yes, like I mentioned, Steven's solution has some limitations. For example, if
you have B[] the best you have is being allowed to cast it to const(A)[]. But
that means you wont be able to call mutable methods on the elements of that
array, whereas with a wildcard type such as:
  ? extends A[]
you would be able to call mutable methods of A. So this solution is not
perfect, but it works with existing concepts in D (it only needs const),
whereas we are far away from the point where can add such disrupting and
complex features such as wildcard type. (D's type system seems to be struggling
already as it is)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2095] covariance w/o typechecks = bugs

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2095



--- Comment #22 from Bruno Medeiros bdom.pub+deeb...@gmail.com 2010-11-19 
15:31:03 PST ---
 Yes, like I mentioned, Steven's solution has some limitations. 

I meant Stewart (Gordon), not Steven.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5219] @noheap annotation

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5219


Michal Minich michal.min...@gmail.com changed:

   What|Removed |Added

 CC||michal.min...@gmail.com


--- Comment #6 from Michal Minich michal.min...@gmail.com 2010-11-19 15:39:03 
PST ---
both @nogc and @noheap are very usefull, and I would like to have them
available. @nogc being less strict - allowing for manual memory management.

I think that both these attributes should be processed by some other tool.
Performance considerations are not usually part of the language, but are common
 as third party solutions.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5243] New: dmd -run potentially removes user files

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5243

   Summary: dmd -run potentially removes user files
   Product: D
   Version: D1  D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: critical
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: llu...@gmail.com


--- Comment #0 from Leandro Lucarella llu...@gmail.com 2010-11-19 16:09:43 
PST ---
See this example:

$ mkdir x
$ echo 'void main() {}'  x/test.d
$ echo my very important data that shouldn't be ereased  test
$ ls test 
test
$ cat test
my very important data that shouldn't be ereased
$ dmd -run x/test.d 
$ ls test
ls: cannot access test: No such file or directory
$ cat test
cat: test: No such file or directory

I think this is a very serious bug. It's really unexpected that DMD removes the
test file (I can understand why it happens, but it shouldn't). test.d being in
another directory is just to point how much surprising could be that running a
script in an unrelated directory removes files in the current directory.

If DMD wants to put D in the scripting world, this should be fixed ASAP, as no
scripting language EVER will remove your files unexpectedly.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5244] New: PATCH: fix use of uninitialised variable in toObj.c

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5244

   Summary: PATCH: fix use of uninitialised variable in toObj.c
   Product: D
   Version: D2
  Platform: Other
OS/Version: All
Status: NEW
  Severity: minor
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: s.d.hamm...@googlemail.com


--- Comment #0 from simon s.d.hamm...@googlemail.com 2010-11-19 16:20:39 PST 
---
Created an attachment (id=822)
PATCH: fix use of uninitialised variable in toObj.c

As summary:
triggered by test\compilable\header.d, line 135.

pretty minor, but the affected codes needs a look at JIC

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5244] PATCH: fix use of uninitialised variable in toObj.c

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5244


Brad Roberts bra...@puremagic.com changed:

   What|Removed |Added

Attachment #822|application/octet-stream|text/plain
  mime type||
 Attachment #822 is|0   |1
  patch||


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 4860] Taking delegates to a member function broken if method is also aliased in from a base class

2010-11-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4860



--- Comment #7 from Don clugd...@yahoo.com.au 2010-11-19 22:16:42 PST ---
That patch was a bit too early in the function. Should be e2ir.c, line 3308.
Still in DelegateExp::toElem().

{
// Get pointer to function out of virtual table
unsigned vindex;

assert(ethis);
ep = el_same(ethis);
ep = el_una(OPind, TYnptr, ep);
vindex = func-vtblIndex;
+if (vindex  0)
+error(Internal compiler error: malformed delegate. See Bugzilla
4860);

// Build *(ep + vindex * 4)
ep = el_bin(OPadd,TYnptr,ep,el_long(TYsize_t, vindex * 4));
ep = el_una(OPind,TYnptr,ep);
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---