00:14:32  * chicoxyzzyquit (Remote host closed the connection)
00:15:00  * Fishrock123quit (Remote host closed the connection)
00:23:51  * Fishrock123joined
00:59:06  <bterlson>Should we standardize shebang? Every node-alike has to parse that syntax somehow (and Node's impl is interoperable (hopefully) with Nashorn).
00:59:22  * chicoxyz_joined
00:59:56  * chicoxyz_quit (Remote host closed the connection)
01:01:40  <Bakkot>What would we standardize? If the first two characters of a source text are '#!', they start a single-line comment?
01:01:54  * chicoxyz_joined
01:02:33  * Fishrock123quit (Remote host closed the connection)
01:07:27  * chicoxyz_quit (Ping timeout: 240 seconds)
01:27:40  <Kovensky>what should be done about the "UTF-8 BOM" that microsoft insists in putting everywhere
01:28:21  <Kovensky>on one hand, it should be forbidden as #! is not detected if the file starts with bytes other than ASCII "#!"
01:28:32  <Kovensky>but IIRC it's not forbidden in regular javascript files
01:43:36  <not-an-aardvark>FWIW, shebangs use different linebreaks than other JS line comments (the shebang continues even after reading \u2028 and \u2029)
01:44:34  <not-an-aardvark>That said I don't know of anyone who has used \u2028 and \u2029 in a shebang aside from testing shebang parsing in JS tools
01:45:52  <not-an-aardvark>So the compatibility risk in that regard is probably quite low
01:56:55  * chicoxyzzyjoined
01:59:03  * chicoxyz_joined
01:59:37  * chicoxyz_quit (Remote host closed the connection)
02:02:06  * chicoxy__joined
02:02:44  * chicoxyzzyquit (Ping timeout: 260 seconds)
02:02:55  * Fishrock123joined
02:06:57  * chicoxy__quit (Remote host closed the connection)
02:07:35  * Fishrock123quit (Ping timeout: 258 seconds)
02:08:47  * chicoxyzzyjoined
02:09:45  * chicoxyzzyquit (Remote host closed the connection)
02:26:38  * caridy_quit (Remote host closed the connection)
02:27:08  * caridyjoined
02:31:05  * caridyquit (Ping timeout: 240 seconds)
04:24:58  * caridyjoined
04:42:21  * jmdyckquit (Quit: Leaving.)
05:01:53  <Kovensky>I wonder if \r\n works as a shebang linebreak too
05:02:09  <Kovensky>or if the \r gets sent in the argv for the interpreter
05:04:33  * Fishrock123joined
05:09:20  * Fishrock123quit (Ping timeout: 260 seconds)
06:16:14  <not-an-aardvark>It does in Node, I'm not sure how bash handles it
06:16:27  <not-an-aardvark>I guess that can easily be tested
06:17:45  <not-an-aardvark>It looks like the \r is interpreted as part of the executable name
07:36:53  * isHavvyjoined
07:41:33  * Havvyquit (Remote host closed the connection)
08:31:07  * chicoxyzzyjoined
08:52:56  * caridy_joined
08:52:56  * caridyquit (Read error: Connection reset by peer)
09:10:56  * gskachkov_joined
09:17:46  <annevk>I wonder if now typed array objects are abstracted to support SharedArrayBuffer it's worth having ArrayBuffer without detachment. But I guess you can use SharedArrayBuffer carefully too for that.
09:34:55  * gskachkov_quit (Quit: gskachkov_)
09:37:45  * gskachkov_joined
09:38:55  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
09:44:38  * caridyjoined
09:44:39  * caridy_quit (Read error: Connection reset by peer)
09:46:30  * gskachkov_quit (Quit: gskachkov_)
10:25:07  * mylesborinsquit (Quit: farewell for now)
10:25:37  * mylesborinsjoined
11:22:09  * chicoxyzzyquit (Remote host closed the connection)
11:27:16  * chicoxyz_joined
11:54:03  * caridy_joined
11:54:03  * caridyquit (Read error: Connection reset by peer)
12:27:49  * jmdyckjoined
12:34:58  * rwaldronquit (Remote host closed the connection)
13:11:48  * rwaldronjoined
13:29:22  <littledan>bterlson: Would we make a new top-level production for shebang-scripts, or allow it on the web too?
13:33:45  <littledan>(FWIW private state doesn't risk stomping on shebang's syntactic space because ! is not in ID_Start)
13:38:16  * caridyjoined
13:38:16  * caridy_quit (Read error: Connection reset by peer)
14:35:58  * Fishrock123joined
14:39:34  * caridyquit (Read error: Connection reset by peer)
14:39:53  * caridyjoined
14:59:20  * M-IvanSanchezquit (K-Lined)
15:05:45  * chicoxyz_quit (Remote host closed the connection)
15:08:04  * bradleymeckjoined
15:10:28  * M-IvanSanchezjoined
15:26:17  * caridyquit (Remote host closed the connection)
15:26:50  * caridyjoined
16:19:28  * bradleymeckquit (Quit: bradleymeck)
16:32:34  * caridyquit (Remote host closed the connection)
16:33:09  * caridyjoined
16:47:34  * bradleymeckjoined
17:01:32  * Fishrock123quit (Remote host closed the connection)
17:07:02  * gskachkov_joined
17:07:34  * not-an-aardvarkjoined
17:10:35  * Fishrock123joined
17:15:39  * gskachkov_quit (Quit: gskachkov_)
17:31:34  <bterlson>Bakkot: yeah that would be my recommendation
17:31:52  <bterlson>littledan: I think it would be a normative optional thing
17:32:15  <bterlson>I've heard from a couple people writing parsers lately that they had to implement shebang parsing which kind of put me down this road
17:38:19  <Domenic>annevk: what do you mean "ArrayBuffer without detachment"?
17:42:11  * gskachkov_joined
17:51:59  * abernixjoined
17:55:08  <bterlson>not-an-aardvark/Kovensky: confirm, \r is part of the executable name. Unsure how BOM is handled; should be an easy experiment for someone with a Linux available
18:06:57  <not-an-aardvark>It looks like a BOM prevents the shebang from being interpreted as a shebang, and so the file is interpreted as a shell script.
18:08:57  <not-an-aardvark>So tl;dr: A shebang is precisely matched by /^#![^\n]*/
18:11:11  <not-an-aardvark>Although in Node, \r also ends a shebang.
18:13:08  <bterlson>not-an-aardvark: is the shebang stripped before being passed to the interpreter?
18:14:01  * gskachkov_quit (Quit: gskachkov_)
18:14:28  <bterlson>not-an-aardvark: also, additional whitespace is not allowed prior to shebang?
18:14:43  <bterlson>the fact that I have so many questions here makes me think this could use a normative-optional spec ;)
18:14:58  <not-an-aardvark>In Node, the shebang is stripped and additional whitespace is not allowed before the shebang https://github.com/nodejs/node/blob/f97156623a140c3bbeee91a038bb727f39fc5948/lib/internal/module.js#L54-L86
18:16:02  <not-an-aardvark>👍
18:16:59  <not-an-aardvark>It looks like Node keeps the newline that follows the shebang, which keeps line numbers stack traces accurate
19:06:07  * Fishrock123quit (Remote host closed the connection)
19:08:37  * Fishrock123joined
19:11:21  <annevk>Domenic: just that, so you can optimize it more as there's less branching
19:11:45  <annevk>Domenic: just a thought though, prolly not worth it
19:14:51  * Fishrock123quit (Remote host closed the connection)
19:15:34  * Fishrock123joined
19:15:41  * Fishrock123quit (Remote host closed the connection)
19:43:01  <Domenic>Ah I see, yeah, apparently the branching is a concern for the V8 team. If you detach a single array buffer every AB on the page gets recompiled with branches added.
19:54:59  * caridy_joined
19:57:12  * caridyquit (Ping timeout: 240 seconds)
20:20:08  * Fishrock123joined
20:23:42  * Fishrock123quit (Read error: Connection reset by peer)
20:23:44  * Fishrockjoined
21:03:30  * Fishrockquit (Remote host closed the connection)
21:04:10  * Fishrock123joined
21:04:17  * Fishrock123quit (Remote host closed the connection)
21:31:53  * bradleymeckquit (Quit: bradleymeck)
21:35:09  * Fishrock123joined
21:47:18  * tcarejoined
22:06:20  * Fishrock123quit (Ping timeout: 252 seconds)
22:30:05  * abernixquit (Remote host closed the connection)
23:11:19  * Fishrock123joined
23:31:34  * Fishrock123quit (Remote host closed the connection)
23:35:26  * Fishrock123joined
23:41:00  * Fishrock123quit (Remote host closed the connection)
23:51:46  * bradleymeckjoined
23:55:35  * Fishrock123joined
23:56:17  * Fishrock123quit (Client Quit)
23:56:48  * chicoxyzzyjoined