On Tuesday, 6 February 2018 at 04:35:42 UTC, Steven Schveighoffer
wrote:
On 2/5/18 11:09 PM, psychoticRabbit wrote:
On Monday, 5 February 2018 at 21:27:57 UTC, H. S. Teoh wrote:
Comment out the call to `regex()`, and I get:
------
real 0m0.285s
user 0m0.262s
sys 0m0.023s
------
regex is not the only one I avoid..
how long you think this takes to compile?
(try ldc2 too ..just for laughs ;-)
----
import std.net.isemail;
void main()
{
auto checkEmail = "[email protected]".isEmail();
}
----
I was surprised at this, then I looked at the first line of
isEmail:
static ipRegex =
ctRegex!(`\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}`~
`(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$`.to!(const(Char)[]));
So it's really still related to regex.
That’s really bad idea - isEmail is template so the burden of
freaking slow ctRegex
is paid on per instantiation basis. Could be horrible with
separate compilation.
-Steve