• 6 Posts
  • 528 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle
  • 3d not being required makes a hell a lot of sense and of course it wasn’t people have been drafting on paper for ages. They might’ve ended up on Mac or maybe Amiga, but an SGI workstation is quite an investment when you don’t even need to spin polygons. IRIS GL dates back to the early 80s, doesn’t seem so much to be a timeline but price and need thing. And it’s not like you can’t have a 3d view without acceleration, just would take a while to render and a frame every five seconds might still be usable.

    There apparently was an IRIX version at one time but with no user base preference, more likely they were thinking “where’s my C: drive” so once 3d acceleration hit the mainstream everyone happily switched back to Microsoft. Meanwhile you have 3d artists complaining that they can’t move windows with meta+lmb on windows.




  • Algorithmic patents amount to patenting maths which, by very longstanding precedence, is not a thing, for good reason. Same goes for business methods and other stuff.

    In the EU there’s only one way to patent software and that’s if you’re using it to achieve direct physical ends. E.g. you can patent washing machine firmware in so far as you patent a particular way to combine sensor data to achieve a particular washing result. Rule of thumb: If, 30 years ago, you’d have an electromechanical mechanism to do the task then you can patent the software that’s now replacing it.

    Oh: It’s also possible to patent silicon, that is, you can patent your hardware acceleration methods for video decoding. That doesn’t extend to decoders running on general-purpose hardware, though.

    If you want to monopolise your brand-new hash algorithm there’s a simple way: Don’t publish the source, use copyright to collect royalties… though that doesn’t mean that reverse engineering is outlawed, especially if necessary for interoperability. Practically speaking nope hash algorithms just can’t be protected which is fair and square because it’s academia who comes up with that kind of stuff and we paid for it with taxpayer money. Want to make money off it? Get tenure.



  • The vast majority of sales are made to US based firms so they likely have a lot of sway.

    The sway is TSMC uses ASML EUV lithography machines and the US holds patents on those because they did foundational research regarding EUV lithography. Also, the EU hasn’t put China on the “it is illegal for EU companies to kowtow to US sanctions” list. Ironically ASML could sell to Cuba and Iran. If the EU were to tell ASML to sell to China the US would be free to not buy ASML machines any more and, doing that, kill off Intel’s fabs.

    None of this stuff has military relevance, you don’t need or even want to use small nodes (which require EUV) in military applications you want hardened chips instead. Run off the mill consumer chips go all frizzy if an EMP looks at them sideways. This is about the US protecting US fabs, foremost Intel. Not the chip design part but the manufacturing one.

    Europe hasn’t played the high-end end-consumer chip market for ages and I doubt we’ll do it any time soon. Having ASML, Zeiss etc. means that whoever actually produces that stuff wants to be friendly with us and strategically, both military and economy, our own production facilities are perfectly sufficient. Hence also why ESMC will only go as small as 12nm, it’s the most cost-effective node size and performance is perfectly adequate for a missile, a CNC mill, or a car infotainment system. Or the gyroscope chip in your phone (it’s almost certainly a Bosch), EUV doesn’t make a lick of sense when you’re doing MEMS. Where we have to catch up is chip design lets see how that RISC-V supercomputer chip turns out.






  • barsoap@lemm.eetoMildly Infuriating@lemmy.worldGoddammit Texas!
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 month ago

    I’m not too familiar with the specific legal status of the OSCE in American law, I bet there’s a treaty or the other, but generally speaking a) you’re a member and b) you regularly send out your own people as OSCE mission members into other countries to observe elections and c) Every member state gets observed (alongside non-member countries inviting the OSCE because it’s a stamp of approval and can help stabilise democracies, establish trust in the procedures). Cursory observations are done for basically all elections that aren’t strictly regional, more in-depth ones every couple of elections. It’s democracies holding each other accountable.

    If Bumfuck, TX, wants to make a statement against Canadians observing their elections that’s their god-damned right but it’s also the duty of Washington to shut them the fuck up. Not too filled-in on the details either but when you start arresting people with diplomatic passports accredited by the federal level I think you should maybe take a step back and make a phone call before deploying handcuffs.


  • You don’t need an ID in Germany to vote just, push comes to shove, a way to make your identity believable. Expired ID, student ID, personalised public transport ticket, perfectly sufficient. Generally you just vote with your election notification, a sheet of paper with your address, ballot location, and number in the voter registry on it. If you try to vote with an ID but without notification workers are going to roll their eyes because they’ll have to manually search for you in their lists, heck, you might’ve turned up at the wrong location.


  • barsoap@lemm.eetoMildly Infuriating@lemmy.worldGoddammit Texas!
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    1 month ago

    I don’t need my ID to vote, also it’s valid for 10 years. Municipalities fill the voting registry from their citizens’ registry, then send out notifications to everyone. You literally cannot miss an election. You generally go voting with that notification, it’s sufficient, or use it to request a mail-in ballot.

    I’m sure administration is sufficiently different in the US than it is in Germany for the thing to not be able to work like that, but, big picture: The IRS can find everyone. Have them fill the registry, then.





  • I think you dont fully understand how c compilers ( gcc specifically ) work when using multi file projects

    They don’t. C compilers compile single files produced by the c preprocessor (resolving all #includes), they have no concept of multi-file projects. That’s a thing for the build system, such as make, and it needs dependency information from the preprocessor to do its job (cpp -M), and once it has that it has to act correctly on them which is often completely broken because people don’t understand make. Like using it recursively, bad idea. In the wild, a random C project at work you’ll come across needs a full rebuild to build cleanly. Things have gotten better with things like cmake getting more popular but the whole thing is still brittle. GNU autohell certainly makes nothing better, ever.

    Also, anything using IL will always have an abi,

    Everything will always have an ABI because ABI is just API in the target language, whatever that may be. If your program is compiled and can run it uses an ABI.

    Wasm is wasm, and you only need an exposed interface

    The core wasm abi is less capable than the C abi: You get scalar values and pointers, that’s it. No structs, no nothing, memory layout is completely unspecified. The component model allows compilers to say “so I’m laying out strings like this and structs like that” giving linkers a chance to say “yeah I can generate glue code between you two”.

    Again, i like the idea of rust, but it has a long way to go to be viable atm.

    C isn’t even close to being viable according to your standards people just have gotten used to the jank.

    And it has many pitfalls to avoid so it doesnt become the hot mess that is any framework based on node.js

    Rust doesn’t have portable dylibs precisely because it isn’t a hot mess. Because it’s actual work to do it properly. Unlike everyone else. Meanwhile It speaks the local C ABI fluently (they differ by architecture and operating system, btw), which isn’t a thing that can be said about many languages that aren’t C.


    Differently put: What, precisely, do you want to do? Have you any actual use-case for your doubts, or are they spooks?


  • It’s a lacking point yes but unless you want to use a closed-source library it’s also a non-issue, which is why it has never been given priority. It’s not like language semantics would prevent portable dylibs it’s that there’s more important fronts to improve Rust on. A proper solution would take quite some engineering effort, and do note that C doesn’t have a proper solution either it just lets you link stuff up willy-nilly and then crash. Rust is actually in a better position to implement a proper solution than C is.

    The “big project” thing is a red herring given that rust compiles incrementally. I know it is technically possible to not rebuild everything from scratch in C but the code has to specifically written to not break assumptions your build system makes while rust is happily re-using the compilation results for one function in a file while discarding those of another because actual dependencies are actually tracked. Out of the box.

    Speaking of large Rust projects and proper type-safe linking: The WebAssembly folks are hashing out their Component Model which isn’t really limited to compiling to wasm, in principle: Big picture it’s a way to programmatically specify ABIs and even derive ABI translation code. That might be a good option as a rust-specific solution would be, well, rust-specific and when you engineer something that can support multiple versions of a language you can just as well engineer a bit more and have something cross-language.



  • The Rustinomicon has a chapter on it. The basics are quite simple: Declare non-opaque types to use layout matching the C ABI, export/import functions, some wibbles around name mangling. Option<T> vs. null pointers. Where things get a bit more involved is unwinding, but then you’re at the end of it, nothing should be shocking to anyone having written C.

    As to how Rusty it is… not very. I mean Rust has first-class FFI support, but the way FFI stuff is written is necessarily unidiomatic because you’re basically writing C in Rust syntax and you won’t get out of declaring your own functions `unsafe’ before you read the rest of the Rustinomicon to understand what properties you need to ensure because the nice and shiny parts of Rust assume them.