00:19:52  * aki_joined
00:20:42  * akirosequit (Ping timeout: 252 seconds)
00:20:42  * aki_changed nick to akirose
00:24:40  * chuck9001joined
02:26:35  * aki_joined
02:27:40  * akirosequit (Ping timeout: 264 seconds)
02:27:40  * aki_changed nick to akirose
03:29:04  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:32:50  * keith_millerjoined
03:44:34  * jmdyckquit (Remote host closed the connection)
04:32:13  * aki_joined
04:33:21  * akirosequit (Ping timeout: 252 seconds)
04:33:22  * aki_changed nick to akirose
04:54:21  * ystartsevquit (Ping timeout: 250 seconds)
04:54:21  * linclarkquit (Ping timeout: 250 seconds)
04:55:00  * ystartsevjoined
04:55:48  * linclarkjoined
06:39:44  * akirosequit (Ping timeout: 244 seconds)
06:39:56  * akirosejoined
06:57:02  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:00:35  * keith_millerjoined
07:02:29  * akoserwajoined
07:10:50  * abernix_changed nick to abernix
07:12:22  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:35:10  * keith_millerjoined
07:50:19  * akoserwaquit (Quit: Leaving)
08:04:43  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:12:40  * keith_millerjoined
08:25:20  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:47:28  * akirosequit (Ping timeout: 264 seconds)
08:48:42  * akirosejoined
10:00:52  * jmdyckjoined
10:55:47  * akirosequit (Ping timeout: 240 seconds)
10:55:51  * aki_joined
10:56:15  * aki_changed nick to akirose
12:23:36  * keith_millerjoined
12:31:33  * keith_millerquit (Remote host closed the connection)
12:32:10  * keith_millerjoined
12:39:55  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:48:07  * keith_millerjoined
12:56:38  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:02:33  * aki_joined
13:03:23  * akirosequit (Ping timeout: 245 seconds)
13:03:23  * aki_changed nick to akirose
14:20:08  * gibson042joined
14:44:06  * cloudshujoined
14:50:47  * howdoijoined
14:56:16  <bradleymeck>devsnek: itertools would be a great addition but i think we are still stuck on where to place such a thing, some people want to make a standard library set of modules, others want things to be globals
14:58:06  <devsnek>you could put map and filter on the actual iterator prototype
14:58:12  <TabAtkins>Also, for serious, itertools won't be useful unless we have a call operator.
14:58:37  <devsnek>`function* filter(cb) { for (const item of this) { if (cb(item)) yield item; } }`
14:59:27  <devsnek>this itertools thing is cool
14:59:30  <TabAtkins>devsnek: Need more than just those two...
14:59:54  <devsnek>sure
14:59:59  <devsnek>the more the merrier
15:00:58  <TabAtkins>What I mean tho, is that there's a lot of stuff we want to be able to call on iterators, including user-defined stuff. Can't scale that as actual isntalled methods (plus the whole smoosh() problem).
15:01:41  <TabAtkins>Need a call operator, like `foo::bar(a,b,c)` which calls `bar.call(foo,a,b,c)`, to make it usable *and* generalizable.
15:02:10  <devsnek>what's wrong with `bar(foo, a, b, c)`
15:02:44  <TabAtkins>filter(map(filter(arr, ...), ...), ...)
15:02:52  <TabAtkins>Grows backwards and requires wrapping on both ends.
15:03:04  <TabAtkins>Versus arr::filter(...)::map(...)::filter(...)
15:03:41  <TabAtkins>Same argument as for pipeline operator, just slots the "topic" into the `this` reference, rather than into one of the arguments.
15:03:58  <devsnek>so like a bound pipeline operator
15:04:12  <devsnek>yeah
15:04:24  <TabAtkins>Yeah, writing `arr |> filter(#, ...) |> map(#, ...) |> filter(#, ...)` isn't much worse.
15:04:50  <TabAtkins>But it is a *little bit* worse - you can't immediately reuse functions *already* written as methods.
15:05:08  <TabAtkins>Like calling Array.prototype.slice() on an arbitrary iterable.
15:05:48  <TabAtkins>You'd have to write a wrapper that takes the subject as an arg. JS itself could provide wrappers for all the Array built-ins, of course.
15:06:45  <devsnek>aren't all the array builtins for operating on array like not iterable like
15:08:27  * akirosequit (Ping timeout: 240 seconds)
15:09:05  * akirosejoined
15:25:40  <TabAtkins>devsnek: Ah, yeah, right. ^_^ Well, consider the point still made, just for array-likes too.
15:25:47  <devsnek>sure
15:52:57  * keith_millerjoined
16:05:44  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:10:59  * keith_millerjoined
16:19:18  * srl295joined
17:16:58  * akirosequit (Ping timeout: 252 seconds)
17:17:46  * akirosejoined
17:26:13  <srl295>mathiasbynens: hey, JS/unicode regex question for you if you have a moment
17:39:40  <srl295>mathiasbynens: figured it out…
17:54:14  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:14:30  * keith_millerjoined
19:25:52  * akirosequit (Ping timeout: 264 seconds)
19:26:22  * akirosejoined
20:05:20  <ljharb>mathiasbynens: heads up in #tc39-ecma402, a unicode v11 issue https://github.com/nodejs/node/issues/22518
20:05:48  <srl295>filed in #v8 https://bugs.chromium.org/p/v8/issues/detail?id=8348
20:05:58  <srl295>^ ljharb
20:06:00  <ljharb>great :-) thanks
20:23:31  <srl295>it's not just georgian
20:25:50  <srl295>fails for Medefaidrin (Unicode 11), Osage (Unicode 9)
20:28:18  <srl295>and Cherokee.. but stop press, looks like the 'u' parameter is missing
20:28:50  <srl295>ugh…
20:29:16  <srl295>new RegExp('ოქტ', 'iu').test('ოქტ'.toUpperCase())
20:29:16  <srl295> works
20:29:27  <srl295>without the u, doesn't work.
20:29:41  <ljharb>hm, i wouldn't expect unicode stuff to work without the u flag
20:30:02  <srl295>i guess i just expect unicode stuff to work
20:30:36  <srl295>so, user error in moment.js
20:31:25  <srl295>ugh.
20:31:31  <srl295>yeah, that was it. sorry for the noise
20:43:15  <srl295>ljharb: and wouldjn't you know, a bunch of other locales break when the 'u' flag is added
21:04:45  <srl295>ljharb: ok strange. Armenian, Russian, Latin all match properly without the 'u' flag.
21:06:08  <devsnek>language is strange
21:10:07  * keith_mi_joined
21:10:13  * keith_millerquit (Read error: Connection reset by peer)
21:27:56  <srl295>ljharb: it's a strange pattern though. Osage, Cherokee, Georgian, Deseret, Old Hungarian … why do only these need the 'u' flag?
21:29:40  <ljharb>i'm not usre
21:29:42  <ljharb>*sure
21:29:48  <srl295>not coptic…
21:29:52  <ljharb>my hunch is that any new unicode behavior only applies in the u flag
21:31:00  <srl295>fixed to some Unicode version?
21:32:44  <ljharb>are those languages' characters surrogate pairs?
21:33:13  * aki_joined
21:33:47  * akirosequit (Ping timeout: 240 seconds)
21:33:47  * aki_changed nick to akirose
21:40:03  * howdoiquit (Quit: Connection closed for inactivity)
22:10:47  * jwaldenjoined
22:14:43  <Domenic>srl295: u flag makes surrogate pair processing sane. My guess is the languages where it works without the flag have a single code point <-> code unit correspondence and so work "by accident".
22:26:24  <srl295>Domenic: Latin, Coptic, Cyrillic, Georgian, Cherokee are all "single code point <-> code unit" but Cherokee and Georgian require the 'u' flag
22:27:06  <srl295>these two are more 'recent' (last several years) additions , so maybe some there's some hard coded table somewhere
22:29:57  <Domenic>Hmm maybe u flag also affects case-folding
23:40:12  * aki_joined
23:41:07  * akirosequit (Ping timeout: 240 seconds)
23:41:07  * aki_changed nick to akirose