[dev-servo] Tidy on Travis

2014-07-11 Thread Ms2ger
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi all,

I've enabled |make tidy| on Travis, and expanded it to check for
whitespace errors as well as missing license blocks (which it did
before). [1] For reference, no longer allowed are:

* tabs,
* carriage returns,
* trailing whitespace,
* missing newlines at EOF.

Please be mindful of such errors in existing PRs, and note that these
checks are run before the actual build.

HTH
Ms2ger

[1] https://github.com/mozilla/servo/pull/2806
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTv9ihAAoJEOXgvIL+s8n2DuYH/0BQ10pay5RWtJaYM7fwUTl4
ePtj5QAs08F6pddcbIE1IdoDhnTjDiPJI5Z/eNyzUuhq8IGacy0tVNPJ58Le0SV0
8HfFswVbfMiUQeH3JQtlHuOE+xow8eFGU/mC+7KlGsWYJdCPW+dlo73i83ARtfMr
/79HjJl2YdxCmcedNDOzVrZe2ZcgoLH8cUbdZDmIFKiMAuPOi/uPWyRRSEENAA0q
UIGZ7uzvTm2sdKZfMCIPQN8+OeG8bxsFxyJ7gpL5vZ3hvUN+dO4ADTQDIboYxKIP
EehG7yUqV0xWZQUAivvZYab7YnTR5CoHAxCVO3MTESnv0ShK1ByIZjc/BCFfAtU=
=b9d0
-END PGP SIGNATURE-
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Tidy on Travis

2014-07-11 Thread Jack Moffitt
> I've enabled |make tidy| on Travis, and expanded it to check for
> whitespace errors as well as missing license blocks (which it did
> before). [1] For reference, no longer allowed are:

Did this get disabled at some pint? `make tidy` used to run as part of
`make check`. Or perhaps I'm confusing Servo's `make check` with
Rust's.

jack.
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Tidy on Travis

2014-07-11 Thread Josh Matthews

On 07/11/2014 12:21 PM, Jack Moffitt wrote:

I've enabled |make tidy| on Travis, and expanded it to check for
whitespace errors as well as missing license blocks (which it did
before). [1] For reference, no longer allowed are:


Did this get disabled at some pint? `make tidy` used to run as part of
`make check`. Or perhaps I'm confusing Servo's `make check` with
Rust's.

jack.



We don't run make check on travis due to it including test suites that 
don't work on that hardware at the moment.

___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Servo memory usage

2014-07-11 Thread Brian Anderson


On 07/10/2014 11:11 PM, Nicholas Nethercote wrote:

On Thu, Jul 10, 2014 at 10:34 PM, Patrick Walton  wrote:

Historically, Rust's large stacks were due to the fact that at the time
stack growth was removed, rustc had worse codegen than it did today,
resulting in frames with very large activation records. Coupled with the
fact that rustc itself uses recursion heavily (probably too heavily), the
easiest thing to do was to give tasks large stacks by default. Perhaps this
decision should be revisited, as I think that it may well be the case that
rustc is going to be the exception, not the rule.

You can tune the size of stack growth when spawning a Rust task. Servo could
definitely use a stack size audit; I bet a ton of MBs can be shaved off with
some tuning.

"Large default stack size" doesn't seem to explain it.

I'd guess that the default is 2 MiB, because there are quite a few
entries in smaps like this:

7f54091fe000-7f54093fe000 rw-p  00:00 0
   [stack:28143]
Size:   2048 kB
Rss:  12 kB
Pss:  12 kB

2 MiB has been allocated, but only a tiny amount has been touched and
is thus in RSS.

Here are the two biggest stacks:

7f540a70-7f540b80 rw-p  00:00 0
   [stack:28139]
Size:  17408 kB
Rss:7944 kB
Pss:7944 kB

7f540960-7f540a40 rw-p  00:00 0
   [stack:28141]
Size:  14336 kB
Rss:8192 kB
Pss:8192 kB

For both, |Rss| is big and |Size| (equivalent to vsize) is even bigger.



Rust does have 2MB stacks by default. These giant numbers are surprising.

___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Servo memory usage

2014-07-11 Thread Andrew McCreight


- Original Message -
> Rust does have 2MB stacks by default. These giant numbers are surprising.

In Gecko, we've found that almost anytime we start measuring something, we find 
something surprising. ;)

Andrew
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Servo memory usage

2014-07-11 Thread Cameron Zwarich
On Jul 11, 2014, at 12:04 PM, Brian Anderson  wrote:

> Rust does have 2MB stacks by default. These giant numbers are surprising.

These giant numbers aren’t too surprising, since LLVM isn’t that great at 
optimizing stack space. Is Rust inserting the lifetime.start and lifetime.end 
markers?

http://llvm.org/docs/LangRef.html#llvm-lifetime-start-intrinsic

Use of lifetime markers is essential if you have a lot of distinct allocas with 
distinct scopes, as then LLVM can reuse the stack space. The inliner tries to 
insert them automatically for any allocas in the function being inlined, but 
maybe Servo has large function bodies that aren’t getting this benefit from the 
inliner.

Cameron
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Servo memory usage

2014-07-11 Thread Patrick Walton

On 7/11/14 12:54 PM, Cameron Zwarich wrote:

These giant numbers aren’t too surprising, since LLVM isn’t that
great at optimizing stack space. Is Rust inserting the lifetime.start
and lifetime.end markers?

http://llvm.org/docs/LangRef.html#llvm-lifetime-start-intrinsic

Use of lifetime markers is essential if you have a lot of distinct
allocas with distinct scopes, as then LLVM can reuse the stack space.
The inliner tries to insert them automatically for any allocas in the
function being inlined, but maybe Servo has large function bodies
that aren’t getting this benefit from the inliner.


No, Rust doesn't insert them. This sounds like something we should look 
at doing. :)


Patrick

___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo