# De-stdlibification impacting usability of scripts from the command line

**URL:** <https://discourse.julialang.org/t/de-stdlibification-impacting-usability-of-scripts-from-the-command-line/92650>\
**Category:** General Usage\
**Created:** [January 7, 2023, 10:48pm UTC](https://discourse.julialang.org/t/de-stdlibification-impacting-usability-of-scripts-from-the-command-line/92650 "2023-01-07T22:48:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![brenhinkeller](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brenhinkeller/32/36648_2.png) [@brenhinkeller](https://discourse.julialang.org/u/brenhinkeller)\
**Post date:** [January 7, 2023, 10:48pm UTC](https://discourse.julialang.org/t/de-stdlibification-impacting-usability-of-scripts-from-the-command-line/92650/1 "2023-01-07T22:48:30Z")

</div>

Please chime in here if you have any opinions about the fact that any scripts that do `using SomeStdlib` (currently starting with `DelimitedFiles`, but lots of others including `Statistics` are on the chopping block too) are about to stop working in 1.9+ unless you are running those scripts in an environment where that stdlib has been explicitly `] add` ed

> <https://github.com/JuliaLang/julia/issues/48161>
>
> The following script works on Julia 1.8.4
> 
> \`\`\`julia
> using DelimitedFiles
> tem…p = tempname()
> open(temp, "w") do io
> println(io, "1,2,3")
> end
> println(sum(readdlm(temp, ',', Int)))
> \`\`\`
> 
> Ideally it should work on all future Julia versions. In interactive use, once \`DelimitedFiles.jl\` is no longer a stdlib, the user will be prompted to install the package at the REPL. In package use, it should already be in the environment. As a scripts without a Project.toml, IIUC, the plan is to make this fail with \`ERROR: ArgumentError: Package DelimitedFiles not found in current path.\`.
> 
> An alternate proposal from @IanButterworth on slack is
> 
> \> for scripts, if the package name cannot be resolved, and its in a special list known to Julia of names that used to be stdlibs, then auto-install it and carry on
> 
> Much like the interactive REPL prompt, but install & warn rather than prompt.
> 
> EDIT to clarify: This would be backed by downloading and loading DelimitedFiles with Pkg, not by packaging DelimitedFiles with Julia.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [January 7, 2023, 11:08pm UTC](https://discourse.julialang.org/t/de-stdlibification-impacting-usability-of-scripts-from-the-command-line/92650/2 "2023-01-07T23:08:50Z")

</div>

> [@brenhinkeller](#):
>
> any scripts that do `using SomeStdlib`

You’re missing “any scripts that don’t have an associated package environment”.

---

<div class="post-metadata">

**Author:** ![brenhinkeller](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brenhinkeller/32/36648_2.png) [@brenhinkeller](https://discourse.julialang.org/u/brenhinkeller)\
**Post date:** [January 7, 2023, 11:09pm UTC](https://discourse.julialang.org/t/de-stdlibification-impacting-usability-of-scripts-from-the-command-line/92650/3 "2023-01-07T23:09:49Z")

</div>

> [@brenhinkeller](#):
>
> unless you are running those scripts in an environment where that stdlib has been explicitly `] add` ed

Yeah, I was figuring that was covered by the “unless you are running those scripts in an environment where that stdlib has been explicitly `] add` ed”

---

<div class="post-metadata">

**Author:** ![stillyslalom](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stillyslalom/32/45687_2.png) [@stillyslalom](https://discourse.julialang.org/u/stillyslalom)\
**Post date:** [January 7, 2023, 11:40pm UTC](https://discourse.julialang.org/t/de-stdlibification-impacting-usability-of-scripts-from-the-command-line/92650/4 "2023-01-07T23:40:49Z")

</div>

I feel that the time to remove standard libraries was v0.7. Semantic versioning may not be clear on this case, but this is going to be a surprising new source of errors for many users. Regardless of semver rules-lawyering, the benefit to removing previously-included functionality in a non-breaking minor release should be made more clear than it presently is.
