profile
viewpoint
Daniel Rodríguez Troitiño drodriguez Bay Area, CA

apple/swift 53897

The Swift Programming Language

apple/swift-corelibs-foundation 4029

The Foundation Project, providing core utilities, internationalization, and OS independence

drodriguez/globradio 28

iPhone MP3/Shoutcast radio client code

drodriguez/DRTPFObjectDynamicProperties 7

Easy Parse PFObject subclassing with automagic property implementations.

drodriguez/custer 5

Custer is a "toy" web server using Reactor pattern.

drodriguez/gravity 5

Small iPhone application showing some real physics.

drodriguez/AppReviews 4

AppStore reviews scraper for the iPhone and iPod touch

drodriguez/CodingDojoJun2011 3

Coding Dojo done by the members of NSCoderNight Madrid on June 2011

drodriguez/gitnub 3

A Gitk-like application written in RubyCocoa that looks like it belongs on a Mac. See the wiki for downloads and screenshots.

drodriguez/hot-hackers 3

Hot Hackers

delete branch drodriguez/swift

delete branch : windows-long-tmp-path

delete time in 8 days

pull request commentapple/swift

[windows] Provide %long-tmp in Windows for extended length temp paths.

You can check if adding the prefix in Lit itself will work for every test. Besides printing \\?\ in front of every path, it might be that everything works. But I will not be surprised if some tools starts to fail because they "parse" the paths in Windows expecting relative paths, and interpret the first \ of the prefix as relative to the current drive.

Thanks for merging! https://ci-external.swift.org/job/oss-swift-windows-x86_64/5594/ is the first blue in a while! :D

drodriguez

comment created time in 8 days

pull request commentapple/swift

[windows] Provide %long-tmp in Windows for extended length temp paths.

@compnerd: some reason NOT to merge this? Otherwise it would be nice to have a good build in the VS2017 builder.

drodriguez

comment created time in 8 days

pull request commentapple/swift

[windows] Provide %long-tmp in Windows for extended length temp paths.

This is definitely a clever solution to the problem. I wonder how terrible it would be to actually make this part of %t in general. Is there a reason to not just do that?

Two reasons:

%t is provided by Lit. I think one can use %t to override the value, but I didn't find a way to recover the old value. The default substitutions are not in the array when lit.cfg executes, and are added later.

The second reason is that this is limited to something that I know it is working. Replacing every %t might be fine, but maybe some tools will not behave correctly when using paths that start by \\?\. In this case it seems to work. I think this allows us to grow the solution until we are sure is safe, instead of finding a lot of problems because of a simple change.

drodriguez

comment created time in 9 days

pull request commentapple/swift

[windows] Provide %long-tmp in Windows for extended length temp paths.

@swift-ci please smoke test

drodriguez

comment created time in 9 days

create barnchdrodriguez/swift

branch : windows-long-tmp-path

created branch time in 9 days

PR opened apple/swift

Reviewers
[windows] Provide %long-tmp in Windows for extended length temp paths.

In Windows %t might end up very close to the maximum path length of 260 characters. It is possible to use extended lenght paths with a \?
prefix. The changes introduce %long-tmp for cases that the test suite is going over those limits and need a hint in Windows that the path might be long. It expands to the same as %t in other platforms.

This should fix the test/Misc/stats_dir_profiler.swift in the Windows VS 2017 CI machines and hopefully not affect anything else.

+9 -2

0 comment

2 changed files

pr created time in 9 days

delete branch drodriguez/swift

delete branch : windows-rewrite-module-triples

delete time in 10 days

push eventapple/swift

Daniel Rodríguez Troitiño

commit sha 2a7a3eb436c710ff891fbbf7cb33250edeb9c0bc

[windows] Use extended length paths for os.walk invocation. In the Windows VS 2017 CI machines, the path for certain tests end up being very long. rewrite-module-triples.py was aware and was using extended length paths for the copy and remove operations in Windows but it was not using it for the os.walk invocation, so when a folder that was longer than MAX_PATH was encountered, the walk stopped drilling into it, missing some module-triple-here substitutions and making some test fail. The changes remove the special treatment of the copy and remove operations and move it into os.walk, which carries the prefix to every path. This should fix the problems seen in the SourceKit test in the Windows VS 2017 machine: - SourceKit/InterfaceGen/gen_swift_module_cross_import_common.swift - SourceKit/DocSupport/doc_cross_import_common.swift - SourceKit/CursorInfo/cursor_info_cross_import_common_case.swift PD: Misc/stats_dir_profiler.swift is something else. It seems as if an glob was not being expanded by lit for some reason.

view details

Daniel Rodríguez Troitiño

commit sha 53560fe163d4d2c46026c68c2fddcf092fab4207

Merge pull request #34265 from drodriguez/windows-rewrite-module-triples [windows] Use extended length paths for os.walk invocation.

view details

push time in 10 days

PR merged apple/swift

Reviewers
[windows] Use extended length paths for os.walk invocation.

In the Windows VS 2017 CI machines, the path for certain tests end up being very long. rewrite-module-triples.py was aware and was using extended length paths for the copy and remove operations in Windows but it was not using it for the os.walk invocation, so when a folder that was longer than MAX_PATH was encountered, the walk stopped drilling into it, missing some module-triple-here substitutions and making some test fail.

The changes remove the special treatment of the copy and remove operations and move it into os.walk, which carries the prefix to every path.

This should fix the problems seen in the SourceKit test in the Windows VS 2017 machine:

  • SourceKit/InterfaceGen/gen_swift_module_cross_import_common.swift
  • SourceKit/DocSupport/doc_cross_import_common.swift
  • SourceKit/CursorInfo/cursor_info_cross_import_common_case.swift

PD: Misc/stats_dir_profiler.swift is something else. It seems as if an glob was not being expanded by lit for some reason.

+6 -10

2 comments

1 changed file

drodriguez

pr closed time in 10 days

pull request commentapple/swift

[windows] Use extended length paths for os.walk invocation.

@swift-ci please test

drodriguez

comment created time in 10 days

PR opened apple/swift

Reviewers
[windows] Use extended length paths for os.walk invocation.

In the Windows VS 2017 CI machines, the path for certain tests end up being very long. rewrite-module-triples.py was aware and was using extended length paths for the copy and remove operations in Windows but it was not using it for the os.walk invocation, so when a folder that was longer than MAX_PATH was encountered, the walk stopped drilling into it, missing some module-triple-here substitutions and making some test fail.

The changes remove the special treatment of the copy and remove operations and move it into os.walk, which carries the prefix to every path.

This should fix the problems seen in the SourceKit test in the Windows VS 2017 machine:

  • SourceKit/InterfaceGen/gen_swift_module_cross_import_common.swift
  • SourceKit/DocSupport/doc_cross_import_common.swift
  • SourceKit/CursorInfo/cursor_info_cross_import_common_case.swift

PD: Misc/stats_dir_profiler.swift is something else. It seems as if an glob was not being expanded by lit for some reason.

+6 -10

0 comment

1 changed file

pr created time in 10 days

create barnchdrodriguez/swift

branch : windows-rewrite-module-triples

created branch time in 10 days

push eventapple/swift

Daniel Rodríguez Troitiño

commit sha 8470a6624f08283719af2cbc6fdc10a2163d4888

[windows] Avoid %r for quoting module-cache-path in Windows. %r returns a representation of the object that is valid Python syntax. For numbers and strings this representation is very compatible with Unix shells, but for Windows, the quoting performed by Python will not be compatible. For example the Windows path separator `\` will be escaped as `\\`, which is not necessary for Windows and might make some tests that try to match path fail. Python 3.3 has `shlex.quote`, which was previously available as `pipes.quote` in earlier Python versions. `pipes.quote` was indeed used in several points of the `lit.cfg` file. For Windows, one need to do their own quoting. This change introduces `shell_quote` which uses `shlex.quote` or `pipes.quote` in Unix depending on the Python version, and provides an implementation of `shell_quote` for Windows. It replaces every usage of `pipes.quotes` for `shell_quote`, and modifies the value of `mcp_opt` to use `shell_quote` and not `%r`. This should fix the test `Driver\working-directory.swift` in the Windows Visual Studio 2017 builder.

view details

Daniel Rodríguez Troitiño

commit sha 169948ff9cae44f0548af1f4f4296c587de62581

Merge pull request #34176 from drodriguez/windows-percent-r-is-bad [windows] Avoid %r for quoting module-cache-path in Windows.

view details

push time in 10 days

delete branch drodriguez/swift

delete branch : windows-percent-r-is-bad

delete time in 10 days

PR merged apple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

%r returns a representation of the object that is valid Python syntax. For numbers and strings this representation is very compatible with Unix shells, but for Windows, the quoting performed by Python will not be compatible. For example the Windows path separator \ will be escaped as \\, which is not necessary for Windows and might make some tests that try to match path fail.

Python 3.3 has shlex.quote, which was previously available as pipes.quote in earlier Python versions. pipes.quote was indeed used in several points of the lit.cfg file. For Windows, one need to do their own quoting.

This change introduces shell_quote which uses shlex.quote or pipes.quote in Unix depending on the Python version, and provides an implementation of shell_quote for Windows. It replaces every usage of pipes.quotes for shell_quote, and modifies the value of mcp_opt to use shell_quote and not %r.

This should fix the test Driver\working-directory.swift in the Windows Visual Studio 2017 builder.

+84 -46

20 comments

2 changed files

drodriguez

pr closed time in 10 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please test Linux platform

drodriguez

comment created time in 11 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please test Linux platform

drodriguez

comment created time in 11 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please smoke test Linux platform

drodriguez

comment created time in 11 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please smoke test

drodriguez

comment created time in 12 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

Removed the part that adds carets. Seems that Lit already does some massaging of the arguments, and the quoting I introduced was misbehaving with the one Lit implements. I tested having a space in my Python path, like it seems to happen in the build machine.

@swift-ci please test Windows platform

drodriguez

comment created time in 12 days

push eventdrodriguez/swift

Antoine Cœur

commit sha 4c30f8bd6de5487603ed645cc4dd2a2983f4f0ba

appendingPathComponent(:isDirectory:) should account for isDirectory

view details

Xiaodi Wu

commit sha 26cda274ca78b1df246521ba1eeea33285b57d5f

[stdlib] Simplify 'BinaryFloatingPoint.init?<T: BinaryFloatingPoint>(exactly: T)'

view details

Mike Ash

commit sha ece0399d601eec1069131f465bdbe7e16f4c6a50

[Runtime] Have ConcurrentReadableHashMap use 1-byte or 2-byte indices when possible.

view details

Alexis Laferrière

commit sha 14e6772dc04cf778ba393bebc21a0a8b8ada3603

Consider inherited platform unavailability to silence diagnostics rdar://68597591

view details

Arnold Schwaighofer

commit sha 8e8c57caf59f043b4046ad0df6e7c358bcac9903

SIL type lowering: Compute IsTypeExpansionSensitive and use it instead of TypeBase's hasOpaqueArchetypePropertiesOrCases A type is IsTypeExpansionSensitive if it contains an opaque result type that influences how the type is lowered. This could be because the type mentions an opaque archetype and therefore we would look through to the underlying type depending on the type expansion and could get a different SIL type. For example '() -> out some P' could lower to '() -> @out Int'. Or this could be because when we lower an aggregate type some of its fields are opaque types that could be looked through and therefore the aggregate has different lowering (e.g address vs. loadable) in different type expansion contexts. By replacing it this change also fixes an infinite recursion in hasOpaqueArchetypePropertiesOrCases. rdar://68798822

view details

Cassie Jones

commit sha e01893cb56f989b20ba4309286450105211f031e

[build-script] Add a flag for sccache This adds a flag to enable sccache in order to simplify the build-script invocation, particularly for new contributors.

view details

Cassie Jones

commit sha 6d92486c9a6ddc8b71f7c842d546ae3599be5c30

[build-script] Add SWIFT_ prefix to USE_SCCACHE env var

view details

Nate Chandler

commit sha 4cfadfae00f31fc66581ad270176e4916682bf51

[NFC] Documented IRGenFunction::IndirectReturn.

view details

Nate Chandler

commit sha 607772aaa21ce58db04236cb817b5958c72b2123

[Runtime] Stubbed entry points for task de/alloc.

view details

Cassie Jones

commit sha 7ef9b3287ab097ce2bdd1ab70f9ed9df20d39ff1

[build-script] Fix CMake sccache test

view details

Cassie Jones

commit sha b5247d2c8f9c4133ba165370d92370600cf67ece

Fix formatting issue

view details

Nate Chandler

commit sha 59bb1fc23592bcc4eb18bca32dcbff9de4b7e751

[Concurrency] Pass "async" into SILFunctionTypes. This reverts commit 3a48396110d2639d7b90970bc0369a559adbc0c1.

view details

Doug Gregor

commit sha e36011def493dceec79381f2e4a051f1f1e610fe

[Type checker] Delay the diagnosis of missing witnesses further. The handling of "global" missing witnesses would diagnose a missing witness (showing "almost" matches) and then, later, provide the Fix-It to add the declaration if the user wants it. Delay the diagnostic part until later, when we add the missing witness. While here, correct an existing issue with memory corruption that occurs because we would diagnose some of these witnesses, then clear a "global" witness list, while still iterating through parts of that list.

view details

Doug Gregor

commit sha fe4a8bb9f926684d2621fba13cc326580380bcbc

[Clang importer] Allow both sync and async imports with the same name. The Clang importer was filtering out cases where the same declaration is imported twice under the same name, which can now happen when one is synchronous and one is asynchronous. This happens when, e.g., an Objective-C class provides both a completion-hander-based asynchronous version and a synchronous version, and the Swift names line up after the completion-handler parameter is dropped. Stop filtering these out. Overload resolution is capable of handling synchronous/asynchronous overloading based on context.

view details

Doug Gregor

commit sha 50f870566a1a35b4073adb1bce078451790b74a5

Handle conformance with multiple protocol requirements with the same selector. When concurrency is enabled, the same Objective-C method on a protocol can be imported as two different protocol requirements, both of which have the same selector. When performing conformance checking, only treat a given @objc protocol requirement as "unsatisfied" by a conformance if none of the requirements with the same Objective-C selector (+ instance/class designation) are satisfied.

view details

Doug Gregor

commit sha 591e6e89e259818a8dd56bbba41057e776d92c8a

[Concurrency] Only infer @asyncHandler for witnesses within actor classes. Actor classes are by definition new code, so only perform inference of @asyncHandler from a protocol requirement to witnesses when those witnesses are within an actor class. This is partly because @asyncHandler might not have reasonable semantics outside of actor classes anywhere (where would you execute the detached task?), and partly because it is a source-compatibility problem due to the combination of... 1) Inferring @asyncHandler on imported Objective-C protocol methods for existing protocols, 2) Inferring @asyncHandler from those protocol methods to an existing method in a class that conforms to that protocol, and 3) Using an API that is now overloaded for both synchronous and asynchronous callers will end up preferring the asynchronous version, then fail due to a missing "await". The individual steps here are all reasonable, but the result is a source break, so back off on @asyncHandler inference for witnesses outside of actor classes. New code gets the more-asynchronous behavior for free.

view details

Doug Gregor

commit sha bb066b6fa68f06885c84838be7f7e264d70bc0e6

[Concurrency] Make actor-isolated protocol witnesses an error. With actor isolation checking for protocol witnesses moved out of the witness-matching phase, move the corresponding diagnostics from notes (that would have been on the "type does not conform" error) to freestanding errors.

view details

Butta

commit sha f7576a7bef5ca33c5598ad6b63a37f6d4c69aa98

[android] Add support for building the toolchain for ARMv7

view details

Slava Pestov

commit sha 989b825f9d2a2934db4ecb8087f0266879960702

Frontend: Disable parse-time name lookup by default

view details

Alexis Laferrière

commit sha 6c726647f26423bcc2953a934cb52efbc263d080

Merge pull request #34087 from xymus/inherit-unavailability [Sema] Consider inherited platform unavailability to silence diagnostics Unavailability inherited by a platform wasn't taken into account when reporting the use of unavailable types imported from Objective-C in unavailable code. This likely forced uses to write an explicit `@available(macCatalyst, unavailable)` even when a `@available(iOS, unavailable)` was present. rdar://68597591

view details

push time in 12 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

Do not merge yet. The Windows CI failed badly. I have to look and figure out what's happening in that machine (it is quite hard to get things right because I have to copy code back and forth between machines).

drodriguez

comment created time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please smoke test

drodriguez

comment created time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please test Windows platform

drodriguez

comment created time in 16 days

push eventdrodriguez/swift

Daniel Rodríguez Troitiño

commit sha 032626905f11912793ea3135720c00b44b0267b4

[windows] Avoid %r for quoting module-cache-path in Windows. %r returns a representation of the object that is valid Python syntax. For numbers and strings this representation is very compatible with Unix shells, but for Windows, the quoting performed by Python will not be compatible. For example the Windows path separator `\` will be escaped as `\\`, which is not necessary for Windows and might make some tests that try to match path fail. Python 3.3 has `shlex.quote`, which was previously available as `pipes.quote` in earlier Python versions. `pipes.quote` was indeed used in several points of the `lit.cfg` file. For Windows, one need to do their own quoting. This change introduces `shell_quote` which uses `shlex.quote` or `pipes.quote` in Unix depending on the Python version, and provides an implementation of `shell_quote` for Windows. It replaces every usage of `pipes.quotes` for `shell_quote`, and modifies the value of `mcp_opt` to use `shell_quote` and not `%r`. This should fix the test `Driver\working-directory.swift` in the Windows Visual Studio 2017 builder.

view details

push time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please smoke test

drodriguez

comment created time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please test Windows platform

drodriguez

comment created time in 16 days

push eventdrodriguez/swift

Daniel Rodríguez Troitiño

commit sha bb9660d7ec01f3b271c5ad8cd93616391d80fb0d

[windows] Avoid %r for quoting module-cache-path in Windows. %r returns a representation of the object that is valid Python syntax. For numbers and strings this representation is very compatible with Unix shells, but for Windows, the quoting performed by Python will not be compatible. For example the Windows path separator `\` will be escaped as `\\`, which is not necessary for Windows and might make some tests that try to match path fail. Python 3.3 has `shlex.quote`, which was previously available as `pipes.quote` in earlier Python versions. `pipes.quote` was indeed used in several points of the `lit.cfg` file. For Windows, one need to do their own quoting. This change introduces `shell_quote` which uses `shlex.quote` or `pipes.quote` in Unix depending on the Python version, and provides an implementation of `shell_quote` for Windows. It replaces every usage of `pipes.quotes` for `shell_quote`, and modifies the value of `mcp_opt` to use `shell_quote` and not `%r`. This should fix the test `Driver\working-directory.swift` in the Windows Visual Studio 2017 builder.

view details

push time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

So I think I understand why it works in the VS 2019 nodes: they have Python 3.7.5 installed (comes from Visual Studio from reading the logs), while the VS 2017 nodes have 3.8.5 (installed with Chocolatey).

For os.path.realpath the documentation says "Changed in version 3.8: Symbolic links and junctions are now resolved on Windows.". When LLVM Lit starts it does a realpath on the lit configuration path which gives T:\swift\test-windows-x86_64 in Python 3.7.5, but C:\jenkins\workspace\oss-swift-windows-x86_64\build\swift\test-windows-x86_64 in Python 3.8.5.

And then enter PathSanitizingFileCheck into the game: it provides both SOURCE_DIR and BUILD_DIR, but BUILD_DIR value comes from CMake, which doesn't do any realpath shenanigans, so when Python 3.8.5 uses paths like C:\jenkins\workspace\oss-swift-windows-x86_64\build\swift\test-windows-x86_64 as the build directory, PathSanitizingFileCheck still uses T:\swift as prefix, and do not matches both.

To put the cherry on top, if one uses realpath for the substitutions of BUILD_DIR, PathSanitizingFileCheck stops working because those paths where always using forward slashes, and realpath changes everything to forward slashes.

Since this problem will start appearing when the VS 2019 nodes update to Python 3.8.5, I don't think the solution is going back to 3.7.5 in the VS 2017 nodes, but the solution is not going to be pretty.

drodriguez

comment created time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

The problem now is that because the \ are not longer escaped. There are usages of Lit's SubstituteCaptures (https://github.com/apple/llvm-project/blob/1a6659f0e7add3f1c1f5352fbf5b9811bac1adfc/llvm/utils/lit/lit/TestingConfig.py#L167) that use string interpolation with the non-escaped values. Because those strings end up as replacement strings of a regular expression, they have to be escaped for the replacement string (easy to do with .replace('\\', '\\\\')).

But then the working-directory.swift test starts to fail for some reason (FML). It seems that the matching is performed against some output of the Swift driver, which outputs the jobs command lines escaped, but probably escaped for Unix. I have to circle back here. The fix for one particular test might be easier than this, even if this should be good in the long run.

I don't know, however, if the card castle of escaping and unescaping can ever be solved.

PD: I still don't understand why it works in Windows VS2019.

drodriguez

comment created time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please test Windows platform

drodriguez

comment created time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

Sorry. I run it in several of the test directories, but not all of them. It should have been s.replace(…) not re.replace(…).

@swift-ci please smoke test

drodriguez

comment created time in 16 days

push eventdrodriguez/swift

Daniel Rodríguez Troitiño

commit sha 26c436cc683f94e83c75ad1873af95ef925d6056

[windows] Avoid %r for quoting module-cache-path in Windows. %r returns a representation of the object that is valid Python syntax. For numbers and strings this representation is very compatible with Unix shells, but for Windows, the quoting performed by Python will not be compatible. For example the Windows path separator `\` will be escaped as `\\`, which is not necessary for Windows and might make some tests that try to match path fail. Python 3.3 has `shlex.quote`, which was previously available as `pipes.quote` in earlier Python versions. `pipes.quote` was indeed used in several points of the `lit.cfg` file. For Windows, one need to do their own quoting. This change introduces `shell_quote` which uses `shlex.quote` or `pipes.quote` in Unix depending on the Python version, and provides an implementation of `shell_quote` for Windows. It replaces every usage of `pipes.quotes` for `shell_quote`, and modifies the value of `mcp_opt` to use `shell_quote` and not `%r`. This should fix the test `Driver\working-directory.swift` in the Windows Visual Studio 2017 builder.

view details

push time in 16 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

I might replace every usage of %r at some point, but for now, let's introduce only one change at the time.

drodriguez

comment created time in 17 days

pull request commentapple/swift

[windows] Avoid %r for quoting module-cache-path in Windows.

@swift-ci please smoke test

drodriguez

comment created time in 17 days

create barnchdrodriguez/swift

branch : windows-percent-r-is-bad

created branch time in 17 days

PR opened apple/swift

Reviewers
[windows] Avoid %r for quoting module-cache-path in Windows.

%r returns a representation of the object that is valid Python syntax. For numbers and strings this representation is very compatible with Unix shells, but for Windows, the quoting performed by Python will not be compatible. For example the Windows path separator \ will be escaped as \\, which is not necessary for Windows and might make some tests that try to match path fail.

Python 3.3 has shlex.quote, which was previously available as pipes.quote in earlier Python versions. pipes.quote was indeed used in several points of the lit.cfg file. For Windows, one need to do their own quoting.

This change introduces shell_quote which uses shlex.quote or pipes.quote in Unix depending on the Python version, and provides an implementation of shell_quote for Windows. It replaces every usage of pipes.quotes for shell_quote, and modifies the value of mcp_opt to use shell_quote and not %r.

This should fix the test Driver\working-directory.swift in the Windows Visual Studio 2017 builder.

+32 -16

0 comment

1 changed file

pr created time in 17 days

delete branch drodriguez/swift

delete branch : windows-xfail-msvc-2017-test

delete time in 18 days

push eventapple/swift

Daniel Rodríguez Troitiño

commit sha fcb51dc9473b6cd75ef69c748981ddfb63db1b47

[windows] XFAIL crash-in-user-code test in MSVC 2017 See also #33383 where this problem is better explained. MSVC doesn't seem to trigger the exception code when no frame pointers are generated. The only thing missing would be for interpreted code to have a more informative crash message. Add a new LLVM Lit feature with the value of the VisualStudioVersion environment variable (it seems to not change even for minor versions, so it is an easy way to figure out the 2017/2019 difference, even if updates are applied). Use the new feature in a XFAIL check in the test.

view details

Daniel Rodríguez Troitiño

commit sha ded29c5be7d8b88437a5ce96bdbd3a7e971bfb39

Merge pull request #34143 from drodriguez/windows-xfail-msvc-2017-test [windows] XFAIL crash-in-user-code test in MSVC 2017

view details

push time in 18 days

PR merged apple/swift

[windows] XFAIL crash-in-user-code test in MSVC 2017

See also #33383 where this problem is better explained.

MSVC doesn't seem to trigger the exception code when no frame pointers are generated. The only thing missing would be for interpreted code to have a more informative crash message.

Add a new LLVM Lit feature with the value of the VisualStudioVersion environment variable (it seems to not change even for minor versions, so it is an easy way to figure out the 2017/2019 difference, even if updates are applied).

Use the new feature in a XFAIL check in the test.

+8 -2

6 comments

2 changed files

drodriguez

pr closed time in 18 days

pull request commentapple/swift

[windows] XFAIL crash-in-user-code test in MSVC 2017

Windows is failing because the LLDB problem (apple/llvm-project#1887 haven't made it yet to swift/master), so it will fail for that platform anyway.

drodriguez

comment created time in 19 days

pull request commentapple/swift

[windows] XFAIL crash-in-user-code test in MSVC 2017

@swift-ci please test

drodriguez

comment created time in 19 days

delete branch drodriguez/swift

delete branch : vs2017-frame-pointers

delete time in 19 days

PR closed apple/swift

Reviewers
IRGen: Override clang default frame pointer elimination settings in VS2017

In order to generate stack traces when exceptions happen, it seems that VS2017 needs of frame pointers in some of the functions. This recovers a small override that was present up to the introduction of #31986 but only for VS2017.

Without this change crash-in-user-code.swift test fails (because the output doesn't include the stack trace as provided by LLVM exception stack trace capturing), but the test passes with it. In order to not change VS2019 (or other compilers), which succeed at the test already, the fix is gated to only compile in VS2017.

+4 -0

3 comments

1 changed file

drodriguez

pr closed time in 19 days

pull request commentapple/swift

IRGen: Override clang default frame pointer elimination settings in VS2017

Abandoned in favor of #34143

drodriguez

comment created time in 19 days

PR opened apple/swift

Reviewers
[windows] XFAIL crash-in-user-code test in MSVC 2017

See also #33383 where this problem is better explained.

MSVC doesn't seem to trigger the exception code when no frame pointers are generated. The only thing missing would be for interpreted code to have a more informative crash message.

Add a new LLVM Lit feature with the value of the VisualStudioVersion environment variable (it seems to not change even for minor versions, so it is an easy way to figure out the 2017/2019 difference, even if updates are applied).

Use the new feature in a XFAIL check in the test.

+8 -2

0 comment

2 changed files

pr created time in 19 days

create barnchdrodriguez/swift

branch : windows-xfail-msvc-2017-test

created branch time in 19 days

delete branch drodriguez/swift

delete branch : android-disable-lto-test

delete time in 22 days

pull request commentapple/swift

[android] Disable a test that needs LTO support.

@swift-ci please test macOS platform

drodriguez

comment created time in 22 days

pull request commentapple/swift

[android] Disable a test that needs LTO support.

@swift-ci please test

drodriguez

comment created time in 23 days

PR opened apple/swift

[android] Disable a test that needs LTO support.

With Gold from the Android NDK setting up LTO is complicated, and the CI machines are not setup for it.

Disable this test in platforms that do not use LLD and LTO (which is basically Android with older NDKs).

+2 -0

0 comment

1 changed file

pr created time in 23 days

create barnchdrodriguez/swift

branch : android-disable-lto-test

created branch time in 23 days

delete branch drodriguez/swift

delete branch : windows-build-using-update-checkout

delete time in a month

push eventapple/swift

Daniel Rodríguez Troitiño

commit sha b664cce86adfbbc185b9d72fe828987fb0f5cf5a

[windows] Use update-checkout in build-windows.bat - Skip the creation of symlinks for the LLVM subprojects. Not needed anymore. - Use `update-checkout.cmd` instead of manually checking out git repositories. - Instead of the focused subset of repositories, `update-checkout` will check all of them, which is not ideal, but the machine network connection is good, so it should not add a lot of delay. - The repositories, however, are cloned without history, which should improve download a little. - Accept new environment variable `REPO_SCHEME` which is passed to update-checkout to be able to use this script for different branches by only changing an enironment variable in the CI server job configuration. By default uses `master` (which will need to be changed soon). - Pass the environment variable `ghprbCommentBody` as a `--github-comment` argument of `update-checkout`, which should checkout the provided PR from GitHub. - Fix the creation of the Clang module cache temporal directory. - Add `PYTHON_HOME` to the path, just in case it is not already there.

view details

Daniel Rodríguez Troitiño

commit sha 0aaade6b0d5b11de1ee4e6e45c9d1b6d4d3459bf

Merge pull request #33997 from drodriguez/windows-build-using-update-checkout [windows] Use update-checkout in build-windows.bat

view details

push time in a month

PR merged apple/swift

[windows] Use update-checkout in build-windows.bat
  • Skip the creation of symlinks for the LLVM subprojects. Not needed anymore.
  • Use update-checkout.cmd instead of manually checking out git repositories.
    • Instead of the focused subset of repositories, update-checkout will check all of them, which is not ideal, but the machine network connection is good, so it should not add a lot of delay.
    • The repositories, however, are cloned without history, which should improve download a little.
  • Accept new environment variable REPO_SCHEME which is passed to update-checkout to be able to use this script for different branches by only changing an enironment variable in the CI server job configuration. By default uses master (which will need to be changed soon).
  • Pass the environment variable ghprbCommentBody as a --github-comment argument of update-checkout, which should checkout the provided PR from GitHub.
  • Fix the creation of the Clang module cache temporal directory.
  • Add PYTHON_HOME to the path, just in case it is not already there.

@compnerd: check if the change around CUSTOM_CLANG_MODULE_CACHE makes sense, or was intentional. I can discard that line.

@shahmishal: This is difficult to check by myself, so accept my apologies if something goes wrong. The REPO_SCHEME change is something that would need to be changed in the Jenkins configuration (the same that we set CMAKE_BUILD_TYPE and PYTHON_HOME). With the current default no changes are necessary, but after the 22nd it should be provided (and/or default changed in the script). If I understand Jenkins documentation correctly ghprbCommentBody should be provided automatically to the PR builds (we can create a bogus PR in some other repository if we want to check before merging).

Deals with https://bugs.swift.org/browse/SR-13565

+29 -13

16 comments

1 changed file

drodriguez

pr closed time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

Merging this to be prepared for tomorrow. I will try to be vigilant of the builds/email/Slack tonight in case something goes wrong, but let's cross fingers everything is OK.

drodriguez

comment created time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

@swift-ci please test

drodriguez

comment created time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

The last changes silence even more the output of update-checkout (there's a big loss of the final message with the commits of every repo, though). I might be able to work a little into the update-checkout script to make it more configurable later, but this is the best we can do with the current version.

It also removes a lot of repositories from the checkout, which hopefully improves the build speed back to where it was before. As we build more and more code, those skipped repositories can be removed and we will only pay for what we need.

drodriguez

comment created time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

@swift-ci please test Windows platform

drodriguez

comment created time in a month

push eventdrodriguez/swift

Daniel Rodríguez Troitiño

commit sha b664cce86adfbbc185b9d72fe828987fb0f5cf5a

[windows] Use update-checkout in build-windows.bat - Skip the creation of symlinks for the LLVM subprojects. Not needed anymore. - Use `update-checkout.cmd` instead of manually checking out git repositories. - Instead of the focused subset of repositories, `update-checkout` will check all of them, which is not ideal, but the machine network connection is good, so it should not add a lot of delay. - The repositories, however, are cloned without history, which should improve download a little. - Accept new environment variable `REPO_SCHEME` which is passed to update-checkout to be able to use this script for different branches by only changing an enironment variable in the CI server job configuration. By default uses `master` (which will need to be changed soon). - Pass the environment variable `ghprbCommentBody` as a `--github-comment` argument of `update-checkout`, which should checkout the provided PR from GitHub. - Fix the creation of the Clang module cache temporal directory. - Add `PYTHON_HOME` to the path, just in case it is not already there.

view details

push time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

So JIRA didn't seem to update the status here, but https://ci-external.swift.org/view/Pull%20Request/job/swift-PR-windows/7283/ is the one from the last changes. It is still 37 minutes (+~23%), so the output is not the main reason why this is slower.

drodriguez

comment created time in a month

Pull request review commentapple/swift

[windows] Use update-checkout in build-windows.bat

 
 setlocal enableextensions enabledelayedexpansion
 
+if not defined REPO_SCHEME SET REPO_SCHEME=master

I will try, but Windows batch scripts are not the most flexible thing in the world.

drodriguez

comment created time in a month

PullRequestReviewEvent

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

So I thought the update-script will have a little bit more control over what's printed, but it seems to be almost all or nothing. Luckily the really verbose output seems to go into the stderr, so I can disable that and not the informative output from Git (but we can also skip that, but I think it might be helpful).

I haven't made more changes (skipping more repos and other stuff). If someone wants those, we can still do them.

@swift-ci please test Windows platform

drodriguez

comment created time in a month

push eventdrodriguez/swift

Daniel Rodríguez Troitiño

commit sha 1b220d13c94fb2745d86792369125f1a8bab7468

[windows] Use update-checkout in build-windows.bat - Skip the creation of symlinks for the LLVM subprojects. Not needed anymore. - Use `update-checkout.cmd` instead of manually checking out git repositories. - Instead of the focused subset of repositories, `update-checkout` will check all of them, which is not ideal, but the machine network connection is good, so it should not add a lot of delay. - The repositories, however, are cloned without history, which should improve download a little. - Accept new environment variable `REPO_SCHEME` which is passed to update-checkout to be able to use this script for different branches by only changing an enironment variable in the CI server job configuration. By default uses `master` (which will need to be changed soon). - Pass the environment variable `ghprbCommentBody` as a `--github-comment` argument of `update-checkout`, which should checkout the provided PR from GitHub. - Fix the creation of the Clang module cache temporal directory. - Add `PYTHON_HOME` to the path, just in case it is not already there.

view details

push time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

Hmm, one thing to actually consider - the build took ~133% of the usual time. I think that we should consider making it quiet by default - especially because the Windows console is way slower than the Unix consoles, and we want to add a number of additional targets (i.e. Foundation, XCTest, swift-llbuild, Yams, swift-argument-parser, swift-driver, swift-package-manager). The additional ~10m is sufficient to build Foundation (or to build XCTest, Yams, swift-argument-parser).

I really hope the 133% is not just printing the output of update-checkout to the console, but it might be part. I am thinking that it might be mostly because how much we checkout. We can include more --skip-repository arguments for things that the Windows build doesn't need yet. I thought that --skip-history will remove most of the checkout time, but it seems that the story is only skipped during the clone, and the update repositories step picks up many branches and tags that weren't grab before. This is a lot more download time (and small-ish file creation time) that we weren't incurring before.

Since update-checkout is tested and proven (other platforms use it all the time), I think it is OK to silence it. I will try to update the script it to try to silence its output. If any other change is desired, we can also make those changes.

drodriguez

comment created time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

Seems that there was a good update-checkout in that last one (https://ci-external.swift.org/view/Pull%20Request/job/swift-PR-windows/7271/console). The output is a little verbose, but once this is rolling, we can silence it a little bit to avoid the noise. Hopefully it will work until the end (the rest of the changes are less disruptive).

drodriguez

comment created time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

@swift-ci please test Windows platform

drodriguez

comment created time in a month

push eventdrodriguez/swift

Daniel Rodríguez Troitiño

commit sha 834ea61d48c75636b226d5a74d84789718bbce90

[windows] Use update-checkout in build-windows.bat - Skip the creation of symlinks for the LLVM subprojects. Not needed anymore. - Use `update-checkout.cmd` instead of manually checking out git repositories. - Instead of the focused subset of repositories, `update-checkout` will check all of them, which is not ideal, but the machine network connection is good, so it should not add a lot of delay. - The repositories, however, are cloned without history, which should improve download a little. - Accept new environment variable `REPO_SCHEME` which is passed to update-checkout to be able to use this script for different branches by only changing an enironment variable in the CI server job configuration. By default uses `master` (which will need to be changed soon). - Pass the environment variable `ghprbCommentBody` as a `--github-comment` argument of `update-checkout`, which should checkout the provided PR from GitHub. - Fix the creation of the Clang module cache temporal directory. - Add `PYTHON_HOME` to the path, just in case it is not already there.

view details

push time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

@swift-ci please test Windows platform

drodriguez

comment created time in a month

push eventdrodriguez/swift

Daniel Rodríguez Troitiño

commit sha eb514c007aee5350e10e129de7253588fb36bb07

[windows] Use update-checkout in build-windows.bat - Skip the creation of symlinks for the LLVM subprojects. Not needed anymore. - Use `update-checkout.cmd` instead of manually checking out git repositories. - Instead of the focused subset of repositories, `update-checkout` will check all of them, which is not ideal, but the machine network connection is good, so it should not add a lot of delay. - The repositories, however, are cloned without history, which should improve download a little. - Accept new environment variable `REPO_SCHEME` which is passed to update-checkout to be able to use this script for different branches by only changing an enironment variable in the CI server job configuration. By default uses `master` (which will need to be changed soon). - Pass the environment variable `ghprbCommentBody` as a `--github-comment` argument of `update-checkout`, which should checkout the provided PR from GitHub. - Fix the creation of the Clang module cache temporal directory. - Add `PYTHON_HOME` to the path, just in case it is not already there.

view details

push time in a month

pull request commentapple/swift

[windows] Use update-checkout in build-windows.bat

@swift-ci please test Windows platform

drodriguez

comment created time in a month

PR opened apple/swift

Reviewers
[windows] Use update-checkout in build-windows.bat
  • Skip the creation of symlinks for the LLVM subprojects. Not needed anymore.
  • Use update-checkout.cmd instead of manually checking out git repositories.
    • Instead of the focused subset of repositories, update-checkout will check all of them, which is not ideal, but the machine network connection is good, so it should not add a lot of delay.
    • The repositories, however, are cloned without history, which should improve download a little.
  • Accept new environment variable REPO_SCHEME which is passed to update-checkout to be able to use this script for different branches by only changing an enironment variable in the CI server job configuration. By default uses master (which will need to be changed soon).
  • Pass the environment variable ghprbCommentBody as a --github-comment argument of update-checkout, which should checkout the provided PR from GitHub.
  • Fix the creation of the Clang module cache temporal directory.

@compnerd: check if the change around CUSTOM_CLANG_MODULE_CACHE makes sense, or was intentional. I can discard that line.

@shahmishal: This is difficult to check by myself, so accept my apologies if something goes wrong. The REPO_SCHEME change is something that would need to be changed in the Jenkins configuration (the same that we set CMAKE_BUILD_TYPE and PYTHON_HOME). With the current default no changes are necessary, but after the 22nd it should be provided (and/or default changed in the script). If I understand Jenkins documentation correctly ghprbCommentBody should be provided automatically to the PR builds (we can create a bogus PR in some other repository if we want to check before merging).

+7 -13

0 comment

1 changed file

pr created time in a month

create barnchdrodriguez/swift

branch : windows-build-using-update-checkout

created branch time in a month

push eventdrodriguez/swift

Slava Pestov

commit sha 6c15aad32cdb27fa03a69ab6d9c1d391aed7c9f2

Sema: Remove NameLookupFlags::IncludeAttributeImplements

view details

Slava Pestov

commit sha 3372b7153dae6517b650926e756e923884a47926

Sema: Remove NameLookupFlags::DynamicLookup

view details

Slava Pestov

commit sha b26abf78c2bd9e5598b40f302f2e3f47a12c9560

Sema: Remove NameLookupFlags::ProtocolMembers

view details

HassanElDesouky

commit sha b482de01c0807c7429c939479e6c9c811063bed3

[Localization] Mirror the messages' changes in `.def` files

view details

Michael Gottesman

commit sha 17e70c859b2945817a197a2b729f098da776acd2

Merge pull request #33521 from gottesmm/pr-7a2a579a88e478b1653f746f5ec8486f2ca38fa6 [opt-remark] Re-enable test case removing even more stdlib specific type names.

view details

swift_jenkins

commit sha 20c1064d42ec0223b48d4b07f2739bea2007ebfb

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

Pavel Yaskevich

commit sha a12ac414a1ec60654f9864a3448bb374f7987704

Merge pull request #33509 from xedin/rdar-65320500 [FunctionBuilders] Implement graceful handling of pre-check failures

view details

Michael Gottesman

commit sha cf7c237489f71c8fba3f8d5118c79e068494db04

[build-toolchain] Add support for specifying a preset file.

view details

Michael Gottesman

commit sha 479a148c2325ac58f911ab1d9df925b29a8c3d4e

[build-toolchain] Add the ability to specify a prefix to prepend to the specific toolchain preset invoked.

view details

swift_jenkins

commit sha d2f3633bedc7e2ead800b472884743269210d5c0

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

Michael Gottesman

commit sha f756cc154da064b4f0637b81ee1fe5369a311def

[build-presets.ini] Extract out osx_package no test into a mixin so we match how presets are setup for snapshots on Linux. More importantly, it will allow for downstream projects to cascade on top of snapshot no-test scheme, ensuring that as we modify/add projects, these other downstream things will keep working. The actual change here is NFC since I just extracted the preset.

view details

Michael Gottesman

commit sha 615140c279389ea0d3c37cc51794b65df06c5a7b

Merge pull request #33524 from gottesmm/pr-4bbf9f051aa3180571b8238e3cb830bd4d0696c3 [build-toolchain] Add support for specifying a preset file.

view details

swift_jenkins

commit sha c40bcb3c56cf8b2cc5c46e482173ed330bb8e696

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

Artem Chikin

commit sha 342f3dd2f6a22e5dc3f13eee2499e8a375dbd419

Merge pull request #33281 from artemcm/SwiftDriverInCI [build-preset] Add swift-driver to CI builder presets

view details

swift_jenkins

commit sha df3cb9b1727e27d6ef3544f0bedeb222493433ef

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

Saleem Abdulrasool

commit sha c8e3b949ca76a620fd3e7f58111cb092f680109b

build: add the temporary workaround to Swift and lldb as well Ensure that we can build with the older toolchain when building Swift and LLVM as well.

view details

Alexis Laferrière

commit sha bf25a017013e4d3c87a9abbb7b8b067e1eb985b2

Revert "[Serialization] Serialize isUserAccessible on functions" This reverts commit f523c8875459d6cd950fdbfefc6ab593ced876c0.

view details

Pavel Yaskevich

commit sha 315df90e661a474a0f82d4f623e44bd97552b82c

Merge pull request #33523 from HassanElDesouky/mirror-diagnostics [Localization] NFC: Mirror the changes in diagnostic messages in `.def` files

view details

swift_jenkins

commit sha f83c17617be94d579937838291dbf3b83ceccfd2

Merge remote-tracking branch 'origin/master' into master-rebranch

view details

Xi Ge

commit sha c0bc8ecf06e6ce8ba9ee45bd75d845fd818bffb9

Merge pull request #33522 from nkcsgexi/67269210 Frontend: add a new action -scan-clang-dependencies to scan a PCM's dependencies

view details

push time in a month

push eventdrodriguez/swift

push time in a month

delete branch drodriguez/swift

delete branch : android-armv7-xfail-opt-remark-generator

delete time in 2 months

push eventapple/swift

Daniel Rodríguez Troitiño

commit sha a0333a4e370fbdf386a67d980e93bc524f97b532

[android] XFAIL opt-remark-generator.swift in ARMv7 Android ARMv7 doesn't seem to simplify the remarks from Optional<SubKlass> to just SubKlass, while other platforms do. I did not find any clues in #33171 what it might be happening, so XFAIL the test to avoid a failing build.

view details

Daniel Rodríguez Troitiño

commit sha bd1e23cf4fed9565465ad4cb40ebb4b2afdc92cd

Merge pull request #33500 from drodriguez/android-armv7-xfail-opt-remark-generator [android] XFAIL opt-remark-generator.swift in ARMv7

view details

push time in 2 months

PR merged apple/swift

Reviewers
[android] XFAIL opt-remark-generator.swift in ARMv7

Android ARMv7 doesn't seem to simplify the remarks from Optional<SubKlass> to just SubKlass, while other platforms do.

I did not find any clues in #33171 what it might be happening, so XFAIL the test to avoid a failing build.

+2 -0

5 comments

1 changed file

drodriguez

pr closed time in 2 months

pull request commentapple/swift

[android] XFAIL opt-remark-generator.swift in ARMv7

@swift-ci please test macos platform

drodriguez

comment created time in 2 months

delete branch drodriguez/swift

delete branch : android-32-readobj-format-change-master-next

delete time in 2 months

delete branch drodriguez/swift

delete branch : android-32-readobj-format-change

delete time in 2 months

pull request commentapple/swift

[android] XFAIL opt-remark-generator.swift in ARMv7

@swift-ci please test macos platform

drodriguez

comment created time in 2 months

create barnchdrodriguez/swift

branch : android-32-readobj-format-change-master-next

created branch time in 2 months

PR opened apple/swift

Reviewers
[android] Adapt test to upstream readobj output change.

This is a change that will be necessary for master-next. readobj seems to report elf32-littlearm when compiling for Android ARMv7.

This is similar to commit f7cf5bde468e29ebe8239fbea53af39e7ecf4f5d which is still available in master-next, but I think was (mistakenly) reverted with #32265.

(cherry picked from commit 80135c913a43ee9c6a05d1f81698acf2be927171)

As requested in https://github.com/apple/swift/pull/33382#issuecomment-671470602

+1 -1

0 comment

1 changed file

pr created time in 2 months

pull request commentapple/swift

[android] XFAIL opt-remark-generator.swift in ARMv7

@swift-ci please test

drodriguez

comment created time in 2 months

PR opened apple/swift

Reviewers
[android] XFAIL opt-remark-generator.swift in ARMv7

Android ARMv7 doesn't seem to simplify the remarks from Optional<SubKlass> to just SubKlass, while other platforms do.

I did not find any clues in #33171 what it might be happening, so XFAIL the test to avoid a failing build.

+2 -0

0 comment

1 changed file

pr created time in 2 months

create barnchdrodriguez/swift

branch : android-armv7-xfail-opt-remark-generator

created branch time in 2 months

push eventapple/swift

Daniel Rodríguez Troitiño

commit sha 80135c913a43ee9c6a05d1f81698acf2be927171

[android] Adapt test to upstream readobj output change. This is a change that will be necessary for master-next. readobj seems to report elf32-littlearm when compiling for Android ARMv7. This is similar to commit f7cf5bde468e29ebe8239fbea53af39e7ecf4f5d which is still available in master-next, but I think was (mistakenly) reverted with #32265.

view details

Daniel Rodríguez Troitiño

commit sha 893c6b2cde4e80b526b4db03ff3dd7385ab34555

Merge pull request #33382 from drodriguez/android-32-readobj-format-change [android] Adapt test to upstream readobj output change.

view details

push time in 2 months

PR merged apple/swift

Reviewers
[android] Adapt test to upstream readobj output change.

This is a change that will be necessary for master-next. readobj seems to report elf32-littlearm when compiling for Android ARMv7.

This is similar to commit f7cf5bde468e29ebe8239fbea53af39e7ecf4f5d which is still available in master-next, but I think was (mistakenly) reverted with #32265.

+1 -1

4 comments

1 changed file

drodriguez

pr closed time in 2 months

pull request commentapple/swift

[android] Adapt test to upstream readobj output change.

@drodriguez - #32265 is a merge from tensorflow-stage to tensorflow, it doesn't make it on to master, I think it might be another commit that accidentally removed it?

Sorry for the confusion. The specific commit that seems to modify it in master is https://github.com/apple/swift/commit/68351d21105d8bce516ce2108b87444526b54694#diff-171aac7a81fe9fa36089f1518b088dee, which Github associates with that PR.

Can you also cherry-pick this to master-next and master-rebranch?

I will. I was under the impression that this branch was periodically merged there, but I will create new PRs for those branches as soon as I can.

drodriguez

comment created time in 2 months

pull request commentapple/swift

IRGen: Override clang default frame pointer elimination settings in VS2017

I'm not sure I like this solution too much. I think that it might be better to just XFAIL the test on VS2017. This basically is paying runtime costs for a test.

While it might look like that, people that run VS2017 will also not see backtraces when the tools hit an exception, and will miss interesting information to report like the command line parameters. I understand that everyone is affected, but one cannot know when an exception will happen, so everyone needs to be considered suspicious.

Also, can we actually XFAIL depending on the compiler? Is there an example of that? Or would that mean changes to inject such information into the test system?

Also, if someone directs me to how to do it, this might only affect to programs that are interpreted (it is a crash in user code, not in the compiler code). If someone knows if the IRGenModule can know if it is being used for interpret mode, that would reduce the affected area a lot.

drodriguez

comment created time in 2 months

PR opened apple/swift

Reviewers
IRGen: Override clang default frame pointer elimination settings in VS2017

In order to generate stack traces when exceptions happen, it seems that VS2017 needs of frame pointers in some of the functions. This recovers a small override that was present up to the introduction of #31986 but only for VS2017.

Without this change crash-in-user-code.swift test fails (because the output doesn't include the stack trace as provided by LLVM exception stack trace capturing), but the test passes with it. In order to not change VS2019 (or other compilers), which succeed at the test already, the fix is gated to only compile in VS2017.

+4 -0

0 comment

1 changed file

pr created time in 2 months

create barnchdrodriguez/swift

branch : vs2017-frame-pointers

created branch time in 2 months

create barnchdrodriguez/swift

branch : android-32-readobj-format-change

created branch time in 2 months

PR opened apple/swift

Reviewers
[android] Adapt test to upstream readobj output change.

This is a change that will be necessary for master-next. readobj seems to report elf32-littlearm when compiling for Android ARMv7.

This is similar to commit f7cf5bde468e29ebe8239fbea53af39e7ecf4f5d which is still available in master-next, but I think was (mistakenly) reverted with #32265.

+1 -1

0 comment

1 changed file

pr created time in 2 months

Pull request review commentapple/swift

[opt-remark] Print out the type when we retain/release.

 func castAsQuestionDiamondGEP(x: KlassPair) -> SubKlass? {      y.doSomething()     // We eliminate the rhs retain/release.-    return y // expected-remark {{retain}}+    return y // expected-remark {{retain of type 'Klass'}}              // expected-note @-8:31 {{of 'x.lhs'}} }  // We don't handle this test case as well. func castAsQuestionDiamondGEP2(x: KlassPair) {-    switch (x.lhs as? SubKlass, x.rhs as? SubKlass) { // expected-remark @:19 {{retain}}+    switch (x.lhs as? SubKlass, x.rhs as? SubKlass) { // expected-remark @:19 {{retain of type 'Klass'}}                                                       // expected-note @-2 {{of 'x.lhs'}}-                                                      // expected-remark @-2:39 {{retain}}+                                                      // expected-remark @-2:39 {{retain of type 'Klass'}}                                                       // expected-note @-4 {{of 'x.rhs'}}     case let (.some(x1), .some(x2)):-        print(x1, x2) // expected-remark {{retain}}-                      // expected-remark @-1 {{retain}}-                      // expected-remark @-2 {{release}}-                      // expected-remark @-3 {{release}}-                      // expected-remark @-4 {{release}}+        print(x1, x2) // expected-remark {{retain of type 'Optional<SubKlass>'}}+                      // expected-remark @-1 {{retain of type 'Optional<SubKlass>'}}+                      // expected-remark @-2 {{release of type}}+                      // expected-remark @-3 {{release of type 'Optional<SubKlass>'}}+                      // expected-remark @-4 {{release of type 'Optional<SubKlass>'}}     case let (.some(x1), nil):-        print(x1) // expected-remark {{retain}}-                  // expected-remark @-1 {{release}}-                  // expected-remark @-2 {{release}}+        print(x1) // expected-remark {{retain of type 'SubKlass'}}

Hi @gottesmm,

Since the introduction of these changes the Android ARMv7 CI has been failing. The problem is this message and the similar message below for x2. Instead of retain of type 'SubKlass' I see retain of type 'Optional<SubKlass>' (like the one in line 191 above). This only happens in ARMv7, and not AArch64, so it can be a difference in 32 bits vs. 64 bits. I have also seen cases in which Android ARMv7 seems to not apply some optimizations that AArch64 does.

I know it is a strange question, but do you have any idea of what can be happening here? If there's an easy fix it would be great to apply it. Otherwise I might XFAIL the test.

Thanks!

gottesmm

comment created time in 2 months

more