{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":41005795,"defaultBranch":"main","name":"GSL","ownerLogin":"microsoft","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-08-19T01:11:19.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6154722?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1703117455.0","currentOid":""},"activityList":{"items":[{"before":"2e0d1ba48c38ddc0c22f6a023cad7b2c75a43466","after":"b39e7e4b0987859f5b19ff7686b149c916588658","ref":"refs/heads/main","pushedAt":"2024-02-26T21:23:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"d-winsor","name":null,"path":"/d-winsor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19313242?s=80&v=4"},"commit":{"message":"Add documentation for to_integer(byte) (#1144)\n\nCo-authored-by: Werner Henze ","shortMessageHtmlLink":"Add documentation for to_integer(byte) (#1144)"}},{"before":"1b4d42ca2e97061042ec44a0b34ceb176c78c7e1","after":"2e0d1ba48c38ddc0c22f6a023cad7b2c75a43466","ref":"refs/heads/main","pushedAt":"2024-02-26T21:22:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"d-winsor","name":null,"path":"/d-winsor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19313242?s=80&v=4"},"commit":{"message":"Test only `__cpp_lib_byte`, drop `_HAS_STD_BYTE`. (#1145)","shortMessageHtmlLink":"Test only __cpp_lib_byte, drop _HAS_STD_BYTE. (#1145)"}},{"before":"caae4dd0f8343efb879369dcd08a2b18aae59f3b","after":"1b4d42ca2e97061042ec44a0b34ceb176c78c7e1","ref":"refs/heads/main","pushedAt":"2024-02-26T21:17:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"d-winsor","name":null,"path":"/d-winsor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19313242?s=80&v=4"},"commit":{"message":"Fix initialization in test (#1140)\n\n* Suppress unsafe-buffer-usage","shortMessageHtmlLink":"Fix initialization in test (#1140)"}},{"before":"48d105af2355658330e23c7e80e9e9dce83d4153","after":"13bb92959b10b105a33e0a5ec1bb649f4f0657cc","ref":"refs/heads/test-fix","pushedAt":"2024-02-26T20:56:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"d-winsor","name":null,"path":"/d-winsor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19313242?s=80&v=4"},"commit":{"message":"Suppress unsafe-buffer-usage","shortMessageHtmlLink":"Suppress unsafe-buffer-usage"}},{"before":"f1a494cfd2ce55fe88b5134eab985f5852667b8d","after":"caae4dd0f8343efb879369dcd08a2b18aae59f3b","ref":"refs/heads/main","pushedAt":"2024-02-21T23:06:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hsutter","name":"Herb Sutter","path":"/hsutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1801526?s=80&v=4"},"commit":{"message":"Fix some typos. (#1146)","shortMessageHtmlLink":"Fix some typos. (#1146)"}},{"before":"d2b2c98185ef0b446997b704f9025f2977c7d8c2","after":"48d105af2355658330e23c7e80e9e9dce83d4153","ref":"refs/heads/test-fix","pushedAt":"2024-02-21T23:06:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"d-winsor","name":null,"path":"/d-winsor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19313242?s=80&v=4"},"commit":{"message":"Add suppression","shortMessageHtmlLink":"Add suppression"}},{"before":"77b2f4f3b8d4fd7c78a85fa173fe56555bc2214e","after":"f1a494cfd2ce55fe88b5134eab985f5852667b8d","ref":"refs/heads/main","pushedAt":"2024-01-17T23:25:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hsutter","name":"Herb Sutter","path":"/hsutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1801526?s=80&v=4"},"commit":{"message":"ci: Update to `actions/checkout@v4`. (#1142)\n\nThis fixes annotations on task runs like the following:\r\n\r\n The following actions uses node12 which is deprecated and will be forced\r\n to run on node16: actions/checkout@v2. For more info:\r\n https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/","shortMessageHtmlLink":"ci: Update to actions/checkout@v4. (#1142)"}},{"before":"e64c97fc2cfc11992098bb38eda932de275e3f4d","after":"77b2f4f3b8d4fd7c78a85fa173fe56555bc2214e","ref":"refs/heads/main","pushedAt":"2024-01-17T23:25:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hsutter","name":"Herb Sutter","path":"/hsutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1801526?s=80&v=4"},"commit":{"message":"Fix some typos. (#1143)","shortMessageHtmlLink":"Fix some typos. (#1143)"}},{"before":null,"after":"d2b2c98185ef0b446997b704f9025f2977c7d8c2","ref":"refs/heads/test-fix","pushedAt":"2023-12-21T00:10:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"d-winsor","name":null,"path":"/d-winsor","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19313242?s=80&v=4"},"commit":{"message":"Adjust test initialization","shortMessageHtmlLink":"Adjust test initialization"}},{"before":"52212c2d7600c816ec9b0438d3fbd2a95c190c2f","after":"e64c97fc2cfc11992098bb38eda932de275e3f4d","ref":"refs/heads/main","pushedAt":"2023-10-18T22:15:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hsutter","name":"Herb Sutter","path":"/hsutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1801526?s=80&v=4"},"commit":{"message":"Mark not_null constructors as noexcept when underlying type can be moved with no exception (#1135)\n\nThis enables possible optimisations for trivial types. This also avoids a bug\r\nin std::variant::emplace from GNU's libstdc++.\r\n\r\nhttps://gcc.gnu.org/bugzilla/show_bug.cgi?id=106547","shortMessageHtmlLink":"Mark not_null constructors as noexcept when underlying type can be mo…"}},{"before":"2940006b5c653287a4261f3bc400f1b7b140e6a8","after":"52212c2d7600c816ec9b0438d3fbd2a95c190c2f","ref":"refs/heads/main","pushedAt":"2023-09-11T17:52:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Update Clang GSL_SUPPRESS to stringize parameter instead of using fixed string literal. (#1133)\n\nFix #1130.","shortMessageHtmlLink":"Update Clang GSL_SUPPRESS to stringize parameter instead of using fix…"}},{"before":"9695da9b38471b4f3b5619763d72afcde5b4ae4d","after":"2940006b5c653287a4261f3bc400f1b7b140e6a8","ref":"refs/heads/main","pushedAt":"2023-09-11T17:06:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Suppress some noisy / buggy warnings (#1136)\n\nTwo warnings were being emitted in the MSVC+LLVM tests. \r\n\r\nThe warning `-Wunsafe-buffer-usage` is initially introduced in some capacity here https://reviews.llvm.org/D137346 pointing to documentation at https://discourse.llvm.org/t/rfc-c-buffer-hardening/65734. The warning is a stylistic checker whose goal is to \"emit a warning every time an unsafe operation is performed on a raw pointer\". This type of programming model is not useful for library implementations of types such as `span`, where direct manipulation of raw pointers is inevitable, so disable the warning altogether.\r\n\r\nThere is also a false-positive warning https://github.com/llvm/llvm-project/issues/65689 that I've disabled inline.","shortMessageHtmlLink":"Suppress some noisy / buggy warnings (#1136)"}},{"before":"4300304ef24c247b3db0255763f46b9f95c3a83d","after":"9695da9b38471b4f3b5619763d72afcde5b4ae4d","ref":"refs/heads/main","pushedAt":"2023-09-05T23:08:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"fix and optimize documentation (#1131)\n\n- Add anchor for `finally` in `headers.md` so that the link in `README.md` can work\r\n- In `README.md` add code formatting for the character types of the `zstring` and `string_span` types\r\n- In `README.md` change code formatting to links for GSL types\r\n- Vertical alignment","shortMessageHtmlLink":"fix and optimize documentation (#1131)"}},{"before":"b34f7350fe666b3637d150e8abae8691ec3b7343","after":"4300304ef24c247b3db0255763f46b9f95c3a83d","ref":"refs/heads/main","pushedAt":"2023-07-26T22:07:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Remove unused macros (#1128)\n\nThis macro is a relic of the old implementation of GSL's header. It is unused and can be removed.","shortMessageHtmlLink":"Remove unused macros (#1128)"}},{"before":"167c77d28ed813b41d7e8936cbe47cc90f9f11ba","after":"b34f7350fe666b3637d150e8abae8691ec3b7343","ref":"refs/heads/main","pushedAt":"2023-07-06T19:51:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"get back gcc 8.4 compatibility (#1127)\n\nBefore my PR #1122 `gsl/pointers` was gcc 8.4 compatible. Now it is not. This commit makes it compatible with gcc 8.4 again.","shortMessageHtmlLink":"get back gcc 8.4 compatibility (#1127)"}},{"before":"87e21400dc695e45412fb0a512c73d8d4aaa2d5b","after":"167c77d28ed813b41d7e8936cbe47cc90f9f11ba","ref":"refs/heads/main","pushedAt":"2023-07-04T00:20:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"add missing include (#1126)\n\nThe header file uses `std::declval`, so it needs to `#include `.","shortMessageHtmlLink":"add missing include (#1126)"}},{"before":"3549e31ba4001ce2283593301df58fab186899ee","after":"87e21400dc695e45412fb0a512c73d8d4aaa2d5b","ref":"refs/heads/main","pushedAt":"2023-06-28T22:17:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hsutter","name":"Herb Sutter","path":"/hsutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1801526?s=80&v=4"},"commit":{"message":"remove gcc noexcept warning (#1122)\n\nWithout this change a `gsl::not_null` triggers these `noexcept` warnings:\r\n```\r\n.../gsl/include/gsl/pointers:162:50: warning: noexcept-expression evaluates to ‘false’ because of a call to ‘constexpr gsl::details::value_or_reference_return_t gsl::not_null::get() const [with T = class_type*; gsl::details::value_or_reference_return_t = class_type* const]’ [-Wnoexcept]\r\n 162 | const not_null& rhs) noexcept(noexcept(lhs.get() == rhs.get()))\r\n | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n.../gsl/include/gsl/pointers:119:55: note: but ‘constexpr gsl::details::value_or_reference_return_t gsl::not_null::get() const [with T = class_type*; gsl::details::value_or_reference_return_t = class_type* const]’ does not throw; perhaps it should be declared ‘noexcept’\r\n 119 | constexpr details::value_or_reference_return_t get() const\r\n | ^~~\r\n```\r\n\r\nCo-authored-by: Werner Henze ","shortMessageHtmlLink":"remove gcc noexcept warning (#1122)"}},{"before":"65a5995035f12d3e280b3f01bf26d94032053f1b","after":"3549e31ba4001ce2283593301df58fab186899ee","ref":"refs/heads/main","pushedAt":"2023-06-28T17:48:23.347Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Deprecate `` and replace with `` (#1125)\n\nWith `string_span` having been deprecated (https://github.com/microsoft/GSL/pull/931, https://github.com/microsoft/GSL/pull/945) and removed (https://github.com/microsoft/GSL/pull/1074), the header `` now only contains the definitions for the `zstring` family. Update the name accordingly from `` to ``. The old header is now deprecated and should no longer be used and will be removed in some future release.","shortMessageHtmlLink":"Deprecate <gsl/string_span> and replace with <gsl/zstring> (#1125)"}},{"before":"303d964a241cb2f2a058fe0baa14013eb9afa116","after":"65a5995035f12d3e280b3f01bf26d94032053f1b","ref":"refs/heads/main","pushedAt":"2023-06-28T17:48:04.877Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Remove deprecated headers (#1124)\n\nHeaders that were previously prefixed with `gsl_` were renamed to drop the `gsl_` prefix in https://github.com/microsoft/GSL/pull/946, and the original version deprecated.\r\nThe deprecation happened a long time ago, so it is now time to remove these headers entirely.","shortMessageHtmlLink":"Remove deprecated headers (#1124)"}},{"before":"afaaa71bcee45d9c90c21f8bd3ba2b12902242e9","after":"303d964a241cb2f2a058fe0baa14013eb9afa116","ref":"refs/heads/main","pushedAt":"2023-05-22T17:48:41.874Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Deprecate the Ptr make_span overloads (#1113)\n\nThese overloads don't seem to be in a usable state, and their original purpose is no longer clear. Deprecate them.\r\nResolves #1092","shortMessageHtmlLink":"Deprecate the Ptr make_span overloads (#1113)"}},{"before":"4b5b5a1ed50dc6af370896c08eedb4cb67955a21","after":"afaaa71bcee45d9c90c21f8bd3ba2b12902242e9","ref":"refs/heads/main","pushedAt":"2023-05-11T00:02:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Install GSL.natvis (#1112)\n\nTurns out supporting GSL.natvis perfectly is quite difficult.\r\n\r\nThere is no universal way to consume .natvis files that would satisfy everyone.\r\n\r\nI thought the solution was to use the /NATVIS linker option. But it turns out that actually embeds information into the PDB. So I'm not sure how to properly support the Ninja generator...\r\n\r\nThat's not even accounting for the fact target_link_options doesn't play nicely with /NATVIS\r\n\r\nWhen you just add the file via target_sources the visual studio solution will just pick it up and recognize it without adding it to the PDB file. Which won't affect the binary and is what most devs want.\r\n\r\nThis all comes down to the fact that /NATVIS files have native integration with visual studio that makes it difficult to use with non-visual studio solutions. /NATVIS almost works but embeds itself into the PDB which not everyone wants, and not everyone generates PDBs either.\r\n\r\nDocs for natvis files and /NATVIS\r\n- https://learn.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2022\r\n- https://learn.microsoft.com/en-us/cpp/build/reference/natvis-add-natvis-to-pdb?view=msvc-170\r\n\r\nSo my current solution is to just simplify the existing CMake code, and install the natvis so the user can decide.\r\n\r\ncloses #1084","shortMessageHtmlLink":"Install GSL.natvis (#1112)"}},{"before":"5dc7fae1199e90b875decfae7b91e83d27881c81","after":"4b5b5a1ed50dc6af370896c08eedb4cb67955a21","ref":"refs/heads/main","pushedAt":"2023-05-10T18:25:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Disable std::hash> if std::hash is not enabled. (#1109)\n\nResolves #914","shortMessageHtmlLink":"Disable std::hash<gsl::not_null<T>> if std::hash<T> is not enabled. (#…"}},{"before":"9face82309ae633ad23d28daf30737f085d1cd4c","after":"5dc7fae1199e90b875decfae7b91e83d27881c81","ref":"refs/heads/main","pushedAt":"2023-05-09T16:06:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Use the implementation-defined strict total order for pointer comparisons with `not_null` (#1106)\n\nUsing `<`,`<=`,`>`,`>=` to compare unrelated pointers gives an unspecified result according to the standard.\r\nThis PR replaces the usage of these operators in `gsl::not_null` with the STL counterparts, which would leverage any implementation-defined strict total ordering for pointers.\r\n\r\nResolves #880","shortMessageHtmlLink":"Use the implementation-defined strict total order for pointer compari…"}},{"before":"1d036585ccea8a57dc5fdc84406181db3d1f3205","after":"9face82309ae633ad23d28daf30737f085d1cd4c","ref":"refs/heads/main","pushedAt":"2023-05-09T16:05:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Remove unnecessary check from size_bytes() (#1105)\n\n`size_bytes()` returns the span's size in bytes. \r\nAssuming the span was constructed with an accurate size parameter, the check `size() < dynamic_extent / sizeof(element_type)` isn't required, since `size_t(-1)` (which is `dynamic_extent`) represents the size of the address space, so the number of bytes will never exceed it and in practice won't even come close.\r\nOtherwise, it is not actually feasible to detect cases when the size parameter does not correspond to the dimensions of the underlying data pointer. In these cases, the relationship `size() < dynamic_extent / sizeof(element_type)` is simply one of many ways in which the `size()` could be incorrect, and serves no necessary purpose.\r\n\r\nResolves #1012","shortMessageHtmlLink":"Remove unnecessary check from size_bytes() (#1105)"}},{"before":"43d60c5e3891dab6491a76d0bac554a4a89d57f6","after":"1d036585ccea8a57dc5fdc84406181db3d1f3205","ref":"refs/heads/main","pushedAt":"2023-03-30T18:10:16.082Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Add testcase for #1100 (#1101)","shortMessageHtmlLink":"Add testcase for #1100 (#1101)"}},{"before":"50d6eef5414dcd0475b4e1b8fc80c3078da78580","after":"43d60c5e3891dab6491a76d0bac554a4a89d57f6","ref":"refs/heads/main","pushedAt":"2023-03-14T23:57:46.825Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Suppress warning C26481 (#1099)\n\nSuppress \"warning C26481: Don't use pointer arithmetic. Use span instead (bounds.1).\" in the code that impements `span`.","shortMessageHtmlLink":"Suppress warning C26481 (#1099)"}},{"before":"b080081c9c089549956949c0ddaa3094c69098e6","after":"50d6eef5414dcd0475b4e1b8fc80c3078da78580","ref":"refs/heads/main","pushedAt":"2023-03-14T20:50:34.349Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmitrykobets-msft","name":"Dmitry Kobets","path":"/dmitrykobets-msft","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89153909?s=80&v=4"},"commit":{"message":"Add `span_iterator::_Prevent_inheriting_unwrap`. (#1100)","shortMessageHtmlLink":"Add span_iterator::_Prevent_inheriting_unwrap. (#1100)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEBdxikgA","startCursor":null,"endCursor":null}},"title":"Activity · microsoft/GSL"}