mozilla :: #build

8 Sep 2017
02:59dmajorglandium: do you have any idea about https://bugzilla.mozilla.org/show_bug.cgi?id=1341525#c8 ?
02:59firebotBug 1341525 NEW, nobody@mozilla.org Support PGO in clang-cl builds
03:02glandiumno
03:13dmajor:(
13:11catleeted: can I bug you with some windows build questions?
15:26tedcatlee: sure
15:26ted(sorry, was at the gym)
15:28catleenp
15:28catleelooks like it's a path issue
15:28catleetrying to get some python modules built on appveyor
15:30tedfun
15:30tedlet me tell *you* about path issues
15:30ted(he says, still hacking away at making the build work in WSL)
15:44catleegah
15:45catleebackports/lzma/_lzmamodule.c(32) : warning C4273: 'PyErr_NewExceptionWithDoc' : inconsistent dll linkage
15:45catleeLINK : error LNK2001: unresolved external symbol initbackports/lzma/_lzma
15:45catleeI give up
15:46tedheh
16:01catleelooks like the upstream module doesn't build properly anyway
16:20tedpython is similar to rust in this respect: once you wind up building C code you've lost
16:27tedbut that was years ago, so YMMV
16:27teder
16:27tedwrong channel, hah
16:44catleeI certainly feel like I've lost
17:36gpsi accidentally told TaskCluster to compile all of Firefox's transitive build dependencies: https://treeherder.mozilla.org/#/jobs?repo=try&revision=5b40b717c31a27e171e97f3deffe3ee7c757c67b
17:37gpsnext step is going from a trusted stage 3 debian install to a docker image / tarball that has all Firefox's build dependencies compiled from source
17:37gpshehe
17:38gpsalso, ted - if you want a corpus for exercising sccache :)
17:45mshalholy crap :)
18:05tedgps: hah!
19:00mshalted: cargo uses OsString to represent the program ('rustc') and the command args, but when I output it to json with serde, it comes out as a byte string (eg: 'Unix': [114, 117, 115, 116, 99]) - is that what we would want?
19:00mshalor could I just convert the OsString to a String in cargo?
19:26nicholasdipiazzaIs there any way to build a Windows zip file based portable Firefox? Even portableapps.com distributes an installer. I want to be able to build a zip file that i can send with my product so that it can use firefox.exe to do certain things on the backend (now that we have headless firefox)
19:38tedmshal: so the reason for OsString is that things like commandline arguments and file names are not required to be valid unicode
19:39tedmshal: you can use one of https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.to_str or https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.to_string_lossy to get a str
19:39tedthe former gives you an &str if it's valid unicode, the latter either gives you that or if it's not valid unicode, you get a String with replacement characters
19:40mshalso is it safe to do the conversion in cargo and export a unicode string in the json output? Or do we need to export the byte array and convert it in python?
19:44tedwell, i guess you could look at where all these things derive from
19:44tedi know for rustc it can come from an env var, which could potentially be bogus
19:44tedi guess you could also just punt on this initially and declare that if any of them are not valid unicode it just doesn't work
19:44tedand see what people think :)
19:46mshalhaha
19:46mshalwfm :)
19:54gpsplease tell me rust has a saner approach to encoding for things like environment variables, command argument, and filenames
19:54gpsi have a serious beef with Python trying to enforce that all these system primitives are unicode
19:54tedgps: it treats them all as OsStr / OsString
19:54tedwhich are "maybe unicode, but not guaranteed"
19:55tedand you can pass them around to things like File::open or Command::new etc to do OS things with them without actually inspecting them
19:55gpsdoes it properly handle when the filename encoding may be different from the active system encoding?
19:55tedyou can debug-format them to print them
19:55gpsok. good.
19:55gpsthat's very reasonable!
19:55tedand you can try to convert them to strings if need be
19:55tedyeah, it all works pretty well
19:55gpsglad they did their homework!
19:56tedand all the things that pass strings to the OS take like <T: AsRef<OsStr>>
19:56tedso anything that implements that is usable, which includes OsStr, OsString, &str, etc
19:56tedso you can pass basically any type of string in
20:08gpsi really need to learn Rust
20:08gpsi found myself learning python&#39;s asyncio last weekend. that was a fun time.
20:09gpsthe performance of Python 3.5+ for I/O bound applications is actually pretty great!
20:09gpsi suspect that switching moz.build and taskgraph to 3.5+ + asyncio would yield some nice wins
20:17gpsted: i&#39;d encourage you to start submitting WSL patches piecemeal. i&#39;mo more than willing to review!
20:17tedgps: i&#39;ve got a few things in glandium&#39;s queue blocking the wsl bug
20:17tedfeel free to steal &#39;em
20:18tedi&#39;m kinda hack-and-slashing my way through the build at the moment, will clean it up and separate it into useful patches then
20:18gpsi saw that! i was referring more to some of the parts of the monolithic patch
20:18gpsterrific!
20:18tedgotta figure out how to replicate what cl.py does with path case normalization
20:18gpsoof
20:18tedyeah :-/
20:18tedunless recent microsoft compilers have stopped being dumb about it
20:19gpsonce 57 is out of the gate, we&#39;re clear to bump to VS2017
20:19gpsi don&#39;t think it will be a horrible transition
20:19tedyeah
20:19tedi was hoping i&#39;d find time to stand 2017 builds up in CI
20:19gpsdid you ever get a toolchain task that &quot;packaged&quot; VS2017?
20:20tedbut alas
20:20tedno, the installer wants admin rights
20:20tedand i don&#39;t think we can run it on our existing windows workers
20:20tedi didn&#39;t dig farther
20:20gpsjonas is working to move Windows tasks to full VMs
20:20tedyeah
20:20tedinterested to know what that does to perf
20:21gpswell, worst case we continue to upload archives to tooltool
20:21tedalso wonder if we went all-in and split PGO builds into separate tasks if we could just use docker on windows for builds
20:22gpstjr: https://treeherder.mozilla.org/#/jobs?repo=try&revision=5b40b717c31a27e171e97f3deffe3ee7c757c67b :)
20:23tjrwhoa
20:25gpsted: do you think bug 1324892 deserves an announcement to dev-platform and/or release-drivers?
20:25firebothttps://bugzil.la/1324892 NEW, spohl.mozilla.bugs@gmail.com Switch Mac builds to 10.11 SDK
20:26ted*shrug*
20:27gpswith the focus on stabilizing 57, i don&#39;t want people wasting time chasing down unexpected regressions from this because they didn&#39;t know it happened
21:09tedfair enough
21:09tedit&#39;s on deck to fix a bunch of issues
21:09tedapparently shit starts breaking when you&#39;re using a too-old SDK on a much-newer OS X
21:09* ted is out
21:09tedhave a good one
21:55rillianglandium: how can I access the in-tree python modules from a toolchain build script?
21:56rillianI tried setting PYTHONPATH in a env key, but it doesn&#39;t seem to have helped.
22:22chmanchesterrillian: |mach python| should do it
22:22chmanchesterI don&#39;t know if that&#39;s the preferred way, but a few of the toolchain scripts use it
22:31rillianchmanchester: I&#39;ll try that, thanks.
9 Sep 2017
No messages
   
Last message: 12 days and 19 hours ago