JuliaLang / JuliaLang/julia

2.0 suggestion: fix the clash between `Future` and `Distributed.Future`

Open
#36,498 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
49.1k
Forks
6k
Avg merge
2d 2h
Merged PRs (30d)
209

Description

I wonder if, in Julia 2.0, it would be possible to make exactly one of the following breaking changes:

  1. Rename the Future stdlib to something else (e.g. FutureBehavior)
  2. Rename the Distributed.Future struct to something else (e.g. RemoteFuture or FutureComputation)
  3. Stop exporting Distributed.Future from Distributed
Motivation

julia> using Distributed

julia> Future
Future

julia> import Future
ERROR: importing Future into Main conflicts with an existing identifier

In fact, it is now impossible to load the Future standard library.

To me, it seems bad that it is this easy to "break" the importing of a standard library. If these were packages, I don't think it would be a problem. But I feel like standard libraries shouldn't clash with each other in such obvious ways.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the shown using Distributed, Future, and import Future commands in Julia. Investigate how Future is exported by Distributed and loaded as a standard library, then determine which of the three proposed breaking changes is acceptable; done means the standard library can be loaded without the demonstrated name conflict.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.