Singularity Singularity is a multicurrency robot for automated and manual trading on Forex market. The Expert Advisor follows the grid strategy on any timeframe. It performs trades following the price without increasing the volume.
- I'm an author and leading contributor of the MLPNeuralNet - a fast neural network library for iOS and Mac OS X (885 stars and 236 forks on Github). My favorite xkcd is 1168. Good experience (5+ years): R, Apache Spark, Python, Scala, Data mining, Exploratory Statistics, Inferential Statistics, Data Munging, Feature Engineering, Supervise.
- Contemporary operating systems — Windows, Linux, Mac OS X. The Singularity operating system incorporates a new software. Architecture based on software isolation of processes.
I'm thrilled to announce support for Mac OS X artifact builds. Artifact builds trade expensivecompile times for (variable) download times and some restrictions on what parts of the Firefoxcodebase can be modified. For Mac OS X, the downloaded binaries are about 100Mb, which might takejust a minute to fetch. The hard restriction is that only the non-compiled parts of the browser canbe developed, which means that artifact builds are really only useful for front-end developers. TheFirefox for Android front-end team has been using artifact builds with great success for almost ayear (see Build Fennec frontend fast with mach artifact! and my other posts on this blog).
I intend to update the MDN documentation and the build bootstrapper (seeBug 1221200) as soon as I can, but in the meantime, here's a quick start guide.
Quick start
You'll need to have run mach mercurial-setup and installed the mozext extension (see Bug1234912). In your mozconfig file, add the lines
You'll want to run mach configure again to make sure the change is recognized. This sets--disable-compile-environment and opts you in to running mach artifact installautomatically.
After this, you should find that mach build downloads and installs the required artifactbinaries automatically, based off your current Mercurial commit. To test, just try
After the initial build, incremental mach build DIR should also maintain the state of theartifact binaries — even across hg commit and hg pull && hg update.
You should find that mach build faster works as expected, and that the occasional mach buildbrowser/app/repackage Dada boss fight mac os. is required.
Restrictions
Oh, so many. Here are some of the major ones:
- Right now, artifact builds are only available to developers working on Mac OS X Desktop builds(Bug 1207890) and Firefox for Android builds. I expect Linux support to follow shortly (trackedin Bug 1236110). Windows support is urgently needed but I don't yet know how much work it will be(tracked in Bug 1236111).
- Right now, artifact builds are only available to Mercurial users. There's no hard technicalreason they can't be made available to git users, and I expect it to happen eventually, but it'snon-trivial and really needs a dedicated git-using engineer to scratch her own itch. This istracked by Bug 1234913.
- Artifact builds don't allow developing the C++ source code. As soon as you need to change acompiled component, you'll need a regular build. Unfortunately, things like Telemetry arecompiled (but see tickets like Bug 1206117).
- Artifact builds are somewhat heuristic, in that the downloaded binary artifacts may not correspondto your actual source tree perfectly. That is, we're not hashing the inputs and mapping to aknown binary: we're choosing binaries from likely candidates based on your version control statusand pushes to Mozilla automation. Binary mismatches for Fennec builds are rare (but do exist,see, for example, Bug 1222636), but I expect them to be much more common for Desktop builds.Determining if an error is due to an artifact build is a black art. We'll all have to learn whatthe symptoms look like (often, binary component UUID mismatches) and how to minimize them.
- Support for running tests is limited. I don't work on Desktop builds myself, so I haven't reallyexplored this. I expect a little work will be needed to get xpcshell tests running, since we'llneed to arrange for a downloaded xpcshell binary to get to the right place at the right time.Please file a bug if some test suite doesn't work so that we can investigate.
Troubleshooting
The command that installs binaries is mach artifact install. Start by understanding whathappens when you run
See the troubleshooting section of my older blog postfor more. As a last resort, the Firefox for Android MDN documentationmay be helpful.
Conclusion
Thanks to Gregory Szorc (@indygreg) and Mike Hommey for reviewing this work. Many thanks to MarkFinkle (@mfinkle) for providing paid time for me to pursue this line of work and to the entireFirefox for Android team for being willing guinea pigs.
There's a huge amount of work to be done here, and I've tried to include Bugzilla ticket links sothat interested folks can contribute or just follow along. Dan Minor will be picking up some ofthis artifact build work in the first quarter of 2016.
Mozilla is always making things better for the front-end teams and our valuable contributors! Getinvolved with code contribution at Mozilla!
Discussion is best conducted on the dev-builds mailing list and I'm nalexander onirc.mozilla.org/#developers and @ncalexander on Twitter.