elixir-lang / ex_doc

ExDoc produces HTML and EPUB documentation for Elixir projects
http://elixir-lang.org
Other
1.44k stars 324 forks source link

Building docs when module compiled using `+deterministic` fails #1881

Open garazdawi opened 5 months ago

garazdawi commented 5 months ago

In https://github.com/erlang/otp/issues/8295 I discovered that it is not possible to build documentation for Erlang (and possibly Elixir?) modules build using the +deterministic compiler flag.

When +deterministic is used, it will no longer be possible to locate the location of the source file, so I think that in such case ExDoc should not emit any links to the source code and all warnings/errors have to be emitted as best they can be.

josevalim commented 5 months ago

Sounds good to me. Although missing the source code links would certainly be a shame.

garazdawi commented 5 months ago

Not much that can be done about that without fixing the Erlang compiler to not strip the path from file names when compiling using +deterministic.

josevalim commented 5 months ago

One option perhaps is to store the relative path to the file in relation to the cwd (assuming the file is inside cwd). This way it is always deterministic if you compile from the same directory (which is the most common scenario anyway).

garazdawi commented 5 months ago

I don't recall the details on why it is done the way it is, but part of the answer is in this pr: https://github.com/erlang/otp/pull/1976