Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Benoit Jacob
In order to provide more solid technical background for this conversation, I've studied a bit the practical effect of __builtin_unreachable on some test programs, in GCC 4.6 and in Clang 3.4. All my files are here, https://github.com/bjacob/builtin-unreachable-study The results are in the

Controlling font size as per system DPI in Windows

2014-04-01 Thread bhargava . animesh29
Hi, We have a property in greprefs.js layout.css.dpi by which we can control pixel size , but this doesn't work in Windows. There is another property layout.css.devPixelsPerPx which control font size in Windows but this needs to be modified each time as per system DPI. I need to show font size

Re: Controlling font size as per system DPI in Windows

2014-04-01 Thread Jonathan Kew
On 1/4/14 13:05, bhargava.animes...@gmail.com wrote: Hi, We have a property in greprefs.js layout.css.dpi by which we can control pixel size , but this doesn't work in Windows. There is another property layout.css.devPixelsPerPx which control font size in Windows but this needs to be modified

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Benoit Jacob
2014-04-01 3:58 GMT-04:00 Benoit Jacob jacob.benoi...@gmail.com: * Remove jump table bounds checks (See a.cpp; allowing to abuse a jump table to jump to an arbitrary address); Just got an idea: we could market this as WebJmp, exposing the jmp instruction to the Web ? We could build a

mozilla::NullptrT on B2G ICS vs. everything else (incl. B2G JB and Android ICS)

2014-04-01 Thread Henri Sivonen
While working on https://bugzilla.mozilla.org/show_bug.cgi?id=980317 , I discovered that support for mozilla::NullptrT and nullptr is worse on B2G ICS emulator than on other platforms, including B2G JB and Android ICS. See https://tbpl.mozilla.org/php/getParsedLog.php?id=35791355tree=Tryfull=1 for

Re: mozilla::NullptrT on B2G ICS vs. everything else (incl. B2G JB and Android ICS)

2014-04-01 Thread Joshua Cranmer 
On 4/1/2014 8:42 AM, Henri Sivonen wrote: This makes me wonder if B2G ICS emulator uses a nullptr-wise backwards compiler / compiler settings by accident. Can it be changed to use a compiler / compiler settings similar to B2G JB and Android ICS? B2G ICS uses gcc 4.4, IIRC. All of the Android

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Benoit Jacob
2014-03-28 17:14 GMT-04:00 Benoit Jacob jacob.benoi...@gmail.com: 2014-03-28 16:48 GMT-04:00 L. David Baron dba...@dbaron.org: On Friday 2014-03-28 13:41 -0700, Jeff Gilbert wrote: My vote is for MOZ_ASSERT_UNREACHABLE and MOZ_OPTIMIZE_FOR_UNREACHABLE. It's really handy to have

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Benjamin Smedberg
On 4/1/2014 10:54 AM, Benoit Jacob wrote: Let's see if we can wrap up this conversation soon now. How about: MOZ_MAKE_COMPILER_BELIEVE_IS_UNREACHABLE I counter-propose that we remove the macro entirely. I don't believe that the potential performance benefits we've identified are worth the

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Benoit Jacob
2014-04-01 10:57 GMT-04:00 Benjamin Smedberg benja...@smedbergs.us: On 4/1/2014 10:54 AM, Benoit Jacob wrote: Let's see if we can wrap up this conversation soon now. How about: MOZ_MAKE_COMPILER_BELIEVE_IS_UNREACHABLE I counter-propose that we remove the macro entirely. I don't

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Jason Orendorff
On 4/1/14, 9:57 AM, Benjamin Smedberg wrote: On 4/1/2014 10:54 AM, Benoit Jacob wrote: Let's see if we can wrap up this conversation soon now. How about: MOZ_MAKE_COMPILER_BELIEVE_IS_UNREACHABLE I counter-propose that we remove the macro entirely. I don't believe that the potential

Proposal: External Protocol Handing (Plugin replacement)

2014-04-01 Thread Konstantin Welke
Hi! As you want to get rid of all plugins (NPAPI), you say: If there are plugin features which are not available in the web platform, we encourage developers to post their use cases to mozilla.dev.platform project list”. https://developer.mozilla.org/en-US/Add-ons/Plugins We have such a feature:

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Jason Orendorff
On 4/1/14, 10:05 AM, Benoit Jacob wrote: This macro is especially heavily used in SpiderMonkey. Maybe SpiderMonkey developers could weigh in on how large are the benefits brought by UNREACHABLE there? I don't believe there are any benefits. Those uses of MOZ_ASSUME_UNREACHABLE are not intended

Enable -Wswitch-enum? [was Re: MOZ_ASSUME_UNREACHABLE is being misused]

2014-04-01 Thread Zack Weinberg
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 This is a bit of a tangent, but: There are a whole bunch of places in layout, and probably elsewhere, where we have the following catch-22: if you have a switch statement over the values of an enumeration, gcc and clang (with -Wall) will warn you

Re: mozilla::NullptrT on B2G ICS vs. everything else (incl. B2G JB and Android ICS)

2014-04-01 Thread Trevor Saunders
On Tue, Apr 01, 2014 at 09:47:15AM -0500, Joshua Cranmer ? wrote: On 4/1/2014 8:42 AM, Henri Sivonen wrote: This makes me wonder if B2G ICS emulator uses a nullptr-wise backwards compiler / compiler settings by accident. Can it be changed to use a compiler / compiler settings similar to B2G JB

Re: Enable -Wswitch-enum? [was Re: MOZ_ASSUME_UNREACHABLE is being misused]

2014-04-01 Thread Daniel Holbert
On 04/01/2014 08:56 AM, Zack Weinberg wrote: The downside of turning this on would be that any switch statements that *deliberately* include only a subset of the enumerators, plus a default case, would now have to be expanded to cover all the enumerators. I would try it and report on how

Re: Proposal: External Protocol Handing (Plugin replacement)

2014-04-01 Thread Konstantin Welke
Hi! Well, I think adding an API to query directly whether an application is installed could be a privacy risk. This is why Microsoft added this API to obscure this information to the web page and just call either the success or failure callback. In Citrix, we use this API on IE 11 / Win 8 to

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Karl Tomlinson
Jason Orendorff writes: If the code is truly unreachable, it doesn't matter what we replace it with. The question is what to do when the impossible occurs. To me, letting control flow past such a place is just as scary as undefined behavior. That depends on the particular code. Often

Re: Enable -Wswitch-enum? [was Re: MOZ_ASSUME_UNREACHABLE is being misused]

2014-04-01 Thread Karl Tomlinson
Zack Weinberg writes: This is a bit of a tangent, but: There are a whole bunch of places in layout, and probably elsewhere, where we have the following catch-22: if you have a switch statement over the values of an enumeration, gcc and clang (with -Wall) will warn you about enumeration values

Re: Spring cleaning: Reducing Number Footprint of HG Repos

2014-04-01 Thread ben . kero
Wow, okay. A lot to address here. The primary instigator of this migrating of user repositories off to external services came from when we were (and still are) crunched for disk space after restructuring our Mercurial infrastructure to use local disks. We did this for several reasons: * An

Fwd: [Planned Maintenance Notification] 4/5 Tree Closing Maintenance Window

2014-04-01 Thread Hal Wine
FYI: (bcc: release@, sheriffs@) Original Message Subject:[Planned Maintenance Notification] 4/5 Tree Closing Maintenance Window Date: Tue, 01 Apr 2014 20:32:56 - Short Summary: Mozilla IT will have a tree closing maintenance window on Saturday, 4/5, from 0700

mozilla::Atomic considered harmful

2014-04-01 Thread Ehsan Akhgari
The subject of this post is intentionally chosen to make you want to read this. :-) The summary is that I think the mozilla::Atomic API which is modeled after std::atomic is harmful in that it makes it very non-obvious that you're dealing with atomic integers. Basically the existing interface

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Karl Tomlinson
Karl Tomlinson writes: Jason Orendorff writes: If the code is truly unreachable, it doesn't matter what we replace it with. The question is what to do when the impossible occurs. To me, letting control flow past such a place is just as scary as undefined behavior. That depends on the

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Jason Orendorff
On 4/1/14, 4:37 PM, Karl Tomlinson wrote: Jason and I spoke on irc and realised that we were talking about 2 slightly different things. Yep. Filed bug 990764. If someone wants to take, we can continue discussion there. -j ___ dev-platform mailing

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Benjamin Smedberg
On 4/1/14 5:37 PM, Karl Tomlinson wrote: Karl Tomlinson writes: However, I would like to discourage use of MOZ_CRASH in future code unless failure to match cases in a switch is really more scary than crashing. I think in general we should be willing to make more of our assertions fatal in

Re: mozilla::NullptrT on B2G ICS vs. everything else (incl. B2G JB and Android ICS)

2014-04-01 Thread Jeff Walden
On 04/01/2014 09:44 AM, Trevor Saunders wrote: b2g jb using gcc 4.7 was what I guessed as well, but http://ftp.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-hamachi/1396314004/b2g_mozilla-central_hamachi_dep-bm72-build1-build10.txt.gz seems to provide some evidence to the

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Rob Arnold
I've got some outside experience with std::atomic so make of it what you will :) How often are you touching atomic variables directly? In my experience with a similar thread safe inline ref count and smart pointer system to Mozilla's (using std::atomic for the ref count), there's been no

Re: MOZ_ASSUME_UNREACHABLE is being misused

2014-04-01 Thread Karl Tomlinson
Benjamin Smedberg writes: I think in general we should be willing to make more of our assertions fatal in release builds, especially in non-performance-sensitive code. Of course the choice of assertion depends on the characteristics of what's being asserted. Sounds good.

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Martin Thomson
On 2014-04-01, at 15:15, Rob Arnold tell...@gmail.com wrote: the similarity to a non-atomic integer type actually has prompted me to have a (temporary) false sense of thread unsafety, rather than a false sense of thread safety. That was my impression too. I usually find that I have to chase

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Jeff Walden
On 04/01/2014 02:32 PM, Ehsan Akhgari wrote: What do people feel about my proposal? Do you think it improves writing and reviewing thread safe code to be less error prone? As I said in the bug, not particularly. I don't think you can program with atomics in any sort of brain-off way, and I

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Benoit Jacob
2014-04-01 18:40 GMT-04:00 Jeff Walden jwalden+...@mit.edu: On 04/01/2014 02:32 PM, Ehsan Akhgari wrote: What do people feel about my proposal? Do you think it improves writing and reviewing thread safe code to be less error prone? As I said in the bug, not particularly. I don't think

Re: Enable -Wswitch-enum? [was Re: MOZ_ASSUME_UNREACHABLE is being misused]

2014-04-01 Thread Chris Peterson
On 4/1/14, 10:22 AM, Daniel Holbert wrote: So, we have on the order of ~4400 switch statements that would potentially need expanding to avoid tripping this warning. clang on OS X reports 1635 -Wswitch-enum warnings (switch on enum not handling all enum cases). gcc reports 1048

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Ehsan Akhgari
On 2014-04-01, 6:59 PM, Benoit Jacob wrote: 2014-04-01 18:40 GMT-04:00 Jeff Walden jwalden+...@mit.edu: On 04/01/2014 02:32 PM, Ehsan Akhgari wrote: What do people feel about my proposal? Do you think it improves writing and reviewing thread safe code to be less error prone? As I said in

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Martin Thomson
On 2014-04-01, at 16:17, Ehsan Akhgari ehsan.akhg...@gmail.com wrote: Just to clarify my position a bit more, I think criticizing my position by pretending that I'm advocating for a brain-off way of programming with atomics is a bit contrived. I definitely understand that atomics require

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Ehsan Akhgari
On 2014-04-01, 6:15 PM, Rob Arnold wrote: I've got some outside experience with std::atomic so make of it what you will :) How often are you touching atomic variables directly? In my experience with a similar thread safe inline ref count and smart pointer system to Mozilla's (using std::atomic

Re: mozilla::NullptrT on B2G ICS vs. everything else (incl. B2G JB and Android ICS)

2014-04-01 Thread Ehsan Akhgari
On 2014-04-01, 6:03 PM, Jeff Walden wrote: On 04/01/2014 09:44 AM, Trevor Saunders wrote: b2g jb using gcc 4.7 was what I guessed as well, but

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Ehsan Akhgari
On 2014-04-01, 7:32 PM, Martin Thomson wrote: On 2014-04-01, at 16:17, Ehsan Akhgari ehsan.akhg...@gmail.com wrote: Just to clarify my position a bit more, I think criticizing my position by pretending that I'm advocating for a brain-off way of programming with atomics is a bit contrived.

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Mike Hommey
On Tue, Apr 01, 2014 at 05:32:12PM -0400, Ehsan Akhgari wrote: The subject of this post is intentionally chosen to make you want to read this. :-) The summary is that I think the mozilla::Atomic API which is modeled after std::atomic is harmful in that it makes it very non-obvious that

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Martin Thomson
On 2014-04-01, at 16:48, Ehsan Akhgari ehsan.akhg...@gmail.com wrote: My contention is that it is obvious enough by looking at (a) to tell that mRefCnt is an atomic value which should be handled with the necessary care, so the pattern (b) would be caught either at code writing time or at

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Ehsan Akhgari
On 2014-04-01, 7:58 PM, Mike Hommey wrote: On Tue, Apr 01, 2014 at 05:32:12PM -0400, Ehsan Akhgari wrote: The subject of this post is intentionally chosen to make you want to read this. :-) The summary is that I think the mozilla::Atomic API which is modeled after std::atomic is harmful in

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Mike Hommey
On Tue, Apr 01, 2014 at 08:34:01PM -0400, Ehsan Akhgari wrote: On 2014-04-01, 7:58 PM, Mike Hommey wrote: On Tue, Apr 01, 2014 at 05:32:12PM -0400, Ehsan Akhgari wrote: The subject of this post is intentionally chosen to make you want to read this. :-) The summary is that I think the

Re: mozilla::Atomic considered harmful

2014-04-01 Thread L. David Baron
On Wednesday 2014-04-02 12:50 +0900, Mike Hommey wrote: On Tue, Apr 01, 2014 at 08:34:01PM -0400, Ehsan Akhgari wrote: That is the code after I changed it. :-) Here is the original patch which introduced this bug: https://bug935778.bugzilla.mozilla.org/attachment.cgi?id=8385072 The

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Joshua Cranmer 
On 4/1/2014 4:32 PM, Ehsan Akhgari wrote: So, over in bug 987887 I'm proposing to remove all of the methods on mozilla::Atomic except for copy construction and assignment and replace them with global functions that can operate on the atomic type. atomic has a number of global functions that can

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Kyle Huey
On Wed, Apr 2, 2014 at 12:12 PM, L. David Baron dba...@dbaron.org wrote: The issue here is whether this particular way of writing threadsafe code leads people modifying that code to make mistakes because they don't even notice that it's threadsafe code. I completely agree. And because using

Re: mozilla::Atomic considered harmful

2014-04-01 Thread Robert O'Callahan
On Wed, Apr 2, 2014 at 12:11 AM, Joshua Cranmer  pidgeo...@gmail.comwrote: My original design for mozilla::Atomic was meant to avoid what I saw as the biggest footgun: you cannot misuse mozilla::Atomic in such a way that you combine atomic and non-atomic accesses on a single variable. You

Re: Firefox build (Nightly) thread with root permission

2014-04-01 Thread Paul
Hi, When I added code with a function udev_monitor_new_from_socket(), the Nightly stops executing everything while this function returns an error fd. I strongly suspect this happens due to the permission issue while Nightly does not allow me to gain root privileges. However, this is necessary