gecko-dev/config
Ricky Stewart 933b3522b8 Bug 1633156 - Don't emit cached table files from ply r=glandium
`ply`, [by design](https://github.com/dabeaz/ply/issues/79), does not produce reproducible table files; hence bug 1633156. (Note that this was *always* true, but only became a problem once we switched to Python 3, which has more unpredictable dict iteration order than Python 2.7, at least prior to [3.7](https://docs.python.org/3/whatsnew/3.7.html#summary-release-highlights).)

In any other circumstance I would consider submitting a patch to `ply` to fix this, but as of the [in-progress version 4.0 of the library](https://github.com/dabeaz/ply/blob/master/CHANGES), it doesn't even emit this cached data any more, and indeed the [latest version of the code](1fac9fed64/ply) doesn't even call `open()` at all except to do logging or to read the text data to be parsed from `stdin`. So if we were going to pin our future on `ply` and upgrade to later versions of the library in the future, we would have to live in a world where `ply` doesn't generate cached table files for us anyway.

Emitting the cached table files so later build steps can consume them is an "optimization", but it's not clear exactly how much actual value that optimization provides overall. Quoth the `CHANGES` file from that repository:

```
PLY no longer writes cached table files.  Honestly, the use of
the cached files made more sense when I was developing PLY on
my 200Mhz PC in 2001. It's not as much as an issue now. For small
to medium sized grammars, PLY should be almost instantaneous.
```

In practice, I have found this to be true; namely, `./mach build pre-export export` takes just about as long on my machine after this patch as it did before, and in a try push I performed, there's no noticeable performance regression from applying this patch. In local testing I also found that generating the LALR tables in calls to `yacc()` takes about 0.01s on my machine generally, and we generate these tables a couple dozen times total over the course of the `export` tier now. This isn't *nothing*, but in my opinion it's also not nearly long enough where it would be a concern given how long `export` already takes.

That `CHANGES` file also stresses that if caching this data is important, we have the option of doing so via `pickle`. If and when we decide that re-enabling this optimization is valuable for us, we should take control of this process and perform the generation in such a way that we can guarantee reproducibility.

Differential Revision: https://phabricator.services.mozilla.com/D73484
2020-05-07 00:39:28 +00:00
..
Moz
external Bug 1632434 - Part 2: Update ICU data file again to tzdata 2020a. r=jwalden 2020-04-29 23:47:39 +00:00
faster Bug 1621436 - Run process_install_manifest with python3. r=rstewart 2020-04-09 00:21:12 +00:00
makefiles Bug 1633156 - Don't emit cached table files from ply r=glandium 2020-05-07 00:39:28 +00:00
mozunit Bug 1619788 - Ensure files generated by `./mach configure` don't have CRLF line endings, even under Python 3 r=glandium 2020-03-06 02:19:21 +00:00
tests Bug 1628205 - Convert nsinstall.py to python 3. r=rstewart 2020-04-09 00:24:51 +00:00
AB_rCD.mk
Makefile.in
MozZipFile.py
autoconf-js.mk.in
autoconf.mk.in
baseconfig.mk
check_js_msg_encoding.py Bug 1633016 - Remove a bunch of references to PYTHON(2) in Makefiles r=glandium 2020-05-05 19:53:22 +00:00
check_js_opcode.py
check_macroassembler_style.py
check_source_count.py
check_spidermonkey_style.py Bug 1629791 part 3 - Define CacheIR ops in a YAML file and use that to generate a header file. r=iain 2020-04-16 05:21:38 +00:00
check_vanilla_allocations.py Bug 1632916 - Run JS/web-platform/ipdl build machinery in Python 3 r=jgraham,nika,glandium 2020-05-05 20:32:12 +00:00
config.mk Bug 1633156 - Don't emit cached table files from ply r=glandium 2020-05-07 00:39:28 +00:00
createprecomplete.py
emptyvars-js.mk.in
emptyvars.mk.in
gcc-stl-wrapper.template.h Bug 1594027 - add more STL wrappers to fix build with libc++ 9 r=froydnj 2020-02-24 20:18:01 +00:00
gcc_hidden.h
install.bat
make-stl-wrappers.py Bug 1618760 - Remove MSVC-specific include hacks in header wrappers. r=dmajor 2020-02-28 21:41:18 +00:00
make-system-wrappers.py
make-windows-h-wrapper.py Bug 1618760 - Remove MSVC-specific include hacks in header wrappers. r=dmajor 2020-02-28 21:41:18 +00:00
milestone.txt Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release 2020-05-04 14:53:37 +00:00
moz.build Bug 1619460 - ensure subsequent runs of `./mach build-backend` under Python 3 produce consistent results r=dmajor 2020-03-12 21:05:26 +00:00
msvc-stl-wrapper.template.h Bug 1618760 - Remove MSVC-specific include hacks in header wrappers. r=dmajor 2020-02-28 21:41:18 +00:00
nsinstall.c
nsinstall.py Bug 1628205 - Convert nsinstall.py to python 3. r=rstewart 2020-04-09 00:24:51 +00:00
pathsub.c
pathsub.h
printconfigsetting.py Bug 1623132 - Rewrite printconfigsetting to use configparser, python 3 r=rstewart 2020-03-18 15:07:24 +00:00
printprereleasesuffix.py
rebuild_check.py Bug 1633016 - Remove a bunch of references to PYTHON(2) in Makefiles r=glandium 2020-05-05 19:53:22 +00:00
recurse.mk Bug 1633156 - Don't emit cached table files from ply r=glandium 2020-05-07 00:39:28 +00:00
rules.mk Bug 1599658 - Delete previous definition of py_action in Makefiles. Now py_action calls into Python 3 and py3_action doesn't exist. r=glandium 2020-05-05 20:04:30 +00:00
run-and-prefix.py Bug 1633016 - Remove a bunch of references to PYTHON(2) in Makefiles r=glandium 2020-05-05 19:53:22 +00:00
run_spidermonkey_checks.py
static-checking-config.mk
stl-headers.mozbuild
system-headers.mozbuild Bug 1622227 - Unhide more ICU headers after bug 1560038. r=zbraniecki 2020-03-17 09:57:56 +02:00
version.mk
version_win.pl
windows-h-constant.decls.h Bug 1630361 - Remove [NeedsWindowsUndef] attribute from webidl, r=peterv 2020-04-16 23:40:57 +00:00
windows-h-unicode.decls.h Bug 1630361 - Remove [NeedsWindowsUndef] attribute from webidl, r=peterv 2020-04-16 23:40:57 +00:00
windows-h-wrapper.template.h Bug 1618760 - Remove MSVC-specific include hacks in header wrappers. r=dmajor 2020-02-28 21:41:18 +00:00