November 30, 2012
On Friday, 30 November 2012 at 19:52:26 UTC, Jonathan M Davis wrote:
> If you're compiling with -property, filter must have the parens for the
> function call as it's a function, not a property. The !() is for the template
> arguments and is separate from the parens for the function call. That means
> that if you're compiling with -property and using UFCS, then you end up with
> range.filter!(pred)(), whereas you have range.filter!(pred).
>
> - Jonathan M Davis


ahh...  well i hope those silly parens never become mandatory. Ruby seems to be doing just fine with or without them.
Sorry Jonathan ;)

November 30, 2012
On Friday, 30 November 2012 at 19:52:26 UTC, Jonathan M Davis wrote:
>
> If you're compiling with -property, filter must have the parens for the
> function call as it's a function, not a property. The !() is for the template
> arguments and is separate from the parens for the function call. That means
> that if you're compiling with -property and using UFCS, then you end up with
> range.filter!(pred)(), whereas you have range.filter!(pred).

That is it, thanks. The first project I looked at was vibe and they used that flag so I put it in my script.

Regarding the timings, the relative orderings are the same, but the magnitude of the difference is much more reasonable now that I switched back to release of phobos, druntime (oops :-).

No filtering:
  parallel: 0.268 sec
  serial: 0.125 sec

With filtering:
  parallel: 0.119 sec
  serial: 0.064 sec
1 2
Next ›   Last »