Re: The sec-approval process makes users safer

2019-09-10 Thread Jeff Walden
On 9/10/19 7:55 AM, Dave Townsend wrote: > How often do we go back and land those tests and comments after the fix has > been in the release builds for a suitable amount of time? I always land my tests...at some point. I don't know if everyone else adequately remembers to do so. We don't forma

The sec-approval process makes users safer

2019-09-09 Thread Jeff Walden
Those of you longer in the tooth may remember Firefox was successfully exploited in Pwn2own 2012...and we didn't have to lift a finger to fix it. We already had -- in the Firefox release shipping days later. 🤦 https://bugzilla.mozilla.org/show_bug.cgi?id=735104 (pwn2own bug) https://bugzilla.m

Re: Intent to ship: accumulating most JS scripts' data as UTF-8, then directly parsing as UTF-8 (without inflating to UTF-16)

2019-08-06 Thread Jeff Walden
On 8/6/19 8:16 AM, Anne van Kesteren wrote: > On Sat, Jul 20, 2019 at 2:05 AM Jeff Walden wrote: >> (*Only* valid UTF-8: any invalidity, including for WTF-8, is an immediate >> error, no replacement-character semantics applied.) > > Wouldn't adding this allow you

Re: Intent to ship: accumulating most JS scripts' data as UTF-8, then directly parsing as UTF-8 (without inflating to UTF-16)

2019-07-22 Thread Jeff Walden
On 7/20/19 4:41 PM, Nicholas Nethercote wrote: > This is excellent news. Do you have any measurements showing perf effects? Perf changes should have first become visible with the landing of bug 1554362. There was one quasi-automatically-reported perf improvement, on the Sheets raptor test: htt

Intent to ship: accumulating most JS scripts' data as UTF-8, then directly parsing as UTF-8 (without inflating to UTF-16)

2019-07-19 Thread Jeff Walden
# Intent to ship: UTF-8 parsing of external

Intent to ship: Hashbang syntax in JS (a "#!" line at the very start of a script is a single-line comment)

2019-02-28 Thread Jeff Walden
# Intent to ship: Hashbang syntax ## Introduction As JS metastasizes from the web to Node and shell scripts and the like, it becomes useful to run scripts directly in the shell and let the shell decide how. The traditional way to do this is with an initial hashbang (or shebang) line indicatin

Re: Type-based alias analysis and Gecko C++

2019-02-21 Thread Jeff Walden
On 2/17/19 11:40 PM, Henri Sivonen wrote: > Rust, which combines the > perf benefits of -fstrict-aliasing with the understandability of > -fno-strict-aliasing? This is not really true of Rust. Rust's memory model is not really defined yet https://doc.rust-lang.org/reference/memory-model.html but

Re: Intent to ship: BigInt

2019-02-21 Thread Jeff Walden
On 2/21/19 11:56 AM, L. David Baron wrote: > (What's the opinion of TC39 on shipping features that are at stage > 3? That doesn't seem obvious from > https://tc39.github.io/process-document/ .) Stage 3 is traditionally where it becomes okay to ship stuff, and it's the usual dividing line we have

JS components and modules, subscripts loaded via the subscript loader, mochitest-browser tests, and SJS scripts are now exclusively UTF-8

2018-12-20 Thread Jeff Walden
Hi all, In the distant past, SpiderMonkey APIs consumed source text as two-byte UCS-2 or one-byte |const char*|. Was one-byte text ASCII? UTF-8? EBCDIC? Something else? Who could say; no one thought about text encodings then. *By happenstance* one-byte JS text was Latin-1: a byte is a cod

JS compilation/evaluation APIs are now in #include "js/CompilationAndEvaluation.h"

2018-08-28 Thread Jeff Walden
jsapi.h and jsfriendapi.h are mega-huge, monolithic headers. A one-stop shop is maybe (maybe) convenient for users. But it's terrible for Gecko and SpiderMonkey: touching jsapi.h rebuilds the world. (The one-stop shop approach is also pretty terrible for users because js*api.h are unreadable,

PSA: Stop using PodZero and PodArrayZero

2018-05-22 Thread Jeff Walden
Recent gcc adds a warning, -Wclass-memaccess, that warns if you use memset or similar on a non-trivial type -- in other words, a type that requires something be done to initialize instances of it (set fields, call a user-defined constructor, init a vptr, etc.). The reason is that initialize-by-

Re: mozilla-central now compiles with C++14

2017-11-16 Thread Jeff Walden
On 11/16/2017 08:35 AM, Ben Kelly wrote: > I would like to use initialized lambda capture as I think it will allow > move-only objects to be used in lambdas like this: > > UniquePtr uniqueThing = MakeUnique(); > nsCOMPtr r = NS_NewRunnableFunction([uniqueThing = > Move(uniqueThing)] () { > uniqu

Re: Introducing mozilla::Result for better error handling

2016-12-23 Thread Jeff Walden
On 12/22/2016 02:22 AM, Eric Rahm wrote: > The key point for me is that we're hiding the return. I'm fine with the > more verbose > explicitly-return-and-make-it-easier-for-the-reviewer-to-call-out-issues > form. I understand this is going to have differing opinions -- I think > there's merit to m

Re: ICU proposing to drop support for WinXP (and OS X 10.6)

2016-05-26 Thread Jeff Walden
On 05/14/2016 06:58 AM, Philip Chee wrote: > Given the "two different implementations rule" is there any suitable > alternative to ICU? I mean besides rolling our own. No, or at least not something cross-platform. It's probably possible to do something using Windows APIs, that would only be ship

Re: ICU proposing to drop support for WinXP (and OS X 10.6)

2016-05-02 Thread Jeff Walden
On 04/30/2016 01:26 PM, L. David Baron wrote: > I still find it sad that ECMAScript Intl came (as I understand it) > very close to just standardizing on a piece of software (ICU) I'm fuzzy on the details as well, but I don't believe it was ever going to be the case that the spec would be "do what

Re: ICU proposing to drop support for WinXP (and OS X 10.6)

2016-05-02 Thread Jeff Walden
On 04/29/2016 08:30 AM, sn...@snorp.net wrote: > The engineers in Platform consistently want to dismiss mobile-specific > issues, and this is a great example. If you really want to get ICU into > Fennec, find a way to do it without bloating the APK size instead of bullying > the Fennec folks. Y

Re: ICU proposing to drop support for WinXP (and OS X 10.6)

2016-04-28 Thread Jeff Walden
On 04/28/2016 10:00 AM, Jonathan Kew wrote: > Thoughts? Another option is to ship a WinXP-specific Firefox build that doesn't provide ICU and ECMAScript's Intl functionality. This would break anyone's expectation that any version of Firefox past the mid-30s somewhere has Intl available in it.

|hg bzexport| and Bugzilla two-factor authentication

2015-09-15 Thread Jeff Walden
The Mercurial extensions to interact with Bugzilla -- bzexport and the like -- have been updated to handle 2fa details. No need to add API key support yourself, or use some sketchy dude's user-repo fix for the issue! ;-) (As at least three people have considered, two people have actually done

Re: Use of 'auto'

2015-08-04 Thread Jeff Walden
On 08/02/2015 07:17 AM, smaug wrote: > MakeAndAddRef would have the same problem as MakeUnique. Doesn't really tell > what type is returned. For the MakeUnique uses I've added (doubtless many more have popped up since), I've pretty much always tried to use |auto|. MakeUnique, and std::make_uniq

Re: Proposal to alter the coding style to not require the usage of 'virtual' where 'override' is used

2015-05-05 Thread Jeff Walden
Seeing this a touch late, commenting on things not noted yet. On 04/27/2015 12:48 PM, Ehsan Akhgari wrote: > I think we should change it to require the usage of exactly one of these > keywords per *overridden* function: virtual, override, and final. Here > are the advantages: > > * It is a more

Re: Is anyone still using JS strict warnings?

2014-12-26 Thread Jeff Walden
On 12/22/2014 08:08 AM, Paolo Amadini wrote: > Maybe we could make available > an opt-in code linting solution - and these typos would become errors, > not warnings, One substantial problem from a JS engine point of view is that we're implementing a specification. That specification says these b

Re: Usefulness of JS strict warnings? (Branched from: Is anyone still using JS strict warnings?)

2014-12-26 Thread Jeff Walden
On 12/26/2014 07:24 AM, Wesley Hardman wrote: > s = "Some text"; > console.log(s); > > With javascript.options.strict set to true, it outputs "ReferenceError: > assignment to undeclared variable s". Are there any advantages to actually > fixing it? The code obviously works just fine either way

Re: Getting rid of already_AddRefed?

2014-12-23 Thread Jeff Walden
On 12/23/2014 10:48 AM, L. David Baron wrote: > Our convention has always been to pass raw pointers, generally with > the assumption that the caller is expected to ensure the pointer > lives across the function call. Like Eric, I would like us to move away from this convention over time, or at le

Re: PSA: Support for Visual C++ 2010 has been dropped

2014-12-17 Thread Jeff Walden
On 12/17/2014 08:31 AM, Nathan Froyd wrote: > It's worth noting that enums with explicit types don't work in all cases > with our current B2G compiler, see bug 1058561. Also gcc will wrongly warn (and you can't turn off the warning, even in -Werror builds) if you use |enum Foo : T| as the type of

Re: Using c++11 right angle bracket in template code?

2014-10-01 Thread Jeff Walden
Bah, stupid broken newsgroup threading meaning I thought nobody'd replied to the original message yet. :-( Jeff ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform

Re: Using c++11 right angle bracket in template code?

2014-10-01 Thread Jeff Walden
On 10/01/2014 12:57 AM, Kan-Ru Chen (陳侃如) wrote: > It seems all the compilers we use support the c++11 ">>" in template, > could we start using it in new code? Go ahead. It's already in pretty wide use, actually, but old habits (and caution) die hard with a lot of people. Jeff _

Re: ES6 lexical temporal dead zone has landed on central

2014-09-19 Thread Jeff Walden
On 09/18/2014 04:18 PM, Kent James wrote: > Substituting var for let does not result in code that behaves identically to > previous code, so I can't see why that would be proposed. The proposal would be to perform the substitution only for let at "body level" of a function. (And for global let

Re: Non-backward compatible changes to JS 'let' semantics

2014-08-15 Thread Jeff Walden
On 08/15/2014 12:03 AM, Gijs Kruitbosch wrote: > Last I checked, AMO's review flagging tools were all regex-based. I doubt > even issue 1 is easily regex-able. :-( Pretty sure they do syntax checks, at least, I think using Reflect.parse, or at least with an embedded SpiderMonkey, unsure which.

Re: Non-backward compatible changes to JS 'let' semantics

2014-08-14 Thread Jeff Walden
On 08/14/2014 10:57 AM, Chris Peterson wrote: > Does chrome and add-on JS code default to JSVERSION_1_8? It defaults to the latest version, whatever that is, so warning doesn't end up being reasonable. I do not think the SpiderMonkey team is smart enough to have implemented both the old semanti

Re: Getting rid of already_AddRefed?

2014-08-13 Thread Jeff Walden
On 08/13/2014 07:44 AM, Ehsan Akhgari wrote: > If that is the goal, then I don't agree that is a useful outcome at all. I > *do* wish that there were better *and* safer ways of doing more things > automatically but ownership transfers are inherently unsafe operations that > are expressed using var

Re: Getting rid of already_AddRefed?

2014-08-12 Thread Jeff Walden
On 08/12/2014 10:06 AM, Ehsan Akhgari wrote: > It could also be solved with making operator T*() explicit, but neither of > these options are something that we can use in our code base today. So at risk of adding yet another flavor of thing: why not introduce an already_AddRefed sort of struct t

MakeUnique(..., nullptr, ...) will break *only* the b2g-ics build

2014-08-06 Thread Jeff Walden
An issue with MakeUnique that I forgot to mention: you can't pass literal nullptr to MakeUnique. This problem happens because gcc < 4.6 doesn't support true nullptr, and that interacts poorly with perfect forwarding. See the long comment in mfbt/Move.h for details. *Only* b2g-ics will break i

Re: Introducing mozilla::UniquePtr and mozilla::MakeUnique for |new T| and |new T[]| resources

2014-08-05 Thread Jeff Walden
On 08/05/2014 07:02 AM, David Rajchenbach-Teller wrote: > If this obsoletes some of mfbt/Scoped.h, can you remove/document this? I already replaced the file-description comment with /* DEPRECATED: Use UniquePtr.h instead. */ and repeated the same thing at the very start of class-level documentat

Re: Introducing mozilla::UniquePtr and mozilla::MakeUnique for |new T| and |new T[]| resources

2014-08-01 Thread Jeff Walden
On 08/01/2014 03:48 AM, Neil wrote: > Only UniquePtr's own copy and assignment operators should take UniquePtr&&. > Other call sites should either take const UniquePtr& (if they will not take > ownership of the pointer), UniquePtr& (if they may or may not need to take > ownership of the pointer)

Re: Introducing mozilla::UniquePtr and mozilla::MakeUnique for |new T| and |new T[]| resources

2014-07-31 Thread Jeff Walden
On 07/31/2014 04:52 PM, Robert O'Callahan wrote: > Is there anything blocking us from mass-removing nsAutoPtr/nsAutoArrayPtr > in favour of UniquePtr? I'm not unsure what the state of mass-rewriting tools are these days, to start. But assuming they're up to snuff, there might or might not be. T

Introducing mozilla::UniquePtr and mozilla::MakeUnique for |new T| and |new T[]| resources

2014-07-31 Thread Jeff Walden
Hey all, mfbt recently picked up mozilla::UniquePtr, a smart pointer for objects created using |new| or |new[]|. UniquePtr will automatically |delete| or |delete[]| its pointer when it's destroyed. (You can also define custom deletion policies if you want.) Additionally, you can safely embed

Re: Policing dead/zombie code in m-c

2014-05-01 Thread Jeff Walden
On 04/28/2014 05:59 AM, Henri Sivonen wrote: > Hopefully we didn't remove collation rules, since that's the part we > are supposed to be using ICU for! :-) I'm uncertain exactly what the terminology means necessarily for us, but intl/icu-patches/genrb-omitCollationRules.diff exists because a flag

Re: Policing dead/zombie code in m-c

2014-04-26 Thread Jeff Walden
On 04/25/2014 02:10 AM, Henri Sivonen wrote: > "Different" means "old", right? Having an old version is a correctness > problem, if the CLDR has changed since. Depends what's considered "correctness". The ECMA Internationalization API doesn't specify behavior, so older just means not-as-good, no

Re: Policing dead/zombie code in m-c

2014-04-26 Thread Jeff Walden
On 04/24/2014 05:49 AM, Till Schneidereit wrote: > Questions: > * Are we building and shipping dead code in ICU on B2G? > > I don't know the state of ICU on B2G, but if we have it enabled there, then > almost certainly, yes. There's doubtless *some* dead code in the ICU we build, yes.

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::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 c

Re: Warning about "mutating the [[Prototype]] of an object" ?

2014-03-28 Thread Jeff Walden
On 03/28/2014 02:01 PM, Andrew Sutherland wrote: > It's my understanding that the existing idiom used throughout the Thunderbird > tree is still okay to do since the prototype chain is created at object > initialization time and so there's no actual mutation of the chain: > > function Applicatio

Re: Mozilla style guide issues, from a JS point of view

2014-01-07 Thread Jeff Walden
On 01/07/2014 02:23 PM, Boris Zbarsky wrote: > One reason I've seen 2 preferred to 4 (apart from keeping line lengths down) > is that: > > if (somethingHere() && > somethingElse()) > doSomething(); > > is less clear about what's condition and what's body the if body is than: > >

Re: Mozilla style guide issues, from a JS point of view

2014-01-07 Thread Jeff Walden
On 01/07/2014 02:20 AM, Ms2ger wrote: > Based on the discussion in #jsapi yesterday, I'm not sure that "most JS > hackers" is necessarily accurate. I think there's a rough consensus. And I'd note only a few of us were really active in that conversation, and I'm going somewhat off memory of what

Re: Mozilla style guide issues, from a JS point of view

2014-01-06 Thread Jeff Walden
On 01/06/2014 08:35 PM, Joshua Cranmer 🐧 wrote: > And a '_' at the end of member names requires less typing than 'm' + capital > letter? This started, and still largely is, an Ion convention. Lots of existing code doesn't use it, and I haven't much worked on code that does. But as I said, I'm

Mozilla style guide issues, from a JS point of view

2014-01-06 Thread Jeff Walden
I'm writing this list, so obviously I'm choosing what I think is on it. But I think there's rough consensus on most of these among JS hackers. JS widely uses 99ch line lengths (allows a line-wrap character in 100ch terminals). Given C++ symbol names, especially with templates, get pretty long

Re: A proposal to reduce the number of styles in Mozilla code

2014-01-06 Thread Jeff Walden
On 01/06/2014 04:46 PM, Jason Orendorff wrote: > I'm fine with changing SpiderMonkey in whatever way is necessary to stop > these threads forever. Pretty sure I've said the same thing in other places, that we should have something everyone hates and use it everywhere. Definitely I've said it to

Re: A proposal to reduce the number of styles in Mozilla code

2014-01-06 Thread Jeff Walden
On 01/06/2014 04:27 PM, Robert O'Callahan wrote: > That's just not true, sorry. If some module owner decides to keep using > NULL or PRUnichar, or invent their own string class, they will be corrected. At least the former isn't true, as far as I remember. It took convincing to get JS to move ove

Re: Improvements to the Sphinx in-tree documentation generation

2013-12-17 Thread Jeff Walden
On 12/16/2013 03:09 PM, Gregory Szorc wrote: > Perhaps Reflect.parse() could grow a new option to expose "comment" nodes or > could attach comment metadata to specific node types? It's really not possible to do the latter. Comments don't appertain to specific nodes at all. They're just random

Re: Improvements to the Sphinx in-tree documentation generation

2013-12-16 Thread Jeff Walden
On 12/16/2013 01:17 PM, Gregory Szorc wrote: > Does SpiderMonkey expose documentation blocks to the AST? If not, should it? No, and probably not. Comments are not tokens, so they're not in the AST. Right now SpiderMonkey pretty much just throws them away (except to the extent the comment inclu

Re: Can we start using C++ STL containers in Mozilla code?

2013-12-12 Thread Jeff Walden
On 12/10/2013 04:32 PM, Jeff Gilbert wrote: > In my experience, docs for 'our' containers are also miles behind what the > STL has available. This, not unfamiliarity to new developers, is the big issue. Developers have to learn new APIs all the time. STL versus something else shouldn't be that

Re: build fail @ "xulrunner-sdk/include/mozilla/Atomics.h" when using xulrunner-sdk >= v25.0, on linux/64 with gcc 4.7x/4.8x

2013-11-15 Thread Jeff Walden
You need to compile as C++11 to use sufficiently Mozilla headers. If you look at the error you're getting, it's clear your compiler isn't treating |static_assert| as referring to the built-in construct in C++11. Adding -std=c++0x or -std=gnu++0x to your commandline should get you past this err

Re: build fail @ "xulrunner-sdk/include/mozilla/Atomics.h" when using xulrunner-sdk >= v25.0, on linux/64 with gcc 4.7x/4.8x

2013-11-15 Thread Jeff Walden
On 11/15/2013 03:01 PM, Jeff Walden wrote: > You need to compile as C++11 to use sufficiently Mozilla headers. ...sufficiently-recent, that is. Jeff ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/

Re: Mozilla development "bootcamp"

2013-11-05 Thread Jeff Walden
On 11/02/2013 05:24 PM, bbo...@gmail.com wrote: > 2.0 Creating a .mozconfig file Make that creating a "mozconfig" file. Both names are supported, but mozconfig is preferable: it's visible in directory listings and such, and it's easier to create on Windows. Jeff _

Re: Cost of ICU data

2013-10-16 Thread Jeff Walden
On 10/16/2013 02:10 PM, Axel Hecht wrote: > I wonder how far we can get by doing something along the lines we use for > webfonts, starting to do the best we can with the data we already have, and > improve once the perfect data is local. Having the Intl.Foo algorithms returning different data ov

Re: Cost of ICU data

2013-10-16 Thread Jeff Walden
On 10/15/2013 07:18 PM, Brian Smith wrote: > My (naive) understanding is that the Windows has its own API that does > what ICU does. I believe that Internet Explorer 11 is an existence > proof of that. If we used the Windows API on Windows, maybe we could > avoid building ICU altogether on Windows.

Re: Cost of ICU data

2013-10-16 Thread Jeff Walden
On 10/16/2013 12:45 AM, Karl Tomlinson wrote: > When sync I/O is performed to read in-binary-object data, how is > that better? > > Just readahead? Readahead, it being part of the binary/libxul/whatever so already one coherent file to load, etc. I'm not aware that you can reasonably predict adj

Re: Cost of ICU data

2013-10-15 Thread Jeff Walden
On 10/15/2013 06:06 PM, Benjamin Smedberg wrote: > Do we need this data for any language other than the language Firefox ships > in? Can we just include the relevant language data in each localized build of > Firefox, and allow users to get other language data via downloadable language > packs,

Re: What platform features can we kill?

2013-10-10 Thread Jeff Walden
On 10/10/2013 02:27 PM, Axel Hecht wrote: > I agree with the sentiment, but not on the eample. > > Having been a peer of the XSLT module back in the days, we started with a > rather js DOM like implementation, and moved over to a pure nsIContent etc > impl, and each step there won us an order of

Re: C++ Standards Committee meeting next week

2013-10-09 Thread Jeff Walden
On 10/02/2013 06:06 PM, Botond Ballo wrote: > Having to repeat 'expr' is rather unfortunate, and C++14 > fixes that. You can now write: > > auto function(A a, B b) > { > return expr; > } > > The only restriction is > that if there are multiple return e

Re: Keeping automatically-updated local mirrors of repositories?

2013-09-20 Thread Jeff Walden
I use http://whereswalden.com/2011/11/03/how-i-organize-my-mozilla-trees/ to organize all my trees on the one machine I use (a laptop). That's one machine, so a bit easier to deal with than your "spread around" setup. I develop on Windows on occasion, but I don't do it often enough for anythin

Re: PSA: MOZ_STATIC_ASSERT removed in C++ code, replaced by C++11 static_assert

2013-09-06 Thread Jeff Walden
On 07/30/2013 11:27 AM, Ehsan Akhgari wrote: > I just landed bug 895322, which removes the MOZ_STATIC_ASSERT macro in C++ > code, and replaces it with the C++11 static_assert keyword. You should use > static_assert in C++ code from now on. A belated note: MOZ_STATIC_ASSERT was valid at top level,

Use mozilla/IntegerPrintfMacros.h to printf integer types

2013-09-04 Thread Jeff Walden
Because you don't know the underlying type of, say, uint32_t, it's historically been difficult to printf them. Common approaches included just assuming %u would work (and wouldn't generate format-mismatch compiler warnings), or using %lu and casting to (unsigned long). Bleh. C99's has macros

Re: C++ style question": "virtual" annotations on methods

2013-09-04 Thread Jeff Walden
On 09/04/2013 05:24 AM, Benjamin Smedberg wrote: >> MOZ_OVERRIDE implies virtual, you get a compile error when you put >> MOZ_OVERRIDE on a non virtual > It does? That surprises me (it certainly wasn't the original intent of > NS_OVERRIDE). There are certainly cases where we want to override non-

Re: Stop #including jsapi.h everywhere!

2013-08-20 Thread Jeff Walden
On 08/20/2013 09:01 AM, Boris Zbarsky wrote: > DOMJSClass.h only needs various forward-declarations, mostly. The exceptions > are: > > 2) It needs the definition of JSClass, for a member of the DOMJSClass struct > and the DOMIfaceAndProtoJSClass struct. Unfortunately, this is defined in > js

Re: Standard C/C++ and Mozilla

2013-08-05 Thread Jeff Walden
On 08/02/2013 08:09 PM, Brian Smith wrote: > 2. It is reasonable to expect that std::whatever works as the C++ standard > says it should. It isn't reasonable to expect mozilla::Whatever to work > exactly like std::whatever. And, often, mozilla::Whatever isn't actually > the same as std::whatever.

Re: std::unique_ptr, std::move,

2013-08-01 Thread Jeff Walden
On 07/31/2013 01:25 AM, Brian Smith wrote: > Anyway, it would be easier to swallow the dependency on MFBT if it wasn't > so large (over 100 files now), if it tried to be (just) a polyfill for > missing standard library features, and if it could easily be used > independently of the Gecko build syst

Re: Using C++0x auto

2013-07-21 Thread Jeff Walden
On 07/21/2013 11:44 AM, Justin Lebar wrote: > That's a fair point. Maybe we should call ours mozilla::Move and > mozilla::Forward instead. That way we can still easily change them to > std::move and std::forward, but there's no possibility of a collision. This is pretty much always what we've do

Re: review stop-energy (was 24hour review)

2013-07-11 Thread Jeff Walden
On 07/11/2013 03:09 AM, Nicholas Nethercote wrote: > On Thu, Jul 11, 2013 at 7:48 AM, Jeff Walden wrote: >> >> Establishing one-day turnaround time on reviews, or on requests, would >> require a lot more polling on my review queue. > > You poll your review que

Re: review stop-energy (was 24hour review)

2013-07-10 Thread Jeff Walden
On 07/09/2013 07:17 PM, Joshua Cranmer 🐧 wrote: >> I've said this before, not sure it's written in wiki-stone, maybe it should >> be: if you get a review request, respond same-day either with the actual >> review, or an ETA or promise to review by a certain date. > > For reviewers who are not Mo

Introducing mozilla::Abs to mfbt, replacing std::abs

2013-04-30 Thread Jeff Walden
Mozilla used to use NS_ABS to compute absolute values, but half a year ago we switched to std::abs. Unfortunately, practical experience with std::abs has pointed out various issues with it: the various overloads are confusingly split across multiple headers, std::abs(int64_t) doesn't always wor

New mfbt header: mozilla/PodOperations.h

2013-04-26 Thread Jeff Walden
For anyone who's not reading planet (or hasn't read it in the last fifteen minutes ;-) ), I recently landed a new mfbt header that exposes slightly safer versions of memset(.., 0, ...), memcpy, and memcmp for use on C++ types, particularly ones where sizeof(T) > 1. http://mxr.mozilla.org/mozill

Re: JavaScript reference changes: looking for opinions

2013-04-22 Thread Jeff Walden
On 04/22/2013 04:34 PM, Norbert Lindenberg wrote: > 3) Related to that, some properties are documented as part of the wrong > object. For example, the String.prototype documentation shows a length > property. String.prototype doesn't have this property; String instances do. String.prototype is a

Re: The current state of WARNINGS_AS_ERRORS is untenable

2013-04-04 Thread Jeff Walden
On 04/04/2013 01:55 PM, Daniel Holbert wrote: > MSVC C4244 is by far our spammiest MSVC warning -- it's already disabled > in /js/src due to its low value::trouble ratio. Actually I think this is a mistake, one that we should fix at some point. I have very little confidence that all of SpiderMon

Re: Removing writable [Replaceable] properties

2012-12-20 Thread Jeff Walden
On 12/20/2012 03:38 PM, Boris Zbarsky wrote: > On 12/20/12 12:14 PM, Jeff Walden wrote: >> Setting it creates a shadowing property on window itself, using the exact >> value passed in. >> >>// Current Gecko >>alert(typeof window.screenX); // n

Removing writable [Replaceable] properties

2012-12-20 Thread Jeff Walden
Gecko (not specs) has a concept of writable [Replaceable] attributes. It uses them for these properties: window.innerWidth window.innerHeight window.outerWidth window.outerHeight window.screenX window.screenY window.opener window.status window.name In our implementation, a wri

Re: Proposed style guide modification: using declarations and nested namespaces

2012-11-13 Thread Jeff Walden
On 11/13/2012 01:34 AM, Robert O'Callahan wrote: > Why is "using mozilla::RangedPtr" required; is "RangedPtr" ambiguous? It's not -- just the increasing concern about using-collisions if we open the whole mozilla namespace, which we'd rather not do because of the possibility (actuality, for Rang

Re: Proposed policy change: reusability of tests by other browsers

2012-11-12 Thread Jeff Walden
I read newsgroups too little (or perhaps just enough, or too much, depending), sorry for the kind-of-late response here... On 10/10/2012 01:26 AM, ja...@hoppipolla.co.uk wrote: > Do you have a concrete suggestion for how to improve this, in a way that > works cross-browser? Well, the cross-doma

Re: Proposed style guide modification: using declarations and nested namespaces

2012-11-12 Thread Jeff Walden
On 11/12/2012 10:44 AM, Robert O'Callahan wrote: > On Mon, Nov 12, 2012 at 9:37 AM, Zack Weinberg wrote: > >> The scenario I'm concerned with is when a .cpp file does 'using namespace >> A;' and then goes on to define a bunch of its *own* symbols; later someone >> adds a symbol to namespace A, an

Re: Easiest way to start using httpd.js?

2012-10-23 Thread Jeff Walden
On 10/17/2012 04:01 PM, Jim Porter wrote: > the documentation only seems to say how to use httpd.js in xpcshell. Surely > there's a simpler way to get started. Historically httpd.js was designed so you could use it as an XPCOM component, fully abstracted from anything. It's possible that's brok

Re: Type of nullptr on Mac OS X 10.7 debug

2012-09-23 Thread Jeff Walden
On 09/21/2012 05:07 AM, Henri Sivonen wrote: > What's the type of nullptr on Mac OS X 10.7 debug build? On tryserver, > the compiler complains that there’s no nullptr_t in namespace std when > using std::nullptr_t. Including does not help. > MOZ_HAVE_CXX11_NULLPTR is defined, however. The nullptr