Comment by dismalaf

3 months ago

> Downloading a dependency manually and then cursing at the compiler because "it's right there! why won't it load!!"

Odin's compiler knows what a package is and will compile it into your program automatically.

Isn't that a (built-in) package manager if it works for general packages? Or does it work only for selected dependencies?

  • From what I've seen. The Odin has three package collections: `base`, `core` and `vendor`.

    `base` is intrinsically necessary to port Odin. `core` seems to be its standard library, your `libc`, `xml`, etc.

    And `vendor` is everything else. So you basically get the Python's '`core` is where packages go to die' approach iff they take backwards compatibility seriously. Otherwise, they have breaking changes mid-language version change.

    EDIT: Package collections not packages per gingerBill.

    • Those are library/package collections which contain multiple different packages, not the packages themselves.

      And we will take backwards compatibility seriously when we hit 1.0, and only "break" on major versions.

      7 replies →

    • So they are trying the Linux distribution model of packages, right? (Compare `vendor` with, say, Ubuntu's `universe`.)

  • It doesn't necessarily "manage" the packages. It just sees them in your project and compiles them. You manage them yourself.

    • If that's what happens, I think in the following claim:

      > Odin's compiler knows what a package is and will compile it into your program automatically.

      ...the word "automatically" should be dropped. Of course compilers compile any supplied dependency "automatically", but it is so obvious that we don't often use the adverb just for that.

      7 replies →