profile
viewpoint

FirebaseExtended/protobuf-rules-gen 185

This is an experimental protoc plugin that generates Firebase Rules for Cloud Firestore based on Google's Protocol Buffer format. This allows you to easily validate your data in a platform independent manner.

google/nanopb-podspec 4

Manage CocoaPods nanopb distribution

minafarid/firebase-ios-sdk 0

Firebase iOS SDK

var-const/azureland 0

A simple Crimsonland clone

var-const/dotfiles 0

My dotfiles

var-const/firebase-cpp-sdk 0

Firebase C++ SDK

var-const/firebase-ios-sdk 0

Firebase iOS SDK

var-const/firebase-js-sdk 0

Firebase Javascript SDK

push eventllvm/llvm-project

Konstantin Varlamov

commit sha b6d87773feef14d7cceeed380dd6f6c9d43fd9f0

[libc++] LWG3171: implement operator<< for filesystem::directory_entry. Differential Revision: https://reviews.llvm.org/D116642

view details

push time in 5 days

push eventllvm/llvm-project

Konstantin Varlamov

commit sha b9bc3c107c6cee93cd1a7004142f11741e0225bf

[libc++][ranges] Implement `construct_at` and `destroy{,_at}`. Differential Revision: https://reviews.llvm.org/D116078

view details

push time in 6 days

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 57092f87b23347c8878030cc90d797ac8404b845

Revert "[libc++] Temporarily disable the in_out_result test on Fuchsia." This reverts commit 9e634b35ff51d0eb2b38013111491e88bdbae388.

view details

push time in 7 days

push eventllvm/llvm-project

Konstantin Varlamov

commit sha fe958b140ab37acf316f5b98318e75ba2119d5a2

[libc++] Quick fix to remove a narrowing conversion from the in_out_result test. This needs a proper solution in a follow-up. The issue is that the Standard defines conversions between `in_out_result` classes with different template types as just `return {in, out};`. Because the expression uses list initialization, it will fail to compile if the conversion happens to be narrowing -- which is probably unintended. Surprisingly, this error wasn't caught by the CI. Differential Revision: https://reviews.llvm.org/D117089

view details

push time in 7 days

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 9e634b35ff51d0eb2b38013111491e88bdbae388

[libc++] Temporarily disable the in_out_result test on Fuchsia.

view details

push time in 8 days

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 8d23b7420c92ddf8c3e5da39a90a1982fc72c231

[libc++][ranges] Implement `uninitialized_copy{,_n}` and `uninitialized_move{,_n}`. Also implement `in_out_result` which is a prerequisite. Differential Revision: https://reviews.llvm.org/D116023

view details

push time in 8 days

issue openedllvm/llvm-project

Error when instantiating `std::stringstream` with character types other than `char` or `wchar_t`

See Compiler Explorer link (made by @Quuxplusone) -- attempting to instantiate std::stringstream with character types other than char or wchar_t leads to errors. This includes signed / unsigned char and char_{8,16,32}_t. Apparently, the issue is that the std::ctype template relies on specializations (which are only defined for char and wchar_t) and doesn't provide a definition for the main template.

created time in 8 days

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 754ea6fd4d52f4699644a3c6dfc854a231c881c4

[libc++][ranges] Implement `uninitialized_value_construct{,_n}` and `uninitialized_fill{,_n}`. Also: - refactor out `__voidify`; - use the `destroy` algorithm internally; - refactor out helper classes used in tests for `uninitialized_*` algorithms. Differential Revision: https://reviews.llvm.org/D115626

view details

push time in a month

push eventllvm/llvm-project

Konstantin Varlamov

commit sha f195fd915ebdd5a0015ae019471dbef47743b1c0

[libc++][ranges][NFC] Remove extraneous cleanup checks. There is no need to check the counters on `Counted` after destroying elements in the range because these tests are not testing `destroy`. Differential Revision: https://reviews.llvm.org/D115839

view details

push time in a month

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 3f630cff65fc6aa69f951916442a8fb1de11be65

[libc++][ranges] Implement ranges::uninitialized_default_construct{,_n}. Defined in [`specialized.algorithms`](wg21.link/specialized.algorithms). Also: - refactor the existing non-range implementation so that most of it can be shared between the range-based and non-range-based algorithms; - remove an existing test for the non-range version of `uninitialized_default_construct{,_n}` that likely triggered undefined behavior (it read the values of built-ins after default-initializing them, essentially reading uninitialized memory). Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D115315

view details

push time in a month

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 805488358a8c285afc4683272171a4144d57877e

[libc++][ranges] Add subsumption tests to `[special.mem.concepts]`. Test that `nothrow-forward-iterator` subsumes `nothrow-input-iterator`, `nothrow-forward-range` subsumes `nothrow-input-range`, and `nothrow-sentinel-for` and `sentinel_for` subsume each other. This is a follow-up to [D114761](https://reviews.llvm.org/D114761). Differential Revision: https://reviews.llvm.org/D115422

view details

push time in a month

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 2d9efcfeec2495e0e7da882d27f3ae0e261c3a24

[libc++][ranges] Implement [special.mem.concepts]. Implement the exposition-only concepts specified in `[special.mem.concepts]`. These are all thin wrappers over other concepts. Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D114761

view details

push time in 2 months

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 7da4ee6f23dd14464ee869caec18b5421d1cf7ca

[libcxx][NFC] Make sequence containers slightly more SFINAE-friendly during CTAD. Disable the constructors taking `(size_type, const value_type&, allocator_type)` if `allocator_type` is not a valid allocator. Otherwise, these constructors are considered when resolving e.g. `(int*, int*, NotAnAllocator())`, leading to a hard error during instantiation. A hard error makes the Standard's requirement to not consider deduction guides of the form `(Iterator, Iterator, BadAllocator)` during overload resolution essentially non-functional. The previous approach was to SFINAE away `allocator_traits`. This patch SFINAEs away the specific constructors instead, for consistency with `basic_string` -- see [LWG3076](wg21.link/lwg3076) which describes a very similar problem for strings (note, however, that unlike LWG3076, no valid constructor call is affected by the bad instantiation). Differential Revision: https://reviews.llvm.org/D114311

view details

push time in 2 months

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 3b463c45288a8e1911517511b92c32fd1f384a5e

[libc++][NFC] Assign some Ranges tasks to varconst. Specifically: - [special.mem.concepts]; - [specialized.algorithms].

view details

push time in 2 months

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 434dc0a5bcae50e87458e893ae5469619a35839e

[libc++] Always define a key function for std::bad_function_call in the dylib However, whether applications rely on the std::bad_function_call vtable being in the dylib is still controlled by the ABI macro, since changing that would be an ABI break. Also separate preprocessor definitions for whether to use a key function and whether to use a `bad_function_call`-specific `what` message (`what` message is mandated by [LWG2233](http://wg21.link/LWG2233)). Differential Revision: https://reviews.llvm.org/D92397

view details

push time in 2 months

pull request commentfirebase/firebase-cpp-sdk

Update the 8.7.0 release notes entry announcing Firestore's GA

Congratulations!

dconeybe

comment created time in 2 months

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 68072a71662a7955b65a761b8e36a5ef6d38186a

[libc++] P0433R2: test that deduction guides are properly SFINAEd away. Deduction guides for containers should not participate in overload resolution when called with certain incorrect types (e.g. when called with a template argument in place of an `InputIterator` that doesn't qualify as an input iterator). Similarly, class template argument deduction should not select `unique_ptr` constructors that take a a pointer. The tests try out every possible incorrect parameter (but never more than one incorrect parameter in the same invocation). Also add deduction guides to the synopsis for associative and unordered containers (this was accidentally omitted from [D112510](https://reviews.llvm.org/D112510)). Differential Revision: https://reviews.llvm.org/D112904

view details

push time in 2 months

push eventllvm/llvm-project

Konstantin Varlamov

commit sha 12b55821a578929a7b03448a22c3a678aa649bd5

[libc++][NFC] Inline most of `__vector_base` into `vector`. `__vector_base` exists for historical reasons and cannot be eliminated entirely without breaking the ABI. Member variables are left untouched -- this patch only does changes that clearly cannot affect the ABI. Differential Revision: https://reviews.llvm.org/D112976

view details

push time in 2 months

push eventllvm/llvm-project

Konstantin Varlamov

commit sha d7ab283996d476c62ef2264ecbd1900c07102113

Revert "[libc++] Always define a key function for std::bad_function_call in the dylib" This reverts commit bc74231756d6c317505a9fa4c5a269134687ae56. It was committed accidentally.

view details

push time in 2 months

push eventllvm/llvm-project

Louis Dionne

commit sha bc74231756d6c317505a9fa4c5a269134687ae56

[libc++] Always define a key function for std::bad_function_call in the dylib However, whether applications rely on the std::bad_function_call vtable being in the dylib is still controlled by the ABI macro, since changing that would be an ABI break. Differential Revision: https://reviews.llvm.org/D92397

view details

push time in 2 months

push eventllvm/llvm-project

Konstantin Varlamov

commit sha f9f97cae82a05f54bed85581e57762ec2e26a057

[libc++] P0433R2: add the remaining deduction guides. Add deduction guides to `valarray` and `scoped_allocator_adaptor`. This largely finishes implementation of the paper: * deduction guides for other classes mentioned in the paper were implemented previously (see the list below); * deduction guides for several classes contained in the proposal (`reference_wrapper`, `lock_guard`, `scoped_lock`, `unique_lock`, `shared_lock`) were removed by [LWG2981](https://wg21.link/LWG2981). Also add deduction guides to the synopsis for the few classes (e.g. `pair`) where they were missing. The only part of the paper that isn't fully implemented after this patch is making sure certain deduction guides don't participate in overload resolution when given incorrect template parameters. List of significant commits implementing the other parts of P0433 (omitting some minor fixes): * [pair](https://github.com/llvm/llvm-project/commit/af65856eec160d163c764faad250d93357be7c83) * [basic_string](https://github.com/llvm/llvm-project/commit/6d9f750dec29e8ae5366092e64cd343dae2c7464) * [array](https://github.com/llvm/llvm-project/commit/0ca8c0895c6034615593c295dd955f29b25bf3d4) * [deque](https://github.com/llvm/llvm-project/commit/dbb6f8a8179b0604e25707b5c1b72be6164f62d9) * [forward_list](https://github.com/llvm/llvm-project/commit/e076700b7786959206acef136ecf05d54078e4e1) * [list](https://github.com/llvm/llvm-project/commit/4a227e582b2f13880ea049b29988a37a0f7c0742) * [vector](https://github.com/llvm/llvm-project/commit/df8f75479278d5ce16eede342ceb5ba2fd71460b) * [queue/stack/priority_queue](https://github.com/llvm/llvm-project/commit/5b8b8b5dce587f1e5a4a31cc24f09b18bd53ff9a) * [basic_regex](https://github.com/llvm/llvm-project/commit/edd5e29cfe9f67ec8e7e0eda12eb05e616fdeebc) * [optional](https://github.com/llvm/llvm-project/commit/f35b4bc3954f3b01051fc0848535ff784809e9e2) * [map/multimap](https://github.com/llvm/llvm-project/commit/edfe8525de1f7278f4754f2bffd47b13ec291a17) * [set/multiset](https://github.com/llvm/llvm-project/commit/e20865c387e09ea0ebd5add15c762cd5271ff65f) * [unordered_set/unordered_multiset](https://github.com/llvm/llvm-project/commit/296a80102a9b72c3eda80558fb78a3ed8849b341) * [unordered_map/unordered_multimap](https://github.com/llvm/llvm-project/commit/dfcd4384cbcac0eeb7e5cbce350f875ba4da79d5) * [function](https://github.com/llvm/llvm-project/commit/e1eabcdfad89f67ae575b0c86aa4a72d277378b4) * [tuple](https://github.com/llvm/llvm-project/commit/1308011e1b5c5382281a63dd4191a1784f8d2295) * [shared_ptr/weak_ptr](https://github.com/llvm/llvm-project/commit/83564056d4b186c9fcf016cdbb388755009f7b5a) Additional notes: * It was revision 2 of the paper that was voted into the Standard. P0433R3 is a separate paper that is not part of the Standard. * The paper also mandates removing several `make_*_searcher` functions (e.g. `make_boyer_moore_searcher`) which are currently not implemented (except in `experimental/`). * The `__cpp_lib_deduction_guides` feature test macro from the paper was accidentally omitted from the Standard. Differential Revision: https://reviews.llvm.org/D112510

view details

push time in 3 months

more