profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/LucianoPAlmeida/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Luciano Almeida LucianoPAlmeida @aisdigital Brasília, Brazil (UTC-3) https://medium.com/@lucianoalmeida1 Software Engineer at @aisdigital 🇧🇷

apple/swift 57298

The Swift Programming Language

GitHawkApp/GitHawk 2802

The (second) best iOS app for GitHub.

AppCivicoPlataforma/AppCivico 128

Documentação de Endpoints para acesso à plataforma de AppCivicos do TCU.

aisdigital/dotNETRestfulChallenge 2

Ília Digital C#/RESTFul API Challenge.

LucianoPAlmeida/-Distributed-Systems- 1

Project for college discipline of Distributed Systems

aisdigital/pagarme-ios 0

Pagar.me's iOS API

startednikitamounier/tapit-app

started time in a day

PublicEvent

push eventLucianoPAlmeida/strings

LucianoAlmeida

commit sha 451f9ad91f7a42183464b479340dd7b9f723c5cd

[NFC] Minimal improvements

view details

push time in 3 days

startedrockbruno/RouterService

started time in 4 days

startedxtensor-stack/xsimd

started time in 5 days

pull request commentapple/swift

[Compiler] add 'value' label for `NSNumber` to prevent roundabout err…

@swift-ci Please smoke test MacOS Platform

JiarenWang

comment created time in 5 days

pull request commentapple/swift

[Compiler] add 'value' label for `NSNumber` to prevent roundabout err…

@swift-ci Please test macOS platform

JiarenWang

comment created time in 5 days

pull request commentapple/swift

[Compiler] add 'value' label for `NSNumber` to prevent roundabout err…

@swift-ci please test macOS platform

JiarenWang

comment created time in 5 days

delete branch LucianoPAlmeida/swift

delete branch : set-improvements

delete time in 5 days

push eventapple/swift

LucianoAlmeida

commit sha 00cb1c5330c74eb6677e3fef78fd8cf613ae7d22

[stdlib] Improve set isDisjoint by iterating on smaller set

view details

Luciano Almeida

commit sha 50a18173e6427bb96c18eac83c3c2888f94365c3

Merge pull request #39263 from LucianoPAlmeida/set-improvements [stdlib] Improve set isDisjoint by iterating on smaller set

view details

push time in 5 days

PR merged apple/swift

[stdlib] Improve set isDisjoint by iterating on smaller set

<!-- What's in this pull request? --> Just a small improvement in Set.isDisjoint by iterating on smaller set.

<!-- Before merging this pull request, you must run the Swift continuous integration tests. For information about triggering CI builds via @swift-ci, see: https://github.com/apple/swift/blob/master/docs/ContinuousIntegration.md#swift-ci

Thank you for your contribution to Swift! -->

+9 -1

14 comments

1 changed file

LucianoPAlmeida

pr closed time in 5 days

pull request commentapple/swift

[stdlib] Improve set isDisjoint by iterating on smaller set

Yeah, by looking into this compiler explorer(link here) is interesting to see that the version in the previous

# previous
output.f1(s1: Swift.Set<Swift.Int>, s2: Swift.Set<Swift.Int>) -> Swift.Bool:
        mov     rax, rdi
        mov     rcx, qword ptr [rdi + 16]
        cmp     rcx, qword ptr [rsi + 16]
        jae     .LBB6_2
        mov     rdi, rax
        jmp     (generic specialization <Swift.Int, Swift.Set<Swift.Int>> of (extension in output):Swift.Set._isDisjoint1<A where A == A1.Element, A1: Swift.Sequence>(with: A1) -> Swift.Bool)
.LBB6_2:
        mov     rdi, rsi
        mov     rsi, rax
        jmp     (generic specialization <Swift.Int, Swift.Set<Swift.Int>> of (extension in output):Swift.Set._isDisjoint1<A where A == A1.Element, A1: Swift.Sequence>(with: A1) -> Swift.Bool)

# this
output.f2(s1: Swift.Set<Swift.Int>, s2: Swift.Set<Swift.Int>) -> Swift.Bool:
        mov     rax, rdi
        mov     rdi, rsi
        mov     rsi, rax
        jmp     (generic specialization <Swift.Int> of (extension in output):Swift.Set.isDisjoint2(with: Swift.Set<A>) -> Swift.Bool)

the difference is basically that for the previous version two branches calling the _isDisjoint function, which is fine but the problem would be if the optimizer decides to inline them, then this increases code size. I experimented with that by making _isDisjoint a @inline(__always) to see (link here) and we can see indeed how the _isDisjoint call is inlined on the two branches.

So I think it would be fine to just go with this version :)

LucianoPAlmeida

comment created time in 5 days

pull request commentapple/swift

[stdlib] Improve set isDisjoint by iterating on smaller set

@swift-ci Please test Windows Platform

LucianoPAlmeida

comment created time in 5 days

pull request commentapple/swift

[stdlib] Improve set isDisjoint by iterating on smaller set

@swift-ci Please test Linux Platform

LucianoPAlmeida

comment created time in 5 days

pull request commentapple/swift

[stdlib] Improve set isDisjoint by iterating on smaller set

Improvement | OLD | NEW | DELTA | RATIO Set.isDisjoint.Smaller.Box0 | 758 | 284 | -62.5% | 2.67x Set.isDisjoint.Smaller.Int0 | 362 | 149 | -58.8% | 2.43x Set.isDisjoint.Box.Empty | 147 | 80 | -45.6% | 1.84x Set.isDisjoint.Int.Empty | 126 | 74 | -41.3% | 1.70x DictionaryOfAnyHashableStrings_lookup | 4032 | 3720 | -7.7% | 1.08x (?)

Now the new benchmarks can show the improvements =]

LucianoPAlmeida

comment created time in 6 days

startedAngeloCasi/FUGU-ARDUINO-MPPT-FIRMWARE

started time in 6 days

pull request commentapple/swift

[stdlib] Improve set isDisjoint by iterating on smaller set

@swift-ci Please benchmark

LucianoPAlmeida

comment created time in 6 days

push eventLucianoPAlmeida/swift

LucianoAlmeida

commit sha c3c1e6df8df638632a054bf9df2f30751f2db759

[Benchmarks][stdlib] Adding an extra benchmark for set isDisjoint for disjoint sets of different size

view details

Doug Gregor

commit sha 5b027ca456bd4fdda36f7c2769d55ab102d6e24c

Back-deploy creation of global-actor-qualified function type metadata. When back-deploying, create global-actor-qualified function types via a separate entrypoint (`swift_getFunctionTypeMetadataGlobalActorBackDeploy`) in the compatibility library, which checks whether it is running with a new-enough runtime to use `swift_getFunctionTypeMetadataGlobalActor`. Failing that, it calls into a separate copy of the implementation that exists only in the back-deployed concurrency library. Fixes rdar://79153988.

view details

Nate Chandler

commit sha d002471784f911eef5dfcb9a1af36fe67e164bfa

Added -enable-experimental-defined-lifetimes. The new flag will guard work on the experimental implementation of tracking lexical lifetimes in SIL.

view details

Nate Chandler

commit sha a0c47cb32eb1d5d5c40900f2456b3e95e17b5e52

[SILGen] Emitted [defined] borrow scopes for lets. When -enable-experimental-defined-lifetimes is passed, SILGen emits lexical scopes for lets.

view details

Doug Gregor

commit sha 128257f83fcf8f4ff376279f040b5a0c7cfa31d5

Consistently use `dlsym` for finding global-actor-qualified function builder

view details

Doug Gregor

commit sha a71cd56134c113e6ec8e36ada4792a3a43d4e04a

[Test] Define concurrency_runtime feature when the concurrency runtime is there `concurrency_runtime` covers all three cases of the concurrency runtime being available: * Build locally and we're using that version * Guaranteed available in the OS (e.g., run OS is macOS >= 12, iOS >= 15, etc.) * Available via back-deployment libraries (macOS >= 10.15, iOS >= 13, etc.)

view details

Doug Gregor

commit sha 3ee09a2298f6fbd2dee38caec643e1272de85d3f

Switch concurrency runtime tests to "REQUIRES: concurrency_runtime" Rather than blanket-disabling concurrency tests when we aren't using a just-built concurrency library, enable them whenever we have a suitable concurrency runtime, either just-built, in the OS, or via the back-deployment libraries.

view details

Doug Gregor

commit sha d6a0b937e40171c7c360acfdf1a909abf04d89ee

Add test for `@Sendable` inference through an optional type. We previously had a bug where `@Sendable` would not be propagated to a closure when that closure was assigned to a property or passed to a parameter of optional `@Sendable` function type. This has already been fixed in the type checker, but add a test to ensure that we don't regress this behavior. rdar://77789778

view details

Doug Gregor

commit sha 136a40aaadfb1a7873c1ffbd4e0c0a3218b71767

Use private concurrent queues for back-deployed concurrency. Older Dispatch versions have width-limited concurrent queues. While not as good as the newly-introduced cooperative queues, they at least address the thread-explosion problem, so use them in the back-deployed concurrency libraries. Implements rdar://81131034.

view details

Boris Bügling

commit sha 3053e6de67a55bfb9294c2d60d38682e732e6be0

Fix TOC entry for Linux in GettingStarted The TOC was referencing a no longer existing "Ubuntu Linux" section.

view details

Alexis Laferrière

commit sha c38d1773d23fccb6fb3bc5d885d7aee2380cf4eb

[Serialization] Restrict loading swiftmodule files to the builder's SDK Serialize the canonical name of the SDK used when building a swiftmodule file and use it to ensure that the swiftmodule file is loaded only with the same SDK. The SDK name must be passed down from the frontend. This will report unsupported configurations like: - Installing roots between incompatible SDKs without deleting the swiftmodule files. - Having multiple targets in the same project using different SDKs. - Loading a swiftmodule created with a newer SDK (and stdlib) with an older SDK. All of these lead to hard to investigate deserialization failures and this change should detect them early, before reaching a deserialization failure. rdar://78048939

view details

Alexis Laferrière

commit sha bccea96fccfa1fc132aa8730a3ca0b0015fa98dd

[Test] Use -parse-stdlib to avoid loading an incompatible stdlib Tests using a mock SDK can't load the stdlib of the normal SDK (or the just-built one) with the recent changes. Use `-parse-stdlib` in those tests to prevent loading the stdlib implicitly.

view details

Alexis Laferrière

commit sha 51cec860852c8cf5b009fc8ba9865234bcc1ffa7

[APIDigester] Don't check whether the stdlib was built for a different SDK The API digester forces loading the stdlib which may pick up an stdlib from a different SDK than the one being tested. Disable the check enforcing loading only swiftmodules built for the same SDK.

view details

Nate Chandler

commit sha b57b222b54015d7d38601954ffd2084d2144621b

[SIL] Added lexical flag to alloc_stack. The new flag will be used to track whether a borrow scope corresponds to a source-level lexical scope. Here, the flag is just documented, added to the instruction, represented in textual and serialized SIL, and cloned.

view details

Joe Groff

commit sha 4fb2d07b2513b599cc546a4f327984f968f00670

Refactor IsBindableVisitor's handling of generic nominals. In order to correctly handle upper bound requirements arising from conditional conformances, we need to be able to ingest requirements introduced by conditional conformance extensions, which means recursively visiting the parent is no longer possible to do cleanly. It is simpler to substitute the generic type's entire generic context as a whole.

view details

Joe Groff

commit sha 85c7228df84a4c819a6b06ccbeb6dd9ceab82ce0

Have IsBindableVisitor consider conditional conformances. The upper bound on a nominal type's generic argument can have more requirements imposed on it than those written in the original nominal type's generic signature, depending on the requirements imposed on the nominal type itself, thanks to conditional conformances. IsBindableVisitor failed to take this into account when visiting the bindings of generic type arguments. This could cause Type::isBindableTo to provide a false positive for a substituted type that doesn't satisfy conditional conformances, but more importantly, SIL type lowering uses the same visitor to extract an upper bound generic signature for substituted SIL function types, and if it doesn't preserve requirements from conditional conformances on nominal types in that signature, it can end up building an incorrect substitution map. Fix this by passing down the upper bound from generic arguments even when visiting nominal types, and using those upper bounds to check for conditional conformances that add requirements to generic arguments while visiting them.

view details

Slava Pestov

commit sha 2feb76d50443bd64b5bea331531dee6684934831

Run type_lowering_subst_function_type_conditional_conformance.swift test with requirement machine enabled

view details

Slava Pestov

commit sha eeae6cfa17cafcc5c0176a6a56c18f7542307f8b

SIL: Fix for when conditional requirements reference nested type parameters

view details

Doug Gregor

commit sha 6cf40d3144c4839695958a17a9a7f5955e5b4d3f

Merge pull request #39284 from DougGregor/concurrency-backdeploy-tests Enable concurrency runtime tests to run in back-deployed configurations

view details

Doug Gregor

commit sha a66435c61f9a895dd15f8a6712fa7899aabf4222

Merge pull request #39288 from DougGregor/back-deploy-width-limited-queues Use private concurrent queues for back-deployed concurrency.

view details

push time in 6 days

pull request commentapple/swift

[Benchmarks][stdlib] Adding an extra benchmark for set isDisjoint for disjoint sets of different size

It's a heuristic that puts the mark on (almost) all results that are overlapping with the old run. Here is the logic behind it:

Ah interesting, thank you for the explanation!

I believe this will tend to shame benchmarks that have a high variability. (I'm not nearly good enough with statistics to tell if it's a good one, but it seems to be working relatively well!)

Variability would be across multiple runs with same input values? I guess that given that most of the methods being benchmarked are deterministic, variability across multiple runs may come from hardware state e.g. variability of CPU cache hits and misses in different runs... Sorry for to many questions and pings, I guess benchmarking at some is very complicated because is to many variables :)

LucianoPAlmeida

comment created time in 6 days

delete branch LucianoPAlmeida/swift

delete branch : set-disjoint-benchmarks

delete time in 6 days

pull request commentapple/swift

[Benchmarks][stdlib] Adding an extra benchmark for set isDisjoint for disjoint sets of different size

@lorentey, friendly ping :) To know if there is any other change or it is good to land?

LucianoPAlmeida

comment created time in 6 days

pull request commentapple/swift

SR-13976: Improve compiler error message: "partial application of ‘mutating’ method is not allowed"

ok to revert back to just changing the text of the diagnostic then 2 new SRs. One for the diagnostic being called incorrectly and a dependent one that adds the fix it?

Sounds good to me =]

abdulajet

comment created time in 6 days

push eventLucianoPAlmeida/swift

Saleem Abdulrasool

commit sha b175cc830a8237aa85bf9562abd47170ab2e2cf5

Shims: remove last remnant of Windows ARM64 workaround The Windows ARM64 builds can require a newer build of VS2019 (update 3 or newer). This removes the workaround from the shims. This was needed for older installations of Visual Studio and no longer works with Visual Studio 2022.

view details

Doug Gregor

commit sha daa93dc101c88192e29b030c52fe65e216f6746f

Revert "Infer a reasonable build subdirectory when building a toolchain" This reverts commit 73a135307ed198fb44ccd5da0c5801aee09232ea.

view details

Doug Gregor

commit sha 0068722088566814a5b7bd93edab576fe3be64a1

Fix the host-specific installation destdir for build-script products. Prior to this, build-script products that build in the host-specific directories for cross-compilation would get the wrong path, and therefore wouldn't get picked up in toolchain builds.

view details

Pavel Yaskevich

commit sha d21069b3e54479e762310c4f565600ff3d9fb2af

[ConstraintSystem] Propagate holes up to result of optional chaining If underlying type of an optional chain has been marked as a hole, e.g. due to a reference to an invalid or missing member, let's propagate that information to object type of an optional that represents a result of an optional chain. Resolves: rdar://80941497

view details

Doug Gregor

commit sha 04135a3db68a1433f2570c899b80f68832ca7536

[Serialization] Remove an assertion that fires spuriously. This assertion does not account for the fact that a particular requirement can be imported both as async and with a completion handler, and therefore one of those two views won't have a witness. The assertion is no longer catching anything useful, so remove it. Addresses rdar://77684000.

view details

swift-ci

commit sha 61175704d55daf6d45e4a6ed9ba55ebd8cfb3cd5

Merge pull request #39258 from DougGregor/remove-serialization-assert

view details

Doug Gregor

commit sha 03e32c4f6618e4cca2415493f69e55851973faec

Merge pull request #39256 from DougGregor/backdeploy-toolchain-build-fixes Fix the host-specific installation destdir for build-script products.

view details

Michael Gottesman

commit sha 5590c7b52657aabecf848ff8069cd59f87dfcd6b

[sil] Add a move_value instruction. This is a new instruction that can be used by SILGen to perform a semantic move in between two entities that are considered separate variables at the AST level. I am going to use it to implement an experimental borrow checker. This PR contains the following: 1. I define move_value, setup parsing, printing, serializing, deserializing, cloning, and filled in all of the visitors as appropriate. 2. I added createMoveValue and emitMoveValueOperation SILBuilder APIs. createMoveValue always creates a move and asserts is passed a trivial type. emitMoveValueOperation in contrast, will short circuit if passed a trivial value and just return the trivial value. 3. I added IRGen tests to show that we can push this through the entire system. This is all just scaffolding for the instruction to live in SIL land and as of this PR doesn't actually do anything.

view details

Michael Gottesman

commit sha fe321ca21d5b7457413d19d03cf0385300ef0c3f

Merge pull request #39267 from gottesmm/pr-c8321c6af93e6ad619f35474eb2a74f181c17384 [sil] Add a move_value instruction.

view details

Argyrios Kyrtzidis

commit sha 90448e77e16ab67d0d2c7a0273d26dbf4159bbc7

[AddSwiftStdlib.cmake] Add the info.plist file as link dependency

view details

Argyrios Kyrtzidis

commit sha f72cf2bdb54bff6bcea3fde65a4cb5f6bf5a4d93

[SwiftSource.cmake] Include the line-directive tool and its input as dependencies of the custom command

view details

Argyrios Kyrtzidis

commit sha fcad3802eae17278c1aa8c2cb3509a39529285a7

[AddSwiftSourceKit.cmake] Add dependency to the module map file due to the custom pre-build command

view details

Argyrios Kyrtzidis

commit sha c3b7f949110085031a509dcd967cfbb1b4f9976a

[CMake/swift-syntax-parser-test] Use proper case for specifying `support` link component

view details

Kuba (Brecka) Mracek

commit sha 8b189d99e4c13d5b2f3d86364c7ab83bd04b0e8f

Turn off SWIFT_ENABLE_REFLECTION on the stdlib_minimal preset (#39030)

view details

swift-ci

commit sha f48e07ceedfaa19d1a79aae233bf27eeab83ac0f

Merge pull request #39268 from akyrtzi/stdlib-plist-link-depends

view details

swift-ci

commit sha 6738c3e14850cdeb692fcc9f8a58108d0c3b96c2

Merge pull request #39269 from akyrtzi/cmake-stdlib-line-directive-depends

view details

swift-ci

commit sha 15f96adb24cb257a27cc2d1ddefdccfe2a357666

Merge pull request #39271 from akyrtzi/cmake-syntax-parser-test-support-case

view details

Argyrios Kyrtzidis

commit sha 2ae2fee60566651f30c00b2b55c5e8b6e95554a2

Merge pull request #39270 from akyrtzi/cmake-sourcekit-module-map-depend [AddSwiftSourceKit.cmake] Add dependency to the module map file due to the custom pre-build command

view details

LucianoAlmeida

commit sha ac92f4e44a5308e0a88b83f6facdb15671639f94

[Sema] Ignore individual FunctionArgument inout mismatch fix if there is already a fix recorded for function type locator

view details

LucianoAlmeida

commit sha 6b0933a020bc7bc99b64277d73602d5fde123b3f

[tests] Add regression test for SR-15179

view details

push time in 7 days

pull request commentapple/swift

SR-13976: Improve compiler error message: "partial application of ‘mutating’ method is not allowed"

Should we scope this down to message adjustments? I think changing it to say referencing ... as a function value should be landable by itself and all of the additional changes could be done in a separate PR.

Given that the SR is only about the terminology, I think this would be fine :) Perhaps we could create another SR for the additional issues? It would also be easier to describe the additional issues specifically there to narrow that from this thread since it got a lot of things(e.g. implementation details, crash logs and so on...) and is a bit hard to narrow it down. Maybe it would also be good to add a FIXME(diagnostics) comment around the problematic case as well(as far as I remenber the additional issue is about a specific edge case)? What you think @xedin?

abdulajet

comment created time in 7 days

delete branch LucianoPAlmeida/swift

delete branch : SR-15179-dupe-arg-fix

delete time in 7 days

pull request commentapple/swift

[Sema][SR-15179] Ignore FunctionArgument inout mismatch if there is already a fix for locator

@swift-ci Please smoke test MacOS platform

LucianoPAlmeida

comment created time in 7 days

pull request commentapple/swift

SR-13976: Improve compiler error message: "partial application of ‘mutating’ method is not allowed"

Hi @abdulajet, Unfortunately I completely forgot this one, because there was some other issues on my queue already so this one got lost, sorry for that. I have some issues I'm currently working on and lately is been more difficult to find free time for Open Source, so I cannot promise I'll be able to look at this soon... sorry

abdulajet

comment created time in 7 days

pull request commentapple/swift

[Benchmarks][stdlib] Adding an extra benchmark for set isDisjoint for disjoint sets of different size

@lorentey Just for curiosity, in this on the how to read: Unexpected regressions which are marked with '(?)' are probably noise. what it is exactly this noise and generally what causes such results?

LucianoPAlmeida

comment created time in 7 days

pull request commentapple/swift

[Sema][SR-15179] Ignore FunctionArgument inout mismatch if there is already a fix for locator

@swift-ci Please smoke test

LucianoPAlmeida

comment created time in 7 days