#instantbird log on 08 30 2014

All times are UTC.

01:23:23 <clokep> flo-retina: If it helped, I wonder if we could do that dynamically?
01:24:16 <-- arlolra has quit (Quit: arlolra)
02:25:21 <-- mconley has quit (Input/output error)
03:18:55 --> mconley has joined #instantbird
03:49:41 <instant-buildbot> build #2326 of macosx-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/2326
03:51:19 <instant-buildbot> build #1144 of linux-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/linux-nightly-default/builds/1144
04:11:07 <-- mconley has quit (Input/output error)
04:11:57 <instant-buildbot> build #1500 of win32-nightly-default is complete: Success [3build successful]  Build details are at http://buildbot.instantbird.org/builders/win32-nightly-default/builds/1500
04:29:31 <instant-buildbot> build #39 of linux64-nightly-default is complete: Failure [4failed compile]  Build details are at http://buildbot.instantbird.org/builders/linux64-nightly-default/builds/39
06:58:27 --> nhnt11 has joined #instantbird
07:47:29 * Fallen|away is now known as Fallen
08:10:40 --> aleth has joined #instantbird
08:10:40 * ChanServ sets mode +o aleth 
08:11:05 <aleth> I'm not sure I believe those Functions are all closures
08:11:26 <aleth> The match between Function and XPC_WN_... is also far too consistent to be coincidence
08:11:55 <aleth> flo-retina: Could we strip out empty text nodes in imThemes?
08:12:31 <aleth> I might try that later
08:19:05 --> hadi has joined #instantbird
08:24:25 --> Bollebib has joined #instantbird
08:29:33 --> redDragon has joined #instantbird
08:30:04 --> Tonnes has joined #instantbird
08:31:02 <-- clokep has quit (Ping timeout)
08:32:06 --> clokep has joined #instantbird
08:32:06 * ChanServ sets mode +o clokep 
08:33:35 <aleth> clokep: |mach build <subdir>| works fine again now for IB
08:34:25 <aleth> TB doesn't have its dependencies listed, that's why it doesn't work well there.
08:37:12 <aleth> I'm not sure what discussion you were referring to on #maildev
08:37:57 <-- aleth has quit (Quit: exit stage left)
08:38:00 --> aleth has joined #instantbird
08:38:00 * ChanServ sets mode +o aleth 
08:38:57 <Fallen> aleth: does anything special have to be done to list those dependencies?
08:39:14 <aleth> Fallen: You have to add them to dumbmake-depedencies
08:39:47 <-- mali has quit (Ping timeout)
08:39:50 <aleth> Unfortunately dumbmake is a bit limited, so this is not a perfect solution of course
08:40:17 <aleth> I've heard there are plans to replace it, but they didn't seem to come with an ETA
08:40:48 <aleth> Fallen: http://mxr.mozilla.org/comm-central/find?text=&string=dumbmake-dependenc
08:41:12 <Fallen> aleth: cool thanks. might be a good idea for Lightning
08:41:27 <aleth> Fallen: It's extremely convenient when working on JS code
08:41:35 <Fallen> Although I've always had trouble with mach, my builds use make -f client.mk :)
08:41:50 <aleth> The important thing is that im/app (or mail/app I guess) also gets rebuilt
08:42:04 <aleth> Are you on Windows?
08:42:08 <Fallen> mac
08:42:24 <aleth> Huh, I'm on OSX too and haven't had any trouble.
08:43:00 <Fallen> the build itself generally works, but at some stage something goes wrong which takes some time to figure out and then I just rebuild without. Its been a while since I tried though, maybe its better now
08:43:29 <aleth> I haven't tried, but I suspect pseudo-rework may have improved the number of things that work in mach ;)
08:44:01 <aleth> Indeed, |mach run| seems to work now
08:50:27 <hadi> Is there a way to activate my AMD graphic card? Currently i think Manjaro is using the integrated intel hd4000
09:14:46 <flo-retina> aleth: "Could we strip out empty text nodes in imThemes?" I thought about this too, but whitespace can be significant in HTML :(
09:15:28 <aleth> :(
09:16:27 <flo-retina> aleth: eg. <span>foo</span> <span>bar</span>
09:16:35 <flo-retina> we shouldn't remove the space between the 2 spans
09:16:45 <aleth> right.
09:16:46 <flo-retina> even if that space is actually a linebreak in the HTML source.
09:17:37 <aleth> I suppose it's too hard to tell which ones to keep
09:18:14 <flo-retina> it's probably not worth the complexity
09:20:57 <flo-retina> aleth: "I'm not sure I believe those Functions are all. The match between Function and XPC_WN_... is also far too consistent to be coincidence" In the specific case I showed in Footer.html, that could match my idea of XPC_WN_ appearing when we use a function for something that has an interface and where xpconnect needs to create a wrapper. In this case, it's an nsIDOMEventListener
09:21:42 <flo-retina> + "closures" in my quote :-S
09:28:12 <aleth> Why would that example need a wrapper? It doesn't seem to refer to anything outside content
09:28:39 <flo-retina> to generate the handleEvent method that the C++ code will call on the object.
09:28:40 * instantbot mumbles something about c++ being evil
09:29:28 <flo-retina> We have: p.addEventListener("click", function (event) event.target.parentNode.classList.toggle("hide-children"));
09:31:24 <flo-retina> I'm saying "Function" could be "function (event) event.target.parentNode.classList.toggle("hide-children")" and XPC_WN_NoMods_NoCall_Proto_JSClass could be {handleEvent: func, QueryInterface: iid => if (iid == nsISupports || iid == nsIDOMEventListener) return this; throw Cr.NS_ERROR_NOT_IMPLEMENTED; } (automatically generated by xpconnect)
09:31:57 <aleth> Interesting.
09:32:20 <flo-retina> I'm not saying that wrapper is implemented with JS code of course.
09:32:29 <flo-retina> but that wrapper needs to exist somewhere, and probably takes some memory.
09:33:32 <aleth> The nice thing about this idea is that it's easy to test
09:33:55 <flo-retina> it would be easier to test if we had an easily reproducible test case
09:34:15 <flo-retina> I guess showing a log file could do, but that's still suboptimal, as that requires quite a bit of manual clicking around
09:34:39 <aleth> I totally agree with your wish for memory usage tests
09:35:02 <flo-retina> maybe we should just go ahead and do them
09:35:22 <flo-retina> if we had a way to force a convbrowser to open for a specific log file without loading anything else, we should have less noise
09:35:47 <aleth> Seems possible, viewlog.xul is its own window
09:35:48 <flo-retina> then we could export the about:memory output as JSON (there's a method to do that
09:36:02 <flo-retina> and about:memory (the webpage) has a "load and diff" feature that could let us see the results of our experiments
09:36:12 <aleth> After all nhnt11's patches land, you can pass it a log set containing a single log
09:36:28 <aleth> Well, you can do it now too, but it will bitrot
09:39:37 <flo-retina> aleth: well, after all of nhnt11's patches land, we should remove old messages automatically, so memory usage of Bubbles shouldn't be a real concern anymore ;)
09:40:30 <aleth> heh, I meant only the more or less finished patches ;)
09:41:48 <flo-retina> same for imConversations.js btw
09:44:40 <aleth> I can't see anything like it in the stats service, but it may not be obvious
09:45:23 <flo-retina> any addEventListener or addObserver call?
09:45:35 <flo-retina> or executeSoon? (that creates an nsIRunnable, right?)
09:46:52 <aleth> Hmm
09:47:11 <flo-retina> we've got executeSoon AND .bind on several lines
09:47:15 <aleth> There are some, but in that case it would be a leak
09:47:36 <aleth> Replacing the bind didn't make any difference. But executeSoon is a good point
09:47:37 <flo-retina> that's possible
09:48:21 <aleth> It's also possible arrow functions don't actually help for this
09:48:37 <flo-retina> arrow functions are also closures, I don't expect them to help
09:49:11 <aleth> but there was some post somewhere about the lexical scope being implemented differently
09:49:19 --> sherief has joined #instantbird
09:49:40 <flo-retina> was that post about saving memory or about faster execution?
09:49:57 <aleth> I can't remember, that's why I can't say if it helps
09:50:16 <flo-retina> I also see setTimeout(this._foo.bind(this), ...)
09:50:45 <flo-retina> aleth: even if it helps with memory usage, that should divide the total amount of Function by some constant, not eliminate it
09:50:57 <flo-retina> as we would still be creating as many closures
09:51:00 <aleth> Yes, that's all I was expecting to see
09:51:08 <aleth> But it didn't make any difference.
10:02:42 <-- aleth has quit (Ping timeout)
10:14:29 --> Armada has joined #instantbird
10:23:36 --> mpmc has joined #instantbird
11:01:12 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
11:12:58 --> aleth has joined #instantbird
11:12:58 * ChanServ sets mode +o aleth 
11:17:47 --> mali has joined #instantbird
11:33:25 <-- aleth has quit (Ping timeout)
11:40:37 --> sonny has joined #instantbird
12:01:34 <-- sonny has quit (Ping timeout)
12:07:42 <clokep> flo-retina, aleth: There's a way to "normalize" HTML in Gecko IIRC.
12:07:50 <clokep> That should remove "useless" textnodes.
12:08:58 <flo-retina> clokep: I thought that only merged adjacent text nodes. Worth checking. :)
12:09:32 <clokep> flo-retina: I'm unsure, I thought it also removed not useful ones, but maybe that was a dream (or an enhancement request)
12:09:45 <flo-retina> MDN says "Puts the specified node and all of its subtree into a "normalized" form. In a normalized subtree, no text nodes in the subtree are empty and there are no adjacent text nodes."
12:10:10 <flo-retina> so the problem is: will that remove a text node containing only \n, in a place where that information isn't relevant?
12:10:27 <flo-retina> (eg. between 2 <div> elements)
12:10:44 <flo-retina> My guess is it won't, because <div style="display: inline"> would make it relevant
12:11:02 <clokep> Yes, it probably won't.
12:21:59 <-- nhnt11 has quit (Ping timeout)
12:25:13 --> nhnt11 has joined #instantbird
12:36:45 --> Rym has joined #instantbird
12:39:41 <-- nhnt11 has quit (Ping timeout)
12:40:50 --> nhnt11 has joined #instantbird
12:56:19 --> aleth has joined #instantbird
12:56:20 * ChanServ sets mode +o aleth 
12:56:49 <aleth> Made some changes to the stats service which seem to save quite a bit of memory :-)
12:58:13 <-- aleth has quit (Quit: exit stage left)
13:09:09 --> sabbir_alam_ufo has joined #instantbird
13:15:34 <-- nhnt11 has quit (Ping timeout)
13:16:03 --> nhnt11 has joined #instantbird
13:17:11 <-- sabbir_alam_ufo has quit (Quit: Leaving)
13:26:32 --> mpmc has joined #instantbird
13:38:32 <clokep> Oh? Anything worth sharing
13:42:33 <flo-retina> probably, but it looks like we'll need to wait for him to have a more stable connection :(
14:04:40 * clokep just went to port the changes from "Simple Tb Build" to "Simple Ib build" and found aleth had already done it!
14:20:39 <-- BWMerlin has quit (Quit: BWMerlin)
14:43:47 <-- sherief has quit (Ping timeout)
14:44:38 <flo-retina> :)
15:35:02 <-- EionRobb has quit (Connection reset by peer)
15:36:05 --> EionRobb has joined #instantbird
15:58:16 <-- Bollebib has quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
16:01:34 <-- EionRobb has quit (Ping timeout)
16:02:29 --> EionRobb has joined #instantbird
16:19:55 <-- EionRobb has quit (Connection reset by peer)
16:20:41 --> EionRobb has joined #instantbird
16:39:12 <-- hadi has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
16:40:01 <-- mpmc has quit (Quit: Instantbird 1.6a1pre -- http://www.instantbird.com)
16:40:45 <-- flo-retina has quit (Ping timeout)
18:33:44 --> clokep_work has joined #instantbird
18:33:44 * ChanServ sets mode +o clokep_work 
18:35:29 <-- clokep_work has quit (Ping timeout)
18:44:20 <-- nhnt11 has quit (Ping timeout)
18:45:13 --> nhnt11 has joined #instantbird
18:45:54 --> gerard-majax__ has joined #instantbird
18:47:49 <-- nhnt11 has quit (Ping timeout)
18:48:44 --> nhnt11 has joined #instantbird
18:50:31 <-- nhnt11 has quit (Ping timeout)
18:51:55 --> nhnt11 has joined #instantbird
18:56:12 --> flo-retina has joined #instantbird
18:56:13 * ChanServ sets mode +qo flo-retina flo-retina 
19:08:57 --> unghost has joined #instantbird
19:10:07 <-- redDragon has quit (Quit: redDragon)
19:16:08 --> arlolra has joined #instantbird
20:15:31 --> jb has joined #instantbird
20:43:35 <-- jb has quit (Ping timeout)
20:56:08 <-- Mook has quit (Quit: Mook)
21:24:32 --> clokep_work has joined #instantbird
21:24:32 * ChanServ sets mode +o clokep_work 
22:08:41 <-- arlolra has quit (Quit: arlolra)
22:41:20 <-- clokep_work has quit (Ping timeout)
22:44:26 <-- Rym has quit (Ping timeout)
22:45:03 --> Rym has joined #instantbird
22:47:07 --> BWMerlin has joined #instantbird
22:51:50 --> clokep_work has joined #instantbird
22:51:51 * ChanServ sets mode +o clokep_work 
23:42:26 <-- clokep_work has quit (Ping timeout)
23:45:35 <-- clokep has quit (Ping timeout)
23:50:04 <-- Rym has quit (Ping timeout)
23:51:16 --> Rym has joined #instantbird
23:56:55 <-- Rym has quit (Ping timeout)