August 07, 2012
[code]
import std.regex;

enum Token : string {
	Blank = r"\s+"
}

void main() {
	const string text = "Foo Bar";

	// text.split(regex(Token.Blank)); // don't work
	
	const string blank = Token.Blank;
	text.split(regex(blank)); // work
}
[/code]

Can me somebody explain that? o.O
August 07, 2012
On 07-Aug-12 21:05, Namespace wrote:
> [code]
> import std.regex;
>
> enum Token : string {
>      Blank = r"\s+"
> }
>
> void main() {
>      const string text = "Foo Bar";
>
>      // text.split(regex(Token.Blank)); // don't work
>
>      const string blank = Token.Blank;
>      text.split(regex(blank)); // work
> }
> [/code]
>
> Can me somebody explain that? o.O

isSomeString!T regression? See enum & std.traits topic in d.D.
Seems like it will work again in 2.061...


-- 
Dmitry Olshansky
August 07, 2012
On Tuesday, 7 August 2012 at 17:14:03 UTC, Dmitry Olshansky wrote:
> On 07-Aug-12 21:05, Namespace wrote:
>> [code]
>> import std.regex;
>>
>> enum Token : string {
>>     Blank = r"\s+"
>> }
>>
>> void main() {
>>     const string text = "Foo Bar";
>>
>>     // text.split(regex(Token.Blank)); // don't work
>>
>>     const string blank = Token.Blank;
>>     text.split(regex(blank)); // work
>> }
>> [/code]
>>
>> Can me somebody explain that? o.O
>
> isSomeString!T regression? See enum & std.traits topic in d.D.
> Seems like it will work again in 2.061...

-.-

August 07, 2012
On Tuesday, August 07, 2012 21:14:00 Dmitry Olshansky wrote:
> isSomeString!T regression? See enum & std.traits topic in d.D. Seems like it will work again in 2.061...

Yeah. In 2.060, std.traits doesn't treat enums as their base type for stuff like isSomeString and isIntegral, which is the problem. It's been fixed on github, but it's still broken in 2.060.

- Jonathan M Davis
August 08, 2012
On Tuesday, 7 August 2012 at 18:31:41 UTC, Jonathan M Davis wrote:
> On Tuesday, August 07, 2012 21:14:00 Dmitry Olshansky wrote:
>> isSomeString!T regression? See enum & std.traits topic in d.D.
>> Seems like it will work again in 2.061...
>
> Yeah. In 2.060, std.traits doesn't treat enums as their base type for stuff
> like isSomeString and isIntegral, which is the problem. It's been fixed on
> github, but it's still broken in 2.060.
>
> - Jonathan M Davis

Which file must i replace with his version from github to solve the problem?
August 08, 2012
On Wednesday, August 08, 2012 17:58:17 Namespace wrote:
> On Tuesday, 7 August 2012 at 18:31:41 UTC, Jonathan M Davis wrote:
> > On Tuesday, August 07, 2012 21:14:00 Dmitry Olshansky wrote:
> >> isSomeString!T regression? See enum & std.traits topic in d.D. Seems like it will work again in 2.061...
> > 
> > Yeah. In 2.060, std.traits doesn't treat enums as their base
> > type for stuff
> > like isSomeString and isIntegral, which is the problem. It's
> > been fixed on
> > github, but it's still broken in 2.060.
> > 
> > - Jonathan M Davis
> 
> Which file must i replace with his version from github to solve the problem?

I really wouldn't advise grabbing single files like that. The release was recent enough that it may be okay, but in general, that's just asking for trouble - especially with something as integral as std.traits. But if you really want to, this is the relevant pull request:

https://github.com/D-Programming-Language/phobos/pull/739

std.conv, std.format, std.stdio, and std.traits were all changed as part of the fix.

- Jonathan M Davis
August 08, 2012
> I really wouldn't advise grabbing single files like that. The release was
> recent enough that it may be okay, but in general, that's just asking for
> trouble - especially with something as integral as std.traits. But if you
> really want to, this is the relevant pull request:
>
> https://github.com/D-Programming-Language/phobos/pull/739
>
> std.conv, std.format, std.stdio, and std.traits were all changed as part of
> the fix.
>
> - Jonathan M Davis

Fails on Win7 with:
Error: don't know how to make '..\druntime\lib\druntime.lib'

Quick question: I've asked that for some time: why is it std.stdio and not std.io?
August 08, 2012
On Wednesday, August 08, 2012 21:21:38 Namespace wrote:
> Quick question: I've asked that for some time: why is it std.stdio and not std.io?

I don't remember. Probably because it's stdio.h in C/C++.

But Steven Schveighoffer is working on a replacement for it which will probably be named std.io. So, in the long run, that's probably what we'll end up with.

- Jonathan M Davis
August 08, 2012
And why ends my compilation with this error?
To cast any Token is _very_ annoying. -.-
August 09, 2012
On Thursday, August 09, 2012 01:21:29 Namespace wrote:
> And why ends my compilation with this error?

You're going to need to build both druntime and Phobos if you want to build Phobos. I don't know what's in the zip file, since I haven't used it in ages, so I don't know if you can build them from what's in there or whether you need to actually grab them from github.

> To cast any Token is _very_ annoying. -.-

I have no idea what you're talking about.

- Jonathan M Davis
« First   ‹ Prev
1 2
Top | Discussion index | About this forum | D home