00:00:00
| * ircretary | quit (Remote host closed the connection) |
00:00:09
| * ircretary | joined |
00:00:44
| <ogd> | substack: is this the only way to hook into tape or is there a better way to do it? https://github.com/mantoni/tape-dots/blob/master/index.js |
00:00:54
| * cpup | quit (Ping timeout: 244 seconds) |
00:01:14
| * AvianFlu | quit (Remote host closed the connection) |
00:01:21
| * feross | quit (Quit: feross) |
00:03:29
| * funkytek | joined |
00:04:01
| * cpup | joined |
00:04:11
| * contrahax | joined |
00:30:00
| * defunctzombie_zz | changed nick to defunctzombie |
00:31:49
| * Kessler | joined |
00:31:56
| <defunctzombie> | ogd: if you find a better approach let me know |
00:33:18
| <ogd> | defunctzombie: seems like maybe a tap parser that takes tap output and changes it to somethign different would be another way |
00:33:29
| <defunctzombie> | ogd: faucet |
00:33:32
| <ogd> | defunctzombie: but that seems a little complex |
00:33:54
| <defunctzombie> | ogd: yes, and it has problems because anything that console logs start with # will typically break it |
00:34:24
| <substack> | defunctzombie: so don't console.log things that start with # |
00:34:30
| <substack> | problem solved |
00:34:32
| <substack> | "don't do that" |
00:34:57
| <defunctzombie> | problem is solved by me just using mocha |
00:35:42
| <substack> | ogd: it's better to just parse TAP and do something with it |
00:35:46
| <substack> | that's what tap is really good at |
00:37:23
| <substack> | defunctzombie: and that is fine, you just incur a different set of complexity trade-offs |
00:37:45
| <defunctzombie> | yea |
00:38:16
| <defunctzombie> | so far I am happier with it versus any alternative I have tried |
00:38:31
| <defunctzombie> | granted I only use a small part of it |
00:39:38
| <substack> | I don't like all the magic and how you need to use the mocha test runner |
00:39:45
| <substack> | and how it's really hard to kill with an ordinary ^C |
00:40:01
| <substack> | because of all the magic process do-hickery |
00:40:11
| <defunctzombie> | ive never run into the ^c issue but also never had to do that so no idea |
00:40:19
| <defunctzombie> | I don't mind using the test runner |
00:40:28
| <defunctzombie> | makes it easy to instrument in other environments or tools |
00:41:06
| <substack> | instrument? |
00:41:17
| <defunctzombie> | run in |
00:41:31
| <defunctzombie> | and capture the output without affecting other things |
00:41:40
| <substack> | node test.js > output.txt |
00:41:43
| <substack> | capture the output |
00:42:03
| <substack> | or use a browserify transform with --bare for fancy things like code coverage |
00:42:16
| <substack> | the test library doesn't need to know about that stuff |
00:43:25
| * indexzero | quit (Quit: indexzero) |
00:44:39
| <defunctzombie> | the test library doesn't need to know about output |
00:45:06
| <substack> | the test library's job should be to produce output |
00:45:10
| <substack> | that's what it's for |
00:45:17
| <substack> | everything else can massage that output |
00:45:28
| <substack> | the easiest, simplest way to massage output is just to write it to stdout |
00:45:39
| <substack> | that way you don't need to write a bunch of fancy, api-specific hooks |
00:45:42
| <substack> | you just parse stdin |
00:46:17
| <defunctzombie> | I don't like the abuse of the stdout channel for messaging and program output |
00:46:57
| <defunctzombie> | the test libraries job is not to produce output, it is to produce metadata about the test run which is consumed by a reporter |
00:47:02
| <defunctzombie> | who's job is to produce the output |
00:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 25] |
00:47:24
| <defunctzombie> | tape is the only testing library that doesn't work like this |
00:47:55
| <defunctzombie> | and as a result makes it annoying to consume the testing metadata without resorting to stupid parsing |
00:48:03
| <ogd> | tape is split up into a thing that produces metadata and a thing that produces output from that metadata, e.g. https://github.com/substack/tape/blob/master/index.js#L45-L46 |
00:48:11
| <ogd> | the problem IMO is that they are hardcoded |
00:48:37
| <defunctzombie> | why should I have to parse some terrible format when we already have json or raw js objects |
00:48:38
| <ogd> | e.g. you cant use tape right now and only get the metadata (e.g. have it not produce tap output) without rewriting all the stuff in index.js |
00:48:45
| <defunctzombie> | ogd: yes |
00:50:03
| <defunctzombie> | ogd: honestly, if you are looking for simple testing I strongly recommend mocha with the qunit or TDD style. It will look very similar to tape tests, and is easy to hook into |
00:50:28
| <defunctzombie> | or rip that stuff out of tape and make it hookable |
00:50:29
| <ogd> | mocha is too complex for me |
00:50:39
| <ogd> | not eacy enough to browserify |
00:50:42
| <ogd> | easy* |
00:50:43
| <defunctzombie> | who cares |
00:50:54
| <defunctzombie> | I guess that part matters depending on what you are doing |
00:51:09
| <defunctzombie> | I agree it doesn't browserify easily, for zuul we just have a prebuilt version of it |
00:51:21
| <ogd> | well i write lots of small browserify modules |
00:51:30
| <ogd> | so im not gonna set up the mocha 'environment' all the time |
00:51:34
| <substack> | you can tape.createHarness() |
00:51:35
| * Kessler | quit (Read error: Connection reset by peer) |
00:51:38
| <defunctzombie> | ogd: zuul |
00:51:46
| <substack> | node test.js |
00:51:50
| <defunctzombie> | ogd: no setup with mocha each time, very easy to test in browser |
00:52:21
| <substack> | defunctzombie: the point of tap is that you parse it |
00:52:22
| <defunctzombie> | this is what I use and a number of other browser targeted projects (engine.io one of them) uses it now |
00:52:23
| <substack> | with a parser |
00:52:28
| <substack> | which is simple and easy to write |
00:52:32
| <defunctzombie> | and I am saying the output is stupid :) |
00:52:51
| * Kessler | joined |
00:53:49
| <substack> | defunctzombie: I have an idea of something that might suit your sensibilities |
00:54:02
| * defunctzombie | listens |
00:54:31
| <substack> | what if you did require('tape') to get the way it works now and require('tape/stream') to get a `test` function that had a createStream() on it? |
00:54:36
| <substack> | that you could pipe wherever you wanted |
00:54:48
| <substack> | or require('tape/output') |
00:55:10
| <substack> | but I'm not sure how you would actually *run* these tests is the problem |
00:55:24
| <substack> | when I think of a test, I think of a program that I can run like `node test.js` |
00:55:28
| <substack> | and then it prints output to stdout |
00:55:32
| <terinjokes> | defunctzombie: as someone using zuul, i happen to prefer tape to mocha |
00:55:53
| <defunctzombie> | terinjokes: interesting! good to know there are tape zuul users!! |
00:56:24
| <defunctzombie> | substack: well, how would I instrument existing code tho without changing the require? |
00:57:22
| <defunctzombie> | substack: personally, what I think could happen is that by default (maybe in browser) tests simply don't run until I access some global "tape stream" or whatnot |
00:57:26
| <defunctzombie> | and make it start running |
00:57:58
| <substack> | defunctzombie: tests should just run |
00:58:35
| <ogd> | substack: i think all i want here is a version of tape.createHarness that does e.g. this kind of thing https://github.com/substack/tape/blob/master/index.js#L99-L114 but instead of giving me a stream of TAP just gives me a stream of JS test result objects (straight from tape.Test) |
00:59:18
| <substack> | ogd: you can already listen for 'test' events though |
00:59:46
| <ogd> | substack: yea i know it just isnt as high level as the createNarness API |
00:59:47
| * AvianFlu | joined |
00:59:51
| <ogd> | Narnianess |
01:00:28
| * contrahax | quit (Quit: Sleeping) |
01:00:30
| <ogd> | substack: why is inspectCode recursive there? can tests define tests? (ive never done thaT) |
01:00:39
| * phated | quit (Remote host closed the connection) |
01:00:42
| <substack> | ogd: yes |
01:00:44
| <substack> | t.test() |
01:00:51
| <substack> | copied from node-tap |
01:01:10
| <defunctzombie> | ogd: substack: I want getting tape results to be as easy as this: https://github.com/defunctzombie/zuul/blob/master/frameworks/qunit/client.js |
01:01:29
| * cpup | quit (Ping timeout: 240 seconds) |
01:01:35
| <defunctzombie> | instead of the mess I have now https://github.com/defunctzombie/zuul/blob/master/frameworks/tape/client.js |
01:01:37
| <substack> | defunctzombie: ok coming soon, one sec :p |
01:05:53
| <ogd> | substack: so if i do: var tape = require('tape/stream') then when i really want is a way to subscribe to all 'result' events e.g. https://github.com/substack/tape/blob/master/index.js#L107 |
01:06:35
| <ogd> | substack: so maybe tape.resultStream() can be a object stream of all test results |
01:06:51
| <ogd> | substack: and tape.createStream() is a TAP stream |
01:06:52
| * phated | joined |
01:09:16
| <substack> | ogd: that's a good idea |
01:09:25
| <substack> | ogd: what about tape.createStream({ objectMode: true }) ? |
01:09:42
| <ogd> | substack: oh yea and it would just be the result objects instead of TAP? +1 |
01:09:45
| <substack> | yep |
01:10:17
| <ogd> | substack: i think that would open up a lot of possibilities around writing custom tape reporter modules |
01:11:13
| <defunctzombie> | starting to sound more promising |
01:11:40
| <defunctzombie> | but how will doing that require capture the output from the tests that get loaded/run later? |
01:13:00
| <substack> | defunctzombie: because when a module does require('tape') it gets the default harness |
01:13:09
| <substack> | and this api diverts the default harness output someplace |
01:13:32
| <defunctzombie> | in browsers will that default harness be global or something? |
01:13:55
| * cpup | joined |
01:14:21
| <substack> | defunctzombie: what do you mean? |
01:14:28
| <substack> | tape works exactly the same in node and the browser |
01:14:53
| * funkytek | quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
01:15:08
| <defunctzombie> | the place where I do that test setup stuff is not the same file where my tests are located in |
01:15:33
| <defunctzombie> | I might be able to change that tho |
01:15:34
| <substack> | setup.js: var tape = require('tape'); tape.createStream().pipe(...) |
01:15:45
| <substack> | so long as that gets loaded before everything else it works |
01:16:38
| <defunctzombie> | for some reason I feel like I tried that once and it didn't work |
01:16:47
| <substack> | that's the new api |
01:16:50
| <substack> | that I'm writing now |
01:18:27
| * indexzero | joined |
01:18:33
| <defunctzombie> | ah |
01:21:37
| * contrahax | joined |
01:22:56
| * kevino80 | joined |
01:26:59
| * kevino80 | quit (Ping timeout: 240 seconds) |
01:29:37
| * contrahax | quit (Quit: Sleeping) |
01:30:21
| * contrahax | joined |
01:30:53
| <ogd> | first thing im gonna do is port over https://github.com/visionmedia/mocha/blob/master/lib/reporters/nyan.js to a third party tape reporter |
01:37:42
| * kenperkins_ | quit (Quit: Computer has gone to sleep.) |
01:38:15
| * contrahax | quit (Quit: Sleeping) |
01:41:50
| * toddself | joined |
01:42:07
| <substack> | ogd: it's probably also good to have a non-invasive version that just consumes tap like faucet |
01:45:58
| * toddself | quit (Ping timeout: 240 seconds) |
01:46:11
| <defunctzombie> | ogd: that's the most important reporter |
01:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 40] |
01:53:41
| * soldair | joined |
01:54:19
| <substack> | ogd, defunctzombie: https://github.com/substack/tape#var-stream--testcreatestreamopts |
01:57:31
| <defunctzombie> | substack: for this to work, require('tape') needs to resolve to the same module and what the tests require, correct? |
01:58:05
| <substack> | correct |
01:58:19
| <substack> | otherwise globals |
02:00:25
| * phated | quit (Remote host closed the connection) |
02:01:41
| <soldair> | anyone deal with "Connection closed before receiving a handshake response" errors working with mux-demux over an engine.io-stream xdm? |
02:02:40
| * yorick | quit (Remote host closed the connection) |
02:02:46
| * Maciek416 | quit (Remote host closed the connection) |
02:03:18
| * tilgovi | quit (Remote host closed the connection) |
02:04:59
| * thlorenz | joined |
02:05:52
| * thlorenz | quit (Remote host closed the connection) |
02:08:38
| * contrahax | joined |
02:11:00
| <terinjokes> | defunctzombie: can zuul also output nyan? |
02:11:06
| <defunctzombie> | hahaha |
02:11:18
| <terinjokes> | i'll accept flappy bird |
02:11:23
| <terinjokes> | as replacement |
02:11:29
| <defunctzombie> | that would be hilarious |
02:11:42
| * feross | joined |
02:11:44
| <defunctzombie> | for every test that passes |
02:11:49
| * DTrejo | joined |
02:11:49
| <defunctzombie> | the bird flaps through a gate |
02:11:56
| <defunctzombie> | you can watch it run your tests |
02:11:59
| <defunctzombie> | this would be amazing |
02:12:05
| <defunctzombie> | in a browser |
02:12:06
| * feross | quit (Client Quit) |
02:12:08
| <defunctzombie> | patches welcome |
02:14:58
| * ceejbot | quit (Remote host closed the connection) |
02:15:32
| * ceejbot | joined |
02:17:26
| * feross | joined |
02:18:32
| <terinjokes> | defunctzombie: maybe for my flight to london |
02:18:47
| <terinjokes> | i'll be bored to death |
02:20:00
| * ceejbot | quit (Ping timeout: 264 seconds) |
02:28:11
| * indexzero | quit (Quit: indexzero) |
02:32:49
| * Maciek416 | joined |
02:36:11
| * toddself | joined |
02:40:33
| * toddself | quit (Ping timeout: 244 seconds) |
02:42:54
| * soldair | quit (Quit: Page closed) |
02:47:09
| <groundwater> | i'd love some voiced here about how to organize linux syscalls for node https://github.com/NodeOS/NodeOS/issues/21 |
02:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 23] |
02:47:43
| <groundwater> | i imagine at some point it will be divorced from node-os stuff, but for now it's living under the general nos issues |
02:50:31
| * ednapiranha | quit (Remote host closed the connection) |
02:51:03
| * ednapiranha | joined |
02:51:45
| * xaq | joined |
02:55:33
| * ednapiranha | quit (Ping timeout: 265 seconds) |
03:00:21
| * feross | quit (Ping timeout: 252 seconds) |
03:00:29
| * indexzero | joined |
03:03:36
| * thlorenz | joined |
03:11:01
| * phated | joined |
03:11:39
| * xaq | quit (Remote host closed the connection) |
03:14:15
| * defunctzombie | changed nick to defunctzombie_zz |
03:16:24
| * phated | quit (Ping timeout: 264 seconds) |
03:18:38
| * tilgovi | joined |
03:20:51
| * phated | joined |
03:21:07
| * indexzero | quit (Quit: indexzero) |
03:22:26
| * xaq | joined |
03:22:27
| * naneau | quit (Quit: Part.) |
03:24:14
| * xaq | quit (Remote host closed the connection) |
03:26:34
| * xaq | joined |
03:26:46
| * xaq | quit (Remote host closed the connection) |
03:30:26
| * toddself | joined |
03:30:48
| * Kessler | quit (Ping timeout: 264 seconds) |
03:33:38
| * thlorenz | quit (Ping timeout: 240 seconds) |
03:34:29
| * toddself | quit (Ping timeout: 240 seconds) |
03:39:23
| * brianloveswords | quit (Excess Flood) |
03:39:37
| * brianloveswords | joined |
03:42:25
| * ednapiranha | joined |
03:42:48
| * contrahax | quit (Ping timeout: 264 seconds) |
03:45:58
| * contrahax | joined |
03:47:18
| <rowbit1> | Daily usage stats: [developer: 7, free: 55] |
03:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 16] |
03:50:21
| * xaq | joined |
03:53:49
| * xaq | quit (Remote host closed the connection) |
03:54:14
| * calvinfo | quit (Quit: Leaving.) |
04:00:48
| * contrahax | quit (Quit: Sleeping) |
04:09:29
| * feross | joined |
04:16:29
| * pfraze | quit (Ping timeout: 240 seconds) |
04:19:12
| <DTrejo> | ogd: if I want to help out with the nodeschool event, can I just show up? What do you think the experience level of students will be? |
04:19:31
| <DTrejo> | (not sure if I can go, but I'm curious) |
04:20:32
| * indexzero | joined |
04:22:04
| * mikolalysenko | quit (Ping timeout: 265 seconds) |
04:22:25
| <ogd> | DTrejo: yea please come and help! im going to open up some mentor tickets |
04:22:28
| * contrahax | joined |
04:22:36
| <DTrejo> | i pay for them? |
04:23:02
| <ogd> | DTrejo: nope will be free |
04:23:06
| <DTrejo> | oh cool |
04:24:43
| <DTrejo> | ooh you know what I want... "add to calendar" buttons for the events on jsfest.com haha |
04:24:50
| <DTrejo> | oh well gonna do it manually |
04:27:07
| * hoobdeebla | joined |
04:34:18
| * rsole | quit (Ping timeout: 240 seconds) |
04:34:26
| * hoobdeebla | quit |
04:36:26
| * calvinfo | joined |
04:38:16
| <ogd> | DTrejo: https://twitter.com/maxogden/status/440707730391572481 |
04:38:23
| <DTrejo> | already signin up :) |
04:39:02
| * tilgovi | quit (Remote host closed the connection) |
04:42:32
| <ogd> | also anyone else in here that wants to help mentor teh nodeschools should grab mentor tickets for events they can make it to |
04:42:37
| <ogd> | (see above tweet) |
04:43:01
| <rowbit1> | substack, pkrumins: These encoders are STILL down: 50.57.174.105(dev-ie8-2) |
04:46:48
| <DTrejo> | https://twitter.com/ddtrejo/status/440709575977615361 RT lol |
04:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 23] |
04:47:20
| <ogd> | ☜(⌒▽⌒)☞ |
04:47:46
| * nlacasse | part |
04:49:51
| * mikolalysenko | joined |
04:56:35
| * ceejbot | joined |
05:00:50
| * ceejbot | quit (Ping timeout: 252 seconds) |
05:01:31
| <rowbit1> | substack, pkrumins: These encoders are STILL down: 50.57.171.229(dev-ie6-2) |
05:02:25
| * cpup | quit (Ping timeout: 240 seconds) |
05:02:49
| * ceejbot | joined |
05:04:23
| * calvinfo | quit (Quit: Leaving.) |
05:05:11
| * cpup | joined |
05:07:45
| * gozala | quit (Quit: Connection closed for inactivity) |
05:10:45
| * defunctzombie_zz | changed nick to defunctzombie |
05:18:53
| * toddself | joined |
05:20:16
| * defunctzombie | changed nick to defunctzombie_zz |
05:22:48
| * toddself | quit (Ping timeout: 240 seconds) |
05:24:25
| * ceejbot | quit (Remote host closed the connection) |
05:41:00
| * dguttman | quit (Quit: dguttman) |
05:43:38
| * joshwnj- | quit (Ping timeout: 240 seconds) |
05:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 37] |
05:48:17
| * dguttman | joined |
05:51:11
| * dguttman | quit (Client Quit) |
05:51:47
| * calvinfo | joined |
05:52:49
| * calvinfo1 | joined |
05:52:49
| * calvinfo | quit (Read error: Connection reset by peer) |
05:53:40
| * calvinfo | joined |
05:53:40
| * calvinfo1 | quit (Read error: Connection reset by peer) |
05:54:36
| * calvinfo1 | joined |
05:54:36
| * calvinfo | quit (Read error: Connection reset by peer) |
05:55:33
| * calvinfo | joined |
05:56:31
| * calvinfo2 | joined |
05:56:31
| * calvinfo | quit (Read error: Connection reset by peer) |
05:57:24
| * calvinfo | joined |
05:57:25
| * calvinfo2 | quit (Read error: Connection reset by peer) |
05:58:21
| * calvinfo2 | joined |
05:58:21
| * calvinfo | quit (Read error: Connection reset by peer) |
05:59:15
| * calvinfo | joined |
05:59:15
| * calvinfo2 | quit (Read error: Connection reset by peer) |
05:59:36
| * calvinfo1 | quit (Ping timeout: 264 seconds) |
06:03:37
| * calvinfo | quit (Ping timeout: 240 seconds) |
06:05:28
| * maksimlin | quit (Quit: ChatZilla 0.9.90.1 [Firefox 27.0.1/20140218140359]) |
06:06:53
| * cpup_ | joined |
06:08:30
| * cpup | quit (Ping timeout: 252 seconds) |
06:13:05
| * toddself | joined |
06:17:18
| * toddself | quit (Ping timeout: 240 seconds) |
06:18:35
| * calvinfo | joined |
06:35:55
| * fotoverite | quit (Quit: fotoverite) |
06:37:32
| <groundwater> | suggestions for best static site generators? |
06:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 47] |
06:47:40
| * AvianFlu | quit (Remote host closed the connection) |
06:53:08
| * phated | quit (Remote host closed the connection) |
06:56:39
| * fotoverite | joined |
06:59:12
| * indexzero | quit (Quit: indexzero) |
07:07:10
| * toddself | joined |
07:11:36
| * toddself | quit (Ping timeout: 264 seconds) |
07:22:39
| * mikolalysenko | quit (Ping timeout: 244 seconds) |
07:28:22
| * funkytek | joined |
07:31:42
| * ednapiranha | quit (Quit: Leaving...) |
07:35:09
| * Maciek416 | quit (Remote host closed the connection) |
07:37:51
| * DTrejo | quit (Remote host closed the connection) |
07:39:03
| * DTrejo | joined |
07:39:31
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
07:39:36
| * DTrejo | quit (Read error: Connection reset by peer) |
07:39:56
| * DTrejo | joined |
07:42:01
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
07:42:10
| * Maciek416 | joined |
07:43:40
| * calvinfo | quit (Quit: Leaving.) |
07:45:31
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
07:47:01
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
07:47:19
| <rowbit1> | Hourly usage stats: [developer: 7, free: 50] |
07:48:31
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
07:50:53
| * Maciek416 | quit (Remote host closed the connection) |
07:51:31
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
07:55:01
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
08:01:19
| * toddself | joined |
08:05:32
| * toddself | quit (Ping timeout: 244 seconds) |
08:06:02
| * fotoverite | quit (Quit: fotoverite) |
08:18:55
| * calvinfo | joined |
08:31:12
| * stagas | joined |
08:32:33
| * djcoin | joined |
08:39:47
| * calvinfo | quit (Quit: Leaving.) |
08:47:19
| <rowbit1> | Hourly usage stats: [developer: 4, free: 49] |
08:52:49
| * ins0mnia | joined |
08:54:08
| * peutetre | joined |
08:55:47
| * toddself | joined |
09:00:18
| * toddself | quit (Ping timeout: 244 seconds) |
09:15:33
| <rowbit1> | /!\ ATTENTION: (default-local) tim@... successfully signed up for developer browserling plan ($20). Cash money! /!\ |
09:15:33
| <rowbit1> | /!\ ATTENTION: (default-local) paid account successfully upgraded /!\ |
09:16:32
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:18:31
| * calvinfo | joined |
09:19:02
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:26:32
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:30:29
| * kriskowal | joined |
09:31:23
| * rsole | joined |
09:32:02
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:33:32
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for undefined/undefined |
09:34:25
| * nfroidure | quit (Ping timeout: 240 seconds) |
09:35:02
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:39:32
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:43:46
| * stagas_ | joined |
09:45:59
| * stagas | quit (Ping timeout: 240 seconds) |
09:46:02
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:46:06
| * stagas_ | changed nick to stagas |
09:47:19
| <rowbit1> | Hourly usage stats: [developer: 15, free: 62] |
09:48:33
| * nfroidure | joined |
09:49:02
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
09:56:19
| * funkytek | quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
09:57:39
| * calvinfo | quit (Quit: Leaving.) |
09:58:15
| * ceejbot | joined |
09:59:59
| * timoxley | quit (Ping timeout: 240 seconds) |
10:01:02
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
10:01:20
| * timoxley | joined |
10:02:18
| * ceejbot | quit (Ping timeout: 240 seconds) |
10:04:48
| * ins0mnia | quit (Ping timeout: 240 seconds) |
10:05:26
| * Kessler | joined |
10:07:44
| * feross | quit (Quit: feross) |
10:08:26
| * ins0mnia | joined |
10:10:27
| * feross | joined |
10:10:34
| * joshwnj- | joined |
10:19:37
| * kumavis | quit (Quit: Connection closed for inactivity) |
10:20:30
| * DTrejo | quit (Remote host closed the connection) |
10:25:33
| * Kessler | quit (Ping timeout: 244 seconds) |
10:27:32
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
10:43:02
| <rowbit1> | substack, pkrumins: These encoders are STILL down: 50.57.174.105(dev-ie8-2) |
10:44:19
| * toddself | joined |
10:46:24
| * joshwnj- | quit (Ping timeout: 264 seconds) |
10:47:19
| <rowbit1> | Hourly usage stats: [developer: 8, free: 54] |
10:48:48
| * toddself | quit (Ping timeout: 244 seconds) |
10:53:43
| * phated | joined |
10:56:43
| * owenb____ | quit |
10:57:46
| * owenb_ | joined |
10:58:37
| * phated | quit (Ping timeout: 244 seconds) |
11:01:32
| <rowbit1> | substack, pkrumins: These encoders are STILL down: 50.57.171.229(dev-ie6-2) |
11:03:09
| * passy_ | joined |
11:03:25
| * passy_ | changed nick to passy |
11:08:33
| * Kessler | joined |
11:11:54
| <feross> | downloaded the first non-trivial file over webtorrent! http://cl.ly/UEYU |
11:11:56
| <feross> | yay! |
11:16:32
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for explorer/8.0 |
11:47:19
| <rowbit1> | Hourly usage stats: [developer: 1, free: 39] |
11:58:38
| * Kessler | quit (Ping timeout: 240 seconds) |
11:59:38
| * ceejbot | joined |
12:03:44
| * Kessler | joined |
12:04:14
| * ceejbot | quit (Ping timeout: 244 seconds) |
12:11:37
| * ITpro_ | quit (Ping timeout: 240 seconds) |
12:12:17
| * ITpro_ | joined |
12:12:18
| * ITpro | quit (Ping timeout: 240 seconds) |
12:13:09
| * ITpro | joined |
12:13:33
| * ITpro | changed nick to Guest58290 |
12:17:14
| * taterbase | joined |
12:18:44
| * ITpro__ | joined |
12:19:13
| * ITpro_ | quit (Ping timeout: 244 seconds) |
12:19:52
| * Guest58290 | quit (Ping timeout: 252 seconds) |
12:20:18
| * Guest58290 | joined |
12:23:33
| * calvinmetcalf | joined |
12:32:47
| * toddself | joined |
12:36:59
| * toddself | quit (Ping timeout: 240 seconds) |
12:36:59
| * thlorenz | joined |
12:40:03
| * thlorenz | quit (Remote host closed the connection) |
12:47:19
| <rowbit1> | Hourly usage stats: [developer: 1, free: 40] |
13:04:00
| * rsole | quit (Ping timeout: 240 seconds) |
13:23:31
| * thlorenz | joined |
13:24:40
| * yorick | joined |
13:36:45
| * contrahax | quit (Quit: Sleeping) |
13:47:19
| <rowbit1> | Hourly usage stats: [developer: 1, free: 64] |
13:48:22
| * stagas | quit (Read error: Connection timed out) |
13:50:25
| * stagas | joined |
14:01:08
| * ceejbot | joined |
14:05:18
| * ceejbot | quit (Ping timeout: 240 seconds) |
14:14:00
| * stagas | quit (Read error: Connection timed out) |
14:16:27
| * ITpro__ | quit (Read error: Connection reset by peer) |
14:17:22
| * stagas | joined |
14:18:48
| * guybrush | quit (Excess Flood) |
14:19:08
| * guybrush | joined |
14:22:42
| * defunctzombie_zz | changed nick to defunctzombie |
14:22:52
| * stagas | quit (Max SendQ exceeded) |
14:26:48
| * stagas | joined |
14:30:00
| * AvianFlu | joined |
14:31:31
| * toddself | joined |
14:33:00
| * thlorenz | quit (Ping timeout: 252 seconds) |
14:34:22
| * pfraze | joined |
14:42:50
| * brianloveswords | quit (Excess Flood) |
14:43:38
| * brianloveswords | joined |
14:47:20
| <rowbit1> | Hourly usage stats: [developer: 3, free: 43] |
15:01:50
| * ceejbot | joined |
15:03:29
| * Kessler | quit (Ping timeout: 269 seconds) |
15:05:51
| * ceejbot_ | joined |
15:06:05
| * ceejbot | quit (Read error: Connection reset by peer) |
15:06:08
| * Kessler | joined |
15:08:55
| * dguttman | joined |
15:12:18
| * thlorenz | joined |
15:17:53
| * ceejbot_ | quit (Remote host closed the connection) |
15:18:30
| * ceejbot | joined |
15:18:35
| * ceejbot | quit (Read error: Connection reset by peer) |
15:19:05
| * ceejbot | joined |
15:22:42
| * kevino80 | joined |
15:23:03
| * mikolalysenko | joined |
15:25:53
| * kenperkins | joined |
15:34:47
| * defunctzombie | changed nick to defunctzombie_zz |
15:35:49
| * cpup_ | quit (Remote host closed the connection) |
15:36:20
| <thlorenz> | any streams guys know how to change exports.tar so I can change https://github.com/thlorenz/dockerify/blob/master/index.js#L86 go 'fs.createReadStream('..').pipe(exports.tar(..)).pipe(process.stdout)' |
15:36:41
| <thlorenz> | substack: rvagg chrisdickinson ^ |
15:37:02
| <thlorenz> | I banged my head about it for like 30mins |
15:37:39
| <thlorenz> | since I need to return a through stream, but tar-stream module wants me to pass in a stream instead of piping |
15:37:58
| * cpup | joined |
15:43:21
| * Maciek416 | joined |
15:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 61] |
15:51:33
| <terinjokes> | thlorenz: you should be able to pipe to tar-stream though |
15:51:55
| <thlorenz> | normally yes, but that's not how the tar-stream module works |
15:52:10
| <terinjokes> | it's in the README: pack.pipe(extract); |
15:52:53
| <thlorenz> | terinjokes: I'm looking at https://github.com/mafintosh/tar-stream#modifying-existing-tarballs |
15:53:13
| <thlorenz> | so when you modify you are dealing with two streams |
15:53:25
| <thlorenz> | extract and pack |
15:53:57
| <thlorenz> | you pipe the instream into extract and pipe the pack into the outstream -- kinda weird interface actually |
15:54:14
| <thlorenz> | I wish there would be a more transform like API |
16:01:09
| * naneau | joined |
16:22:47
| * stagas_ | joined |
16:22:56
| * ceejbot | quit (Remote host closed the connection) |
16:22:58
| * stagas | quit (Ping timeout: 240 seconds) |
16:23:00
| * Kessler | quit (Ping timeout: 264 seconds) |
16:23:08
| * stagas_ | changed nick to stagas |
16:23:31
| * ceejbot | joined |
16:23:44
| * ednapiranha | joined |
16:24:01
| * AvianFlu | quit (Remote host closed the connection) |
16:27:38
| * stagas | quit (Ping timeout: 240 seconds) |
16:27:59
| * ceejbot | quit (Ping timeout: 252 seconds) |
16:29:04
| * stagas | joined |
16:29:42
| * supershabam | part |
16:36:26
| * Kessler | joined |
16:36:30
| * xaq | joined |
16:39:43
| * ceejbot | joined |
16:41:14
| * passy | quit (Quit: Connection closed for inactivity) |
16:45:30
| * ceejbot | quit (Remote host closed the connection) |
16:46:06
| * ceejbot | joined |
16:47:19
| <rowbit1> | Hourly usage stats: [developer: 6, free: 53] |
16:50:29
| * ceejbot | quit (Ping timeout: 241 seconds) |
16:54:09
| * mikolalysenko | quit (Ping timeout: 265 seconds) |
16:58:43
| * mikolalysenko | joined |
17:01:34
| <rowbit1> | substack, pkrumins: These encoders are STILL down: 50.57.171.229(dev-ie6-2) |
17:04:25
| * gozala | joined |
17:06:40
| * Kessler | quit (Read error: Connection reset by peer) |
17:09:27
| * Kessler | joined |
17:10:24
| * xaq_ | joined |
17:10:47
| * xaq | quit (Write error: Connection reset by peer) |
17:13:46
| * phated | joined |
17:13:59
| * phated | quit (Read error: Connection reset by peer) |
17:14:11
| * Guest83361 | joined |
17:15:02
| * fotoverite | joined |
17:18:45
| * xaq_ | quit (Read error: Connection reset by peer) |
17:18:57
| * xaq | joined |
17:19:18
| * cpup | quit (Ping timeout: 240 seconds) |
17:20:18
| * peutetre | quit (Ping timeout: 240 seconds) |
17:20:25
| * Guest83361 | quit (Remote host closed the connection) |
17:22:57
| * cpup | joined |
17:28:17
| * peutetre | joined |
17:37:22
| * xaq | quit (Remote host closed the connection) |
17:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 56] |
17:49:11
| * kenperkins | quit (Remote host closed the connection) |
17:50:22
| * jaz303_ | joined |
17:53:06
| * jaz303 | quit (*.net *.split) |
17:53:24
| * kenperkins_ | joined |
17:54:28
| * kenperkins_ | quit (Read error: Connection reset by peer) |
17:54:47
| * kenperkins | joined |
17:56:26
| * thlorenz | quit (Remote host closed the connection) |
17:57:39
| * thlorenz | joined |
17:59:02
| * kumavis | joined |
17:59:28
| * ceejbot | joined |
18:01:40
| * peutetre | quit (Quit: peutetre) |
18:02:18
| * thlorenz | quit (Ping timeout: 240 seconds) |
18:05:40
| * kenperkins | quit (Remote host closed the connection) |
18:06:30
| * kenperkins | joined |
18:08:24
| * calvinfo | joined |
18:15:13
| * mikolalysenko | quit (Ping timeout: 240 seconds) |
18:15:30
| * DTrejo | joined |
18:17:04
| * kenperkins_ | joined |
18:18:59
| * mikolalysenko | joined |
18:20:29
| * kenperkins | quit (Ping timeout: 240 seconds) |
18:22:11
| <jjjohhny> | is it possible to make ES6 fail utterly and completely to take? |
18:23:30
| <mikolalysenko> | jjjohhny: probably not, but it is gonna take at least another year or two before it is really mainstream |
18:23:50
| <pfraze> | sweet, 2 years of hipster status |
18:24:16
| <mikolalysenko> | I mean in the industrial setting, who is really gonna make the business case that saving a few keystrokes is worth breaking compatibility on 30% of machines |
18:24:32
| <jjjohhny> | this bananas is shit |
18:25:10
| <jjjohhny> | i feel if mozilla hangs on it maybe they caan smother it |
18:25:17
| <mikolalysenko> | hahaha |
18:25:38
| <mikolalysenko> | personally I stopped caring about it once they dropped support for value/struct types |
18:26:08
| * thlorenz | joined |
18:26:17
| <mikolalysenko> | there isn't really a performance/capability case to be made for any of the features |
18:26:26
| <pfraze> | well, weakmaps |
18:26:31
| <mikolalysenko> | yeah, that's true |
18:26:49
| <mikolalysenko> | but those don't require new syntax and semantics for the core language |
18:26:55
| <pfraze> | yeah |
18:26:59
| <mikolalysenko> | weakmaps could be an api upgrade like typedarrays |
18:27:08
| <mikolalysenko> | or the es5 array stuff |
18:27:36
| <pfraze> | yeah that's true. I'd also argue that yield is significant, just because js does so much async |
18:27:41
| <mikolalysenko> | that is true |
18:27:49
| <pfraze> | but overall I agree with you |
18:29:43
| <chrisdickinson> | template literals will be nice |
18:30:01
| <chrisdickinson> | pretty -1 on the class/arrow/shorthand object syntax |
18:30:06
| <mikolalysenko> | while coroutines are kind of syntactic sugar, they do fundamentally change the way you think about programming |
18:30:06
| <mikolalysenko> | in the same way that adding loops is syntactic sugar for gotos |
18:30:06
| <mikolalysenko> | the silly parts are let, destructuring assignment, and of course the es6 module boondoggle |
18:30:06
| * mikolalysenko | quit (Quit: Reconnecting) |
18:30:12
| * mikolalysenko | joined |
18:30:28
| <chrisdickinson> | export default is in, so that's ... close to what was desired |
18:30:55
| <chrisdickinson> | (in that you can `import yourLocallyDesiredName from moduleExportingDefault` and it works no matter what the export was in the moduleExportingDefault |
18:31:01
| * ceejbot | quit (Remote host closed the connection) |
18:31:03
| <chrisdickinson> | ... but that's still a bit silly looking) |
18:31:47
| <mikolalysenko> | the syntax isn't really the worst part of es6 modules actually |
18:31:51
| <mikolalysenko> | though it is pretty clumsy |
18:32:00
| <mikolalysenko> | the worst part is horrible moduleloader stuff |
18:32:01
| * phated | joined |
18:32:14
| <pfraze> | what is that stuff exactly? |
18:34:20
| <mikolalysenko> | pfraze: here is the chunk of spec where it is defined http://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-loader-state |
18:34:24
| <calvinmetcalf> | chrisdickinson: the arrows are nice because they keep scope |
18:34:41
| <calvinmetcalf> | (this is lexical) |
18:34:47
| <calvinmetcalf> | modules are a steaming pile of shit though |
18:35:12
| <mikolalysenko> | calvinmetcalf: I don't really think the syntactic changes are terrible per se |
18:35:17
| <pfraze> | mikolalysenko, spec so dry you need eyedrops |
18:35:33
| <mikolalysenko> | it is just that the usefulness does not justify breaking compatibility |
18:35:42
| <chrisdickinson> | calvinmetcalf: yes, but they have ever-so-slightly different semantics from all other functions |
18:35:42
| * indexzero | joined |
18:35:46
| <mikolalysenko> | I think if you are gonna add a feature or change syntax around, there should be a big deature win to justify it |
18:35:50
| <mikolalysenko> | *feature |
18:36:06
| <chrisdickinson> | which gives us ... Function(), (function() {}), (function name(){}), function name() {}, and now () => {} to contend with :) |
18:36:33
| <chrisdickinson> | and the only way to determine whether or not it's an arrow function is `fn.toString().indexOf('function') === 0`, which seems hilariously blerghy |
18:36:45
| <chrisdickinson> | (in that `new` doesn't work and `.bind` doesn't have any affect on arrow functions) |
18:36:54
| <chrisdickinson> | s/doesn't work/throws an exception/g |
18:36:54
| * phated | quit (Ping timeout: 244 seconds) |
18:36:55
| <calvinmetcalf> | bind does , just not the first param |
18:37:07
| * calvinfo | quit (Quit: Leaving.) |
18:37:09
| <pfraze> | mikolalysenko, so it's a way to control import/load behavior then? |
18:37:35
| <chrisdickinson> | fair, but .bind to change context is (wholly anecdotally) the reason it's most used |
18:37:36
| <mikolalysenko> | yeah |
18:37:42
| <mikolalysenko> | pfraze: kind of like a require.js |
18:37:44
| <calvinmetcalf> | pfraze: yeah there is an overly complex way of doing it |
18:37:48
| <mikolalysenko> | it does async loading and other crazy shit |
18:37:50
| <jjjohhny> | i only use this when it is poetic to do so, and I never bind functions. |
18:38:01
| <pfraze> | ah...k |
18:38:02
| <calvinmetcalf> | chrisdickinson: the point of arrows is to not need bind |
18:38:23
| * phated | joined |
18:38:31
| <chrisdickinson> | as a client receiving functions, you might not know whether or not you've been handed an arrow function |
18:39:02
| <chrisdickinson> | it defies (previously reasonable) assumptions |
18:39:04
| <calvinmetcalf> | yeah you also might not know if someone handed you a function which somebody did var self = this; before defining it |
18:39:23
| <mikolalysenko> | calvinmetcalf: the other general problem with new features is it makes tooling and analysis more complicated |
18:39:23
| <chrisdickinson> | true |
18:39:28
| <Domenic_> | arrow functions are no different from bound functions |
18:39:37
| * ceejbot | joined |
18:39:38
| <Domenic_> | they add no new semantics at all. |
18:39:51
| <chrisdickinson> | (new () => {})? |
18:39:55
| <Domenic_> | client reasoning is no different |
18:40:14
| <Domenic_> | new (function () { throw TypeError(); })? |
18:40:42
| <Domenic_> | i hate this myth that arrow functions are "a new type of function oh no" |
18:40:46
| <Domenic_> | or "a new meaning of this" is even sillier |
18:40:47
| <calvinmetcalf> | mikolalysenko: that's tool author's problem (aka me sometimes) but espima6 already works |
18:41:09
| <calvinmetcalf> | main issue with es6 is modules |
18:41:13
| <calvinmetcalf> | http://31.media.tumblr.com/173b0e95053fa45b272ecdd182ce40d6/tumblr_n0c8qpeycm1rffgrmo1_1280.png |
18:41:20
| <calvinmetcalf> | export syntax is the simpler stuff |
18:41:48
| <Domenic_> | you could make the same flowchart for CommonJS |
18:42:06
| <calvinmetcalf> | it would have 4 boxes |
18:42:08
| <Domenic_> | wow literally exactly the same flowchart |
18:42:13
| <Domenic_> | no it would have exactly the same amount of boxes |
18:42:19
| <Domenic_> | i can list the terminals corresponding to each ES6 box |
18:42:31
| <calvinmetcalf> | 1 thing or many |
18:42:53
| <calvinmetcalf> | and both get declaration vs expression |
18:42:59
| <Domenic_> | export default x <-> module.exports x. export { yourThing } <-> exports.yourThing = yourThing. export { yourThing as newName } <-> exports.newName = yourThing |
18:43:15
| <pfraze> | yeah, this chart doesnt bother me really |
18:43:25
| <Domenic_> | export function x() { } <-> function x() { }; exports.x = x; |
18:43:39
| <Domenic_> | export let x = function () { }; <-> exports.x = function () { }; |
18:43:39
| <chrisdickinson> | Domenic_: to verify, arrow functions *do* throw TypeError on `new`? |
18:43:45
| <Domenic_> | literally 1 for 1 correspondence |
18:43:48
| <Domenic_> | chrisdickinson: yes. |
18:43:53
| * mikolalysenko | quit (Ping timeout: 252 seconds) |
18:44:03
| <pfraze> | though why wasnt module.exports used? |
18:44:13
| <chrisdickinson> | pfraze: `if(false) module.exports = xxx` |
18:44:23
| <calvinmetcalf> | var x = something; exports.x = somethingElse; |
18:44:23
| <chrisdickinson> | (can't enforce that it's at top level) |
18:44:24
| * wolfeidau | quit (Remote host closed the connection) |
18:44:27
| <Domenic_> | the static analyzability if ES6 modules is going to be great. |
18:44:31
| <chrisdickinson> | +1 to that |
18:44:41
| <Domenic_> | the transition pain is sucky |
18:44:45
| <Domenic_> | but i am hopeful |
18:45:10
| <pfraze> | Domenic_: you're saying forcing toplevel exports helps with analysis? |
18:45:26
| <Domenic_> | pfraze: yes. if (Math.random() > 0.5) { exports.x = 10; } |
18:45:33
| <pfraze> | ahhh |
18:45:36
| <Domenic_> | no way to statically analyze whether the module will export x or not |
18:45:52
| <calvinmetcalf> | Domenic_: that doesn't really come up at all in browserify |
18:45:53
| <chrisdickinson> | (I mostly get riled about the changes that are primarily cosmetically driven that introduce subtle differences from existing forms) |
18:46:08
| <pfraze> | chrisdickinson, agreed |
18:46:10
| <Domenic_> | calvinmetcalf: you've never done `var x = require("y").x` and had `x` be undefined accidentally? |
18:46:40
| <pfraze> | chrisdickinson, enhanced object literals! D: |
18:46:42
| <Domenic_> | or wished the JIT could inline across module boundaries? |
18:46:46
| <calvinmetcalf> | I've done that in node due to a circular dependency |
18:47:19
| <calvinmetcalf> | but that's not static analysis |
18:47:19
| <rowbit1> | Hourly usage stats: [developer: 4, free: 40] |
18:47:46
| <Domenic_> | the kind of holistic whole-program analysis enabled by statically-determinable module dependencies and exports/imports is going to be a big boost to perf and tooling. |
18:47:50
| <chrisdickinson> | Domenic_: can it not? I saw that a lot of the "is this from a different context?" checks had been removed from hydrogen |
18:48:11
| <Domenic_> | chrisdickinson: my understanding is that whenever you access an object literal property that's going to be not possible to inline |
18:48:24
| <Domenic_> | because it's not just a reference to the variable, it's a property Get(objectLiteral, "name") |
18:48:35
| <Domenic_> | whereas with static import/exports it's just the same variable |
18:48:40
| <Domenic_> | in two different files |
18:48:59
| <chrisdickinson> | ah, but in commonjs/node, with single exports? |
18:49:03
| <calvinmetcalf> | Domenic_: I'm not disputing that statically determinable modules arn't good, I think they are great |
18:49:27
| <Domenic_> | chrisdickinson: i am not sure about the single export case tbh. |
18:49:42
| <calvinmetcalf> | it's whether they require pythonic decleration based syntax |
18:49:43
| <chrisdickinson> | i've wondered about it before, but hadn't really dug into it |
18:50:10
| <Domenic_> | lol @ people who think it's from python |
18:50:34
| <calvinmetcalf> | it and python probably got it from the same place |
18:51:03
| <Domenic_> | Racket, apparently? |
18:51:09
| <chrisdickinson> | my previous assumption (now proved wrong after 3 (just three!) months from v8) was that if you referred to any variables from an enclosing scope that the candidate function doing the inlining was not also a part of, then it would bail |
18:52:09
| <chrisdickinson> | which would preclude very nearly *any* module from inlining, given the close it has at file level scope -- if it requires anything & uses it in function, it would be in a different context & thus be impossible to inline |
18:53:42
| * contrahax | joined |
18:53:52
| <substack> | Domenic_: static variable exports weird me out |
18:53:53
| <calvinmetcalf> | but yeah whether the racketesque syntax is actually necessary for static analysis... |
18:54:13
| <jjjohhny> | STATIC => VARIABLE |
18:54:14
| <LOUDBOT> | PUNCH A CAT, LIVE FOREVER |
18:54:35
| <substack> | Domenic_: like the part where `export var x = 5` and then if you `import {x} from "./foo.js"` and do x++ it modifies x both places |
18:54:45
| <substack> | spooky action at a distance |
18:55:41
| <jjjohhny> | <=, >= and now => !!!! |
18:59:28
| <pfraze> | substack, state is shared for values? |
19:00:00
| <kriskowal> | yes |
19:00:04
| <rowbit1> | substack, pkrumins: Encoders down: 50.57.174.105 (dev-ie8-2) |
19:00:23
| <substack> | pfraze: that was the magic that nobody wants that they insisted on that made default exports so complicated |
19:00:39
| <pfraze> | substack: oh my, no |
19:00:47
| <kriskowal> | on the one hand it is action at a distance, but if there are cyclic dependencies, the state settles regardless of the execution order. not so with commonjs modules. |
19:01:23
| <kriskowal> | substack: and by "they" we mean dave |
19:01:33
| <substack> | what is that guy's deal anyways |
19:01:35
| <substack> | he wants such weird things |
19:01:58
| <substack> | kriskowal: it seems like you could get a stable execution order without the spookiness |
19:02:01
| <kriskowal> | we're all crafting the language in the image of our favorite language. his is plt scheme / racket |
19:02:16
| <kriskowal> | you can, with lazy binding, which is the same effect but more work |
19:02:19
| <substack> | kriskowal: why didn't they find somebody whose favorite language was javascript |
19:02:30
| <substack> | dave should go work on plt scheme or racket instead |
19:02:59
| <kriskowal> | he came to tc39 directly from doing a phd that formalized the javascript semantics |
19:03:13
| <substack> | because it feels very much like when people from ruby who hate javascript use coffeescript and try to push it on everyone else |
19:03:17
| <kriskowal> | brendan has been mentoring him for at least a decade |
19:03:40
| <kriskowal> | ah, well, i'm not working on javascript because i like it the way it is, so i'm no one to comment. |
19:04:09
| <substack> | I don't get why there is such a huge push to change it so severely |
19:04:20
| <substack> | it's pretty simple and easy to learn |
19:04:20
| <kriskowal> | i've been on the other side of the "it's not javascript" argument, when i was proposing commonjs modules |
19:04:32
| <kriskowal> | lots of folks like the crockford module pattern and name space objects |
19:04:44
| <substack> | es6 just adds more baggage that you'll have to keep in your head and newcomers are going to be realy confused by it |
19:04:56
| * DTrejo | quit (Remote host closed the connection) |
19:05:16
| <substack> | kriskowal: but none of that stuff is syntactic |
19:05:23
| <kriskowal> | it's true |
19:05:26
| <substack> | it's all just variations of existing js syntax |
19:05:43
| <calvinmetcalf> | es6 also expands declarations, there is what one currently, now you have them all over the place |
19:05:48
| <kriskowal> | though, i'm sure we can agree at least that static analysis is important for a not-hack module system |
19:06:04
| <kriskowal> | i was originally proposing that we add a version of eval that just treats require as static |
19:06:06
| <substack> | kriskowal: yes, but it could have been soooo much simpler |
19:06:12
| * monteslu | joined |
19:06:39
| <kriskowal> | it could. alas that i spent my political capital so thoroughly. |
19:06:46
| <jjjohhny> | is dave on twitter? |
19:07:00
| * DTrejo | joined |
19:07:00
| <substack> | I also hate this issue of "political capital" |
19:07:03
| <substack> | fuck everything about that |
19:07:07
| <kriskowal> | @littlecalculist. be kind, he is a good person at the end of the day. |
19:07:29
| * calvinfo | joined |
19:07:59
| <substack> | I really hate that all these things require consensus by an unelected body of self-appointed industry vendors |
19:08:04
| <substack> | who pay to play |
19:08:06
| <kriskowal> | i should say, he's a good person at the beginning of the day, but we all have our ideas and his are at the very least, worth respect |
19:08:16
| <substack> | why can't javascript be like c |
19:08:21
| <substack> | basically never changes |
19:08:31
| <substack> | means you can build all sorts of great stuff on a stable foundation |
19:08:49
| <pfraze> | substack: good question, it's not like adoption was suffering without the changes |
19:09:11
| <chrisdickinson> | there's the argument that dart will eat JS's lunch if JS doesn't become a more appealing language to the mainstream |
19:09:16
| <substack> | pfraze: exactly! userland has been exploding and there are multiple competing userland module systems that work pretty well |
19:09:31
| <substack> | chrisdickinson: let it |
19:09:32
| <pfraze> | chrisdickinson: but is that a danger? |
19:09:33
| <chrisdickinson> | (to which i point at the `factory` keyword in dart, wearily) |
19:09:38
| <kriskowal> | adoption != happiness, frankly |
19:09:52
| <pfraze> | substack, exactly |
19:09:57
| <kriskowal> | adoption is driven by lock-in |
19:10:02
| <substack> | going around trying to please everybody is going to result in garbage that nobody wants |
19:10:15
| <kriskowal> | and lock-in is an emergent pattern of the limited consensus of vendors |
19:10:28
| <pfraze> | kriskowal, but arguably something like dart is how you escape lockin |
19:10:32
| <kriskowal> | substack: crockford once told that to me to my face. |
19:10:34
| <substack> | chasing new language fads or academic ideas that just add confusion and formalism for no practical upside |
19:11:14
| <kriskowal> | i should say, i was waffling about details i didn't care about in a presentation, and he said: pick one and piss off half of us. if you don't, you'll piss off everyone. |
19:11:59
| <substack> | academic language fads like monads are doubly bad |
19:13:39
| <jjjohhny> | WHERE IS THE CROCKFORD NOW TO SHAKE HIS WIZARD STICK AT SIX ECMASCRIPT |
19:13:39
| <LOUDBOT> | HERE'S AN INCREDIBLE FACT: |
19:13:52
| * tilgovi | joined |
19:14:24
| <pfraze> | that's it I'm forking the Web |
19:14:40
| <chrisdickinson> | it does make me sad, a bit, that JS is changing so much to meet the expectations/morés of folks from other language communities; it seems like the conversation is "what can JS learn from <X>?" vs. "what can other languages learn from JS?" |
19:15:41
| <jjjohhny> | what does crockford think of all this I wonder |
19:15:59
| <kriskowal> | i wouldn't pine on that too much. |
19:16:00
| <chrisdickinson> | I think the best thing that happened for my code was that I stopped trying to bring pythonisms to JS, and started embracing JS as having a different (but equally valid) methodology |
19:16:14
| <kriskowal> | he doesn't have a monopoly on good opinions. |
19:17:10
| <jjjohhny> | no but if he likes to spit when he talks, and we point him at ES6... |
19:17:32
| <kriskowal> | chrisdickinson: both languages are driven by requirements of the medium. JS is different largely because of its sandboxing model. |
19:17:37
| <substack> | jjjohhny: crockford is on tc39 |
19:17:38
| <kriskowal> | e.g., ordered keys |
19:17:48
| <kriskowal> | he doesn't talk much at meetings |
19:18:25
| <kriskowal> | he has an economy of words. |
19:18:40
| <chrisdickinson> | kriskowal: static analysis of dependencies is big in JS; whereas in python dynamic importing is (or was!) the norm |
19:19:07
| <kriskowal> | yes, also a difference in requirements. python never has any latency between the interpreter and the module store. |
19:19:17
| <kriskowal> | well, never has appreciable latency. |
19:19:21
| <chrisdickinson> | (further examples: classes are the primary mechanism for code reuse in python; in JS they are often superfluous) |
19:19:42
| <kriskowal> | however, javascript's lack of stratified types is a pain in the ass. |
19:19:43
| <calvinmetcalf> | (and even so nobody even bothers with dynamic imports in python) |
19:19:45
| <kriskowal> | we work around it. |
19:19:58
| <chrisdickinson> | calvinmetcalf: tell that to django :\ |
19:20:47
| <calvinmetcalf> | I have one project with django, god I hate it |
19:20:53
| <chrisdickinson> | kriskowal: could you point me to a link on stratified types (or give a definition)? I'm not sure if I follow |
19:21:11
| * AvianFlu | joined |
19:21:17
| <chrisdickinson> | django is... actually fairly sane, all told |
19:21:48
| <kriskowal> | meaning, instances of collections that have separate domains for the interface layer and the content layer, with syntactic support for both. |
19:22:38
| <kriskowal> | it's not the end of the day, but using objects as records vs objects as instances is still a point of pain |
19:23:05
| <chrisdickinson> | aaah |
19:23:07
| <kriskowal> | and the stratification in JS just means using methods when we mean methods, like get, set |
19:23:12
| <chrisdickinson> | thanks for explaining :) |
19:23:27
| * fuz | joined |
19:24:14
| <chrisdickinson> | i'm not sure if that's a misfeature or not (from my point of view); it certainly encourages one down a type-less/class-less path |
19:24:58
| * stagas | quit (Ping timeout: 240 seconds) |
19:25:03
| <kriskowal> | yes, there are good arguments either way. |
19:25:17
| <substack> | oh man the loader in es6 is annoying me already |
19:25:20
| <substack> | playing with traceur |
19:25:23
| <pfraze> | this is where structural/duck-typing gets its day, right? |
19:25:32
| <substack> | import upper from "./y.js" <-- doesn't work |
19:25:33
| <chrisdickinson> | (for clarity, i'm currently of the opinion that classes in js are best used to provide rich information access; they should be immutable, etc) |
19:25:36
| <kriskowal> | structural and duck typing is orthogonal |
19:25:40
| <substack> | import upper from "./y" <-- works |
19:25:57
| <pfraze> | kriskowal, are they? |
19:25:58
| <substack> | I guess it forces an implicit extension on you? blech |
19:26:04
| <chrisdickinson> | (but in practice the cases where I need that rich information access (vs. just a dumb record) are few and far between) |
19:27:20
| <pfraze> | kriskowal, looking this up now - is the difference that structural- is static, whilee duck- is runtime? |
19:27:41
| <kriskowal> | i mean both are orthogonal to stratification |
19:27:58
| <pfraze> | oh, heh |
19:28:46
| <chrisdickinson> | if i'm understanding our lack of stratification correctly, it's that there's no "this is an instance of a type" vs. "this is a hash/dictionary/record" in JS |
19:29:16
| <kriskowal> | that's about right |
19:29:48
| <kriskowal> | eh, roughly |
19:29:55
| <chrisdickinson> | :) |
19:30:02
| * h0ke | joined |
19:30:11
| <chrisdickinson> | (I figured I'd get it at *least* a little wrong) |
19:30:42
| <chrisdickinson> | i'm not sure I mind it; coming from a language that has it to a language that doesn't |
19:30:49
| <kriskowal> | a record is an instance of a record, but its interface (get, set, put) is distinct from its content in a language with stratification |
19:31:10
| <kriskowal> | it interferes with duck-typing |
19:31:30
| <kriskowal> | which is even more important in JS than Python, ironically |
19:32:27
| <kriskowal> | JS is predicated on the fallacy that syntactic support for instance literals and record literals are mutually exclusive. it's true though that only one of them can get the bare curlies. |
19:32:40
| <kriskowal> | in any case, it's not a problem JS can fix. |
19:32:54
| <chrisdickinson> | interesting |
19:32:56
| <kriskowal> | but it is an example of JS not being the one true language for the web. |
19:33:29
| * fotoverite | quit (Read error: Connection reset by peer) |
19:33:37
| <kriskowal> | in any case, i don't have an agenda re that (politics!) |
19:33:37
| <chrisdickinson> | (an example of instance literals being the borrowed C++, `new char {0, 1, 2, 3}`, yes?) |
19:34:03
| <chrisdickinson> | (I think I might have that wrong, actually :|) |
19:34:33
| <kriskowal> | too distant an analogy to meaningfully compare |
19:35:05
| <kriskowal> | though new {} vs {} syntax would be sufficient to distinguish in some mythical alt lang |
19:35:30
| <Domenic_> | substack: the implicit-extension thing is not part of the language; traceur is just implementing their own guess at how browsers might do default module ID resolution |
19:36:04
| <kriskowal> | Domenic_: does tracuer yet handle shared import/export references? i haven't found a shim that does yet. |
19:36:10
| <Domenic_> | kriskowal: regarding stratified types, did you see http://esdiscuss.org/topic/merging-bind-syntax-with-relationships ? I personally thought it was brilliant |
19:36:19
| <Domenic_> | kriskowal: you mean the mutability thing? I am pretty sure it does. |
19:36:33
| <kriskowal> | my information is stale. |
19:37:54
| <Domenic_> | there has been a lot of work on traceur's modules and module loader over the last month |
19:38:18
| <kriskowal> | Domenic_: cute, re Symbol.reference{Get,Set}. |
19:38:59
| <kriskowal> | though, i think that i can divine that substack would find the solution worse than the problem, and i might agree. |
19:39:57
| <kriskowal> | particularly having to introduce the :: operator to step behind the curtain and do what . was supposed to do |
19:40:13
| <creationix> | brianloveswords, ping |
19:40:17
| <Domenic_> | I love it... I love bind syntax (original ::), I think relationships desparately need sugar, and I think it gives a great bonus in sugaring Map access. |
19:40:17
| <kriskowal> | argues for a language with distinct operators |
19:40:38
| <Domenic_> | I wonder if :: could be -> |
19:40:46
| <kriskowal> | at the end of the day, map.get and map.set are not that bad. arrays are the anomaly |
19:41:06
| <jjjohhny> | how can I save the entire buffer of an irc window? |
19:41:22
| <Domenic_> | Ctrl+A Ctrl+C |
19:42:37
| <kriskowal> | substack: modules on the web are an interesting problem, i think we can agree. |
19:42:45
| <jjjohhny> | Domenic_: como? |
19:43:07
| <kriskowal> | a lot of the surface of the web really ought to be reevaluated in terms of modules and packaging. |
19:43:34
| <kriskowal> | i think alex russel implied that was part of the extensible web manifesto. a way of lifting module references into html. |
19:43:44
| <jjjohhny> | kriskowal: html does modules |
19:43:47
| <jjjohhny> | with tags |
19:44:15
| <jjjohhny> | you can append them to the dom, use them to load assests, crazy stuff |
19:44:45
| <kriskowal> | hrefs are not module references. they do not provide a level of indirection for packaging. |
19:44:53
| <tim_smart> | What would be a good way to keep track of many dnode streams so you can 'broadcast' thigns |
19:44:58
| <tim_smart> | s/thigns/things/ |
19:45:45
| <kriskowal> | jjjohhny: crazy indeed. |
19:46:24
| <jjjohhny> | you can control loading, you can control the rest |
19:47:07
| <jjjohhny> | like, what if you loaded a bunch of JS in separate script tags |
19:47:19
| <rowbit1> | Hourly usage stats: [developer: 0, free: 33] |
19:47:19
| <jjjohhny> | but didn't run your code |
19:47:26
| <jjjohhny> | you don't have to run your code, you know |
19:47:45
| <jjjohhny> | boom, the dom has a module system |
19:48:42
| <jjjohhny> | module systems are the interplay of languages and their stack |
19:48:54
| <jjjohhny> | they should not be in the language itself |
19:49:05
| <jjjohhny> | they are environmental |
19:50:15
| <jjjohhny> | html, the dom, the browser, node: these are environments for JS |
19:50:24
| <creationix> | so does anyone know the preferred method to consume imaya/zlib.js in a browser with a cjs compiler like browserify? |
19:50:32
| <creationix> | the source seems to be closure compiler format |
19:50:43
| <creationix> | there is a pre-built node version, but it assumes Buffer and I want Uint8Array |
19:51:08
| <substack> | tim_smart: you can use an array for that and splice off elements when a remote disconnects |
19:52:04
| <tim_smart> | substack: Would you have to compact the array often? Maybe use a hash and assign client id's |
19:52:06
| <calvinmetcalf> | creationix: you can look at how jslib did it |
19:52:10
| <calvinmetcalf> | er jszip |
19:52:53
| <tim_smart> | substack: Problem is I guess once you start `delete`ing keys off the hash you fall into v8's slow case |
19:52:53
| <calvinmetcalf> | https://www.irccloud.com/pastebin/nhfGMmsn |
19:53:08
| <tim_smart> | But that probably won't be the bottleneck |
19:53:10
| <creationix> | I've manually converted it once https://github.com/creationix/git-zlib |
19:53:18
| <substack> | tim_smart: I usually use an array |
19:53:41
| <substack> | because disconnects are infrequent compared to writes |
19:54:09
| <creationix> | calvinmetcalf, what require loader is that. Those files just export a Zlib global |
19:54:26
| <calvinmetcalf> | browserify |
19:54:30
| <substack> | creationix: Buffer in browserify compiles down to wrapped Uint8Arrays |
19:55:26
| <substack> | tim_smart: splice |
19:55:51
| <brianloveswords> | creationix: pong! |
19:56:15
| <tim_smart> | substack: True. Forgot that deletes and re-orders |
19:56:29
| * mikolalysenko | joined |
19:56:29
| <ogd> | brianloveswords: i forget are you on best coast this week? |
19:56:39
| <brianloveswords> | ogd: I was supposed to be, but now I'm not :( |
19:56:45
| <brianloveswords> | ogd: I gotta go to Boston instead. |
19:56:56
| <ogd> | brianloveswords: LAME |
19:56:58
| <jjjohhny> | ouch |
19:57:00
| <ogd> | brianloveswords: you should hang with calvinmetcalf tho |
19:57:01
| <brianloveswords> | TELL ME ABOUT IT. |
19:57:02
| <LOUDBOT> | DEFENSE AGAINST THE DANK ARTS |
19:57:08
| <calvinmetcalf> | boston is the best! |
19:57:16
| <calvinmetcalf> | creationix: this is where it is used https://github.com/Stuk/jszip/blob/master/lib/flate.js |
19:57:32
| <brianloveswords> | haha, well I'll be in the Back Bay area for DML tomorrow night through Saturday morning! |
19:57:35
| <brianloveswords> | calvinmetcalf ^^ |
19:58:26
| <ogd> | Donut Meetup Live |
19:58:32
| <ogd> | at dunkin |
19:58:38
| <ogd> | sorry Donut Meetup Live! |
19:59:15
| <brianloveswords> | ogd: oh, thanks for making http://nodeschool.io/host.html btw! |
19:59:35
| <ogd> | werd |
19:59:38
| <creationix> | calvinmetcalf, I see, but I still don't understand where that require call is defined. |
20:00:01
| <creationix> | zlibjs/bin/rawdeflate.min.js is not a common js module |
20:00:59
| <calvinmetcalf> | brianloveswords: cool we should hang wen or thurs |
20:02:24
| * kenperkins_ | quit (Remote host closed the connection) |
20:03:13
| <calvinmetcalf> | creationix: those are accurate statements ... but that does work in browserify, I don't remember why though |
20:03:16
| * kenperkins | joined |
20:03:40
| <creationix> | ok, so it's just a feature of browserify to look for globals somehow? |
20:03:49
| <creationix> | I wonder how that works |
20:04:07
| * feross_ | joined |
20:06:15
| <substack> | creationix: http://npmjs.org/package/insert-module-globals |
20:11:02
| * naneau | quit (Quit: Quit.) |
20:12:46
| <creationix> | substack, I don't think that's what I want |
20:13:56
| <creationix> | ahh, or maybe the .on("global", ...) event is what detects |
20:14:24
| <creationix> | so maybe jszip is using a custom shim to look for the Zlib global and make that the exports? |
20:15:30
| * naneau | joined |
20:18:17
| * peutetre | joined |
20:18:34
| <calvinmetcalf> | I don't think we are, lemme find the issue |
20:19:37
| * naneau | quit (Ping timeout: 240 seconds) |
20:19:41
| * ednapiranha | quit (Remote host closed the connection) |
20:20:15
| * ednapiranha | joined |
20:20:19
| <calvinmetcalf> | though creationix have you seen https://github.com/nodeca/pako |
20:20:29
| * ceejbot | quit (Remote host closed the connection) |
20:22:58
| * ceejbot | joined |
20:24:36
| <ogd> | whoa cool |
20:24:48
| * ednapiranha | quit (Ping timeout: 264 seconds) |
20:26:35
| * phated | quit (Remote host closed the connection) |
20:26:53
| * taterbase | quit (Quit: Connection closed for inactivity) |
20:29:09
| * ceejbot | quit (Remote host closed the connection) |
20:31:25
| <creationix> | calvinmetcalf, that looks really nice actually |
20:33:03
| <creationix> | now if I can figure a way to do streaming inflate of the git-pack stream |
20:33:37
| <creationix> | the problem there is I don't know how many bytes to feed to inflate. The inflate state machine has to tell me when I've given it enough bytes (and give me back the extra if I passed too much in) |
20:36:07
| <ogd> | this module makes me happy, that is all https://www.npmjs.org/package/linger |
20:37:26
| <creationix> | calvinmetcalf, thanks! That was really easy actually https://github.com/creationix/tedit-app/commit/e3df87612d0a78a5e9386b1b221a7ef43d53103f |
20:37:42
| <creationix> | I'm not using browserify, but some custom system I developed for tedit (that works really well on chromebooks) |
20:37:56
| <creationix> | pako is written in the exact same style as js-git |
20:46:32
| * defunctzombie_zz | quit (Ping timeout: 252 seconds) |
20:46:34
| * phated | joined |
20:46:40
| * phated | quit (Remote host closed the connection) |
20:47:19
| <rowbit1> | Hourly usage stats: [developer: 3, free: 38] |
20:48:03
| * defunctzombie_zz | joined |
20:48:14
| * phated | joined |
20:50:16
| <calvinmetcalf> | creationix: credit goes to the guy who opened the issue for it on jszip |
20:53:04
| * contrahax | quit (Read error: Connection reset by peer) |
20:54:59
| * contrahax | joined |
20:55:01
| <rowbit1> | /!\ ATTENTION: (default-local) inanc@... successfully signed up for developer browserling plan ($20). Cash money! /!\ |
20:55:01
| <rowbit1> | /!\ ATTENTION: (default-local) paid account successfully upgraded /!\ |
20:57:15
| * calvinfo | quit (Quit: Leaving.) |
21:02:24
| * contrahax | quit (Quit: Sleeping) |
21:02:31
| * kenperkins_ | joined |
21:04:09
| * kenperkins | quit (Ping timeout: 244 seconds) |
21:07:02
| * thealphanerd | joined |
21:08:27
| * tilgovi | quit (Read error: Connection reset by peer) |
21:08:44
| * tilgovi | joined |
21:08:45
| * calvinfo | joined |
21:12:34
| * h0ke | quit (Quit: Konversation terminated!) |
21:15:55
| * phated_ | joined |
21:15:57
| * phated | quit (Read error: Connection reset by peer) |
21:19:43
| * phated | joined |
21:19:50
| * ednapiranha | joined |
21:20:17
| * phated_ | quit (Read error: Connection reset by peer) |
21:23:44
| <ogd> | substack: any clue whats goin on w/ browserify here? https://github.com/jesusabdullah/browserify-cdn/issues/71 |
21:23:55
| * ins0mnia | quit (Read error: Operation timed out) |
21:28:24
| * mikolalysenko | quit (Ping timeout: 264 seconds) |
21:28:55
| <ogd> | jesusabdullah: i fixed a crashing bug in browserify-cdn just now :P |
21:30:02
| <thlorenz> | ogd: btw I'm working on something like requirebin except for full stack apps: https://github.com/thlorenz/spinup |
21:30:23
| <thlorenz> | still a long ways to go, but some parts are close to finished:https://github.com/thlorenz/dockerify |
21:30:36
| <ogd> | oh sweet |
21:32:44
| <jesusabdullah> | ogd: \m/ |
21:33:22
| <substack> | rvagg: some IE errors in readable-stream, tracking them down https://ci.testling.com/substack/tap-parser |
21:33:26
| <jesusabdullah> | thlorenz: ANY project? Or just node projects? |
21:33:33
| * tilgovi | quit (Remote host closed the connection) |
21:33:52
| <thlorenz> | jesusabdullah: ANY project |
21:34:02
| <thlorenz> | just change the Dockerfile :) |
21:34:44
| * defunctzombie_zz | changed nick to defunctzombie |
21:34:52
| <jesusabdullah> | word |
21:35:03
| * defunctzombie | quit (Changing host) |
21:35:03
| * defunctzombie | joined |
21:36:58
| * naneau | joined |
21:38:19
| <thlorenz> | ogd: I can show you once I'm coming into Oakland (Thursday) - maybe in sudo room :) |
21:41:13
| * DTrejo | quit (Remote host closed the connection) |
21:45:34
| * mikolalysenko | joined |
21:46:50
| * contrahax | joined |
21:47:02
| <ogd> | substack: re https://github.com/jesusabdullah/browserify-cdn/issues/71 maybe a recent version of browserify changed the way it parses JS and introduced these regressions? |
21:47:17
| * phated | quit (Read error: Connection reset by peer) |
21:47:19
| <rowbit1> | Hourly usage stats: [developer: 4, free: 43] |
21:47:34
| * phated | joined |
21:54:49
| <creationix> | calvinmetcalf, aww, pako isn't done |
21:54:51
| <creationix> | no inflate |
21:55:08
| <creationix> | Good thing I have chrisdickinson's inflate |
21:55:37
| <chrisdickinson> | i opened an issue |
21:55:56
| * phated | quit (Remote host closed the connection) |
21:56:17
| <thlorenz> | ogd: substack the switch to esprima-six caused these regressions and should be reverted until it's more stable |
21:56:20
| <chrisdickinson> | i'm >90% sure they won't accept my inflate as i don't think it quite matches what they want, but! if they want to use it, they can :) |
21:56:44
| <thlorenz> | better to have stable ES5 parsing than ES6 features (especially if there is always es6ify) |
21:56:49
| <ogd> | thlorenz: substack: i swapped out esprima-six for esprima@master and it fixed my issues, which arent covered by the detective test suite |
21:57:00
| <ogd> | but the generator and yield tests in detective fail with esprima@master |
21:57:01
| <creationix> | chrisdickinson, so I have two questions now. 1. how long till they implement inflate, and 2. will it support the interface I need |
21:57:15
| <chrisdickinson> | unsure! |
21:57:20
| <chrisdickinson> | and, also unsure :) |
21:57:33
| <creationix> | chrisdickinson, yeah, those weren't questions for you, just questions |
21:57:36
| <thlorenz> | ogd: of course :) IMO that move to ES6 was premature |
21:57:38
| <creationix> | I guess we'll see |
21:57:44
| <ogd> | thlorenz: do you know why https://github.com/ariya/esprima is updated recently but esprima on npm is 6 months old? |
21:57:55
| <thlorenz> | no idea |
21:58:05
| <chrisdickinson> | creationix: hopefully they can use my inflate |
21:58:10
| <chrisdickinson> | or pieces of it |
21:58:15
| <creationix> | well, if they can't, I sure can |
21:58:21
| <creationix> | I'm trying to add clone back into js-git |
21:58:28
| <creationix> | I've rewritten it so many times, it's not even funny |
21:58:40
| <ogd> | AHH the culprit https://github.com/substack/node-detective/commit/be95efb7abac4bd0c3fc52f19158cef747b108b4 |
21:58:54
| * joshwnj- | joined |
21:59:29
| <thlorenz> | wow I'm amazed substack merged that, usually he is very particular about editor noise |
21:59:39
| <jesusabdullah> | substack: plz2b revert^^^^^^' |
21:59:40
| <chrisdickinson> | ogd: is it misinterpreting my code as a list comprehension? |
21:59:58
| <chrisdickinson> | because if so, i guess i'm flattered? |
22:00:08
| <thlorenz> | that commit has trim empty and rewrite package.json written all over it |
22:00:10
| <jesusabdullah> | Oh yeah, the spaces going away is usually a big no-no with the stizz |
22:00:27
| <jesusabdullah> | AND it fucks up the package.json spacing |
22:00:35
| <thlorenz> | jesusabdullah: yep, maybe he was in a good mood that day |
22:01:05
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for android-browser/4.2 |
22:01:38
| <thlorenz> | chrisdickinson: seeing you like tar-stream, do you know how I can make that API adapt nicer to a pipe stream API? |
22:02:02
| <thlorenz> | in particular I'm not proud that you have to pass the stream: https://github.com/thlorenz/dockerify#tarstream-opts--readablestream |
22:02:59
| <chrisdickinson> | hmm |
22:03:37
| <chrisdickinson> | since you need to extract entries? |
22:03:38
| <thlorenz> | chrisdickinson: I'd have to somehow wrap it to just expose a through stream here: https://github.com/thlorenz/dockerify/blob/master/index.js#L88 |
22:04:05
| <thlorenz> | well tar-stream works with two streams if you modify entries, extract and pack |
22:04:14
| <thlorenz> | and then it has pack.finalize() |
22:04:30
| <thlorenz> | so incompat with node streams |
22:04:32
| <chrisdickinson> | huh |
22:04:35
| <chrisdickinson> | weird |
22:04:46
| <chrisdickinson> | my extract worked like this: https://github.com/chrisdickinson/tar-parse |
22:04:56
| <chrisdickinson> | where each `data` event was a stream |
22:05:06
| <chrisdickinson> | but i never had the packing side down |
22:05:18
| <thlorenz> | yeah - I banged my head trying to expose a through stream for tar-parse |
22:05:26
| <thlorenz> | *tar-stream |
22:05:50
| <thlorenz> | chrisdickinson: so I could modify entries for dockerify with tar-parse? maybe I'll use that instead |
22:06:34
| <substack> | thlorenz: I fix them in extra commits sometimes |
22:06:38
| <chrisdickinson> | it's possible? it's been a long while since i've used tar-parse -- it was originally to get around tar's reliance on graceful-fs |
22:07:00
| <thlorenz> | substack: ah, that makes sense - sometimes that's faster than explaining things |
22:07:19
| <thlorenz> | chrisdickinson: accepting PR to improve dockerify API ;) |
22:07:24
| <chrisdickinson> | :) |
22:07:39
| <thlorenz> | just getting finished with the tests and edgecases right now and will pub first version |
22:07:46
| <thlorenz> | chrisdickinson: are you at jsfest? |
22:07:49
| <ogd> | ooookay https://github.com/substack/node-detective/pull/30 |
22:08:52
| <chrisdickinson> | thlorenz: unfortunately no ): |
22:09:00
| <substack> | ogd: can you add a note on this? https://github.com/substack/node-browserify/issues/614 |
22:09:53
| <substack> | even if it's just "lol use es6ify" |
22:09:55
| <thlorenz> | chrisdickinson: ok, oh well I'll finish this up and then I'll try bugging you again about how to improve the API |
22:09:56
| <ogd> | substack: it seems like esprima-six should be opt-in but we still need esprima |
22:10:12
| <ogd> | substack: they are api compatible, but esprima-six is buggier |
22:10:18
| <substack> | ogd: another problem is that this is going to become a bigger and bigger issue as time goes on |
22:10:32
| <substack> | ogd: is es6 in the roadmap of esprima proper? |
22:10:44
| <substack> | I guess we can just punt until esprima itself gets it |
22:10:50
| <thlorenz> | substack: go easy on es6ify :) |
22:10:57
| <ogd> | substack: it says support is experimental in the esprima readme |
22:11:27
| <substack> | ogd: but do the current tests pass in detective with the old esprima? |
22:12:04
| <ogd> | substack: yep |
22:12:10
| <substack> | oh cool! |
22:12:11
| <ogd> | substack: the tests in my PR pass |
22:12:16
| <ogd> | substack: i had to take out the generator and yield tests |
22:12:21
| <substack> | oh |
22:12:24
| <substack> | that's what I meant |
22:12:46
| <ogd> | substack: i tried esprima@master too and they still dont pass |
22:12:54
| <substack> | blah |
22:12:55
| <ogd> | substack: also sent ariya a tweet asking for a npm publish |
22:13:08
| <substack> | this migration path is going to be so crappy |
22:13:28
| <substack> | from es5 to es6 |
22:13:36
| <ogd> | i dont even know where the repo is for esprima-six, cause the repo for esprima-six on npm points to ariya/esprima |
22:13:49
| <substack> | Domenic_: do you know anything about the es6 plans in esprima? |
22:14:00
| <thlorenz> | substack: just tell ppl to fork off detective-six and browserify-six if they really need to |
22:14:14
| <thlorenz> | or use es6ify (w/out the lol) |
22:14:54
| <substack> | ok I'll bump the major at least for this |
22:15:14
| <Domenic_> | substack: not really... it seemed like they were working on it for a while, but progress has stalled recently. ariya seems busy these days... |
22:15:44
| <substack> | Domenic_: the migration path is kind of crappy without solid AST parsers that work on both es5 and es6 |
22:16:58
| <Domenic_> | agreed. |
22:17:26
| <thlorenz> | Domenic_: wouldn't traceur have a reliable es6 parser? |
22:17:37
| <Domenic_> | presumably yeah |
22:17:43
| <thlorenz> | how else are they generating es5 w/out an AST |
22:18:08
| <thlorenz> | is it in a state where it could be pulled out and made esprima compat? ^ paul_irish |
22:19:01
| <ogd> | p.s. does anyone have a link to the github repo for esprima-six? |
22:20:10
| <thlorenz> | ogd: it's esprima |
22:20:17
| <thlorenz> | the es6 branch |
22:20:26
| <ogd> | ahhh |
22:20:29
| <ogd> | that is not mentioned anywhere |
22:20:46
| <ogd> | do you meant he 'harmony' branch? |
22:20:47
| * peutetre | quit (Quit: peutetre) |
22:20:50
| <ogd> | (theres no es6 branch) |
22:20:50
| <thlorenz> | ogd: I think this: https://github.com/ariya/esprima/tree/harmony |
22:20:51
| <mikolalysenko> | how do these compile time es6 things handle calls to Function() or eval()? |
22:20:52
| <thlorenz> | yeah |
22:21:19
| <thlorenz> | but no one can be sure since it's not stated anywhere as you said |
22:22:21
| * maksimlin | joined |
22:23:58
| * joshwnj- | quit (Ping timeout: 240 seconds) |
22:24:38
| <ogd> | thlorenz: am i wrong in thinking you have some experience here? https://github.com/js-platform/filer/issues/124 see last comment |
22:25:32
| <thlorenz> | ogd: they could just use browserify-shim |
22:25:41
| <thlorenz> | I'll comment |
22:26:55
| <Domenic_> | mikolalysenko: not sure how but it seems to work. http://www.es6fiddle.net/hsdqxt4u/ |
22:27:10
| <Domenic_> | oh maybe that's because i'm using firefox, hold on |
22:27:20
| <Domenic_> | yeeeah doesn't work in Chrome |
22:28:10
| <substack> | rvagg: what is zlib.js for in readable-stream? |
22:28:48
| * DTrejo | joined |
22:28:50
| <substack> | hmm it's in the npmignore |
22:28:56
| <substack> | probably unimportant |
22:29:48
| * toddself | quit (Remote host closed the connection) |
22:30:27
| * toddself | joined |
22:31:09
| * phated | joined |
22:31:15
| * not_a_guest | joined |
22:33:18
| <thlorenz> | ogd: hope that makes sense: https://github.com/js-platform/filer/issues/124#issuecomment-36687153 |
22:34:05
| <ogd> | cool |
22:34:20
| <ogd> | i dont know how requirejs works really, but i hope i can require('filer') in place of require('fs') some day |
22:34:29
| * toddself | quit (Ping timeout: 240 seconds) |
22:35:02
| <thlorenz> | ogd: you should be able to - browserify-shim totally turns of requirejs and forces the lib to attach stuff to the window which it then exports |
22:36:07
| <thlorenz> | ogd: although from looking at https://github.com/js-platform/filer/blob/develop/dist/filer.js it seems like they already are trying to support cjs |
22:36:23
| <ogd> | hmm dunno how i feel about opinionated talk abstracts like this http://mtnwestjs.org/2014/sessions#guybedford kinda smells like snake oil |
22:36:38
| * mikolalysenko | quit (Ping timeout: 244 seconds) |
22:39:00
| * contrahax | quit (Quit: Sleeping) |
22:41:34
| * contrahax | joined |
22:47:19
| <rowbit1> | Hourly usage stats: [free: 12] |
22:50:05
| <rowbit1> | substack, pkrumins: A developer is waiting in the queue for safari/6.0 |
22:50:19
| * Kessler | quit (Read error: Connection reset by peer) |
22:51:54
| * Kessler | joined |
22:52:04
| * wolfeidau | joined |
22:57:51
| * mikolalysenko | joined |
23:00:55
| * toddself | joined |
23:01:35
| <rowbit1> | substack, pkrumins: These encoders are STILL down: 50.57.171.229(dev-ie6-2) |
23:03:19
| * phated | quit (Remote host closed the connection) |
23:03:23
| * indexzero | quit (Quit: indexzero) |
23:04:59
| * toddself | quit (Ping timeout: 240 seconds) |
23:05:54
| <substack> | ogd: nobody talking interoperability actually makes things that work with node |
23:06:08
| <substack> | it's alllll for browsers and you can't reuse anything from npm |
23:06:18
| <substack> | except in rather niche circumstances |
23:07:06
| * xaq | joined |
23:11:54
| <substack> | isaacs: https://github.com/isaacs/readable-stream/pull/82 |
23:12:04
| <substack> | and/or rvagg |
23:14:13
| * contrahax | quit (Quit: Sleeping) |
23:15:08
| * xaq | quit (Read error: Connection reset by peer) |
23:15:55
| * defunctzombie | changed nick to defunctzombie_zz |
23:16:00
| * fuz | quit (Ping timeout: 265 seconds) |
23:17:13
| * xaq | joined |
23:18:47
| * phated | joined |
23:19:31
| * mikolalysenko | quit (Ping timeout: 244 seconds) |
23:21:59
| * mikolalysenko | joined |
23:30:24
| * xaq | quit (Remote host closed the connection) |
23:30:25
| * phated | quit (Remote host closed the connection) |
23:34:37
| * kevino80 | quit |
23:35:28
| * xaq | joined |
23:36:00
| * phated | joined |
23:39:31
| * xaq | quit (Remote host closed the connection) |
23:46:47
| * fotoverite | joined |
23:47:19
| <rowbit1> | Hourly usage stats: [] |
23:48:02
| * niftylettuce_ | joined |
23:48:16
| * DTrejo | quit (Remote host closed the connection) |
23:51:07
| * funkytek | joined |
23:54:01
| * DTrejo | joined |
23:55:11
| * toddself | joined |
23:59:36
| * toddself | quit (Ping timeout: 264 seconds) |