[Issue 3145] std.perf documentation is generated, but there's no link to it from the side index

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3145


Andrej Mitrovic andrej.mitrov...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||andrej.mitrov...@gmail.com
 Resolution||WONTFIX


--- Comment #2 from Andrej Mitrovic andrej.mitrov...@gmail.com 2011-05-24 
23:37:09 PDT ---
std.perf is deprecated.

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


[Issue 2742] std.stdio assumes console works in utf-8

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2742



--- Comment #10 from Stewart Gordon s...@iname.com 2011-05-25 04:59:10 PDT ---
(In reply to comment #9)
 According to this page http://codesnippets.joyent.com/posts/show/414
 you can get and set the codepage via the
 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage] key's OEMCP
 value.
 
 Setting the codepage requires a restart though.

Not if you do it using chcp on the command line, or (presumably) SetConsoleCP
in the Windows API.

 Also, changing the codepage has other effects, e.g. using ALT+Numpad 
 keys is handled differently (with codepage 1252 you don't have to 
 prepend a zero when using ALT+Numkey apparently).
snip

I don't have to prepend a zero anyway.  It just produces a different character
if I do.  Traditionally at least, with a 0 it types a character from the ANSI
set, and without a 0 it types a character from the OEM set.

But as I test it (Win7), it depends on what font the command prompt is set to.
- Lucida Console or Consolas -
C:\Users\StewartGordonchcp 850
Active code page: 850

C:\Users\StewartGordon£úœ£
'£úœ£' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\StewartGordonchcp 1252
Active code page: 1252

C:\Users\StewartGordon£úœ£
- Raster Fonts -
C:\Users\StewartGordonchcp 850
Active code page: 850

C:\Users\StewartGordon£úo£
'£úo£' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\StewartGordonchcp 1252
Active code page: 1252

C:\Users\StewartGordonú·£ú
--

The sequence of strange characters is Alt+0163, Alt+163, Alt+0156, Alt+156 in
each case.

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


[Issue 2742] std.stdio assumes console works in utf-8

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2742


Vladimir Panteleev thecybersha...@gmail.com changed:

   What|Removed |Added

 CC||thecybersha...@gmail.com


--- Comment #11 from Vladimir Panteleev thecybersha...@gmail.com 2011-05-25 
05:02:20 PDT ---
Since no one seems to have mentioned this here yet:

http://msdn.microsoft.com/en-us/library/ms686036(v=vs.85).aspx

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


[Issue 4295] IID_IUnknown symbol undefined in phobos.lib

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4295



--- Comment #7 from Trass3r mrmoc...@gmx.de 2011-05-25 06:29:08 PDT ---
It isn't fixed, std.windows.iunknown is still present.

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


[Issue 2335] Message on unicode error

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2335


Andrej Mitrovic andrej.mitrov...@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


--- Comment #3 from Andrej Mitrovic andrej.mitrov...@gmail.com 2011-05-25 
07:19:39 PDT ---
Fixing my closing mistakes. Sorry for the noise.

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


[Issue 6056] New: Type lookup problem in string mixins

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6056

   Summary: Type lookup problem in string mixins
   Product: D
   Version: D2
  Platform: Other
OS/Version: Mac OS X
Status: NEW
  Severity: major
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: c...@klickverbot.at


--- Comment #0 from klickverbot c...@klickverbot.at 2011-05-25 09:22:04 PDT 
---
Apologies for the vague title, but I'm not quite sure how to appropriately
describe this issue. Consider the following snippet:

---
import std.traits : ParameterTypeTuple;

interface Bar {
  int a(int t);
  int b(short t);
}

template Foo(string name) {
  mixin(
alias ParameterTypeTuple!(Bar. ~ name ~ )[0] Type;\n ~
alias const(Type)* PointerType;
  );
  mixin(alias const(ParameterTypeTuple!(Bar. ~ name ~ )[0])*
PointerTypeDirect;);
  pragma(msg, name, : , Type, , , PointerType, , , PointerTypeDirect);
}

// The second instantiation always prints the same for PointerTypeDirect as
// the first, try swapping them.
alias Foo!(a) FooA;
alias Foo!(b) FooB;
---

DMD from current Git master (ef2b5aa) prints:
---
a: int, const(int)*, int*
b: short, const(short)*, int* 
---

Note that PointerTypeDirect is the same type on the second instantiation, while
the version using an intermediary alias works fine. If the two instantiation
lines are swapped, the output is as follows:
---
b: short, const(short)*, short*
a: int, const(int)*, short*
---

The two step version still works fine, whereas the direct version now has
short* in both cases.


You might have noticed that it would be enough to use a string mixin expression
for the ParameterTypeTuple argument instead of mixing in the whole declaration.
If one replaces Foo by this:
---
template Foo(string name) {
  alias const(ParameterTypeTuple!(mixin(Bar. ~ name))[0])* PointerTypeDirect;
  pragma(msg, name, : , PointerTypeDirect);
}
---

The output is:
---
a: int*
b: short*
---

The const seems to be missing, but otherwise it seems to work – but if the
original line is added in again:
---
template Foo(string name) {
  mixin(alias const(ParameterTypeTuple!(Bar. ~ name ~ )[0])* NotRelevant;);
  alias const(ParameterTypeTuple!(mixin(Bar. ~ name))[0])* PointerTypeDirect;
  pragma(msg, name, : , PointerTypeDirect);
}
---

The output again becomes:
---
a: int*
b: int*
---


If the original code is changed to declare a normal, non-const pointer, it
works as expected as well:
---
template Foo(string name) {
  mixin(alias ParameterTypeTuple!(Bar. ~ name ~ )[0]* PointerTypeDirect;);
  pragma(msg, name, : , PointerTypeDirect);
}
---

Correctly results in:
---
a: int*
b: short*
---

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


[Issue 6056] Type lookup problem in string mixins

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6056


kenn...@gmail.com changed:

   What|Removed |Added

 CC||kenn...@gmail.com
   Platform|Other   |x86
 OS/Version|Mac OS X|All


--- Comment #1 from kenn...@gmail.com 2011-05-25 11:38:45 PDT ---
Reduced test case:

--
template Bug6056() {
mixin(alias const typeof('c') A; alias const typeof(0) B;);
static assert(is(B == int));
}

alias Bug6056!() Bug6056_dummy;
--
x.d(4): Error: static assert  (is(char == int)) is false
x.d(7):instantiated from here: Bug6056!()
--

Alternative test case:

--
template Bug6056b() {
mixin(alias const(typeof('c')*) A; alias const(typeof(0)*) B;);
static assert(is(B == const(int*)));
}

alias Bug6056b!() Bug6056b_dummy;
--

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


[Issue 6056] Type lookup problem in string mixins

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6056



--- Comment #2 from kenn...@gmail.com 2011-05-25 11:39:51 PDT ---
Actually that 'template' is not needed.


mixin(alias const(typeof('c')*) A; alias const(typeof(0)*) B;);
static assert(is(B == const(int*)));


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


[Issue 5317] Assertion is not work in a function called by std.concurrency.spawn

2011-05-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5317



--- Comment #4 from Sean Kelly s...@invisibleduck.org 2011-05-25 16:29:53 PDT 
---
When the assertion isn't propagated, what's likely happening is that the thread
instance is being discarded because the thread is complete.  If the app
terminates quickly enough then it beats the spawned thread to termination and
thread_joinAll() finds the Error waiting to be re-thrown.

At the moment, D has fairly lax rules for propagating exceptions that caused a
thread to terminate--it's assumed that if you care about the result of a thread
you'll call join(), which will always re-throw the exception unless told not
to.  But if you don't retain a reference to the thread then its result will
remain unknown.  The exception to this rule is that a spawned thread will
receive word that its owner has terminated, and linked threads will notify one
another on termination.

I could retain these uncaught exceptions and re-throw them to the main thread
on app termination, but I don't see much utility in it.  If something horrible
happens in a thread then the user either wants to shutdown the entire app
immediately for fear of memory corruption (which increasingly unlikely with
thread-local static data), or he wants specific interested parties to be
notified that the thread terminated unexpectedly (which is handled by linking
via std.concurrency), or he doesn't care.  Perhaps I should add a hook so the
user can supply an uncaughtExceptionHandler?  I'd avoided doing this in the
past because it would interact weirdly with the current behavior of join()
re-throwing uncaught exceptions, but it's an option.

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