Getting #581 (deprecating old-style non-RFC3986 URLs) to done


I raised issue #581 a while ago and it’s been sitting around not doing much. I’d like to make a final push to get it closed.

My understanding of where the standard is at the moment is:

Therefore, in principle what we need to do is write a deprecation notice marking old-style URLs as deprecated and plan to phase them out of the language.

However, when I did some testing while writing up a deprecation notice, to my surprise old-style URLs seem to no longer be accepted by dhall-haskell:

$ echo^bar | dhall
Error: Invalid input

1 |^bar
  |                       ^
unexpected '^'
expecting '%', '/', '?', ->, :, end of input, keyword, operator, or whitespace

Note that ^ is a valid unquoted-path-character so should be allowed here.

Given that the major Dhall implementation doesn’t actually support old-style URLs, can we skip the deprecation notice and just remove support for them from the ABNF? Or have I overlooked or misunderstood something?

(The minimal way we could change the ABNF is to change url-path to only allow segments, not path-components. In practice I’ll change the ABNF to better match RFC3986.)


Having written all this out, I’ve realised that quoted"foobar"-style URLs are still supported by dhall-haskell, so maybe we do need a deprecation notice for them.

EDIT: here is it: