{"push_id":919895942,"size":46,"distinct_size":1,"ref":"refs/heads/linux-test-sil-combine","head":"2f325d93ca44b12df40f37d75e10fe0818357ea1","before":"597b62b9cde4e93b0d1ef4061a6931be8b0a5f18","commits":[{"sha":"feace85d5a03dcc21c0f721a772ffaf2b7a85554","author":{"email":"721a06c08c6174084aa302333b9f94a8307eafe0@apple.com","name":"Chris Lattner"},"message":"Enhance SubscriptDecl to be a DeclContext, so it can hold its indices.\n\nThis is necessary for some other work I'm doing, which really wants\nparamdecls to have reasonable declcontexts.  It is also a small step\ntowards generic subscripts.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/feace85d5a03dcc21c0f721a772ffaf2b7a85554"},{"sha":"6ae85cea26c3c449157ba0315d888cdf58cb8369","author":{"email":"ffb4761cba839470133bee36aeb139f58d7dbaa9@sb.org","name":"Kevin Ballard"},"message":"[Stdlib] Optimize CollectionType.first\n\nFor lazy collections, `isEmpty` and `startIndex` may be O(N) operations.\nThe old implementation ended up being potentially O(2N) instead of O(1).\nIn particular, accessing `col.lazy.filter(pred).first` would evaluate\nthe predicate on elements twice, once to determine the result of\n`isEmpty` and once to determine `startIndex`.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/6ae85cea26c3c449157ba0315d888cdf58cb8369"},{"sha":"dee1c7a05c38f8bdc26583394d88513acd4f62f3","author":{"email":"ffb4761cba839470133bee36aeb139f58d7dbaa9@sb.org","name":"Kevin Ballard"},"message":"[Stdlib] Add notes to lazy collection doc comments about complexity\n\nMany lazy collections don't offer O(1) performance for `startIndex`,\n`first`, or any method that depends on `startIndex`.\n`LazyFilterCollection` already had a note to this effect (which I\ntweaked a bit), but `FlattenCollection` didn't.\n\nRelated to SR-425.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/dee1c7a05c38f8bdc26583394d88513acd4f62f3"},{"sha":"36b89a924503b6398d34e95410b16b4d2146dcfa","author":{"email":"ae4541a3153c53f3296cb023f34b9e95c65f5ada@emanuelzephir.com","name":"Emanuel Zephir"},"message":"[SILOptimizer]Refactor ObjC dependencies in CSE tests\n\nThis change moves tests that require ObjC into a new file and removes the XFAIL\non Linux. Partially resolves SR-216.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/36b89a924503b6398d34e95410b16b4d2146dcfa"},{"sha":"7700b3b4e39e82e85d7fdc870d548e567069d25b","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@lovelett.me","name":"Ryan Lovelett"},"message":"[gyb] Use lambda function to work around PEP 3114\n\n[PEP 3114](https://www.python.org/dev/peps/pep-3114/) renamed\n`iterator.next()` (Python 2) to `iterator.__next__()` (Python 3). The\nrecommended solution to make the code work in both Python 2 and 3 is to\ncall the global `next` function.\n\nTo use this recommended global `next` function this patch uses a lambda\nfunction to supply `tokenize.generate_tokens` a callable function as it was previously.\n\nThis should be functionally equivalent to the old code with the added\nbenefit of working on both Python 2 and 3.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/7700b3b4e39e82e85d7fdc870d548e567069d25b"},{"sha":"86650bbb6d53ccdb47107295c28a4615b7509259","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@lovelett.me","name":"Ryan Lovelett"},"message":"[gyb] Python 2 and 3 compatible StringIO import\n\nThe `StringIO` and `cStringIO` modules are gone in Python 3. The\nrecommendation is to import the `io` module on Python 3. Therefore, this\npatch first attempts to import the Python 2 module, `cStringIO`, and if\nthat fails then attempts to import the Python 3 module, `io`.\n\n**NOTE**: There are still other Python 3.x fixes necessary to make `gyb`\nrun on a Python 3.x interpreter. This is just one small incremental\npatch on the way there.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/86650bbb6d53ccdb47107295c28a4615b7509259"},{"sha":"c677844ba4f8ffaede13a651f32ee5ab08b307ed","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@lovelett.me","name":"Ryan Lovelett"},"message":"[gyb] Provide Python 2 and 3 compatable exception syntax\n\nIn Python 2 the syntax to catch exceptions was:\n\nexcept (Exception1, Exception2), target:\n\nIn Python 3 the syntax to catch exceptions is:\n\nexcept (Exception1, Exception2) as target:\n\nThis newer Python 3 syntax is also available in 2.6 and 2.7. Therefore,\nit is preferred for compatibility reasons. Additionally, the target no\nlonger can be a tuple. This patch refactors the exception handeling code\nto be the newer Python 3 exception catch syntax.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/c677844ba4f8ffaede13a651f32ee5ab08b307ed"},{"sha":"7dbb4127f55022bca7b191d448652b5decf8626e","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@lovelett.me","name":"Ryan Lovelett"},"message":"[gyb] Force Unicode strings in Python 2\n\nAll strings are sequences of Unicode characters in Python 3. This is\nentirely different than that of Python 2. Python 2's strings were of\nbytes. However, Python 2 does have the concept of Unicode strings. This\npatch changes the behavior of the file reader to use the same the codecs\nmodule on Python 2 to properly read a string into a unicode string. From\nthere the strings are meant to be equivalent on 2 and 3. The rest of the\npatch just updates the code to natively work with unicode strings.\n\nTo test the class `GraphemeClusterBreakPropertyTable`:\n\n    $ python2 utils/gyb --test \\\n    -DunicodeGraphemeBreakPropertyFile=./utils/UnicodeData/GraphemeBreakProperty.txt \\\n    -DunicodeGraphemeBreakTestFile=./utils/UnicodeData/GraphemeBreakTest.txt \\\n    -DCMAKE_SIZEOF_VOID_P=8 \\\n    -o /tmp/UnicodeExtendedGraphemeClusters.cpp.2.7.tmp \\\n    ./stdlib/public/stubs/UnicodeExtendedGraphemeClusters.cpp.gyb\n\n    $ python3 utils/gyb --test \\\n    -DunicodeGraphemeBreakPropertyFile=./utils/UnicodeData/GraphemeBreakProperty.txt \\\n    -DunicodeGraphemeBreakTestFile=./utils/UnicodeData/GraphemeBreakTest.txt \\\n    -DCMAKE_SIZEOF_VOID_P=8 \\\n    -o /tmp/UnicodeExtendedGraphemeClusters.cpp.3.5.tmp \\\n    ./stdlib/public/stubs/UnicodeExtendedGraphemeClusters.cpp.gyb\n\n    $ diff -u /tmp/UnicodeExtendedGraphemeClusters.cpp.2.7.tmp \\\n    /tmp/UnicodeExtendedGraphemeClusters.cpp.3.5.tmp\n\nTo test the method `get_grapheme_cluster_break_tests_as_UTF8`:\n\n    $ python2 utils/gyb --test \\\n    -DunicodeGraphemeBreakPropertyFile=./utils/UnicodeData/GraphemeBreakProperty.txt \\\n    -DunicodeGraphemeBreakTestFile=./utils/UnicodeData/GraphemeBreakTest.txt \\\n    -DCMAKE_SIZEOF_VOID_P=8 \\\n    -o /tmp/UnicodeGraphemeBreakTest.cpp.2.7.tmp \\\n    ./unittests/Basic/UnicodeGraphemeBreakTest.cpp.gyb\n\n    $ python3 utils/gyb --test \\\n    -DunicodeGraphemeBreakPropertyFile=./utils/UnicodeData/GraphemeBreakProperty.txt \\\n    -DunicodeGraphemeBreakTestFile=./utils/UnicodeData/GraphemeBreakTest.txt \\\n    -DCMAKE_SIZEOF_VOID_P=8 \\\n    -o /tmp/UnicodeGraphemeBreakTest.cpp.3.5.tmp \\\n    ./unittests/Basic/UnicodeGraphemeBreakTest.cpp.gyb\n\n    $ diff -u /tmp/UnicodeGraphemeBreakTest.cpp.2.7.tmp \\\n    /tmp/UnicodeGraphemeBreakTest.cpp.3.5.tmp","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/7dbb4127f55022bca7b191d448652b5decf8626e"},{"sha":"c8e74d1ba19da3510742ae17fdf3665cde0143a8","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@lovelett.me","name":"Ryan Lovelett"},"message":"[gyb] Work-around PEP 3106 for Python 3 compatibility\n\nPEP 3106 [1] changed the behavior of the dictionaries `items` method.\nIn Python 2, `items` builds a real list of tuples where `iteritems`\nreturns a generator. PEP 3106 changes Python 3's `items` method to be\nequivalent to Python 2's `iteritems` and completely removes `iteritems`\nin Python 3.\n\nThis patch switches to both to use `items`. This could have a negative\nimpact on Python 2's performance because it now causes the dictionary\ntuples to be built in memory.\n\n[1] https://www.python.org/dev/peps/pep-3106/","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/c8e74d1ba19da3510742ae17fdf3665cde0143a8"},{"sha":"360c2b2bbcbeeb9f5967e7583294c1f6970015a6","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@lovelett.me","name":"Ryan Lovelett"},"message":"[gyb] Convert map object to list object\n\nPython 2's map function [1] returns a list by default. Compared with\nPython 3's map function [2] which returns an iterator (or map object).\nThe former is subscriptable, while the latter is not.\n\nThis patch explicitly converts the result of some map operations to be\na list. That way they have the same intended behaviour on both Python 2\nand 3.\n\n[1] https://docs.python.org/2/library/functions.html#map\n[2] https://docs.python.org/3/library/functions.html#map","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/360c2b2bbcbeeb9f5967e7583294c1f6970015a6"},{"sha":"8f223005d7c950c71f35283e0cd99a9ab49d67bf","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@lovelett.me","name":"Ryan Lovelett"},"message":"[gyb] Popen explicit string instead of byte sequence\n\nThe Popen command on Python returns a byte sequence on stdout by\ndefault. However by sending the constructor the argument\n`universal_newlines=True` it forces the Popen to put a string on stdout.\n\nThis was not a problem on Python 2 because the Python 2 regex engine\nseemed to work find on byte sequences where Python 3's does not. By\nexplicitly converting everything to a string the same behavior is now\nseen on Python 2 and 3.\n\nSee: https://docs.python.org/2/library/subprocess.html#frequently-used-arguments\nSee: https://docs.python.org/3/library/subprocess.html#frequently-used-arguments","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/8f223005d7c950c71f35283e0cd99a9ab49d67bf"},{"sha":"b50b5419be1d4631f6fa3f1978d266d025542e96","author":{"email":"5665948246378efad3f6e6c828bcc97d6516f66f@apple.com","name":"Dave Abrahams"},"message":"Merge pull request #806 from RLovelett/gyb-python-3\n\n[gyb] Python 2 or 3 compatible Generate Your Boilerplate","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/b50b5419be1d4631f6fa3f1978d266d025542e96"},{"sha":"09b6afc19a3ce342a7dc7baa06c4b9fd0296651f","author":{"email":"5665948246378efad3f6e6c828bcc97d6516f66f@apple.com","name":"Dave Abrahams"},"message":"Merge pull request #829 from kballard/add-complexity-caveats-to-lazy-collections\n\n[Stdlib] Add notes to lazy collection doc comments about complexity","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/09b6afc19a3ce342a7dc7baa06c4b9fd0296651f"},{"sha":"f4ccef243658efeaf7aef988fd9b6d8b9d5230d2","author":{"email":"08921094c058e0801e0223f91ca2378e2e948c35@gmail.com","name":"Dmitri Gribenko"},"message":"Revert \"[Mangler] Add unit tests to the compression routines.\"\n\nThis reverts commit 25832d39b22eb30370e7f1dc855e4919590f528f.  The tests\ndon't pass.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/f4ccef243658efeaf7aef988fd9b6d8b9d5230d2"},{"sha":"5e206f35a16301faea2486bc94719dd5d531ce9f","author":{"email":"91dccd030be6e82ab0e4ef623cb66353c149a982@apple.com","name":"Joe Groff"},"message":"SILGen: Generate closure contexts as guaranteed.\n\nWhen enabled, generate closure functions with guaranteed conventions as their context parameters, and pass context arguments to them as guaranteed when possible. (When forming a closure by partial_apply, the partial apply still needs to take ownership of the parameters, regardless of their convention.)","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/5e206f35a16301faea2486bc94719dd5d531ce9f"},{"sha":"f57668f0aa3a9f1c7854fc68af52f95dd7d228c4","author":{"email":"be9c68790499145e81c8b6c162e8905a95f7aa89@apple.com","name":"Nadav Rotem"},"message":" [Mangler] Fix a bug in EncodeStringAsNumber.\n\nWhen we encode a string into an APInt the size of the APInt needs to be large\nenough for the string (we got this part right), but also large enough for\narithmetic with the value of character length.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/f57668f0aa3a9f1c7854fc68af52f95dd7d228c4"},{"sha":"2d6f3c3ed514b21730e7af37dafd3153b3ed7d88","author":{"email":"be9c68790499145e81c8b6c162e8905a95f7aa89@apple.com","name":"Nadav Rotem"},"message":"Reapply \"[Mangler] Add unit tests to the compression routines.\"\"\n\nThis reverts commit f4ccef243658efeaf7aef988fd9b6d8b9d5230d2.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/2d6f3c3ed514b21730e7af37dafd3153b3ed7d88"},{"sha":"cd71f51a2e383a7f4015e46f656a183fd6dd1f64","author":{"email":"be9c68790499145e81c8b6c162e8905a95f7aa89@apple.com","name":"Nadav Rotem"},"message":"[Mangler] Fix a bug in the bit width calculation of numbers representing strings.\n\nThe bug is that zext expects the bitwidth to be different, which is incorrect\nsince the bitwidth does not change most of the times.","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/cd71f51a2e383a7f4015e46f656a183fd6dd1f64"},{"sha":"e3a4147ac94e55fcab1d14e949f572b53d9eb638","author":{"email":"6a4fe8b1c615ce704e72e4b450b3325eb022492e@panzarino.com","name":"Zach Panzarino"},"message":"Update copyright date","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/e3a4147ac94e55fcab1d14e949f572b53d9eb638"},{"sha":"c27ffd2a012fb3ba1261eb1870bf57f5615bb195","author":{"email":"08921094c058e0801e0223f91ca2378e2e948c35@gmail.com","name":"Dmitri Gribenko"},"message":"Merge pull request #832 from ezephir/linux-test-cse\n\n[SILOptimizer]Refactor ObjC dependencies in CSE tests","distinct":false,"url":"https://api.github.com/repos/ezephir/swift/commits/c27ffd2a012fb3ba1261eb1870bf57f5615bb195"}]}