vlang / v

Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
MIT License
35.68k stars 2.15k forks source link

Package Manager/Vendoring #628

Closed Immortalin closed 4 years ago

Immortalin commented 5 years ago

Like cargo, go dep/get. There's no need for a centralised registry to get started, just a GitHub repo with a list of links pointing to other projects in e.g. TOML format should be enough and the v tool can search that list. (See Nim's manager)

Immortalin commented 5 years ago

Also would be ideal if V can support node-style multiple conflicting libraries/Java class loaders.

I.e. library A can depend on library B version one and library C can depend on library B version two and they won't conflict when built and linked into the same binary. This feature of Nodejs allows it to take a lot of shortcuts with dependency management. No need for SAT/combinatorial constraint solvers etc. to solve versioning problems. Just pull in everything stated in the dependencies file.

See this for more info: https://thefeedbackloop.xyz/thoughts-on-dependency-hell-is-np-complete/

Tools like Bundle etc. depends on a ton of heuristics etc. There's no need to replicate Z3 if we can just cut out the knot directly.

superwhiskers commented 5 years ago

iirc that's already going to be implemented at some point, but i'll make this issue for discussion of the package manager

chanbakjsd commented 4 years ago

And... vpm is now a thing! Buggy from time to time but it works. (Use v install)