Giter Club home page Giter Club logo

Comments (10)

hi-rustin avatar hi-rustin commented on June 9, 2024 2

Get back from my holiday and start working on this now!

from cargo.

weihanglo avatar weihanglo commented on June 9, 2024

Thanks for the report!

<homedir>\projects\other\cxx\target\debug\build\cxx-test-suite-2dda1da2c847afa7\out\cxxbridge\crate\tests\ffi is a symlink pointing to a directory. According to Win32 API doc, symlinks created by CreateSymbolicLinkA should be removed by RemoveDirectory not DeleteFile.

The fix seems to be straightforward: here whenever we delete a file, on Windows we additionally check if it is a symlink to a directory. If yes then call remove_dir instead on the symlink.

from cargo.

weihanglo avatar weihanglo commented on June 9, 2024

When submitting a pull request, the first commit should be a test demonstrating the current “bad behavior”, followed by other commits fixing the bug and tests, so that we know we're fixing an issue that really exists.

from cargo.

hi-rustin avatar hi-rustin commented on June 9, 2024

@rustbot claim

I will take a look.

from cargo.

hi-rustin avatar hi-rustin commented on June 9, 2024

@moizzd #13910 Could you please help test this patch? I had some issues when I tried to test on my virtual machine.

  1. You need to clone my repo or clone the Cargo repo and apply my patch.
  2. Build Cargo with my patch.
  3. Try `some-path/cargo/target/debug/cargo clean

from cargo.

moizzd avatar moizzd commented on June 9, 2024

from cargo.

hi-rustin avatar hi-rustin commented on June 9, 2024

@moizzd Have you tested it? Did it work?

from cargo.

moizzd avatar moizzd commented on June 9, 2024

@hi-rustin No, I haven't had a chance unfortunately. Work related urgency intervened. I will do it today.

from cargo.

moizzd avatar moizzd commented on June 9, 2024

@hi-rustin

I built the cargo repo with your patch. I then ran the build on the cxx demo directory and then ran clean:

Z:\Projects\other\demo>..\cargo\target\debug\cargo build
   Compiling windows_x86_64_msvc v0.52.5
   Compiling proc-macro2 v1.0.83
   Compiling cc v1.0.98
   Compiling unicode-ident v1.0.12
   Compiling scratch v1.0.7
   Compiling windows-targets v0.52.5
   Compiling windows-sys v0.52.0
   Compiling cxxbridge-flags v1.0.122
   Compiling quote v1.0.36
   Compiling winapi-util v0.1.8
   Compiling syn v2.0.65
   Compiling termcolor v1.4.1
   Compiling unicode-width v0.1.12
   Compiling link-cplusplus v1.0.9
   Compiling codespan-reporting v0.11.1
   Compiling cxx v1.0.122
   Compiling once_cell v1.19.0
   Compiling cxx-build v1.0.122
   Compiling cxxbridge-macro v1.0.122
   Compiling demo v0.0.0 (Z:\Projects\other\demo)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.34s

Z:\Projects\other\demo>..\cargo\target\debug\cargo clean
     Removed 319 files, 106.3MiB total

Z:\Projects\other\demo>dir
 Volume in drive Z is Shared Folders
 Volume Serial Number is 0000-0064

 Directory of Z:\Projects\other\demo

05/22/2024  09:35 PM    <DIR>          .
05/22/2024  09:35 PM    <DIR>          ..
03/26/2024  09:10 PM               686 BUCK
03/26/2024  06:36 PM               726 BUILD
03/26/2024  09:10 PM               323 build.rs
05/22/2024  09:33 PM             6,119 Cargo.lock
03/26/2024  06:36 PM               345 Cargo.toml
05/22/2024  09:08 PM    <DIR>          include
05/22/2024  09:08 PM    <DIR>          src
               5 File(s)          8,199 bytes
               4 Dir(s)  339,151,474,688 bytes free

``
So, it seems to have worked.

from cargo.

moizzd avatar moizzd commented on June 9, 2024

with the unpatched ( installed cargo):

Z:\projects\other\demo>cargo clean
error: failed to remove file C:\Users\<user>\projects\other\demo\target\debug\build\demo-5950ef69aeb759a3\out\cxxbridge\crate\demo

Caused by:
Access is denied. (os error 5)

from cargo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.