Earlier quoted context omitted.
any language that has a standardised build system (virtually every language nowadays?), but doesn't have a centralised package repository, such that including a dependency is seamless, but takes a bit of time and intent i like how zig does this, and the creator of odin has a whole talk where he basically uses the same arguments as my original comment to reason why odin doesn't have a package manager
"a standardised build system (virtually every language nowadays?)" Python packages still manage poorly dependencies that are in another lang like C or C++.
RustGPT: A pure-Rust transformer LLM built from scratch
181–186 of 186 posts
Re: RustGPT: A pure-Rust transformer LLM built from scratch
#182Earlier quoted context omitted.
Sorry, I don't understand the "^ operator" in this context. Do I understand correctly that cargo will basically select the latest release that matches within a major version, so if I have two crates that specify "0.8" and "0.7.1" as dependencies then the compiler will use "0.8.n" for both? And then if I add a new dependency that specifies "0.9.5", all three crates would use "0.9.5"? Assuming I have that right, I'm qu…
It’s all good. Let me break it down. Semver specifies versions. These are the x.y.z (plus other optional stuff) triples you see. Nothing should be complicated there. Tools that use semver to select versions also define syntax for defining which versions are acceptable. npm calls these “ranges”, cargo calls them “version requirements”, I forget what other tools call them. These are what you actually write in your Carg…
Re: RustGPT: A pure-Rust transformer LLM built from scratch
#183Earlier quoted context omitted.
It’s all good. Let me break it down. Semver specifies versions. These are the x.y.z (plus other optional stuff) triples you see. Nothing should be complicated there. Tools that use semver to select versions also define syntax for defining which versions are acceptable. npm calls these “ranges”, cargo calls them “version requirements”, I forget what other tools call them. These are what you actually write in your Carg…
Awesome. Thanks for taking the time. Glad to understand all of this better. I feel a bit silly now meticulously going through and changing all of my "0.9.3"s to "0.9" in the past, but at least now I know better.
It is true that, if the change works on z < 3, you are expanding the possible set of versions a bit, so it's not useless; one could argue that you should only depend on z != 1 if there's a bug you want to make sure that you use the versions past when it works, otherwise, no reason to restrict yourself, but it's not a big deal either way :)
Re: RustGPT: A pure-Rust transformer LLM built from scratch
#184Earlier quoted context omitted.
Well, first, this a purposefully contrived example, that pretty much does not happen in real life scenarios. So you're pretty much acknowledging that there is no real problem by having to resort to such length. Second, what exactly would you like to happen in that instance? You want to have, in a single project, the same library but at different and conflicting versions. The only way to solve that is to disambiguate,…
> Well, first, this a purposefully contrived example [...] So you are saying that (a) I made this up and (b) intentionally so. How so? I am always flabbergasted when people make such statements. You know nothing of my use of Python. I work in a specific field (computer graphics) and within that an even more specific sub field, visual effects. I have to use Python maybe every three months. And there is some dependency…
Sit down, have a coffee, re-read your whole comments, create bullet points for your case, and try to have an *objective* look at your arguments.
- Your are frustrated with your use case, seemingly to the point where you don't care about reasonable arguments but just want to lash out at something.
- By your own description, you have a specific use case, in a specific field, in a narrower sub field.
- You are not primarily a Python developer, and use it every 3 months when you have to.
Your experience, in your field, on your project, does not make you a poster child of what everyday Python is like. Sorry for the news.
Now I get that frustration of "I just want things done and not care about that whole ecosystem", but the reality is, that's not a Python thing, it's a "that's not my preferred stack thing".
I have that same feeling whenever I need to get things done in a stack I don't know, and get stuck by something does.
I used Rust the other day and ended up in a case where I needed to implement a trait I do not own. Well that ended up not being possible. That pissed me off for a time, that *really* made the most sense for my use case. Yet... I'm not going to complain that Rust is unusable because of "trait ownership hell" on the internet.
If we let the frustration aside for a minute:
Your use case, as a fact, is very contrived.
One does not stumble into projects that need to work with different, incompatible, similarly named, versions of a same library, every day.
As I mentioned, when that need arises, library maintainers usually just create a new package, with a different name.
That is what have been done for 99.99% of package managers ever in existence, be it system package managers, or language package managers.
And the reason for it is really just common sense:
- It does not happen very often
- Whenever that happens, the solution of providing a new package is the simplest and most well established
- The pattern works, and has been used since 30 years
- It is unambiguous
Note that Rust does _not_ magically solve that problem either, as there is no one size fits all solution to this problem. The best Rust can do, is:
- In the subset use case of this problem where said dependency is solely accessed from the inside of another dependency
- And said library symbols need not be externally accessible
- And said library data structures need not be shared
- Then Rust can build the outer most dependency against a specific version of said inner dependency.
Re: RustGPT: A pure-Rust transformer LLM built from scratch
#185Re: RustGPT: A pure-Rust transformer LLM built from scratch
#186Earlier quoted context omitted.
It doesn't handle python version management, it only handles pip. It doesn't solve bundling Python.
It does handle python version management: https://docs.astral.sh/uv/concepts/python-versions/