helloadhavan/github_issues huggingface dataset:
Repository: ggml-org/llama.cpp
Pull request: ggml: Don't assert fail when tensor data changes

The following scenario will cause an assertion failure in the graph allocator:
 - Build and allocate a graph containing a tensor with a non-NULL data pointer
 - Build and allocate a new graph where that data is NULL

Result:
ggml-alloc.c:819: GGML_ASSERT(talloc->buffer_id >= 0) failed

This happens during revalidation because we think that memory should have been previously allocated based on the current graph but in reality the previous graph was different. In this situation, we should do a full reallocation pass.


Changed files:
filename: ggml/src/ggml-alloc.c
patch: @@ -816,7 +816,10 @@ static void ggml_gallocr_init_tensor(ggml_gallocr_t galloc, struct ggml_tensor *
 static bool ggml_gallocr_node_needs_realloc(ggml_gallocr_t galloc, struct ggml_tensor * node, struct tensor_alloc * talloc) {
     size_t node_size = 0;
     if (!node->data && !node->view_src) {
-        GGML_ASSERT(talloc->buffer_id >= 0); // prevent segfault when misusing the API
+        // If we previously had data but don't now then reallocate
+        if (talloc->buffer_id < 0) {
+            return false;
+        }
         node_size = ggml_backend_buft_get_alloc_size(galloc->bufts[talloc->buffer_id], node);
     }
     return talloc->size_max >= node_size;
Repository: vercel/next.js
Pull request: test: try to fix flakiness in amphtml util

This PR modifies the AMP HTML testing util to avoid loading the validator from the network, which causes random test flakiness. I've also made it use the validator from `next/dist/compiled` to match what we do during builds. This means we can drop `amphtml-validator` from the root package.json.

Changed files:
filename: package.json
patch: @@ -144,7 +144,6 @@
     "@vercel/og": "0.6.8",
     "abort-controller": "3.0.0",
     "alex": "9.1.0",
-    "amphtml-validator": "1.0.38",
     "async-sema": "3.0.1",
     "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112",
     "browserslist": "4.22.2",

filename: pnpm-lock.yaml
patch: @@ -219,9 +219,6 @@ importers:
       alex:
         specifier: 9.1.0
         version: 9.1.0
-      amphtml-validator:
-        specifier: 1.0.38
-        version: 1.0.38
       async-sema:
         specifier: 3.0.1
         version: 3.0.1

filename: test/lib/amp-test-utils.js
patch: @@ -1,8 +1,14 @@
 /* eslint-env jest */
-import amphtmlValidator from 'amphtml-validator'
+import amphtmlValidator from 'next/dist/compiled/amphtml-validator'
 
-export async function validateAMP(html) {
-  const validator = await amphtmlValidator.getInstance()
+// Use the same validator that we use for builds.
+// This avoids trying to load one from the network, which can cause random test flakiness.
+// (duplicated from 'packages/next/src/export/routes/pages.ts')
+const validatorPath = require.resolve(
+  'next/dist/compiled/amphtml-validator/validator_wasm.js'
+)
+export async function validateAMP(/** @type {string} */ html) {
+  const validator = await amphtmlValidator.getInstance(validatorPath)
   const result = validator.validateString(html)
   if (result.status !== 'PASS') {
     for (let ii = 0; ii < result.errors.length; ii++) {
Repository: facebook/react
Pull request: DevTools: Only show StrictMode badge on root elements

Showing an inline non-compliance badge for every element in the tree is noisy. This commit changes it so that we only show inline icons for root elements (although we continue to show an icon for inspected elements regardless).

### Before
<img width="1035" alt="Screen Shot 2021-12-21 at 12 46 26 PM" src="https://user-images.githubusercontent.com/29597/146975284-b3e2c179-99dd-46a7-ae2e-4e727567fcef.png">

### After
<img width="1035" alt="Screen Shot 2021-12-21 at 12 42 50 PM" src="https://user-images.githubusercontent.com/29597/146975337-7335525e-ae83-4d7d-80cf-ab4cc3da626f.png">

Changed files:
filename: packages/react-devtools-shared/src/devtools/views/Components/Element.js
patch: @@ -118,6 +118,10 @@ export default function Element({data, index, style}: Props) {
     type,
   } = ((element: any): ElementType);
 
+  // Only show strict mode non-compliance badges for top level elements.
+  // Showing an inline badge for every element in the tree would be noisy.
+  const showStrictModeBadge = isStrictModeNonCompliant && depth === 0;
+
   let className = styles.Element;
   if (isSelected) {
     className = treeFocused
@@ -194,7 +198,7 @@ export default function Element({data, index, style}: Props) {
             }
           />
         )}
-        {isStrictModeNonCompliant && (
+        {showStrictModeBadge && (
           <Icon
             className={
               isSelected && treeFocused
Repository: denoland/deno
Pull request: perf(ext/fetch): speed up `resp.clone()`

### main (before)

```
Running 10s test @ http://localhost:8000
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   123.96us   57.25us   3.64ms   96.84%
    Req/Sec    41.15k     2.11k   42.76k    95.05%
  827087 requests in 10.10s, 125.41MB read
Requests/sec:  81895.64
Transfer/sec:     12.42MB
```

### this branch

```
Running 10s test @ http://localhost:8000
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    66.91us   17.71us   2.03ms   95.91%
    Req/Sec    74.43k     2.52k   76.71k    92.57%
  1496402 requests in 10.10s, 199.79MB read
Requests/sec: 148170.16
Transfer/sec:     19.78MB
```

Fixes #24766


Changed files:
filename: ext/fetch/22_body.js
patch: @@ -196,10 +196,23 @@ class InnerBody {
    * @returns {InnerBody}
    */
   clone() {
-    const { 0: out1, 1: out2 } = readableStreamTee(this.stream, true);
-    this.streamOrStatic = out1;
-    const second = new InnerBody(out2);
-    second.source = core.deserialize(core.serialize(this.source));
+    let second;
+    if (
+      !ObjectPrototypeIsPrototypeOf(
+        ReadableStreamPrototype,
+        this.streamOrStatic,
+      ) && !this.streamOrStatic.consumed
+    ) {
+      second = new InnerBody({
+        body: this.streamOrStatic.body,
+        consumed: false,
+      });
+    } else {
+      const { 0: out1, 1: out2 } = readableStreamTee(this.stream, true);
+      this.streamOrStatic = out1;
+      second = new InnerBody(out2);
+    }
+    second.source = this.source;
     second.length = this.length;
     return second;
   }
Repository: nodejs/node
Pull request: net: support blocklist for net.Server

Support `blocklist` options for `net.Server`, which can be used for disabling inbound  access to specific IP addresses, IP ranges, or IP subnets.

- [x] `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes
- [x] tests and/or benchmarks are included
- [x] documentation is changed or added
- [x] commit message follows [commit guidelines](https://github.com/nodejs/node/blob/master/doc/guides/contributing/pull-requests.md#commit-message-guidelines)

Changed files:
filename: doc/api/net.md
patch: @@ -1713,6 +1713,11 @@ changes:
     **Default:** `false`.
   * `pauseOnConnect` {boolean} Indicates whether the socket should be
     paused on incoming connections. **Default:** `false`.
+  * `blockList` {net.BlockList} `blockList` can be used for disabling inbound
+    access to specific IP addresses, IP ranges, or IP subnets. This does not
+    work if the server is behind a reverse proxy, NAT, etc. because the address
+    checked against the block list is the address of the proxy, or the one
+    specified by the NAT.
 
 * `connectionListener` {Function} Automatically set as a listener for the
   [`'connection'`][] event.

filename: lib/net.js
patch: @@ -1791,6 +1791,13 @@ function Server(options, connectionListener) {
   this.keepAlive = Boolean(options.keepAlive);
   this.keepAliveInitialDelay = ~~(options.keepAliveInitialDelay / 1000);
   this.highWaterMark = options.highWaterMark ?? getDefaultHighWaterMark();
+  if (options.blockList) {
+    // TODO: use BlockList.isBlockList (https://github.com/nodejs/node/pull/56078)
+    if (!(options.blockList instanceof module.exports.BlockList)) {
+      throw new ERR_INVALID_ARG_TYPE('options.blockList', 'net.BlockList', options.blockList);
+    }
+    this.blockList = options.blockList;
+  }
 }
 ObjectSetPrototypeOf(Server.prototype, EventEmitter.prototype);
 ObjectSetPrototypeOf(Server, EventEmitter);
@@ -2239,7 +2246,15 @@ function onconnection(err, clientHandle) {
     clientHandle.close();
     return;
   }
-
+  if (self.blockList && typeof clientHandle.getpeername === 'function') {
+    const remoteInfo = { __proto__: null };
+    clientHandle.getpeername(remoteInfo);
+    const addressType = isIP(remoteInfo.address);
+    if (addressType && self.blockList.check(remoteInfo.address, `ipv${addressType}`)) {
+      clientHandle.close();
+      return;
+    }
+  }
   const socket = new Socket({
     handle: clientHandle,
     allowHalfOpen: self.allowHalfOpen,

filename: test/parallel/test-net-server-blocklist.js
patch: @@ -0,0 +1,19 @@
+'use strict';
+const common = require('../common');
+const net = require('net');
+
+const blockList = new net.BlockList();
+blockList.addAddress(common.localhostIPv4);
+
+const server = net.createServer({ blockList }, common.mustNotCall());
+server.listen(0, common.localhostIPv4, common.mustCall(() => {
+  const adddress = server.address();
+  const socket = net.connect({
+    localAddress: common.localhostIPv4,
+    host: adddress.address,
+    port: adddress.port
+  });
+  socket.on('close', common.mustCall(() => {
+    server.close();
+  }));
+}));
Repository: huggingface/transformers
Pull request: [ci] fix doc builder

# What does this PR do?

Merging qwen omni broke CI, this PR fixes it

Changed files:
filename: src/transformers/models/qwen2_5_omni/configuration_qwen2_5_omni.py
patch: @@ -933,6 +933,7 @@ class Qwen2_5OmniToken2WavConfig(PretrainedConfig):
 
     >>> # Accessing the model configuration
     >>> configuration = model.config
+    ```
     """
 
     model_type = "qwen2_5_omni_token2wav"

filename: src/transformers/models/qwen2_5_omni/modular_qwen2_5_omni.py
patch: @@ -917,6 +917,7 @@ class Qwen2_5OmniToken2WavConfig(PretrainedConfig):
 
     >>> # Accessing the model configuration
     >>> configuration = model.config
+    ```
     """
 
     model_type = "qwen2_5_omni_token2wav"
Repository: huggingface/transformers
Pull request: Remove fsspec dependency which isn't directly used by transformers

# What does this PR do?
 
As the title says.

Changed files:
filename: setup.py
patch: @@ -112,7 +112,6 @@
     "fastapi",
     "filelock",
     "flax>=0.4.1,<=0.7.0",
-    "fsspec<2023.10.0",
     "ftfy",
     "fugashi>=1.0",
     "GitPython<3.1.19",

filename: src/transformers/dependency_versions_table.py
patch: @@ -19,7 +19,6 @@
     "fastapi": "fastapi",
     "filelock": "filelock",
     "flax": "flax>=0.4.1,<=0.7.0",
-    "fsspec": "fsspec<2023.10.0",
     "ftfy": "ftfy",
     "fugashi": "fugashi>=1.0",
     "GitPython": "GitPython<3.1.19",
Repository: huggingface/transformers
Pull request: Fix tests failed with gated repos.

# What does this PR do?

Fix tests failed with gated repos by adding `require_read_token`

Changed files:
filename: tests/generation/test_utils.py
patch: @@ -34,6 +34,7 @@
     require_accelerate,
     require_flash_attn,
     require_optimum_quanto,
+    require_read_token,
     require_torch,
     require_torch_accelerator,
     require_torch_gpu,
@@ -4283,6 +4284,8 @@ def test_generate_compile_fullgraph_tiny(self):
         gen_out = compiled_generate(**model_inputs, generation_config=generation_config)
         self.assertTrue(gen_out.shape[1] > model_inputs["input_ids"].shape[1])  # some text was generated
 
+    @require_read_token
+    @slow
     def test_assisted_generation_early_exit(self):
         """
         Tests that assisted generation with early exit works as expected. Under the hood, this has complex cache
@@ -4791,6 +4794,7 @@ def test_generate_vision2text_conditioning(self):
         self.assertTrue(np.array_equal(output_sequences_decoder_input_ids, output_sequences_input_ids))
         self.assertTrue(np.array_equal(output_sequences_decoder_input_ids[:, 1:2], conditioning_input))
 
+    @require_read_token
     @slow
     @require_torch_gpu
     def test_cache_device_map_with_vision_layer_device_map(self):
Repository: electron/electron
Pull request: fix: ensure version of `xdg-dialog-portal` with `defaultPath` support

Backport of #43570

See that PR for details.


Notes: Fixed an issue where `defaultPath` did not work for all users on Linux when creating an open file dialog.


Changed files:
filename: patches/chromium/feat_add_support_for_missing_dialog_features_to_shell_dialogs.patch
patch: @@ -199,10 +199,21 @@ index 58985ce62dc569256bad5e94de9c0d125fc470d0..33436784b691c860d58f8b4dfcc6718e
            &SelectFileDialogLinuxKde::OnSelectSingleFolderDialogResponse, this,
            parent));
 diff --git a/ui/shell_dialogs/select_file_dialog_linux_portal.cc b/ui/shell_dialogs/select_file_dialog_linux_portal.cc
-index 61ddcbf7bf57e423099c7d392a19b3ec79b5d03f..8c3f4058ad7e9f6460c8d0516a150db612e8f574 100644
+index 61ddcbf7bf57e423099c7d392a19b3ec79b5d03f..b2d2e11f72dcca5b3791a6dd3e9e5ae930a1f701 100644
 --- a/ui/shell_dialogs/select_file_dialog_linux_portal.cc
 +++ b/ui/shell_dialogs/select_file_dialog_linux_portal.cc
-@@ -221,6 +221,8 @@ void SelectFileDialogLinuxPortal::SelectFileImpl(
+@@ -44,7 +44,9 @@ constexpr char kMethodStartServiceByName[] = "StartServiceByName";
+ constexpr char kXdgPortalService[] = "org.freedesktop.portal.Desktop";
+ constexpr char kXdgPortalObject[] = "/org/freedesktop/portal/desktop";
+ 
+-constexpr int kXdgPortalRequiredVersion = 3;
++// Version 4 includes support for current_folder option to the OpenFile method via
++// https://github.com/flatpak/xdg-desktop-portal/commit/71165a5.
++constexpr int kXdgPortalRequiredVersion = 4;
+ 
+ constexpr char kXdgPortalRequestInterfaceName[] =
+     "org.freedesktop.portal.Request";
+@@ -221,6 +223,8 @@ void SelectFileDialogLinuxPortal::SelectFileImpl(
                       weak_factory_.GetWeakPtr()));
    info_->type = type;
    info_->main_task_runner = base::SequencedTaskRunner::GetCurrentDefault();
@@ -211,7 +222,7 @@ index 61ddcbf7bf57e423099c7d392a19b3ec79b5d03f..8c3f4058ad7e9f6460c8d0516a150db6
  
    if (owning_window) {
      if (auto* root = owning_window->GetRootWindow()) {
-@@ -557,7 +559,9 @@ void SelectFileDialogLinuxPortal::DialogInfo::AppendOptions(
+@@ -557,7 +561,9 @@ void SelectFileDialogLinuxPortal::DialogInfo::AppendOptions(
                       response_handle_token);
  
    if (type == SelectFileDialog::Type::SELECT_UPLOAD_FOLDER) {
@@ -222,7 +233,7 @@ index 61ddcbf7bf57e423099c7d392a19b3ec79b5d03f..8c3f4058ad7e9f6460c8d0516a150db6
                         l10n_util::GetStringUTF8(
                             IDS_SELECT_UPLOAD_FOLDER_DIALOG_UPLOAD_BUTTON));
    }
-@@ -566,6 +570,8 @@ void SelectFileDialogLinuxPortal::DialogInfo::AppendOptions(
+@@ -566,6 +572,8 @@ void SelectFileDialogLinuxPortal::DialogInfo::AppendOptions(
        type == SelectFileDialog::Type::SELECT_UPLOAD_FOLDER ||
        type == SelectFileDialog::Type::SELECT_EXISTING_FOLDER) {
      AppendBoolOption(&options_writer, kFileChooserOptionDirectory, true);
Repository: ggml-org/llama.cpp
Pull request: build : fix build info on windows

Fixes #10727

Changed files:
filename: cmake/build-info.cmake
patch: @@ -41,14 +41,20 @@ endif()
 
 if(MSVC)
     set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
-    set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME})
+    if (CMAKE_VS_PLATFORM_NAME)
+        set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME})
+    else()
+        set(BUILD_TARGET "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}")
+    endif()
 else()
     execute_process(
-        COMMAND sh -c "\"$@\" --version | head -1" _ ${CMAKE_C_COMPILER}
+        COMMAND ${CMAKE_C_COMPILER} --version
         OUTPUT_VARIABLE OUT
         OUTPUT_STRIP_TRAILING_WHITESPACE
     )
+    string(REGEX REPLACE " *\n.*" "" OUT "${OUT}")
     set(BUILD_COMPILER ${OUT})
+
     execute_process(
         COMMAND ${CMAKE_C_COMPILER} -dumpmachine
         OUTPUT_VARIABLE OUT

filename: common/CMakeLists.txt
patch: @@ -39,7 +39,9 @@ add_custom_command(
     COMMENT "Generating build details from Git"
     COMMAND ${CMAKE_COMMAND} -DMSVC=${MSVC} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION}
             -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_VS_PLATFORM_NAME=${CMAKE_VS_PLATFORM_NAME}
-            -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info-gen-cpp.cmake"
+            -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+            -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
+            -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info-gen-cpp.cmake"
     WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.."
     DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in" ${GIT_INDEX}
     VERBATIM

filename: ggml/src/ggml-cuda/CMakeLists.txt
patch: @@ -133,6 +133,7 @@ if (CUDAToolkit_FOUND)
                 COMMAND ${NVCC_CMD} -Xcompiler "-dumpfullversion -dumpversion"
                 OUTPUT_VARIABLE CUDA_CCVER
                 ERROR_QUIET
+                OUTPUT_STRIP_TRAILING_WHITESPACE
             )
         else()
             if (CUDA_CCFULLVER MATCHES Apple)
@@ -143,7 +144,7 @@ if (CUDAToolkit_FOUND)
             string(REGEX REPLACE "^.* version ([0-9.]*).*$" "\\1" CUDA_CCVER ${CUDA_CCFULLVER})
         endif()
 
-        message("-- CUDA host compiler is ${CUDA_CCID} ${CUDA_CCVER}")
+        message(STATUS "CUDA host compiler is ${CUDA_CCID} ${CUDA_CCVER}")
 
         ggml_get_flags(${CUDA_CCID} ${CUDA_CCVER})
         list(APPEND CUDA_CXX_FLAGS ${CXX_FLAGS} ${GF_CXX_FLAGS})  # This is passed to -Xcompiler later
Repository: nodejs/node
Pull request: dgram: check udp buffer size to avoid fd leak

```js
const udp = require('dgram');

// uncaughtException event is triggered
process.on('uncaughtException', () => {});

for (let i = 0; i < 10; i++) {
    const socket = udp.createSocket({type: 'udp4', recvBufferSize: 'x'});
    // error and listening events are not triggered
    socket.on('error', () => {
        socket.close();
    });
    socket.on('listening', () => {
        socket.close();
    });
    socket.bind(0);
}
```
The process will open 10 fds.

- [x] `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes
- [x] tests and/or benchmarks are included
- [x] documentation is changed or added
- [x] commit message follows [commit guidelines](https://github.com/nodejs/node/blob/master/doc/guides/contributing/pull-requests.md#commit-message-guidelines)

Changed files:
filename: lib/dgram.js
patch: @@ -61,6 +61,7 @@ const {
   validateString,
   validateNumber,
   validatePort,
+  validateUint32,
 } = require('internal/validators');
 const { Buffer } = require('buffer');
 const { deprecate, guessHandleType, promisify } = require('internal/util');
@@ -110,6 +111,12 @@ function Socket(type, listener) {
     options = type;
     type = options.type;
     lookup = options.lookup;
+    if (options.recvBufferSize) {
+      validateUint32(options.recvBufferSize, 'options.recvBufferSize');
+    }
+    if (options.sendBufferSize) {
+      validateUint32(options.sendBufferSize, 'options.sendBufferSize');
+    }
     recvBufferSize = options.recvBufferSize;
     sendBufferSize = options.sendBufferSize;
   }

filename: test/parallel/test-dgram-createSocket-type.js
patch: @@ -59,3 +59,16 @@ validTypes.forEach((validType) => {
     socket.close();
   }));
 }
+
+{
+  [
+    { type: 'udp4', recvBufferSize: 'invalid' },
+    { type: 'udp4', sendBufferSize: 'invalid' },
+  ].forEach((options) => {
+    assert.throws(() => {
+      dgram.createSocket(options);
+    }, {
+      code: 'ERR_INVALID_ARG_TYPE',
+    });
+  });
+}
Repository: huggingface/transformers
Pull request: fix: (llama4) fix no_split_modules to be picked up for fsdpv1 and v2 sharding

# What does this PR do?

Currently, FSDP sharding both v1 and v2 would fail to automatically infer which modules to wrap since, the current configuring of no_split_modules for llama4 makes it inaccessible. We should essentially move the `_no_split_modules` to common base class i.e. `Llama4PreTrainedModel`.

Though we can get around this by explicitly passing the classes to wrap, for downstream users who rely on automatic wrapping inference (traditionally working good feature of transformers 😉)  would experience bad training memory costs for llama4 + FSDP and wont realize.

While using fsdp activation checkpointing, there are no workarounds.


## Before submitting
- [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#create-a-pull-request),
      Pull Request section?
- [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to it if that's the case.
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation).
- [ ] Did you write any new necessary tests?


## Who can review?

- text models: @ArthurZucker
- generate: @zucchini-nlp (visual-language models) or @gante (all others)
- trainer: @zach-huggingface and @SunMarc

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR




Changed files:
filename: src/transformers/models/llama4/modeling_llama4.py
patch: @@ -476,6 +476,7 @@ class Llama4PreTrainedModel(PreTrainedModel):
     _supports_quantized_cache = True
     _supports_static_cache = True
     _supports_attention_backend = True
+    _no_split_modules = ["Llama4TextDecoderLayer", "Llama4VisionEncoderLayer"]
 
     def _init_weights(self, module):
         std = (
Repository: vercel/next.js
Pull request: fix(turbo-tasks): Make vc types use repr(transparent)

I thought this was already here, but @lukesandberg pointed out it wasn't. I'm pretty sure we're doing transmutes in a few places that assume this, so we should have it.

There's likely no change in behavior: The only sane memory layout for these types is the transparent one, but the annotation guarantees it for our unsafe code.

Closes PACK-4399

Changed files:
filename: turbopack/crates/turbo-tasks/src/vc/mod.rs
patch: @@ -163,6 +163,7 @@ type VcReadTarget<T> = <<T as VcValueType>::Read as VcRead<T>>::Target;
 #[must_use]
 #[derive(Serialize, Deserialize)]
 #[serde(transparent, bound = "")]
+#[repr(transparent)]
 pub struct Vc<T>
 where
     T: ?Sized,

filename: turbopack/crates/turbo-tasks/src/vc/operation.rs
patch: @@ -48,6 +48,7 @@ use crate::{
 /// [`State`]: crate::State
 /// [`ReadRef`]: crate::ReadRef
 #[must_use]
+#[repr(transparent)]
 pub struct OperationVc<T>
 where
     T: ?Sized,

filename: turbopack/crates/turbo-tasks/src/vc/resolved.rs
patch: @@ -66,6 +66,7 @@ use crate::{
 /// [`ReadRef`]: crate::ReadRef
 #[derive(Serialize, Deserialize)]
 #[serde(transparent, bound = "")]
+#[repr(transparent)]
 pub struct ResolvedVc<T>
 where
     T: ?Sized,