# \[ANN\] Numerics.jl – The Extended Standard Library

**URL:** <https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694>\
**Category:** Package Announcements\
**Created:** [June 3, 2020, 8:36pm UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694 "2020-06-03T20:36:55Z")\
**Posts on this page:** 7\
**Page:** 3

<div class="post-metadata">

**Author:** ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)\
**Post date:** [June 7, 2020, 3:22pm UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694/41 "2020-06-07T15:22:32Z")

</div>

> [@c42f](#):
>
> More like having a reference environment which you can copy. Something vaguely like

Oh, yeah - this seems like a more sensible way to think about it.

> [@c42f](#):
>
> `pkg> using my_standard_env # ? maybe a bad idea`

I think this is the primary use of such a thing 🤷‍♂️

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [June 7, 2020, 4:15pm UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694/42 "2020-06-07T16:15:22Z")

</div>

Environment setup is one thing. The other is which of the packages from the environment one actually draws in. So `Project.toml` and `Manifest.toml` for the definition of the env, and then `include("mystuff.jl")`, `using mystuff` for convenient access to multiple packages with one `using`.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [June 7, 2020, 5:34pm UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694/43 "2020-06-07T17:34:41Z")

</div>

> [@c42f](#):
>
> That’s not to say end users should have to think about this on average, rather the tooling should make it _so easy_ that it happens by default.

`pkg> resolve` will make a `Manifest.toml`, and so will other package operations on the active project, but I am not sure it should be done by default upon activation and other operations. `Pkg` can’t really tell if _the project_ needs a manifest or not if there isn’t one.

I think that end users should be aware of the concept. Most scientists embrace the idea of a reproducible environment with enthusiasm.

---

<div class="post-metadata">

**Author:** ![kevin.squire](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevin.squire/32/62_2.png) [@kevin.squire](https://discourse.julialang.org/u/kevin.squire)\
**Post date:** [June 7, 2020, 10:29pm UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694/44 "2020-06-07T22:29:22Z")

</div>

I really like this idea as well. For precedence, it reminds me of Debian’s concept of “package groups”, although this sounds more flexible.

---

<div class="post-metadata">

**Author:** ![heliosdrm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/heliosdrm/32/3851_2.png) [@heliosdrm](https://discourse.julialang.org/u/heliosdrm)\
**Post date:** [June 8, 2020, 10:20am UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694/45 "2020-06-08T10:20:39Z")

</div>

That might be achieved with something like this… (using [this TOML parser](https://github.com/JuliaLang/TOML.jl) for simplicity, but it could be easily written without any external dependency).

```julia
using TOML
deps = TOML.parsefile(Base.active_project())["deps"]
for package in keys(deps)
    @eval Main using $(Symbol(package))
end

```

---

<div class="post-metadata">

**Author:** ![c42f](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/c42f/32/52842_2.png) [@c42f](https://discourse.julialang.org/u/c42f)\
**Post date:** [June 9, 2020, 4:51am UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694/46 "2020-06-09T04:51:22Z")

</div>

That’s interesting. I had in mind that it’s something very lightweight users could create for themselves. But curated environments specialized to particular domains would be handy, and perhaps more similar to [package groups](https://www.2daygeek.com/how-to-list-an-available-package-groups-in-linux/).

---

<div class="post-metadata">

**Author:** ![c42f](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/c42f/32/52842_2.png) [@c42f](https://discourse.julialang.org/u/c42f)\
**Post date:** [June 9, 2020, 5:26am UTC](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694/47 "2020-06-09T05:26:06Z")

</div>

I made a Pkg feature request out of this thread [Package groups · Issue #1854 · JuliaLang/Pkg.jl · GitHub](https://github.com/JuliaLang/Pkg.jl/issues/1854)

[Previous page](https://discourse.julialang.org/t/ann-numerics-jl-the-extended-standard-library/40694.md?page=2)
