• DacoTaco@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    5 个月前

    What is this abi and standard calling methods you speak off? Are you a rust-non-believer or some shit! Rewrite it all in rust, no questions asked!

    ( i too like the ideas of rust, but without a decent abi or not constantly changing interface, its useless to me. I dont want to rebuild all code, including libraries every time i update 1 library in my application )

    • teolan@lemmy.world
      link
      fedilink
      arrow-up
      10
      arrow-down
      2
      ·
      5 个月前

      You’re aware that Rust gives you access to the full C ABI?

      What language are you going to use instead that has a better ABI story? Swift? Or maybe a dynamic language like Python?

      • DacoTaco@lemmy.world
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        5 个月前

        I know that exists, but whats the point of that? You loose all advantages of rust when you use the library then because it cant predict application state with the library code. There is a reason all those rust libraries are compiled locally when you compile a rust application. Its a major lacking point for rust, and as long as it lacks that its dead in the water for big projects.
        Again, i like strong type stuff and i like the ideas of rust but it is not grown up enough for me

          • DacoTaco@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            5 个月前

            I think you have things wrong. Any other languages can have libraries be distributed as some format that would allow applications to use it, be it linux/gcc and .a files ( which are actually archives with elf/object files of the code ), or a full on library like .so/.dll.
            Rust can only do .o/.dll and only have it expose like a c library afaik. Even .net has improved on the .dll and includes all its language features in it. Rust has none of that. Its not true that libraries not rebuilding are only for closed source. Its also ease of use/access and less problem prone. What if i build my library using a different version of the compiler than you and your application? I could have no problems building my library, while you cant build your application because the library i made gets rebuild and errors.
            These errors happen and are all because there is no stable interface/abi and all other languages have overcome this.

            Also, by default, nothing in c is rebuild unless it needs to. Thats why the intermediate .o ( elf object ) files exist, so it only has to do the relinking and not recompile and thats why .a archive/libraries in c work, because it doesnt recompile.

            I think you dont fully understand how c compilers ( gcc specifically ) work when using multi file projects ( and not just doing gcc input.c -o output.exe ) just how i dont fully know how the rust compiler works. Also, anything using IL will always have an abi, because how else will it jump from code to IL code, so its obvious that rust to wasm will have to abide by that haha. Be it c wasm, c# wasm or rust wasm calling one another. Wasm is wasm, and you only need an exposed interface to call or include the other wasm ( c#/blazor having NativeFileReference in the csproj )

            Again, i like the idea of rust, but it has a long way to go to be viable atm. And it has many pitfalls to avoid so it doesnt become the hot mess that is any framework based on node.js

      • CanadaPlus@lemmy.sdf.org
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        5 个月前

        Are you suggesting OP write a C application and then compile it as Rust? I’m not a pro, but that sounds kind of janky.

      • JoYo 🇺🇸@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 个月前

        Do you mean everything that uses LLVM automatically gets an ABI standard?

        That’s so nice of clang, really they should be proub.