Thread overview
Recent Phobos changes
Feb 26, 2009
Jason House
Feb 26, 2009
Don
Feb 26, 2009
Jason House
Mar 02, 2009
Don
Mar 02, 2009
Leandro Lucarella
Mar 03, 2009
Don
Feb 26, 2009
Walter Bright
February 26, 2009
There's been a flurry of commits lately. I noticed two strange things:
1. Unlike other intrinsics, bswap was not marked nothrow (only pure). This seems odd considering what the function does.
2. The math changes removed a lot of float-based prototypes when adding faster functions. That will cause difficulty for those who use floats. Ignoring speed loss for conversions, this will also require explicit casts.

Are these bugs, or am I missing something?
February 26, 2009
Jason House wrote:
> There's been a flurry of commits lately. I noticed two strange things:
> 1. Unlike other intrinsics, bswap was not marked nothrow (only pure). This seems odd considering what the function does.
> 2. The math changes removed a lot of float-based prototypes when adding faster functions. That will cause difficulty for those who use floats. Ignoring speed loss for conversions, this will also require explicit casts.
> 
> Are these bugs, or am I missing something?

You're missing an intermediate compiler release <g>. You're seeing stuff in a peculiar intermediate state. Yes, there are weird bugs.
February 26, 2009
Don Wrote:

> Jason House wrote:
> > There's been a flurry of commits lately. I noticed two strange things:
> > 1. Unlike other intrinsics, bswap was not marked nothrow (only pure). This seems odd considering what the function does.
> > 2. The math changes removed a lot of float-based prototypes when adding faster functions. That will cause difficulty for those who use floats. Ignoring speed loss for conversions, this will also require explicit casts.
> > 
> > Are these bugs, or am I missing something?
> 
> You're missing an intermediate compiler release <g>. You're seeing stuff in a peculiar intermediate state. Yes, there are weird bugs.

I'm hoping that pointing out stuff when I see it is helpful because they could get missed.  I don't know of the proper way to point out things or if I should just stay silent on the sidelines...
February 26, 2009
Jason House wrote:
> There's been a flurry of commits lately. I noticed two strange
> things: 1. Unlike other intrinsics, bswap was not marked nothrow
> (only pure). This seems odd considering what the function does.

Look earlier in the file, there's a

   nothrow:

statement, which marks the rest of the file as being nothrow.
March 02, 2009
Jason House wrote:
> Don Wrote:
> 
>> Jason House wrote:
>>> There's been a flurry of commits lately. I noticed two strange things:
>>> 1. Unlike other intrinsics, bswap was not marked nothrow (only pure). This seems odd considering what the function does.
>>> 2. The math changes removed a lot of float-based prototypes when adding faster functions. That will cause difficulty for those who use floats. Ignoring speed loss for conversions, this will also require explicit casts.
>>>
>>> Are these bugs, or am I missing something?
>> You're missing an intermediate compiler release <g>. You're seeing stuff in a peculiar intermediate state. Yes, there are weird bugs.
> 
> I'm hoping that pointing out stuff when I see it is helpful because they could get missed.  I don't know of the proper way to point out things or if I should just stay silent on the sidelines...

Pointing out inconsistencies in naming would be particularly helpful. Also aspects of design or nomenclature which are confusing.
Bugs on non-released code are not usually useful. Bugs on released code should go into Bugzilla.
March 02, 2009
Jason House, el 26 de febrero a las 12:13 me escribiste:
> Don Wrote:
> 
> > Jason House wrote:
> > > There's been a flurry of commits lately. I noticed two strange things:
> > > 1. Unlike other intrinsics, bswap was not marked nothrow (only pure). This seems odd considering what the function does.
> > > 2. The math changes removed a lot of float-based prototypes when adding faster functions. That will cause difficulty for those who use floats. Ignoring speed loss for conversions, this will also require explicit casts.
> > > 
> > > Are these bugs, or am I missing something?
> > 
> > You're missing an intermediate compiler release <g>. You're seeing stuff in a peculiar intermediate state. Yes, there are weird bugs.
> 
> I'm hoping that pointing out stuff when I see it is helpful because they could get missed.  I don't know of the proper way to point out things or if I should just stay silent on the sidelines...

Good commit messages can help a lot here. Something like "this commit is incomplete because float stuff is missing but this will be added in the future" could help people who like to review the code to know if missing stuff is intentional or an error/omission.

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
CAYO HUGO CONZI  ---  TENIA PUESTA PELUCA
	-- Crónica TV
March 03, 2009
Leandro Lucarella wrote:
> Jason House, el 26 de febrero a las 12:13 me escribiste:
>> Don Wrote:
>>
>>> Jason House wrote:
>>>> There's been a flurry of commits lately. I noticed two strange things:
>>>> 1. Unlike other intrinsics, bswap was not marked nothrow (only pure). This seems odd considering what the function does.
>>>> 2. The math changes removed a lot of float-based prototypes when adding faster functions. That will cause difficulty for those who use floats. Ignoring speed loss for conversions, this will also require explicit casts.
>>>>
>>>> Are these bugs, or am I missing something?
>>> You're missing an intermediate compiler release <g>. You're seeing stuff in a peculiar intermediate state. Yes, there are weird bugs.
>> I'm hoping that pointing out stuff when I see it is helpful because they
>> could get missed.  I don't know of the proper way to point out things or
>> if I should just stay silent on the sidelines...
> 
> Good commit messages can help a lot here. Something like "this commit is
> incomplete because float stuff is missing but this will be added in the
> future" could help people who like to review the code to know if missing
> stuff is intentional or an error/omission.
> 
But that's not true...
I gave the wrong impression, neither of the things which were reported were bugs. The float stuff has never been present on D1. There are no speed impacts, and no casts are required. The reported bug is false. The only consequence of the float stuff was if you're using 'auto' heavily, and even then, it's doubtful that float overloads are actually helpful.

The point I was trying to make was that (unlike all other dsource projects), you don't necessarily know which compiler is being used. It makes reviewing the code pretty difficult! Don't be alarmed.